Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Download Github build artifact (release) using wget/curl

The Goal: Download github release tar.gz in Docker Build Script, so that the release files can be used for the docker image. I do not want the full source downloaded, which I can get to download through the archive path using the tag, but rather a build artifact that is part of the release.

To Be Noted: This is a download from a private repository, which is why I'm attempting to send my github_token as part of the command currently.

The Problem: I'm having trouble downloading a github release tar.gz using wget.

wget --header="Authorization: token <GITHUB_TOKEN>" --output-document=<FILENAME>.tar.gz https://github.com/<USER>/<REPO>/releases/download/<TAG>/<FILENAME>.tar.gz

This is returning the following error:

--2014-12-02 16:19:25--  https://github.com/<USER>/<REPO>/releases/download/<TAG>/<FILENAME>.tar.gz
Resolving github.com (github.com)... 192.30.252.131, 192.30.252.131
Connecting to github.com (github.com)|192.30.252.131|:443... connected.
HTTP request sent, awaiting response... 404 Not Found
2014-12-02 16:19:25 ERROR 404: Not Found.

It's worth noting that I'm not opposed to using curl for the download either or some other solution if necessary.

like image 613
Joshua Pierce Avatar asked Dec 02 '14 16:12

Joshua Pierce


People also ask

How do I download GitHub build artifacts?

Under your repository name, click Actions. In the left sidebar, click the workflow you want to see. From the list of workflow runs, click the name of the run to see the workflow run summary. Under Artifacts, click the artifact you want to download.

How do I download a wget repo from GitHub?

Open GitHub repository. Right click the Download Zip link, and copy the URL. Use that copied URL with wget in terminal.

Can you wget from GitHub?

Commands like wget and curl just download whatever the server sends them. In order to get the actual file, you can get a raw file from github instead. Copy the URL of the raw file and then use the wget or curl command to download the file.


1 Answers

You can use the GitHub API.

To download a release using wget, you can do:

wget --header "Authorization: token <GITHUB TOKEN>"  --output-document=<RELEASE>.tar.gz https://api.github.com/repos/<USER>/<REPO>/tarball/<RELEASE NAME>

Use can change tarball to zipball to get a zip file.

like image 199
Fedalto Avatar answered Nov 10 '22 19:11

Fedalto