我正在尝试自动化教师为学生建立一个包含存储库的组织的过程。存储库需要将用户添加为协作者,因为持续传递服务器使用该用户对学生存储库进行更新。我遇到的问题是使用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
我在这里查看了其他帖子,但是,他们中的大多数都是通过邀请用户然后添加team to the repository来讨论创建团队的。但是我无法做到这一点,因为必须附加到存储库的用户需要自动接受邀请,并且我已经有一个系统可以做到这一点,但仅限于存储库邀请,而不是团队邀请。我还查看了Github Java API存储库的issue tracker,但没有找到与我相似的任何内容。
我认为我最初没有正确的权限,但我使用的是拥有该组织的帐户中的个人令牌,并且该令牌具有完全权限,并且自创建存储库以来,我使用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>
感谢您的时间。