Перейти к основному содержанию
Обновляй документацию в GitHub Actions с помощью Cursor CLI. Два подхода: полная автономность агента или детерминированный пайплайн, где агент изменяет только файлы.
name: Обновление документации

on:
  pull_request:
    types: [opened, synchronize, reopened, ready_for_review]

permissions:
  contents: write
  pull-requests: write

jobs:
  auto-docs:
    if: ${{ !startsWith(github.head_ref, 'docs/') }}
    runs-on: ubuntu-latest
    steps:
      - name: Проверить репозиторий
        uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - name: Установить Cursor CLI
        run: |
          curl https://cursor.com/install -fsS | bash
          echo "$HOME/.cursor/bin" >> $GITHUB_PATH

      - name: Настроить git
        run: |
          git config user.name "Cursor Agent"
          git config user.email "cursoragent@cursor.com"

      - name: Обновить документацию
        env:
          MODEL: gpt-5
          CURSOR_API_KEY: ${{ secrets.CURSOR_API_KEY }}
          GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          BRANCH_PREFIX: docs
        run: |
          cursor-agent -p "Ты работаешь в среде GitHub Actions runner.

          GitHub CLI доступен как `gh` и аутентифицирован через `GH_TOKEN`. Git доступен. У тебя есть права на запись в репозиторий и возможность комментировать pull request’ы, но ты не должен создавать или редактировать PR.

          # Контекст:
          - Repo: ${{ github.repository }}
          - Owner: ${{ github.repository_owner }}
          - PR Number: ${{ github.event.pull_request.number }}
          - Base Ref: ${{ github.base_ref }}
          - Head Ref: ${{ github.head_ref }}
          - Docs Branch Prefix: ${{ env.BRANCH_PREFIX }}

          # Цель:
          - Реализовать сквозной процесс обновления документации, управляемый инкрементальными изменениями в исходном PR.

          # Требования:
          1) Определи, что изменилось в исходном PR и, если было несколько пушей, вычисли инкрементальные diff’ы с момента последнего успешного обновления документации.
          2) Обновляй только релевантные разделы документации на основе этих инкрементальных изменений.
          3) Поддерживай постоянную ветку документации для текущего head PR, используя префикс ветки из Контекста. Создай её, если отсутствует; иначе обнови и отправь изменения в origin.
          4) У тебя НЕТ прав создавать PR. Вместо этого оставь или обнови один короткий комментарий к PR (1–2 предложения), который кратко объясняет обновления документации и включает встроенную ссылку сравнения для быстрого создания PR.

          # Входные данные и соглашения:
          - Используй `gh pr diff` и историю git, чтобы обнаружить изменения и получить инкрементальные диапазоны с момента последнего обновления документации.
          - Не пытайся создавать или редактировать PR напрямую. Используй формат ссылки сравнения выше.
          - Держи изменения минимальными и согласованными со стилем репозитория. Если обновления документации не нужны, не вноси изменений и не оставляй комментарий.

          # Результаты при обновлениях:
          - Отправленные коммиты в постоянную ветку документации для текущего head PR.
          - Один комментарий естественным языком в исходном PR, который включает упомянутую встроенную ссылку сравнения. Избегай дублей; обнови предыдущий комментарий бота, если он есть.
          " --force --model "$MODEL" --output-format=text
I