如何扫描GitHub存储库?

时间:2019-06-07 14:12:43

标签: javascript node.js docker github

有没有一种方法可以构建可扫描远程GitHub存储库的Node.js应用程序? 我需要从我有权访问的每个远程GitHub存储库中提取特定文件(例如Read.me文件),然后将其下载到特定文件夹中。还是我应该先使用Node.js应用代码克隆每个存储库?

2 个答案:

答案 0 :(得分:1)

您可以使用Node.js克隆github成员的任何存储库。顺便说一句,Github API需要用户代理进行请求。

依赖项:RequestChild Process

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}
    })
});

答案 1 :(得分:0)

如果每个仓库仅需要一个文件,并且它们都是公开的,则可以使用以下格式向原始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.
});