knitr::opts_chunk$set( collapse = TRUE, comment = "#>", fig.path = "man/figures/README-", out.width = "100%" )
{botmaker}
The {botmaker}
helps with the configuration settings for deploying an R-based bot that automatically runs on GitHub Actions.
GitHub Actions allows us to freely run R scripts on the cloud. The {botmaker}
takes care of most of the configuration steps to get your R script running periodically.
The interface of the {botmaker}
is intended to be similar to the {usethis}
package. You open the R package in RStudio and call botmaker::make_bot
.
You need to have an R Package project (as created with RStudio) hosted in a GitHub repository.
Also, if you wish the {botmaker}
to upload needed environment variables as GitHub Secrets, then you will need to have your GitHub personal access token (PAT) at hand -also known as github_pat
-.
You can install the development version of {botmaker}
from GitHub with:
# install.packages("remotes") remotes::install_github("jcrodriguez1989/botmaker")
Suppose we are using the {botmaker}
to set the \@RStatsJobsBot Twitter bot, which runs every 15 minutes.
Open the RStatsJobsBot R package in RStudio, and define the script that should be executed on every bot run:
# This code is an example, it should be the code you want to run periodically. bot_code <- ' library("RStatsJobsBot") run_rstatsjobsbot( rtweet_app = Sys.getenv("RTWEET_APP"), rtweet_consumer_key = Sys.getenv("RTWEET_CONSUMER_KEY"), rtweet_consumer_secret = Sys.getenv("RTWEET_CONSUMER_SECRET"), rtweet_access_token = Sys.getenv("RTWEET_ACCESS_TOKEN"), rtweet_access_secret = Sys.getenv("RTWEET_ACCESS_SECRET"), from_time = Sys.time() - 60 * 60, max_hashtags = 15 ) '
If the bot needs to use environment variables (Twitter bots do), we need to inform this to the make_bot
function. These environment variables should be present at the GitHub repository as Secrets. To inform about the environment variables to make_bot
, we should create a list with these variables:
env_vars <- list( RTWEET_APP = "", RTWEET_CONSUMER_KEY = "", RTWEET_CONSUMER_SECRET = "", RTWEET_ACCESS_TOKEN = "", RTWEET_ACCESS_SECRET = "" )
If we want the {botmaker}
to automatically push these Secrets to GitHub, we can provide these values to make_bot
:
env_vars <- list( RTWEET_APP = "RStatsJobsBot_twitter_app", RTWEET_CONSUMER_KEY = "myconsumerkey", RTWEET_CONSUMER_SECRET = "myconsumersecret", RTWEET_ACCESS_TOKEN = "myaccesstoken", RTWEET_ACCESS_SECRET = "myaccesssecret" )
And let the {botmaker}
create the configuration files by executing:
botmaker::make_bot( bot_code, cron_schedule = botmaker::cron_run_every(minutes = 15), env_vars = env_vars, repo = "jcrodriguez1989/RStatsJobsBot" )
And finally, push the generated files to the GitHub repository.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.