Автообновление документации для репозитория с использованием Cursor CLI в GitHub Actions
name: Auto Update Docs
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: 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
run: |
git config user.name "Cursor Agent"
git config user.email "cursoragent@cursor.com"
- name: Update docs
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.
# Контекст:
- Репозиторий: ${{ github.repository }}
- Владелец: ${{ github.repository_owner }}
- Номер PR: ${{ github.event.pull_request.number }}
- Base Ref: ${{ github.base_ref }}
- Head Ref: ${{ github.head_ref }}
- Префикс ветки документации: ${{ env.BRANCH_PREFIX }}
# Цель:
- Реализовать end-to-end процесс обновления документации на основе инкрементальных изменений в исходном PR.
# Требования:
1) Определить, что изменилось в исходном PR и, если было несколько push'ей, вычислить инкрементальные изменения с момента последнего успешного обновления документации.
2) Обновить только релевантную документацию на основе этих инкрементальных изменений.
3) Поддерживать постоянную ветку документации для этого PR head, используя префикс ветки документации из контекста. Создать её, если отсутствует, иначе обновить, и запушить изменения в origin.
4) У тебя НЕТ прав на создание PR. Вместо этого опубликуй или обнови один комментарий к PR на естественном языке (1–2 предложения), который кратко объясняет обновления документации и включает inline ссылку для сравнения для быстрого создания PR
# Входные данные и соглашения:
- Используй `gh pr diff` и git историю для обнаружения изменений и определения инкрементальных диапазонов с момента последнего обновления документации.
- Не пытайся создавать или редактировать PR напрямую. Используй формат ссылки для сравнения выше.
- Делай изменения минимальными и согласованными со стилем репозитория. Если обновления документации не нужны, не делай изменений и не публикуй комментарии.
# Результаты при наличии обновлений:
- Запушенные коммиты в постоянную ветку документации для этого PR head.
- Один комментарий к исходному PR на естественном языке, который включает inline ссылку для сравнения выше. Избегай дублирования; обнови предыдущий комментарий бота, если он есть.
" --force --model "$MODEL" --output-format=text
Была ли эта страница полезной?