이 질문을 가장 많이 방문한 것처럼, 나는 최신 버전의 릴리스 또는 Github의 리포지토리의 다운로드를 완전히 자동화하는 방법을 찾는 것에 완전히 좌절했습니다 . 이 솔루션의 장점은 릴리스 또는 태그 번호를 지정할 필요가 없다는 것입니다 . 최신 버전 만 가져옵니다 .
다음 Github 사용자 및 저장소를 사용하여 테스트를 수행했습니다.
" f1linux "= Github 사용자
" pi-ap "= Repo
저장소가 저장된 임의의 디렉토리 이름은 다음과 같이 설정됩니다.
--one-top-level="pi-ap"
곧장:
파이어 폭스의 "사용하여 웹 개발자 은"에서 "도구 (오른쪽 상단 모서리에있는 3 개 바) 네트워크 내가 발견"섹션 https://api.github.com
로 리디렉션 된 https://codeload.github.com
배관에 의해, 그래서 curl
에 tar
나는 것은 그래서 예측 이름으로 최신 버전의 repo과 저장을 잡을 수 있었다 그것은 작동 할 수 있습니다 :
curl https://codeload.github.com/f1linux/pi-ap/legacy.tar.gz/master | tar xzvf - --one-top-level="pi-ap" --strip-components 1
간접 :
DIRECT URL을 사용하여 최신 버전의 릴리스를 완전히 자동으로 다운로드 한 후 Github의 리디렉션을 사용하여 동일한 버전 을 달성하는 데 관심을 기울 였습니다 .
curl -L https://api.github.com/repos/f1linux/pi-ap/tarball | tar xzvf - --one-top-level="pi-ap" --strip-components 1
선호하는 방법 :
그러나 아래 VON 의 의견에 따르면 INDIRECT 가 선호되는 방법입니다.
추가 검증 :
내 결과를 다른 버전의 Github 저장소로 재현 할 수 있도록 Digital Ocean의 동일한 테스트가 성공적으로 수행되었습니다. doctl
api 툴킷에 (실제로 전체 연습을 시작했습니다).
모두 직접 및 간접 단지 사용자 이름 및 REPO을 변경, 위와 같은 양식을 사용하여 작업 :
곧장:
curl https://codeload.github.com/digitalocean/doctl/legacy.tar.gz/master | tar xzvf - --one-top-level="doctl" --strip-components 1
간접 :
curl -L https://api.github.com/repos/digitalocean/doctl/tarball | tar xzvf - --one-top-level="doctl" --strip-components 1