-
-
Save madrobby/9476733 to your computer and use it in GitHub Desktop.
curl -H 'Authorization: token INSERTACCESSTOKENHERE' -H 'Accept: application/vnd.github.v3.raw' -O -L https://api.github.com/repos/owner/repo/contents/path |
when using -O
to save a file with the same name, it includes request params in the file name. so i prefer setting ref
via -d
like this:
curl -GLOf -H "Authorization: token ${GITHUB_TOKEN?not set}" -H "Accept: application/vnd.github.v4.raw" \
"https://api.github.com/repos/$ORG/$REPO/contents/$FILEPATH" -d ref="$REVISION"
-G
causes data (specified by -d
) to be added as URL request params, but not the saved filename. -f
ensures if there is an issue, like 401 bad auth, the command returns an error instead of just saving the file with the error response.
I've created this simple gist in case someone needs to download a json file from a private repository and use it as a dictionary: https://gist.github.com/porthunt/b994154c054deeab7ab4073273aa75bc
I get:
curl: (6) Could not resolve host: application
{
"message": "Not Found",
"documentation_url": "https://docs.github.com/rest/repos/contents#get-repository-content",
"status": "404"
}
I'm on windows, if that makes a difference.
My command is structured as follow:
curl -H 'Fine_Grain_Auth_Token_With_Readonly_permissions' -H 'Accept: application/vnd.github.v4.raw' -L https://api.github.com/repos/MYACCOUNT/MYREPO/contents/Bin/file.txt
I am able to access the file with a url like this (when signed in)
https://raw.githubusercontent.com/MYACCOUNT/MYREPO/main/Bin/file.txt
I have also tried having the /main
in the url in the command with no change.
Ah I figured it out. This works!
This finds the latest release for repository
owner-name/repo-name
, and then grabs the tar of it and opens it up in the current directory. A user just needs an Oauth access token!