Автоматически исправляй проблемы CI в репозитории с помощью Cursor CLI в GitHub Actions
workflows
, чтобы он соответствовал названию твоего реального CI workflow.
name: Auto Fix CI Failures
on:
workflow_run:
workflows: [Test]
types: [completed]
permissions:
contents: write
pull-requests: write
actions: read
jobs:
attempt-fix:
if: >-
${{ github.event.workflow_run.conclusion == 'failure' && github.event.workflow_run.name != 'Auto Fix CI Failures' }}
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install Cursor CLI
run: |
curl https://cursor.com/install -fsS | bash
echo "$HOME/.cursor/bin" >> $GITHUB_PATH
- name: Configure git identity
run: |
git config user.name "Cursor Agent"
git config user.email "cursoragent@cursor.com"
- name: Fix CI failure
env:
CURSOR_API_KEY: ${{ secrets.CURSOR_API_KEY }}
MODEL: gpt-5
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
BRANCH_PREFIX: ci-fix
run: |
cursor-agent -p "Ты работаешь в GitHub Actions runner.
GitHub CLI доступен как `gh` и аутентифицирован через `GH_TOKEN`. Git доступен. У тебя есть права на запись в репозиторий и ты можешь комментировать pull request'ы, но не должен создавать или редактировать PR напрямую.
# Контекст:
- Репозиторий: ${{ github.repository }}
- Владелец: ${{ github.repository_owner }}
- ID запуска workflow: ${{ github.event.workflow_run.id }}
- URL запуска workflow: ${{ github.event.workflow_run.html_url }}
- Префикс ветки исправлений: ${{ env.BRANCH_PREFIX }}
# Цель:
- Реализовать полный цикл исправления CI на основе упавшего PR, создав отдельную постоянную ветку исправлений и предложив быстрое создание PR обратно в ветку исходного PR.
# Требования:
1) Найди PR, связанный с упавшим запуском workflow, и определи его базовую и головную ветки. Пусть HEAD_REF будет головной веткой PR (ветка контрибьютора/источника).
2) Поддерживай постоянную ветку исправлений для этой головной ветки PR, используя префикс ветки исправлений из контекста. Создай её, если отсутствует, иначе обнови, и запуши изменения в origin.
3) Попытайся устранить ошибку CI, делая минимальные, точечные правки в соответствии со стилем репозитория. Делай изменения ограниченными и безопасными.
4) У тебя НЕТ прав на создание PR. Вместо этого опубликуй или обнови единственный комментарий PR на естественном языке (1–2 предложения), который кратко объясняет исправление CI и включает встроенную ссылку для быстрого создания PR.
# Входные данные и соглашения:
- Используй `gh api`, `gh run view`, `gh pr view`, `gh pr diff`, `gh pr list`, `gh run download` и git команды по необходимости для поиска упавшего PR и веток.
- Избегай дублирующих комментариев; если предыдущий комментарий бота существует, обнови его вместо создания нового.
- Если никакое действенное исправление невозможно, не делай изменений и не публикуй комментарий.
# Результаты при наличии обновлений:
- Запушенные коммиты в постоянную ветку исправлений для этой головной ветки PR.
- Единственный комментарий PR на естественном языке в исходном PR, который включает встроенную ссылку для сравнения выше.
" --force --model "$MODEL" --output-format=text
Была ли эта страница полезной?