【问题标题】:Get all public github repostories of user with javascript/node js使用 javascript/node js 获取用户的所有公共 github 存储库
【发布时间】:2017-03-28 04:32:04
【问题描述】:

我想从 github 获取给定用户的所有公共 github 存储库。 我尝试使用 GET 请求 I read from here 来实现它。当我使用 curl 或在浏览器中尝试时,一切都很好,但是当我运行此代码时,它会给我 http 403 状态代码

var request = require('request');

request.get("https://api.github.com/users/:user")
    .on('response', function (response) {
        console.log(response.statusCode);
        console.log(JSON.stringify(response));
    });

我尝试使用此github api library,但无法解决身份验证问题

var GithubApi = require("github");

var github = new GithubApi({});


github.authenticate({
    type: "oauth",
    token: "GIT_TOKEN"
});

var getUsersRepos = function (user) {
    github.repos.getAll({
        username: user
    }, function (err, res) {
        res.forEach(function (element) {
            console.log(`${element.name} - language: ${element.language} - issues: ${element.open_issues} - url: ${element.url}`);
        }, this);
    });
}

module.exports = {
    getRepos: getUsersRepos
};

但是当我输入我的令牌时,我只能获得我的用户信息。 任何我做错的想法或更好的想法将不胜感激

【问题讨论】:

标签: javascript node.js github github-api


【解决方案1】:

The Github API requires requests to have a valid User-Agent header:

如果您提供无效的 User-Agent 标头,您将收到 403 禁止响应。

Github 要求您使用 GitHub 用户名或应用程序名称作为 User-Agent 标头值:

var request = require('request');

options =  {
    url: "https://api.github.com/users/:user",
    headers: {
        "User-Agent": "tabula"  // Your Github ID or application name
    }
}

request.get(options)
    .on('response', function (response) {
        console.log(response.statusCode);
        console.log(JSON.stringify(response));
    });

【讨论】:

猜你喜欢
  • 2019-11-17
  • 2013-12-11
  • 2016-12-14
  • 1970-01-01
  • 2012-08-04
  • 2020-12-13
  • 1970-01-01
  • 2014-09-09
  • 2013-09-13
相关资源
最近更新 更多