저장소의 파일 경로를 알고있는 경우 Contents API을 사용하여 해당 SHA를받을 수 있습니다. 예를 들어 :
~ λ curl -H "Content-Type: application/json" \
-H "Authorization: token $TOKEN" \
-H "Accept: application/vnd.github.v3" \
https://api.github.com/repos/smt116/dotfiles/contents/README.md
{
"name": "README.md",
"path": "README.md",
"sha": "36bba4cf1f8fd3cbbdf81d4cc2291b54a4e56a63",
"size": 16,
"url": "https://api.github.com/repos/smt116/dotfiles/contents/README.md?ref=master",
"html_url": "https://github.com/smt116/dotfiles/blob/master/README.md",
"git_url": "https://api.github.com/repos/smt116/dotfiles/git/blobs/36bba4cf1f8fd3cbbdf81d4cc2291b54a4e56a63",
"download_url": "https://raw.githubusercontent.com/smt116/dotfiles/master/README.md",
"type": "file",
"content": "IyMgTXkgZG90ZmlsZXMuCg==\n",
"encoding": "base64",
"_links": {
"self": "https://api.github.com/repos/smt116/dotfiles/contents/README.md?ref=master",
"git": "https://api.github.com/repos/smt116/dotfiles/git/blobs/36bba4cf1f8fd3cbbdf81d4cc2291b54a4e56a63",
"html": "https://github.com/smt116/dotfiles/blob/master/README.md"
}
}
이제 Git Data API은 JSON 응답에 포함되어 git_url
링크를 사용하여 파일을 다운로드 할 수 있습니다.
그러나 주어진 저장소에서 모든 blob을 다운로드하려면 Git Trees을 사용하여 목록을 먼저 가져올 수 있습니다. 커밋 SHA를 지정해야하지만 가장 최근 커밋이 정상이면 HEAD를 사용할 수 있습니다. 예를 들어 :
~ λ curl -H "Content-Type: application/json" \
-H "Authorization: token $TOKEN" \
-H "Accept: application/vnd.github.v3.raw" \
https://api.github.com/repos/smt116/dotfiles/git/trees/HEAD
{
"sha": "0fc96d75ff4182913cec229978bb10ad338012fd",
"url": "https://api.github.com/repos/smt116/dotfiles/git/trees/0fc96d75ff4182913cec229978bb10ad338012fd",
"tree": [
{
"path": ".agignore",
"mode": "100644",
"type": "blob",
"sha": "e2ca571728887bce8255ab3f66061dde53ffae4f",
"size": 21,
"url": "https://api.github.com/repos/smt116/dotfiles/git/blobs/e2ca571728887bce8255ab3f66061dde53ffae4f"
},
{
"path": ".bundle",
"mode": "040000",
"type": "tree",
"sha": "4148d567286de6aa47047672b1f2f73d7bea349b",
"url": "https://api.github.com/repos/smt116/dotfiles/git/trees/4148d567286de6aa47047672b1f2f73d7bea349b"
},
...
이 서브 디렉토리를 포함하여 모든 파일의 세부 사항을 얻으려면, 당신은 URL에 recursive=1
쿼리 매개 변수를 추가해야합니다.
JSON 응답을 구문 분석하고 blob
유형의 항목을 필터링하고 url
속성을 사용하여 파일을 다운로드해야합니다.
'~ λ' 란 무엇입니까? 쉘 프롬프트? –
예, 쉘 프롬프트입니다. – smefju
쉘 프롬프트를 표시 할 때는'>','$'또는'$>'와 같은 정규 표준으로 대체하는 것을 고려하십시오. 그래서 더 널리 인식 될 것입니다. –