diff --git a/.coderabbit.yaml b/.coderabbit.yaml index 57174d8..9eb5e72 100644 --- a/.coderabbit.yaml +++ b/.coderabbit.yaml @@ -9,6 +9,15 @@ reviews: auto_review: enabled: true drafts: false + # Documentation-only PRs are not reviewed (conventional "docs" titles). + ignore_title_keywords: + - "docs:" + - "docs(" + # Documentation and specs are not reviewed. + path_filters: + - "!**/*.md" + - "!docs/**" + - "!openspec/**" path_instructions: - path: "apps/**/*.py" instructions: >- diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 91357e2..cd1f9a3 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -15,25 +15,11 @@ profiles, screenshots containing credentials, or downloaded customer documents. State whether AI assisted this change and what the author verified. -## CodeRabbit review - -Public repositories with fewer than 10 stars require a manual review request, -even when automatic reviews are enabled. Bot-authored PRs may also be skipped. - -Once this PR is open and its changes are ready, comment `@coderabbitai review` -on the PR to request an incremental review. Use `@coderabbitai full review` -only when a complete new pass is needed. These commands are instructions for -an actual PR comment; text in this PR description does not trigger them. - -- [ ] Request a CodeRabbit review on the final PR head. -- [ ] Verify that the review completed and covers that head; a walkthrough, - summary, skipped notice or pending status alone is not review evidence. -- [ ] Address confirmed findings and record the review link and reviewed head - SHA. If review cannot complete, record the reason for the maintainer. - -If more commits are pushed after the review, request another incremental pass. -Do not treat CodeRabbit as a substitute for CI or the repository's required -human/independent review. Maintainers decide whether to merge if CodeRabbit -is unavailable. +## Pullfrog review + +Pullfrog is the sole reviewer. Require a completed review of the final head, +resolve actionable threads and keep all CI checks green. Ignore CodeRabbit and +the known sticky `pullfrog-approval` status only. PRs that change only +`*.md` files need CI only. Review evidence: diff --git a/.github/workflows/pullfrog.yml b/.github/workflows/pullfrog.yml index 7795a7f..7a4c145 100644 --- a/.github/workflows/pullfrog.yml +++ b/.github/workflows/pullfrog.yml @@ -20,12 +20,33 @@ jobs: permissions: id-token: write contents: read + pull-requests: read steps: + # Local addition: documentation-only PRs (only *.md files, docs/ or + # openspec/, the pr-gate rule; doc/ assets still get a review) are not + # reviewed. Fails open: without a PR number or file list, the review runs. + - name: Skip documentation-only PRs + id: scope + env: + GH_TOKEN: ${{ github.token }} + RUN_NAME: ${{ inputs.name }} + run: | + review=true + pr=$(printf '%s' "$RUN_NAME" | sed -nE 's/^Review (new commits on )?#([0-9]+).*/\2/p') + if [ -n "$pr" ]; then + files=$(gh pr diff "$pr" --repo "$GITHUB_REPOSITORY" --name-only || true) + if [ -n "$files" ] && ! printf '%s\n' "$files" | grep -qvE '^(docs/|openspec/)|\.md$'; then + review=false + fi + fi + echo "review=$review" >> "$GITHUB_OUTPUT" - name: Checkout code + if: steps.scope.outputs.review == 'true' uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: fetch-depth: 1 - name: Run agent + if: steps.scope.outputs.review == 'true' uses: pullfrog/pullfrog@ae4145b3d72b3f4aa045e2352dc6b2c7538daeeb # deployed on flowcool/ghostfolio-ibkr-sync with: prompt: ${{ inputs.prompt }}