[英]How to scan GitHub repository?
有没有办法构建扫描远程 GitHub 存储库的 Node.js 应用程序? 我需要从我有权访问的每个远程 GitHub 存储库中提取特定文件(例如 Read.me 文件)并将它们下载到特定文件夹。 还是应该先用 Node.js 应用程序代码克隆每个存储库?
您可以使用Node.js克隆github成员的任何存储库。 顺便说一句,Github API需要用户代理进行请求。
const request = require("request");
const cProcess = require("child_process");
const g_username = "afulsamet"
const u_agent = "Test User Agent"
request.get(`https://api.github.com/users/${g_username}/repos`, { headers: { "User-Agent": u_agent } }, function (err, res, body) {
JSON.parse(body).map(x => {
cProcess.spawn("git", ["clone", x.git_url, x.name]) // git clone {repos_git_url} {folder_name}
})
});
如果每个回购仅需要一个文件,并且它们都是公开的,则可以对原始git url发出http请求,格式为https://raw.githubusercontent.com/{username}/{repo}/{branch}/{pathtofile}
一个简单的例子是:
const http = require('http');
http.get('https://raw.githubusercontent.com/nodejs/node/master/README.md', function(response) {
// do something with response, pipe to another file etc.
});
使用 github api 获取存储库的 Readme 文件的 URL。 使用 github repo 调用函数,格式为:owner/repo name。 此示例使用 python 请求包:
def get_readmeurl(repo):
readmeurl = 'https://api.github.com/repos/'+repo+'/readme'
readmecontent = requests.get(readmeurl,headers=headers)
readmejson = json.loads(readmecontent.text)
return readmejson['download_url']
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.