Как вы добавляете внешних коллабораторов в репозитории в вашей организации, используя Github Java API? - PullRequest
0 голосов
/ 01 июня 2018

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

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

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

1 Ответ

0 голосов
/ 02 ноября 2018

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

...