pip install -r requirements.txtСкопируйте .env.example в .env и заполните:
cp .env.example .envМинимально необходимые переменные:
SECRET_KEY- любой случайный секретный ключGITHUB_CLIENT_IDиGITHUB_CLIENT_SECRET- из OAuth AppGITHUB_APP_IDиGITHUB_APP_INSTALLATION_ID- из GitHub AppGITHUB_APP_PRIVATE_KEY_PATH- путь к файлу с приватным ключом
Скачайте приватный ключ из настроек GitHub App и сохраните как github-app-private-key.pem:
# Файл должен быть в формате:
# -----BEGIN RSA PRIVATE KEY-----
# ...
# -----END RSA PRIVATE KEY-----python app.pyИли с hot-reload:
uvicorn app:app --host 0.0.0.0 --port 8000 --reload- Нажмите "Войти через GitHub"
- Авторизуйтесь
- Заполните форму с репозиторием и workflow
- Выберите тесты
- Запустите workflow
Создайте файл .github/workflows/test.yml в вашем репозитории:
name: Test Workflow
on:
workflow_dispatch:
inputs:
tests:
description: 'Tests to run (comma-separated)'
required: false
type: string
default: 'unit'
jobs:
test:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Run tests
run: |
echo "Running tests: ${{ inputs.tests }}"
# Ваши команды для запуска тестов- Убедитесь, что вы авторизовались через GitHub OAuth
- Проверьте, что
GITHUB_CLIENT_IDиGITHUB_CLIENT_SECRETправильные
- Проверьте, что GitHub App установлен в репозиторий
- Убедитесь, что у App есть права на Actions (Read and write)
- Проверьте, что
workflow_idсоответствует имени файла workflow
- Убедитесь, что вы действительно коллаборатор репозитория (имеете доступ к репозиторию)
- Проверьте, что OAuth токен имеет права на чтение репозитория
Если вы видите ошибку в GitHub Actions workflow:
HttpError: Resource not accessible by integration
status: 403
Это означает, что GitHub App не имеет необходимых прав для выполнения операции (например, создание комментариев в issues или PR).
Решение:
-
Если ошибка связана с созданием комментариев в issues/PR:
- Перейдите в настройки GitHub App:
https://github.com/settings/apps - Откройте ваше приложение
- Перейдите в раздел Permissions & events
- В разделе Repository permissions найдите Issues
- Установите права Read and write (или Write)
- Нажмите Save changes
- Перейдите в настройки GitHub App:
-
После изменения прав ОБЯЗАТЕЛЬНО обновите установку:
Для репозитория:
- Перейдите:
https://github.com/YOUR_USERNAME/YOUR_REPO/settings/installations - Или: Settings → Integrations → GitHub Apps → найдите ваше приложение
- Нажмите Configure рядом с вашим GitHub App
- На странице установки нажмите Update installation (или Save)
Для организации:
- Перейдите:
https://github.com/organizations/YOUR_ORG/settings/installations - Или: Organization Settings → GitHub Apps → найдите ваше приложение
- Нажмите Configure → Update installation
Важно: Без обновления установки новые права не применятся!
- Перейдите:
-
Проверьте другие необходимые права:
- Если workflow использует другие операции (например, создание PR), убедитесь что у App есть соответствующие права
- Actions: Read and write (для запуска workflows)
- Contents: Read-only или Read and write (в зависимости от нужд)
- Issues: Write (для создания комментариев)
- Pull requests: Write (для создания комментариев в PR)
- Workflows: Write (для изменения workflow файлов при backport)
Примечание: После изменения прав GitHub App, все установки приложения нужно обновить вручную. Без обновления установки новые права не будут работать!
Если вы видите ошибку:
Although you appear to have the correct authorization credentials,
the `organization-name` organization has enabled OAuth App access restrictions
Это означает, что организация включила ограничения доступа для OAuth приложений. Чтобы решить проблему:
-
Если вы владелец организации или имеете права администратора:
- Перейдите в настройки организации:
https://github.com/organizations/ORGANIZATION_NAME/settings/oauth_application_policy - Найдите ваше OAuth App в списке "Third-party access"
- Нажмите "Grant" или "Approve" для вашего приложения
- Подробнее: https://docs.github.com/articles/restricting-access-to-your-organization-s-data/
- Перейдите в настройки организации:
-
Если вы не администратор организации:
- Обратитесь к администратору организации
- Попросите его одобрить OAuth App в настройках организации
- Администратор должен перейти в:
Settings → Third-party access → OAuth Apps - И одобрить ваше приложение
-
Альтернативное решение:
- Если у вас нет доступа к настройкам организации, можно использовать GitHub App вместо OAuth App
- GitHub Apps не требуют одобрения организации (если установлены в репозиторий)