如何通过代码而不是 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 请求结合起来。
我希望能够通过代码下载版本,但我得到的是我绑定到的 zip 文件中的以下内容:
Request forbidden by administrative rules. Please make sure your request has a User-Agent header (http://developer.github.com/v3/#user-agent-required). Check https://developer.github.com for other possible causes.
var file = fs.createWriteStream('bot.zip')
var request = await https.get(releases[num].zipball_url, function(response) {
response.pipe(file)
})
//
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,您也可以通过转到主回购页面获得相同的东西,然后转到角落的分支按钮,转到标签和所需的版本标签。然后在您单击它之后,您可以下载该版本。当我调查那个,而不是做
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}
那行得通。
我正在制作一个可以从 Github 获取 source.zip / source.targz 的机器人,然后将其实施到我的应用程序中并应用新的更改,但我还没有找到下载版本的方法,因为我使用的@Octokit/Rest 模块只获取版本。不下载。其他 npm 包对我不起作用,如果是这样,node_modules 文件夹可能会变得非常大,大约 19mb。当我执行 https GET 请求时,Github 要求我使用 USERAGENT,但我不知道如何将 Octokit 与纯 HTTPS 请求结合起来。
我希望能够通过代码下载版本,但我得到的是我绑定到的 zip 文件中的以下内容:
Request forbidden by administrative rules. Please make sure your request has a User-Agent header (http://developer.github.com/v3/#user-agent-required). Check https://developer.github.com for other possible causes.
var file = fs.createWriteStream('bot.zip')
var request = await https.get(releases[num].zipball_url, function(response) {
response.pipe(file)
})
//
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,您也可以通过转到主回购页面获得相同的东西,然后转到角落的分支按钮,转到标签和所需的版本标签。然后在您单击它之后,您可以下载该版本。当我调查那个,而不是做
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}
那行得通。