#github-api
#github-api
Вопрос:
У меня есть большое количество репозиториев GitHub, которые были отсортированы по различным организациям. Я хочу изменить видимость репозиториев по пакетам на общедоступные, используя следующий вызов API:
curl -u {user}:{pat} -H "Accept: application/vnd.github.v3 json" -X PATCH https://api.github.com/repos/{user}/angular.powershifter -d '{"private":false}'
Насколько я могу судить, это вызов API (см. Документы github). {user]
И {pat}
в приведенном выше примере являются реальными значениями, и {pat}
выбран каждый параметр. {user}
Является владельцем репозитория и организации.
В ответ я получаю a 404
со следующим телом.
{
"message": "Not Found",
"documentation_url": "https://docs.github.com/rest/reference/repos#update-a-repository"
}
- Возможно ли установить свойства репозиториев в организации с помощью API?
- Что такое вызов API?
- Бонусные баллы, если вы можете указать мне на документацию!
Спасибо.
Комментарии:
1. попробуйте добавить
-H "Content-Type: application/json"
2. это не помогло
Ответ №1:
Используйте аутентификацию на основе токенов на предъявителя. Github не рекомендует аутентификацию на основе пароля.
curl
-H 'Authorization: Bearer ${GITHUB-TOKEN}'
-X PATCH
-H "Accept: application/vnd.github.v3 json"
https://api.github.com/repos/${OWNER}/${repo}
-d '{"private":"false"}'
Ссылка на документацию github
https://docs.github.com/en/free-pro-team@latest/rest/overview/other-authentication-methods
Ответ №2:
-
Да, это возможно.
-
У меня тоже были некоторые проблемы с этим.
Короткий ответ используйте токен на предъявителя (как сказал @shek) и измените false на «false»:curl -v -H «Авторизация: предъявитель $ {GITHUB_TOKEN}»
-X ПАТЧ https://api.github.com/repos /${ОРГАНИЗАЦИЯ}/${РЕПОЗИТОРИЙ} -H «Принять: application/vnd.github.v3 json» -d ‘{«private»: «false»}’;
Обратите внимание, что ваш токен имеет полный контроль над частными репозиториями при создании токена: изображение полного контроля над частными репозиториями
Ссылка довольно запутанная, потому что, если, например, вам нужно получить все репозитории из GitHub, вам придется использовать:
https://api.github.com/orgs/${ORGANIZATION}/repos?${parameters}
Также, когда вам нужно изменить разрешения, вам нужно использовать:
https://api.github.com/orgs/${ORGANIZATION}/teams/${TEAM}/repos/${ORGANIZATION}/${REPO}
(Обратите внимание на организации, которые отсутствуют в команде PATCH).
- Документация по репозиториям GitHub:
https://docs.github.com/en/rest/reference/repos#update-a-repository
Методы аутентификации GitHub (от @shek):
https://docs.github.com/en/free-pro-team@latest/rest/overview/other-authentication-methods