Skip to content

ci: cut CI and review-bot cost; one PR per change - #133

Merged
flowcool merged 2 commits into
mainfrom
ci/cost-reduction
Oct 27, 2026
Merged

flowcool merged 2 commits into
mainfrom
ci/cost-reduction

Conversation

@flowcool

@flowcool flowcool commented Oct 27, 2026 •

Copy link
Copy Markdown
Owner

Summary

Same pattern as flowcool/ghostfolio-ibkr-sync#324 (merged): no post-merge re-runs, concurrency, documentation-only scope, title-only label trigger, Pullfrog docs gate, explicit one-PR-per-change rule.

Behavior

October 2026: 89 PRs, 1,214 runs, 3,303 billed minutes. Core integrity ran on every branch push and again on the PR (204 + 129 runs); Build and checks and CodeQL re-ran on main after each merge; superseded PR runs were not cancelled; PR release labels re-triggered on its own label writes; Pullfrog ran a full review on documentation-only PRs although its prompt asks to skip them.

  • checks.yml, codeql.yml: PR, dispatch and weekly schedule only; PR concurrency with cancel-in-progress.
  • core-integrity.yml: no push trigger (PR, dispatch, weekly schedule); concurrency.
  • Documentation-only PRs (docs/, openspec/, *.md, same rule as merge_pr.py) skip CodeQL, dependency audit and the container-check steps. test and core-integrity still run. Required checks still report (skipped job = success; the matrix job runs with skipped steps so its names expand). Scope detection fails open (gh error → run everything).
  • pr-release-labels.yml: opened, edited, reopened.
  • pullfrog.yml: local step skips the agent for documentation-only PRs (PR number from the run name). Fails open.
  • AGENTS.md: steps and review fixes are commits in the change's PR.
  • Merge through the shared pr-ship gate: scripts/merge_pr.py, scripts/check_pr_merge.py and their tests are removed (they duplicated the shared gate and rejected SKIPPED check runs); AGENTS.md, CONTRIBUTING.md, BUILD.md and the PR template updated. Full suite 1523 passed.

Release impact

None. CI and contributor tooling only; no shipped code or image change.

Evidence

  • Before: merge commit of a code PR triggered Build and checks, CodeQL and Core integrity on main.
  • After (ibkr-sync#324 merge): only Secret scan, Scorecard and path-filtered Workflow lint ran on the merge commit.

Verification

  • Command: actionlint 1.7.12 on all workflows; docs-only detection snippet on synthetic file lists.
  • Expected result: no finding; docs-only lists → skip; any code file or empty list → run.
  • Observed result: actionlint rc=0; detection results as expected (same snippet as ibkr-sync#324).

Use synthetic inputs and isolated state. Do not attach secrets or private data.

Merge Danger

  • Door: two-way; revert this PR.
  • Blast Radius: CI triggers of this repository only.

AI assistance

Prepared by Claude Code (Opus 5.5) from GitHub API measurements for October 2026; skip behavior on a real documentation-only PR is verified after merge.

Pullfrog review

  • Completed Pullfrog review covers the exact final head.
  • Actionable threads are resolved and all CI checks pass.

Review evidence:

CodeRabbit is not used. A sticky pullfrog-approval status alone does not block
merge. Every other CI check must pass. Docs-only changes (openspec/, docs/
or *.md) need CI and resolved conversations only.

🤖 Generated with Claude Code

https://claude.ai/code/session_01EQXdcx49Pi5uQErd6kDEKs

- Checks and CodeQL run on PRs (and weekly), not again on main after merge;
  Core integrity no longer runs on every branch push.
- Concurrency cancels superseded PR runs.
- Documentation-only PRs (docs/, openspec/, *.md) skip CodeQL, dependency
  audit and container steps; tests still run; required checks still report.
  Scope detection fails open.
- PR release labels no longer re-trigger on its own label writes.
- Pullfrog skips documentation-only PRs.
- AGENTS.md: steps and review fixes are commits in the change's PR.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EQXdcx49Pi5uQErd6kDEKs
@coderabbitai

coderabbitai Bot commented Oct 27, 2026 •

Copy link
Copy Markdown
Contributor

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

Run configuration

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions github-actions Bot added the maintenance Dependencies, CI, chores label Oct 27, 2026

@pullfrog pullfrog Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Important

Docs-only skipping makes scripts/check_pr_merge.py reject documentation-only PRs. Details are inline.

Reviewed changes

Reviewed the full diff of the single commit, plus the merge preflight and workflow consumers it interacts with.

  • Post-merge re-runs removed — checks.yml, codeql.yml and core-integrity.yml drop their push triggers and gain per-PR concurrency with cancel-in-progress.
  • Docs-only scope gate — a scope job skips dependency-audit, CodeQL analyze and the container-check steps for documentation-only PRs, and fails open.
  • Label workflow — pr-release-labels.yml no longer triggers on labeled.
  • Pullfrog docs gate — pullfrog.yml skips checkout and the agent for documentation-only PRs, and fails open.
  • Contributor rule — AGENTS.md adds the one-branch-one-PR rule.

Pullfrog  | Fix all ➔ | Fix 👍s ➔ | View workflow run | Using claude-sonnet-5-5 | 𝕏

Comment thread .github/workflows/checks.yml Resolved
…infra-mx3xa)

scripts/merge_pr.py and scripts/check_pr_merge.py duplicated the shared
pr-ship/pr-gate merge gate (head-pinned merge commit, CI + Pullfrog head
review, docs-only rule) and rejected SKIPPED check runs, which documentation-
only PRs now produce. Remove both scripts and their tests; AGENTS.md,
CONTRIBUTING.md, BUILD.md and the PR template point to the shared gate.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EQXdcx49Pi5uQErd6kDEKs

@pullfrog pullfrog Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ No new issues found.

Reviewed changes

Reviewed the delta since the prior Pullfrog review (cce9552 → 7fae6fa), plus the full PR diff and a repository grep for dangling references.

  • Local merge scripts removed — scripts/merge_pr.py, scripts/check_pr_merge.py and their three test modules are deleted. This retires the earlier concern that SKIPPED check runs from docs-only skipping would be rejected by passing_checks().
  • Docs point to the shared gate — AGENTS.md, CONTRIBUTING.md, .github/BUILD.md and the PR template now reference merging through pr-ship instead of the removed scripts. No references to the deleted scripts remain in the repo.
  • Convention test sentinel updated — tests/test_python_conventions.py now asserts scripts/check_core.py (which exists) instead of the deleted scripts/merge_pr.py.

Pullfrog  | View workflow run | Using claude-sonnet-5-5 | 𝕏

@flowcool
flowcool merged commit 783f0ca into main Oct 27, 2026
13 checks passed
@flowcool
flowcool deleted the ci/cost-reduction branch October 27, 2026 22:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

maintenance Dependencies, CI, chores

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant