Skip to contents

Introduction

The main purpose of Kyber is to automate common tasks that need to be done before the start of an Openscapes Champions Cohort. This level of automation requires that you authorize your computer with Google Sheets and with GitHub.

Configuring Google Sheets

Kyber interacts with Google Sheets via the googlesheets4 package. This package makes it easy to authorize your computer so that Kyber can access Google Sheets programmatically. Run the following code to configure googlesheets4:

This function should redirect you to a web browser where you can log in with your Google account. After you have authorized googlesheets4, you can confirm that it is configured correctly by running the following:

gs4_user()
#> Logged in to googlesheets4 as your-name@email.com.

For more detailed information, see the gs4_auth() documentation and the googlesheets4 authorization troubleshooting documentation.

Troubelshooting Google Sheets

If you have not authorized your computer to use googlesheets4 in a while you may see the following error:

The googlesheets4 package is requesting access to your Google account.
Select a pre-authorised account or enter '0' to obtain a new token.
Press Esc/Ctrl + C to cancel.

1: username@email.com

Selection: 1
Auto-refreshing stale OAuth token.
Error in `gargle_abort_request_failed()`:
! Client error: (403) PERMISSION_DENIED
...

We have had success troubleshooting this error with the following method. First, try reading a Google Sheet into R:

library(googlesheets4)

cohort_registry_url <- "https://docs.google.com/spreadsheets/sheet-url..."

read_sheet(cohort_registry_url)

You should see the following prompt:

Selection: 

Enter 0 then press the Enter key. You computer’s browser should launch and load Google’s authorization page. Reauthorize your account via the web browser and you should see the following message in the R console:

Waiting for authentication in browser...
Press Esc/Ctrl + C to abort
Authentication complete.

Configuring Git and GitHub

One of the main purposes of Kyber is to automate processes that people would normally do “by hand.” By authorizing Kyber with your GitHub account, you are allowing Kyber to act “as you” on GitHub.

🚨 A word of caution: take care in using Kyber functions that interact with GitHub. Kyber is designed so that you cannot delete things on GitHub with Kyber, however if you are determined you could use Kyber to make a big mess. If you are going to write your own code or functions that use Kyber, try to avoid using Kyber within any code that is designed to iterate or execute multiple commands. This includes for and while loops, and mapping functions like sapply() and purrr::map().

Configuring Git

Make sure that you have Git installed on your computer. If you need to install Git you can find instructions specific to your operating system from the online Git documentation or from this GitHub guide.

Configuring GitHub

To get started configuring GitHub, first make sure that you have a GitHub account and that you are logged in. Take note of the GitHub username that you choose and the email address that you use to sign up for GitHub.

After installing Git, make sure to install the Gert package, which Kyber uses to interact with Git. If you have freshly installed Git, you should use Gert to set your GitHub username and email address locally with the following code:

library(gert)

git_config_global_set("user.name", "[your GitHub username]")
git_config_global_set("user.email", "[the email you used to sign up for GitHub]")

Confirm your configuration was set correctly by running:

Now that you have configured your GitHub username and email address with Git, you need to use GitHub to generate a token that Kyber will use to connect to your GitHub account. Keeping this token private is extremely important, since anyone with this token can act as you on GitHub. There’s no need to save this token however, you just need to copy and paste it into the R console once. Run the code below, which will open up your web browser to a page on GitHub with the appropriate settings for this token already selected. After you execute the code below, scroll to the bottom of the page and click the green “Generate token” button.

library(usethis)

create_github_token(
  scopes = c("repo", "user", "gist", "workflow", "admin:org"), 
  description = paste0("kyber-", Sys.Date())
)
#>  Call `gitcreds::gitcreds_set()` to register this token in the local Git
#>   credential store.
#> ! On Linux, it can be tricky to store credentials persistently.
#>  Read more in the 'Managing Git(Hub) Credentials' article
#>   (<https://usethis.r-lib.org/articles/articles/git-credentials.html>).
#>  It is also a great idea to store this token in any password-management
#>   software that you use.
#>  Open URL
#>   <https://github.com/settings/tokens/new?scopes=repo,user,gist,workflow,admin:org&description=kyber-2024-12-06>.

The token should appear as a string with about 40 random alphanumeric characters that start with ghp_. Copy the string from GitHub before running the code below. You will be prompted to enter the token into the R console:

? Enter password or token: 

Paste your token into the R console and press Enter, then you should see:

-> Adding new credentials...
-> Removing credentials from cache...
-> Done.

You can check to make sure that you credentials are set up by running:

<gitcreds>
  protocol: https
  host    : github.com
  username: PersonalAccessToken
  password: <-- hidden -->

Everything should now be configured for you to start using Kyber.