【问题标题】:Cloning private github repos without deploy keys?在没有部署密钥的情况下克隆私有 github 存储库?
【发布时间】:2023-07-16 04:58:01
【问题描述】:

我正在尝试构建一个应用程序,该应用程序可以克隆一个人的私人仓库(经许可),并对其进行分析,类似于 codeclimate 所做的。我想在不使用部署密钥或弄乱 ssh 的情况下做到这一点。我注意到 codeclimate 使用 github 的 Oauth 并且只需单击一下,但我在我的应用程序上进行了测试,我遇到了我在这个问题中概述的问题:Oauth Cloning on github not working (fatal: Authentication failed)

那么,在获得许可且用户无需使用我的 github 应用程序创建部署密钥的情况下,我可以使用什么方法来克隆私有 git 存储库?

【问题讨论】:

    标签: git github cloning


    【解决方案1】:

    首先看一下 github api:

    http://developer.github.com/v3

    通过身份验证后,您可以查看用户存储库:http://developer.github.com/v3/repos/

    一旦选择了 repo,您​​也可以从 api 执行“git”调用:http://developer.github.com/v3/git/

    您可以阅读提交、blob、树、分支、标签、引用...几乎所有内容。

    【讨论】:

    • 我注意到是的,但我试图克隆整个 repo,而不仅仅是读取统计数据
    【解决方案2】:
    1. 在 github 中定义您的应用程序:https://github.com/settings/applications
    2. 添加部署(公共)密钥: http://developer.github.com/v3/repos/keys/#create
    3. 调整您的 ssh 设置以使用此关联的私钥 Authenticate Jenkins CI for Github private repository
    4. 具有特定 uri 的 git 克隆

    【讨论】:

      最近更新 更多