【问题标题】:Possible open a connection to a private repository via HTTP request?可以通过 HTTP 请求打开与私有存储库的连接吗?
【发布时间】:2021-11-10 04:13:48
【问题描述】:

由于 Github API 还不支持获取包含提交 (SHA) 的分支。所以我发现如果我们可以从 URL https://github.com/:org/:repo/branch_commits/:sha 解析 HTML,我们可以得到分支。但目前,即使我有凭据,我也无法连接到此 URL(用于私人仓库)

        const url = `https://github.com/${org}/${repo}/branch_commits/${hash}`;
        const options = {
            method: 'GET',
            uri: url,
            headers: {
                "Authorization": token,
            }
        };
        request(options).then(result => {
            console.log(result);
        }).catch(err => {
            console.log(err);
        });

结果是404 Not Found。 有人知道吗?

谢谢!!

【问题讨论】:

    标签: javascript node.js typescript github request-promise


    【解决方案1】:

    您不能使用个人访问令牌来访问 Web 界面。此外,您不应尝试以编程方式访问 Web 界面,因为这可能随时中断,而且您很可能会被自动工具阻止。

    相反,您可以使用个人访问令牌来访问 API,并通过 List Commits API 搜索历史记录以查看您想要的提交是否在历史记录中。但是,即使这样也非常低效,要回答您的问题,最有效的方法是克隆存储库并在那里执行您的查询。您可以使用 --filter=tree:0 标志执行部分克隆以仅获取提交,这将比普通克隆便宜得多。

    【讨论】:

    • 是的,我也想过,但现在,我们的应用程序正在检查 5 个存储库。我正在测试这个stackoverflow.com/questions/23899329/… 的性能。无论如何,谢谢你的回答。如果“比较解决方案”的性能不好,我会尝试部分克隆!
    猜你喜欢
    • 2015-02-14
    • 1970-01-01
    • 2015-09-24
    • 2023-01-28
    • 2021-05-18
    • 2014-08-31
    • 1970-01-01
    • 2014-08-04
    • 1970-01-01
    相关资源
    最近更新 更多