【问题标题】:How do you add outside collaborators to repositories in your organization using Github Java API?如何使用 Github Java API 将外部协作者添加到组织中的存储库?
【发布时间】:2018-11-03 12:54:02
【问题描述】:

我正在尝试自动化教师为学生设置存储库的组织的过程。存储库需要将用户添加为协作者,因为持续交付服务器使用该用户对学生存储库进行更新。我遇到的问题是使用Github Java API 向用户发送邀请。这是我正在尝试使用的当前代码:

GHCreateRepositoryBuilder builder = this.organization.createRepository(this.prefix + i);
GHRepository repo = builder.create();
repo.addCollaborators(github.getUser("vcdep"));
repositories.add(repo);

以上代码在组织中成功创建了repository,但是在调用addCollaborators方法时抛出如下IO异常:

Caused by: java.io.IOException: Operation not applicable to a repository owned by someone else: TestOrganizationForDevOps
at org.kohsuke.github.GHRepository.verifyMine(GHRepository.java:1097)
at org.kohsuke.github.GHRepository.modifyCollaborators(GHRepository.java:507)
at org.kohsuke.github.GHRepository.addCollaborators(GHRepository.java:495)
at org.kohsuke.github.GHRepository.addCollaborators(GHRepository.java:491)
at wizard.GitHubController.createRepos(GitHubController.java:94)
at wizard.Controller.onButtonClickedFinish(Controller.java:260)
... 58 more

我在这里查看了其他帖子,但是,其中大多数都在谈论通过邀请用户然后添加 team to the repository 来创建团队。但我无法这样做,因为必须附加到存储库的用户需要自动接受邀请,而且我已经有一个系统可以做到这一点,但仅适用于存储库邀请,而不是团队邀请。我还查看了 Github Java API 存储库的 issue tracker 并没有找到与我的相似之处。

一开始我以为我没有正确的权限,但我使用的是来自拥有该组织的帐户的个人令牌,并且该令牌具有完全权限,并且自从创建存储库以来,我使用 Github Java API 成功进行了身份验证。我还尝试将用户添加为 Github 组织的成员,然后运行上面的代码以查看是否有帮助,但出现了相同的错误。我查看了 Github Java API 和 Github API 本身的文档,看不出为什么上面的内容不起作用,我想知道这是错误还是预期的行为。如果你们中的任何人知道如何解决此问题,我将非常感谢您的帮助。

另外,我正在使用 Maven 来安装 Kohsuke 的 GitHub API。这是我的 pom.xml 中处理依赖项的 sn-p

<dependency>
    <groupId>org.kohsuke</groupId>
    <artifactId>github-api</artifactId>
    <version>1.80</version>
</dependency>

感谢您的宝贵时间。

【问题讨论】:

    标签: java github github-organizations github-api-v3


    【解决方案1】:

    您是否使用来自kohsuke 的源代码? 在此源代码中,方法“verifyMine”不存在。 这种行为可能是因为使用了 fork。

    【讨论】:

    • 我正在使用 Maven 安装库,所以,它应该是官方版本而不是一些 fork,但我可能错了。我更新了我的问题以包含我正在使用的版本。
    • 我签出了 1.80 版。在 1.80 版中,您只能为您的个人存储库添加协作者。如果您使用 1.94 版,则此限制已被删除。
    • 非常感谢,我会检查那个版本的! @J.Gerbershagen
    猜你喜欢
    • 2021-02-09
    • 2016-02-12
    • 2021-11-10
    • 2016-04-17
    • 1970-01-01
    • 2014-01-11
    • 2021-02-26
    • 1970-01-01
    • 2017-04-02
    相关资源
    最近更新 更多