-
-
Save z3tt/3dab3535007acf108391649766409421 to your computer and use it in GitHub Desktop.
#### 1. Sign up at GitHub.com ################################################ | |
## If you do not have a GitHub account, sign up here: | |
## https://github.com/join | |
# ---------------------------------------------------------------------------- | |
#### 2. Install git ########################################################## | |
## If you do not have git installed, please do so: | |
## Windows -> https://git-scm.com/download/win | |
## Mac -> https://git-scm.com/download/mac | |
## Linux -> https://git-scm.com/download/linux | |
## or: $ sudo dnf install git-all | |
# ---------------------------------------------------------------------------- | |
### 3. Configure git with Rstudio ############################################ | |
## set your user name and email: | |
usethis::use_git_config(user.name = "YourName", user.email = "[email protected]") | |
## create a personal access token for authentication: | |
usethis::create_github_token() | |
## in case usethis version < 2.0.0: usethis::browse_github_token() (or even better: update usethis!) | |
## Note for Linux users: | |
## credentials::set_github_pat() (in line 34) might store your PAT in a memory cache that | |
## expires after 15 minutes or when the computer is rebooted. You thus may wish to do | |
## extend the cache timeout to match the PAT validity period: | |
usethis::use_git_config(helper="cache --timeout=2600000") #> cache timeout ~30 days | |
## set personal access token: | |
credentials::set_github_pat("YourPAT") | |
## or store it manually in '.Renviron': | |
usethis::edit_r_environ() | |
## store your personal access token in the file that opens in your editor with: | |
## GITHUB_PAT=xxxyyyzzz | |
## and make sure '.Renviron' ends with a newline | |
# ---------------------------------------------------------------------------- | |
#### 4. Restart R! ########################################################### | |
# ---------------------------------------------------------------------------- | |
#### 5. Verify settings ###################################################### | |
usethis::git_sitrep() | |
## Your username and email should be stated correctly in the output. | |
## Also, the report shoud cotain something like: | |
## 'Personal access token: '<found in env var>'' | |
## If you are still having troubles, read the output carefully. | |
## It might be that the PAT is still not updated in your `.Renviron` file. | |
## Call `usethis::edit_r_environ()` to update that file manually. | |
# ---------------------------------------------------------------------------- | |
## THAT'S IT! |
Perhaps this discussion should be moved to stack exchange rather than continuing to impinge on @z3tt, who provided this as a helpful gist but hadn't figured on providing ongoing support.
Hi, simple and easy. Thanks
I am happy it helps so many people but agree with @friendly: this was just a snippet to share with no intention to create a discussion around the topic. I am trying to help here and there but please also consolidate other resources if you're stuck!
Sorry to revive this, but just want to document a new baffling problem I'm having on two machines. I reported this on SO, https://stackoverflow.com/questions/69305874/authenticating-to-github-from-rstudio
I have my GITHUB_PAT set up properly (I think), and usethis::siterep()
reports my PAT is discovered, but I'm still prompted for a password, and authentication fails:
> Sys.getenv("GITHUB_PAT")
[1] "ghp_TaA*****************************************"
> usethis::git_sitrep()
Git config (global)
* Name: 'Michael Friendly'
* Email: '[email protected]'
* Vaccinated: TRUE
i Defaulting to 'https' Git protocol
* Default Git protocol: 'https'
GitHub
* Default GitHub host: 'https://github.com'
* Personal access token for 'https://github.com': '<discovered>'
* GitHub user: 'friendly'
* Token scopes: 'gist, repo, user, workflow'
* Email(s): '[email protected] (primary)', '[email protected]'
Git repo for current project
* Active usethis project: 'C:/R/Projects/HistDataVis'
* Default branch: 'main'
* Current local branch -> remote tracking branch:
'main' -> 'origin/main'
GitHub remote configuration
* Type = 'ours'
* Host = 'https://github.com'
* Config supports a pull request = TRUE
* origin = 'friendly/HistDataVis' (can push)
* upstream = <not configured>
* Desc = 'origin' is both the source and primary repo.
Read more about the GitHub remote configurations that usethis supports at:
'https://happygitwithr.com/common-remote-setups.html'
nchar(Sys.getenv("GITHUB_PAT"))
[1] 40
Also tried credentials_set_github_pat()
, but this fails:
> credentials::set_github_pat("ghp_TaA************************************")
If prompted for GitHub credentials, enter your PAT in the password field
Logon failed, use ctrl+c to cancel basic credential prompt.
error: unable to read askpass response from 'rpostback-askpass'
fatal: could not read Password for 'https://[email protected]': terminal prompts disabled
Error: Failed to call 'git credential fill'
In line 31, delete extraneous ` at end of line
Hi together, so now I had to update my PAT as well and all worked perfectly. I added the step noted in the console explicitly which is: restart R after adding your token to the environment.
Awesome job! It saves my day 👍
Thank you!
An update on this: I posted this Q on SO: https://stackoverflow.com/questions/69305874/authenticating-to-github-from-rstudio
One answer that worked for me was to issue this command from my local repo:
git remote set-url origin [email protected]:username/repo.git
This worked after I had tried several other things.
@friendly Same issue here. This seems to have done the trick on a repo-by-repo basis. Thanks! I'm considering just pasting my PAT in my code at this point - this has been an epic saga to get this to work.
This seems to be a workaround that is simple: https://stackoverflow.com/a/68199261
simply awesome.... thanks for this
Thank you so much!
this was very useful! Thanks!
many many thanks for your help, all works fine
This is great. Thank you! One minor suggestion. I wasn't familiar with the usethis::edit_r_environ() and kept trying to figure out how to enter the PAT in the parentheses. A comment like this might help people as clueless as me: #Run this line as is to start the editor
This was godsent
Thank you!
Thanks for the feedback @tomhanna-uh, I adjusted the comments on the usethis::edit_r_environ()
bit, hope it is easier to understand now.
Awesome!
Thank you. This is an easy instruction!
You saved me having to write a poorer version for students this term. Can't thank you enough, Cedric!
Glad so many still find it helpful. And all the best with your course Robert!
Thanks a lot! Very happy to have found your advice on this, after 2 days trial-and-error... Yes, still very helpful for me as newbie :)
Very helpful, thanks!!
Glad I found this relatively early. These kinds of setups take hours sometimes. Thank you!
Under default settings on Linux, credentials::set_github_pat
might store your PAT in a memory cache that expires after 15 minutes (or when the computer is rebooted), potentially leading to a great deal of frustration shortly later.
Linux users may wish to do either extend the cache timeout to match the PAT validity period
usethis::use_git_config(helper="cache --timeout=2600000") #cache timeout ~30 days
or configure one of the alternative methods that stores the PAT to disk (store
or libsecret
based solutions).
Thank you @grady , I#ve added a note to the gist!
@z3tt To be effective, the config change to the cache settings needs to occur before setting the PAT. (currently line 28)
Thanks @grady, I have updated the snippet aaccordingly.
can you use it with two github accounts setting for one pc?