Files
2026-07-13 13:35:10 +08:00

105 lines
3.9 KiB
YAML

name: Claude Docs Apply
on:
pull_request_target:
types: [labeled]
jobs:
apply-docs:
if: github.event.label.name == 'update-docs'
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
issues: write
id-token: write
steps:
- name: Checkout PR branch
uses: actions/checkout@v4
with:
repository: ${{ github.event.pull_request.head.repo.full_name }}
ref: ${{ github.event.pull_request.head.ref }}
# Use PAT for fork PRs (requires CLAUDE_CODE_PAT secret), GITHUB_TOKEN for same-repo PRs
token: ${{ secrets.CLAUDE_CODE_PAT || secrets.GITHUB_TOKEN }}
fetch-depth: 0
- name: Configure git
run: |
git config --global user.name "Claude Code Bot"
git config --global user.email "noreply@anthropic.com"
- name: Apply documentation updates
uses: anthropics/claude-code-action@v1
with:
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
github_token: ${{ secrets.CLAUDE_CODE_PAT || secrets.GITHUB_TOKEN }}
prompt: |
REPO: ${{ github.repository }}
PR NUMBER: ${{ github.event.pull_request.number }}
PR TITLE: ${{ github.event.pull_request.title }}
You are a documentation assistant for the Ragas project. Update the documentation based on the code changes in this PR.
## Quick Action Plan
1. Run `gh pr diff` to review changes
2. Identify what docs need updating (see structure below)
3. Make focused updates efficiently
4. Commit with clear message
## Documentation Structure (Diátaxis Framework)
**Where to update:**
- `docs/howtos/` - How-to guides (step-by-step instructions)
- `docs/concepts/` - Concept docs (explanations and rationale)
- `docs/getstarted/` - Tutorials (learning experiences)
- Source code docstrings - API documentation (feeds auto-generated reference)
**DO NOT edit:**
- `docs/references/**` - AUTO-GENERATED by mkdocstrings
## Writing Guidelines
- Use second-person ("you") and active voice
- Code blocks must be copy-pasteable with imports
- Use `??? "Click to expand"` for verbose outputs
- Add blank line after text ending with colon before lists
- Update `mkdocs.yml` nav if adding new pages
- Keep modes separate: no theory in how-tos, no instructions in concepts
## Documentation Modes Reference
1. **Tutorials** (`docs/getstarted/`) - "Can you teach me to...?"
- Narrative learning experience with complete working examples
2. **How-to Guides** (`docs/howtos/`) - "How do I...?"
- Concise step-by-step from user's perspective
3. **Reference** (`docs/references/`) - "What is...?"
- AUTO-GENERATED - edit source docstrings instead
4. **Explanation** (`docs/concepts/`) - "Why...?"
- Discursive articles on design decisions and theory
## Completion
After making changes, commit to this PR branch with a concise, descriptive message.
claude_args: |
--max-turns 30
--allowedTools "Read,Write,Edit,Glob,Grep,Bash(git:*),Bash(gh pr diff:*),Bash(gh pr view:*)"
- name: Remove labels after completion
if: always()
run: |
# Remove both labels
gh pr edit ${{ github.event.pull_request.number }} --remove-label "update-docs" || true
gh pr edit ${{ github.event.pull_request.number }} --remove-label "needs-doc-update" || true
# Comment that docs were updated
gh pr comment ${{ github.event.pull_request.number }} --body "✅ Documentation update completed."
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}