0

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

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

addCollaborators上面的代码在组织中成功创建了repository,但是在调用方法的时候抛出了如下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

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

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

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

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

感谢您的时间。

4

1 回答 1

0

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

于 2018-11-02T15:49:21.377 回答