Skip to content

ci: skip release-please version-bump PRs in checks - #48

Merged
onedr0p merged 1 commit into
mainfrom
ci/skip-release-please-checks
Jul 25, 2026
Merged

onedr0p merged 1 commit into
mainfrom
ci/skip-release-please-checks

Conversation

@onedr0p

@onedr0p onedr0p commented Jul 25, 2026 •

Copy link
Copy Markdown
Contributor

Two changes, part of an org-wide CI conformity / minutes pass.

1. Skip only genuine release-please PRs, using a signal a contributor can't forge:

if: >-
  ${{ !(startsWith(github.head_ref, 'release-please--')
  && github.event.pull_request.head.repo.full_name == github.repository) }}

head_ref alone (the PR's source branch name) is settable by anyone, including from a fork, so a release-please--* branch could skip every check. Requiring the PR head repo to be this repo means fork PRs - the realistic path for outside contributors - always run the full suite.

2. Run e2e on pull requests only. Dropped the push: main trigger: a merged PR already ran e2e, so the post-merge run was redundant. e2e now runs on pull_request and workflow_dispatch.

@greptile-apps

greptile-apps Bot commented Jul 25, 2026 •

Copy link
Copy Markdown

Greptile Summary

This PR narrows validation skipping to same-repository release-prefixed pull requests and removes the post-merge E2E trigger.

  • Adds matching job guards to the E2E, Go/Helm lint, and Go/Helm test jobs.
  • Runs E2E for pull requests and manual dispatches, but no longer for pushes to main.

Confidence Score: 4/5

This PR is not safe to merge until validation skipping authenticates genuine release-please pull requests instead of trusting an internally forgeable branch prefix.

A contributor able to create a branch in the repository can satisfy the new condition and skip every E2E, lint, and test job from an ordinary pull request.

Files Needing Attention: .github/workflows/e2e.yaml, .github/workflows/lint.yaml, .github/workflows/tests.yaml

Security Review

The guard still permits any contributor who can create a same-repository branch named release-please--* to bypass all five validation jobs; repository identity does not authenticate release-please as the branch creator.

T-Rex T-Rex Logs

What T-Rex did

  • I reproduced the internal branch prefix bypass by running a Ruby guard-evaluation harness that parsed the guards from the repository workflow files and evaluated them against a same-repository PR fixture, which resulted in all five jobs being skipped.
  • The validator runs exited with code 0 and produced verbose trigger data.
  • The YAML parse and the trigger contract assertions PASS.

View all artifacts

T-Rex Ran code and verified through T-Rex

Important Files Changed

Filename Overview
.github/workflows/e2e.yaml Removes push-triggered E2E and adds a same-repository branch-prefix guard that still allows internal branches to bypass E2E.
.github/workflows/lint.yaml Adds the same forgeable same-repository branch-prefix guard to both lint jobs.
.github/workflows/tests.yaml Adds the same forgeable same-repository branch-prefix guard to both test jobs.

Fix All in Claude Code

Reviews (3): Last reviewed commit: "ci: skip automated release PRs; run e2e ..." | Re-trigger Greptile

Comment thread .github/workflows/e2e.yaml Resolved
@onedr0p
onedr0p force-pushed the ci/skip-release-please-checks branch from 2a5edcb to 7b0c7e0 Compare July 25, 2026 13:49
Guard the check jobs so only genuine release-please PRs are skipped: the
source branch starts with `release-please--` and the PR originates from
this repo, not a fork. Ordinary and fork PRs still run every check.

Also stop running e2e on push to main: a merged PR already ran e2e, so the
post-merge run is redundant. e2e now runs on pull_request and
workflow_dispatch.

Signed-off-by: Devin Buhl <devin@buhl.casa>
@onedr0p
onedr0p force-pushed the ci/skip-release-please-checks branch from 7b0c7e0 to c73f496 Compare July 25, 2026 14:03
Comment on lines 22 to +23
helm-e2e:
if: >-

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 security Internal branch prefix bypasses checks

When a contributor creates a same-repository branch named release-please--*, this condition skips the job despite the pull request not being generated by release-please, causing Helm E2E, both lint jobs, and both test jobs to be bypassed across the three workflows.

Fix in Claude Code

@onedr0p
onedr0p merged commit 2de44cc into main Jul 25, 2026
6 checks passed
@onedr0p
onedr0p deleted the ci/skip-release-please-checks branch July 25, 2026 14:08
@sticky-gecko sticky-gecko Bot mentioned this pull request Jul 28, 2026
gabrielcosi pushed a commit to gabrielcosi/home-ops that referenced this pull request Aug 21, 2026
….2 ➔ 0.2.3) (#473)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [ghcr.io/home-operations/charts/echo](https://github.com/home-operations/echo) | patch | `0.2.2` → `0.2.3` |

---

### Release Notes

<details>
<summary>home-operations/echo (ghcr.io/home-operations/charts/echo)</summary>

### [`v0.2.3`](https://github.com/home-operations/echo/blob/HEAD/CHANGELOG.md#023-2026-08-21)

[Compare Source](home-operations/echo@0.2.2...0.2.3)

##### Bug Fixes

- **chart:** keep example comments out of unrelated schema descriptions ([#&#8203;83](home-operations/echo#83)) ([6ce9ab2](home-operations/echo@6ce9ab2))
- **ci:** fail the merge gate on cancelled jobs, and key the lint cache on the toolchain ([#&#8203;58](home-operations/echo#58)) ([b4afcdd](home-operations/echo@b4afcdd))
- **go:** update module go (1.26.4 → 1.26.5) ([#&#8203;70](home-operations/echo#70)) ([8661ad5](home-operations/echo@8661ad5))
- **go:** update to go 1.27.0 ([#&#8203;84](home-operations/echo#84)) ([f9ba0a6](home-operations/echo@f9ba0a6))

##### Documentation

- add AGENTS.md with Go conventions ([#&#8203;62](home-operations/echo#62)) ([b218df4](home-operations/echo@b218df4))
- make AGENTS.md a generic, drift-resistant template ([#&#8203;64](home-operations/echo#64)) ([28d45d9](home-operations/echo@28d45d9))

##### Build System

- **mise:** add actionlint and refresh the lockfile ([#&#8203;50](home-operations/echo#50)) ([beda1ff](home-operations/echo@beda1ff))

##### Continuous Integration

- gate pull requests on a single Build Success check ([#&#8203;49](home-operations/echo#49)) ([8c394eb](home-operations/echo@8c394eb))
- **github-action:** Update action actions/stale (v10.4.0 → v11.0.0) ([#&#8203;59](home-operations/echo#59)) ([6255ec0](home-operations/echo@6255ec0))
- **github-action:** Update action docker/github-builder (v1.14.0 → v1.15.0) ([#&#8203;57](home-operations/echo#57)) ([25c7b5b](home-operations/echo@25c7b5b))
- **github-action:** Update action docker/github-builder (v1.15.0 → v1.16.0) ([#&#8203;73](home-operations/echo#73)) ([6fc568c](home-operations/echo@6fc568c))
- **github-action:** Update action docker/login-action (v4.5.1 → v4.5.2) ([#&#8203;60](home-operations/echo#60)) ([85c0d4d](home-operations/echo@85c0d4d))
- **github-action:** Update action docker/login-action (v4.5.2 → v4.6.0) ([#&#8203;63](home-operations/echo#63)) ([5cf5338](home-operations/echo@5cf5338))
- **github-action:** Update action home-operations/.github/actions/workflow-lint (v1.0.2 → v1.0.3) ([#&#8203;69](home-operations/echo#69)) ([42bac11](home-operations/echo@42bac11))
- **github-action:** Update action jdx/mise-action (v4.2.1 → v4.2.2) ([#&#8203;52](home-operations/echo#52)) ([c9298e0](home-operations/echo@c9298e0))
- **github-action:** Update action jdx/mise-action (v4.2.3 → v4.2.4) ([#&#8203;71](home-operations/echo#71)) ([5283840](home-operations/echo@5283840))
- **github-action:** Update github-actions ([#&#8203;53](home-operations/echo#53)) ([d6334ce](home-operations/echo@d6334ce))
- **github-action:** update workflow-lint action (1.0.0 → v1.0.2) ([#&#8203;66](home-operations/echo#66)) ([967c73a](home-operations/echo@967c73a))
- lint workflows with the shared composite action ([#&#8203;51](home-operations/echo#51)) ([c668830](home-operations/echo@c668830))
- skip release-please version-bump PRs in checks ([#&#8203;48](home-operations/echo#48)) ([2de44cc](home-operations/echo@2de44cc))
- wire govulncheck into mise and CI ([#&#8203;68](home-operations/echo#68)) ([2eb630c](home-operations/echo@2eb630c))

##### Miscellaneous Chores

- **github-action:** update action jdx/mise-action (v4.2.4 → v4.2.5) ([#&#8203;78](home-operations/echo#78)) ([d4e845d](home-operations/echo@d4e845d))
- **go:** pin go directive to 1.26.0 ([#&#8203;79](home-operations/echo#79)) ([88e2148](home-operations/echo@88e2148))
- **mise:** prune lockfile to used platforms ([#&#8203;67](home-operations/echo#67)) ([32591e5](home-operations/echo@32591e5))
- **mise:** Update tool cosign (3.1.2 → 3.1.3) ([#&#8203;74](home-operations/echo#74)) ([5edab8a](home-operations/echo@5edab8a))
- **mise:** update tool go (1.26.5 → 1.26.6) ([#&#8203;82](home-operations/echo#82)) ([9d4a187](home-operations/echo@9d4a187))
- **mise:** update tool go:golang.org/x/vuln/cmd/govulncheck (1.6.0 → v1.7.0) ([#&#8203;77](home-operations/echo#77)) ([731f12d](home-operations/echo@731f12d))
- **mise:** update tool helm (4.2.3 → 4.2.4) ([#&#8203;81](home-operations/echo#81)) ([32b85b4](home-operations/echo@32b85b4))
- **mise:** Update tool oxfmt (0.60.0 → 0.61.0) ([#&#8203;54](home-operations/echo#54)) ([d40cd22](home-operations/echo@d40cd22))
- **mise:** Update tool oxfmt (0.61.0 → 0.62.0) ([#&#8203;72](home-operations/echo#72)) ([5b7a778](home-operations/echo@5b7a778))
- **mise:** Update tool oxfmt (0.62.0 → 0.63.0) ([#&#8203;75](home-operations/echo#75)) ([7114dc7](home-operations/echo@7114dc7))
- **mise:** Update tool zizmor (1.28.0 → 1.29.0) ([#&#8203;65](home-operations/echo#65)) ([4ad14aa](home-operations/echo@4ad14aa))
- **release-please:** standardize the release pull request title pattern ([#&#8203;61](home-operations/echo#61)) ([d13101b](home-operations/echo@d13101b))
- standardize release-please changelog sections ([#&#8203;56](home-operations/echo#56)) ([007ec54](home-operations/echo@007ec54))

</details>

---

### Configuration

📅 **Schedule**: (in timezone Europe/Berlin)

- Branch creation
  - At any time (no schedule defined)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate CLI](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4zMC4zIiwidXBkYXRlZEluVmVyIjoiNDQuMzAuMyIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsicmVub3ZhdGUvY29udGFpbmVyIiwidHlwZS9wYXRjaCJdfQ==-->

Reviewed-on: https://git.xcd.dev/gabrielcosi/home-ops/pulls/473
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant