Как пригласить людей в частный репозиторий GitHub через интерфейс командной строки?
Обычно нужно щелкнуть ссылку "Пригласить команды или людей" после перехода на " https://github.com///settings / access" в веб-браузере. Но я хочу сделать это через интерфейс командной строки, потому что я должен пригласить много людей. Является ли это возможным?
3 ответа
Вы можете использовать GitHub API, чтобы добавить соавтора
PUT /repos/:owner/:repo/collaborators/:username
См., Например, здесь:
curl -H "Authorization: token YOUR_TOKEN" "https://api.github.com/repos/YOUR_USER_NAME/YOUR_REPO/collaborators/COLLABORATOR_USER_NAME" -X PUT -d '{"permission":"admin"}'
С уровнем разрешения, являющимся одним из:
pull
- может извлекать, но не отправлять в этот репозиторий или управлять им.push
- может тянуть и толкать, но не может управлять этим репозиторием.admin
- может тянуть, толкать и администрировать этот репозиторий.maintain
- Рекомендуется для руководителей проектов, которым необходимо управлять репозиторием без доступа к конфиденциальным или деструктивным действиям.triage
- Рекомендуется для участников, которым необходимо проактивно управлять проблемами и запросами на вытягивание без доступа на запись.
(по умолчанию "push")
Вы можете использовать github cli или вызвать github api напрямую через curl. В этом примере я добавляю участника в репозиторий компании с помощью github cli:
gh api "orgs/$target_repo/teams/$team/repos/$target_repo/$repo_new_name" -X PUT -f permission=admin
Также см. Документы: https://docs.github.com/en/rest/reference/teams#add-or-update-team-repository-permissions
В вашей ситуации вы можете использовать эту конечную точку:
https://docs.github.com/en/rest/reference/repos#add-a-repository-collaborator
Альтернатива с использованием концентратора:
1- Проверьте всех пользователей с разрешениями в вашем репо:
hub api --flat 'repos/YOUR_USER_OR_ORGANIZATION_NAME/YOUR_REPO/collaborators' | grep -E 'login|permissions'
2- Дайте разрешение пользователю:
hub api 'repos/YOUR_USER_OR_ORGANIZATION_NAME/YOUR_REPO/collaborators/COLLABORATOR_USER_NAME' -H X:PUT -H d:'{"permission":"admin"}'