Notice
Recent Posts
Archives
Today
Total
«   2024/06   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30
Recent Comments
관리 메뉴

우당탕탕 개발일지

private Git Repository 에서 최신 릴리즈 파일 다운받기 본문

Server

private Git Repository 에서 최신 릴리즈 파일 다운받기

devchop 2023. 9. 24. 11:34

서버에서 깃을 연동했는데, 쓸모없는 파일까지 모두 clone을 하는것은 비효율적인 것 같아서, 꼭 필요한 파일들만 추려서 (.dll파일들) 릴리즈로 업로드하였음.

서버에서 이 private repository에 있는 최신의 에셋을 다운받아야 하는데 이게 너무너무 어려어우어 3일간의 삽질 끝에 드디어 성공함

 

스크립트 먼저 보자보자보자

 

 donwloader.sh

#!/usr/bin/env bash

TOKEN ="access token" //todo: enter access token 
OWNER ="username" //todo: enter username
REPO = "clean repo name" //todo: enter repo
API_URL="https://$TOKEN:@api.github.com/repos/$OWNER/$REPO"
ASSET_ID=$(curl $API_URL/releases/latest | jq -r '.assets[0].id')

echo "Asset ID: $ASSET_ID"

##rm -f $FILE_NAME

curl -o $FILE_NAME -J -L -H "Accept: application/octet-stream" "$API_URL/releases/assets/$ASSET_ID"

tar xvf $FILE_NAME
rm -f $FILE_NAME


1. AccessToken 발급받기
Settings > Developer Settings > Personal AccessTokens > Tokens 에서 발급받음. 한번 발급받은 뒤 토큰을 까먹으면 재발급 밖에는 방법이 없으므로, 메모장에 잘 메모해두도록 하자. 이걸 TOKEN 란에 입력한다.

2. curl 을 통해 private repo 의 latest 버전 assetId 찾아내기
> API_URl 에 accessToken과 Owner(devchop2), REPO 이름 (ChopEnd) 이 필요하다
> jsonQuery 를 이용해 여러 에셋들 중 첫번 째 에셋의 id를 가져온다. (.assets[0].id) > assetId가 null이 아닌지 잘 확인해보자. 

3. AssetId를 이용하여 curl을 통해 실제 압축파일(tar) 다운받기 & 압축풀기
> -o 옵션을 사용해 압축파일의 이름을 설정해준다. 압축해제까지 한번에 진행하기 위함이다.downloader.sh

downloader.sh가 처음 생성한 거라면 우선 실행권한 먼저 주고, 실행을 시켜준다. 그러면 chopend_V0.1 폴더가 따란~ 

chmod u+x downloader.sh
./downloader.sh

 

진짜 셸스크립트도 공부좀 해야겠다나는 생각이..들었다..

정말힘들었어

참고사이트 :

  https://gist.github.com/illepic/32b8ad914f1dc80446c7e81c3be4e286