Github Apps - Не удается получить доступ к вилкам?
TLDR
Организация не может создавать
check runs
,
check suites
ни
status checks
для внешних форков репозиториев. Оказывает
Checks Api
бесполезен для внешних запросов на включение.
Описание
Я настроил приложение Github для организации (не OAuth), написанное на
go
для конвейера CI-CD. Приложение Github аутентифицируется на github с помощью установочного токена. Он имеет полные права на организацию.
Приложение в основном прослушивает события и запускает конвейер cicd.
Когда приложение получает событие =, оно может успешно создать/обновить
check_runs
относящийся к тому. Эти события запускаются только тогда, когда коммиты фиксируются непосредственно в репозитории организации.
Однако, когда пользователь создает запрос на извлечение из форка , приложение Github не имеет разрешения на создание прогонов проверки для этого внешнего репо. Это означает, что событие / не запускается при открытии PR из форка.
Вот почему я также слушаю
pull_request
События. Приложение успешно их получает (/
pull_request.synchronize
). Цель здесь состоит в том, чтобы создать последний коммит для этого запроса на извлечение.
При получении
pull_request.opened
событие, приложение отправляет запрос в GitHub, чтобы создать последнюю фиксацию запроса на вытягивание во внешней ветке. Результат — ошибка 404 (потому что у приложения нет разрешения (почему?)).Если я попробую с
personal access token
, я могу создать на этом внешнем репо
Это удивительно, так как
checks
/
status
API как раз для этого случая (внешне запущенные процессы ci-cd). Но это лишает цели, если приложение не может получить доступ к вилкам (поскольку многие разработчики работают над внешними вилками и т. д.).
Как моя организация может
Github App
быть в состоянии создать
check_run
,
check_suite
или же
status_checks
на внешних ответвлениях этой Организации?
Ссылки:
https://github.community/t/github-app-check-run-pr-from-fork/13875/2
https://github.community/t/no-check-suite-event-for-foreign-pull-reuqests/13915