Добавление пользователя в качестве сотрудника организации github с octokit заканчивается 404
Я хочу добавить пользователей GitHub в качестве соавторов репозитория организации, использующего библиотеку NodeJS octokit/rest. Библиотека и вручную отправляла запросы в GitHub API с ответом HTTP 404 - Не найдено, даже если у моей учетной записи пользователя есть действительный токен доступа с необходимыми разрешениями.
Я пытаюсь добавить пользователей GitHub в качестве сотрудников хранилища организации, независимо от того, являются ли они членами самой организации. Мой запрашивающий пользователь проходит аутентификацию через личный токен доступа с необходимыми разрешениями. Я использую 'octokit / rest's repos.addCollaborators
функция с именем организации в качестве владельца, именем репозитория в качестве репозитория и именем пользователя пользователя, которое будет добавлено в качестве свойства имени пользователя объекта параметра. Объект octokit использует мой токен доступа для аутентификации. Моя учетная запись пользователя является владельцем организации.
this.octokit = new Octokit({
auth: accessToken,
log: {
debug: (msg) => { logger.debug(`${msg}`); },
error: (msg) => { logger.error(`${msg}`); },
info: (msg) => { logger.info(`${msg}`); },
warn: (msg) => { logger.warn(`${msg}`); }
},
userAgent: process.env.APP_NAME
});
// ...
this.octokit.repos.addCollaborator({
owner: ownername,
repo: url[url.length - 1],
username
}).catch((msg) => {
logger.verbose(`Error message ${msg}`);
});
Что касается документации, я ожидаю, что пользователю отправлено приглашение.
К сожалению, я получаю 404 Not Found.
То же самое происходит, когда я использую curl:
curl -u myUsername:token -X PUT https://api.github.com/repos/:organizationname/:reponame/collaborators/:collaboratorname?permission=push
Такое же поведение появляется при выполнении запроса на членство.
1 ответ
Я попробовал с несколькими областями разрешения. Похоже, первые два токена имели слишком много разрешений (?!). Рабочая область разрешений выглядит так: "admin:org, notifications, repo, write: Discussion".