gitgithubbinarytagsrelease

How do I download binary files of a GitHub release?


I have a repo with binary files in it that I need.

I can

git checkout tags/thetagoftherelease

which seems to checkout the correct tag, but does not pull down the binary files. How can I pull down the binary files that were added to the release (the green boxes on the release)?

Added picture of binary files in a release.

enter image description here


Solution

  • I've tried for days trying to find the proper answer to this, and finally I figured out how to do this via the curl command. It's a 3-step process.

    First, to get a list of the assets for the latest release:

    curl -H "Authorization: token YOURGITHUBTOKEN" \
        https://api.github.com/repos/NAME/REPO/releases/latest 
    

    Then in the JSON, look up the url of the asset you want. For example it would look like:

    "url": "https://api.github.com/repos/NAME/REPO/releases/assets/1275759"
    

    Then you pass this to another curl command to retrieve the actual URL, which is actually a link to an Amazon S3 file.

    curl -H "Authorization: token YOURGITHUBTOKEN" \
         -H "Accept:application/octet-stream" \
         -i https://api.github.com/repos/NAME/REPO/releases/assets/1275759
    

    The URL will be in the "location" field of the HTTP response, and then use curl to get the file like this:

    curl "https://github-cloud.s3.amazonaws.com...." -i -o FILENAME