簡體   English   中英

如何通過代碼而不是 CLI 下載 github 版本

[英]How to download a github release by code, not by a CLI

我正在制作一個可以從 Github 獲取 source.zip / source.targz 的機器人,然后將它實施到我的應用程序中並應用新的更改,但我還沒有找到下載版本的方法,因為我的 @Octokit/Rest 模塊'''''''''''''''''''''''''''只得到釋放。 不下載。 其他 npm 包對我不起作用,如果是這樣,node_modules 文件夾會變得非常大,大約 19mb。 當我執行 https GET 請求時,Github 要求我使用 USERAGENT,但我不知道如何將 Octokit 與純 HTTPS 請求聯系起來。

我希望能夠通過代碼下載版本,但我得到的是我將其綁定到的 zipfile 中的以下內容:

行政法規禁止的請求。 請確保您的請求具有 User-Agent 標頭 ( http://developer.github.com/v3/#user-agent-required )。 檢查https://developer.github.com以了解其他可能的原因。

    var file = fs.createWriteStream('bot.zip')
    var request = await https.get(releases[num].zipball_url, function(response) {
        response.pipe(file)
    })

//https://stackoverflow.com/questions/11944932/how-to-download-a-file-with-node-js-without-using-third-party-libraries
var octokit = new Octokit.Octokit({
        userAgent: 'Github Bot Updater',
        previews: ['jean-grey', 'symmetra'],
        baseUrl: 'https://api.github.com',
        log: {
            debug: () => {},
            info: () => {},
            warn: console.warn,
            error: console.error
          },
          request: {
            agent: undefined,
            fetch: undefined,
            timeout: 0
          }
    })
    var releases = await octokit.paginate("GET /repos/:owner/:repo/releases", {  owner: username,  repo: reponame})
//octokit has no method for downloading a release

我所做的不是從發布中獲取 zipball,您還可以通過轉到主 repo 頁面,然后轉到角落中的分支按鈕,轉到標簽和所需的發布標簽來獲得相同的內容。 然后在您點擊之后,您可以下載該版本。 當我調查時,而不是做

releases[num].zipball_url

    var request = await https.get(releases[num].zipball_url, function(response) {
        response.pipe(file)
    })

你可以做

https://codeload.github.com/${username}/${reponame}/zip/${releases[num].tag_name}

這有效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM