0

我创建了一个 GitHub 应用程序并将其安装到一个私有存储库。
它检测拉取请求并自动添加评论,并对传入的 PR 运行一些测试。

当 PR 来自同一个存储库时
它工作正常,但当 PR 来自另一个私有 fork 存储库时它不起作用。(我认为由于许可问题)

下面的示例代码是我如何克隆代码(压缩文件)GitHub:

String template = "https://api.github.com/repos/%s/%s/zipball/refs/heads/%s";
String path = String.format(template, "USER", "REPOSITORY", "BRANCH");

HttpRequest request = HttpRequest.newBuilder()
        .uri(URI.create(path))
        .header("Authorization", "Bearer " + TOKEN)
        .header("Accept", "application/vnd.github.v3+json")
        .build();

// returns a redirect link to download the zipped code
HttpResponse<String> response = HttpClient.newHttpClient()
        .send(request, BodyHandlers.ofString());
  • 观点
    • 原始存储库/分叉存储库都是私有的
    • 我的 GitHub 应用程序仅安装在原始存储库中
    • 我的 GitHub 应用程序检测到原始存储库上打开的拉取请求
    • 我的 GitHub App 尝试下载 Pull Request 的源文件
      • 当 Pull Request 的来源来自 Fork 时失败
4

1 回答 1

0

不幸的是,你没有得到任何烫发(分叉)回购。

由于 PR 本身属于基本存储库,尽管您确实拥有 pulls API 的权限,因此您可以使用带有媒体类型标头的此端点获取 PR 的差异或补丁

于 2021-07-12T14:57:09.830 回答