繁体   English   中英

如何扫描GitHub存储库?

[英]How to scan GitHub repository?

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

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

依赖项: Request子进程

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM