2013-11-26 58 views

回答

10

用於更新文件的文檔指定您將需要爲將要替換的文件提供SHA。最簡單的方法也是查詢github。例如:

> curl https://api.github.com/repos/testacc01/testrepo01/contents/test.txt 
{ 
    "name": "test.txt", 
    "path": "test.txt", 
    "sha": "4f8a0fd8ab3537b85a64dcffa1487f4196164d78", 
    "size": 13, 
… 

因此,您可以看到SHA在JSON響應的「sha」字段中的含義。當你制定你的請求來更新新版本的文件時使用它。成功更新文件後,該文件將有一個新的SHA,您需要請求才能重新更新。 (除非,我想,你的下一個更新的推移不同的分支。)

+0

感謝這對我有用,我忘記了文件更新後SHA會自動更新。 – Kiddo

+0

我無法在GitHub的v3 API文檔中找到它們用於生成這些特定SHA哈希函數(SHA1,SHA256等)(以便我可以自己驗證文件內容)。我相信git使用SHA-1提交散列,但是我不清楚哪一個散列函數GitHub用於散列文件內容。我向他們開了一張請求這些信息的票。 –

0

如果使用GraphQL API v4,您可以使用以下方法來找到特定文件的SHA:

{ 
    repository(owner: "testacc01", name: "testrepo01") { 
    object(expression: "master:test.txt") { 
     ... on Blob { 
     oid 
     } 
    } 
    } 
} 

Try it in the explorer

相關問題