我正在构建一个 CI 应用程序,它按计划或每次合并新代码时通过 Webhook 对 GitHub 存储库的内容进行一些工作。
我创建了一个 GitHub 应用程序并完成了所有设置,以便用户可以使用它登录、授予其对其存储库的访问权限并配置其 CI 作业。
我无法找到有关如何通过身份验证连接我的 GitHub 应用程序的用户来克隆完整存储库内容(如果是私有的)的文档。我找到了 关于获取存储库树的文档,但似乎我仍然需要查看 JSON 响应并单独下载每个文件,这感觉就像我自己重新实现 Git 克隆。
现在我只是从 CI 脚本中将
git clone
命令作为子进程启动。只是想知道这里的解决方案是什么。我应该使用 libgit2 吗?或者使用树 API 并下载所有文件?
回答这个问题可能有点晚了,GitHub 可以选择通过应用程序请求的访问令牌来克隆存储库。
git clone https://x-access-token:<token>@github.com/owner/repo.git