Как добавить внешних сотрудников в репозитории в вашей организации с помощью Github Java API?

Я пытаюсь автоматизировать процесс создания инструкторами организации с репозиториями для своих студентов. В репозитории необходимо добавить пользователя в качестве соавтора, поскольку сервер непрерывной доставки использует этого пользователя для обновления репозиториев учащихся. У меня возникла проблема с отправкой приглашения пользователю с помощью 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>

Спасибо за ваше время.


person NCoop    schedule 31.05.2018    source источник


Ответы (1)


Используете ли вы исходный код из kohsuke? В этом исходном коде метод «verifyMine» не существует. Такое поведение, возможно, вызвано использованием fork.

person J.Gerbershagen    schedule 02.11.2018
comment
Я использую Maven для установки библиотеки, поэтому это должен быть официальный выпуск, а не какой-то форк, но, возможно, я ошибаюсь. Я обновил свой вопрос, чтобы включить версию, которую я использую. - person NCoop; 03.11.2018
comment
Я проверил версию 1.80. В версии 1.80 вы можете добавлять соавторов только для своих личных репозиториев. Если вы используете версию 1.94, это ограничение было снято. - person J.Gerbershagen; 04.11.2018
comment
большое спасибо, я проверю эту версию! @Дж.Герберсхаген - person NCoop; 08.11.2018