我正在尝试自动化教师为学生建立一个带有存储库的组织的过程。存储库需要将用户添加为协作者,因为持续交付服务器使用该用户对学生存储库进行更新。我遇到的问题是使用 Github Java API 向用户发送邀请。这是我尝试使用的当前代码:
GHCreateRepositoryBuilder builder = this.organization.createRepository(this.prefix + i);
GHRepository repo = builder.create();
repo.addCollaborators(github.getUser("vcdep"));
repositories.add(repo);
上面的代码在组织中成功创建了存储库,但在调用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
我在这里看过其他帖子,但是,其中大多数都谈到通过邀请用户然后将该团队添加到存储库来创建团队。但我无法做到这一点,因为必须附加到存储库的用户需要自动接受邀请,并且我已经有一个系统可以做到这一点,但仅适用于存储库邀请,而不是团队邀请。我还查看了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>
谢谢你的时间。
你使用的是Kohsuke的源代码吗? 在此源代码中,方法"verifyMine"不存在。 这种行为可能是因为使用了叉子。