Я пытаюсь автоматизировать процесс создания инструкторами организации с репозиториями для своих студентов. В репозитории необходимо добавить пользователя в качестве соавтора, поскольку сервер непрерывной доставки использует этого пользователя для обновления репозиториев учащихся. У меня возникла проблема с отправкой приглашения пользователю с помощью Github Java API. Вот текущий код, который я пытаюсь использовать:
GHCreateRepositoryBuilder builder = this.organization.createRepository(this.prefix + i);
GHRepository repo = builder.create();
repo.addCollaborators(github.getUser("vcdep"));
repositories.add(repo);
Приведенный выше код успешно создает репозиторий в организации, но выдает следующее исключение ввода-вывода при вызове метода addCollaborators
:
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 для установки GitHub API от Kohsuke. Вот фрагмент из моего pom.xml, который обрабатывает зависимость
<dependency>
<groupId>org.kohsuke</groupId>
<artifactId>github-api</artifactId>
<version>1.80</version>
</dependency>
Спасибо за ваше время.