53

On this URL I'm able to download a .tar.gz which contains an official release. (I know it's also available on an API endpoint but this contains the test package too.

Now I'm wondering why this isn't working:

$ curl -O https://github.com/yarnpkg/yarn/releases/download/v0.23.4/yarn-v0.23.4.tar.gz

I get some .tar.gz which is 4KB instead of 3.6MB. It isn't showing an error. What am I missing? I want to use this URL and not the API if that's possible.

DenCowboy
  • 12,064
  • 32
  • 96
  • 185

3 Answers3

76

If you do the following it will download correctly:

wget https://github.com/yarnpkg/yarn/releases/download/v0.23.4/yarn-v0.23.4.tar.gz

If you want to use curl you have to use the redirect -L option to follow redirect link and direct the output in a file like this:

curl -L https://github.com/yarnpkg/yarn/releases/download/v0.23.4/ya‌​rn-v0.23.4.tar.gz > yarn.tar.gz
KyleMit
  • 35,223
  • 60
  • 418
  • 600
a.walker
  • 776
  • 7
  • 5
4

2021 Update Download from GitHub Using wget

Will also expand and delete the archive. Just edit the REPLACE_ values and then copy/paste

tgz

GH_USER=REPLACE_WITH_USER \
GH_REPO=REPLACE_WITH_REPO \
GH_BRANCH=REPLACE_WITH_BRANCH \
wget https://github.com/${GH_USER}/${GH_REPO}/archive/refs/tags/${GH_BRANCH}.tar.gz \
-O "${GH_REPO}-${GH_BRANCH}.tar.gz" && \
tar -xzvf ./"${GH_REPO}-${GH_BRANCH}.tar.gz" && \
rm ./"${GH_REPO}-${GH_BRANCH}.tar.gz"

zip

GH_USER=REPLACE_WITH_USER \
GH_REPO=REPLACE_WITH_REPO \
GH_BRANCH=REPLACE_WITH_BRANCH \
wget https://github.com/${GH_USER}/${GH_REPO}/archive/refs/tags/${GH_BRANCH}.zip \
-O "${GH_REPO}-${GH_BRANCH}.zip" && \ 
unzip ./"${GH_REPO}-${GH_BRANCH}.zip" && \
rm ./"${GH_REPO}-${GH_BRANCH}.zip"
AndrewD
  • 4,397
  • 2
  • 29
  • 31
0

I hope this helps someone -> make sure your repository is public.

Then as explained in the other answers this should work:

curl -LO 'https://github.com/<user>/<repo>/archive/refs/tags/<1.0.0>.tar.gz'

When private, a token is required to access the release files, and you'll get NOT FOUND as a response. That was my issue.

Evandro Pomatti
  • 10,210
  • 13
  • 76
  • 141