Как пригласить людей в частный репозиторий 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"}'
Другие вопросы по тегам