Skip to content

ci(renovate): reactive dashboard + config runs in one workflow - #282

Merged
onedr0p merged 1 commit into
mainfrom
ci/renovate-reactive
Jul 24, 2026
Merged

onedr0p merged 1 commit into
mainfrom
ci/renovate-reactive

Conversation

@onedr0p

@onedr0p onedr0p commented Jul 24, 2026

Copy link
Copy Markdown
Contributor

Rolls the reactive renovate.yaml out to this repo: a config-file push (existing), a Dependency Dashboard checkbox tick, or a merged/edited Renovate PR now dispatches a repo-scoped run immediately instead of waiting for the hourly cron.

Canonical version reviewed and merged in home-operations/flate#862. Uses the org-level vars.BOT_USERNAME variable (already set). This diff also normalizes minor formatting to match the canonical file; dispatch/await/log logic is unchanged.

Fold Dependency Dashboard reactivity into renovate.yaml so a checkbox tick or a
merged/edited Renovate PR dispatches a repo-scoped run immediately instead of
waiting for the hourly cron. Canonical version reviewed in home-operations/flate.
Also normalizes minor formatting variants to the canonical file.

Signed-off-by: Devin Buhl <devin@buhl.casa>
@onedr0p
onedr0p merged commit 73dc821 into main Jul 24, 2026
4 checks passed
@onedr0p
onedr0p deleted the ci/renovate-reactive branch July 24, 2026 11:58
@greptile-apps

greptile-apps Bot commented Jul 24, 2026

Copy link
Copy Markdown

Greptile Summary

This PR makes Renovate orchestration reactive in addition to its existing push and manual triggers.

  • Adds edited-issue and edited/closed pull-request event handling.
  • Filters reactive runs using bot identity and Renovate-specific content markers.
  • Adds per-event concurrency cancellation.
  • Makes reactive dispatches fire-and-forget while preserving completion waiting and logs for push/manual runs.

Confidence Score: 3/5

This PR should not merge until issue-triggered runs verify that the edited issue is the genuine Renovate Dashboard.

User-editable issue title and body text currently provide sufficient authorization to dispatch the shared Renovate workflow for this repository.

.github/workflows/renovate.yaml

Security Review

The issue trigger does not authenticate the genuine Renovate Dashboard, allowing a matching user-controlled issue edit to dispatch repository-scoped Renovate automation.

T-Rex T-Rex Logs

What T-Rex did

  • T-Rex executed an exact-predicate admission harness to verify that untrusted issues trigger Renovate only when the checked-in jobs.renovate.if expression matches.
  • T-Rex inspected a malicious-but-safe unrelated issues event fixture to confirm that a non-bot actor and a Renovate Dashboard style message do not falsely admit the job.
  • T-Rex observed runtime evaluation that produced FINAL jobs.renovate.if => True and confirmed the admitted job contains the shared Renovate workflow dispatch path.
  • T-Rex compared routing states and confirmed the after-state exposes push/manual and qualifying Renovate PR routes while other PR contexts are rejected and await/log is limited to push/manual.
  • T-Rex validated an authentication blocker scenario where gh auth status exits non-zero with no authenticated GitHub host, using the reproducible routing harness.

View all artifacts

T-Rex Ran code and verified through T-Rex

Important Files Changed

Filename Overview
.github/workflows/renovate.yaml Adds reactive Renovate dispatch and concurrency handling, but the issue admission condition allows unrelated user-controlled issues to trigger the automation.

Fix All in Claude Code

Reviews (1): Last reviewed commit: "ci(renovate): reactive dashboard + confi..." | Re-trigger Greptile

Comment on lines +38 to +43
contains(github.event.issue.title, 'Renovate Dashboard') &&
(
contains(github.event.issue.body, '- [x]') ||
contains(github.event.issue.body, 'approve-all-pending-prs') ||
contains(github.event.issue.body, 'create-all-rate-limited-prs') ||
contains(github.event.issue.body, 'rebase-all-open-prs')

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 Untrusted issues trigger Renovate

When a user edits an unrelated issue whose title contains "Renovate Dashboard" and whose body contains a checked task or accepted command, these substring checks admit the event and dispatch the shared Renovate workflow for this repository, allowing user-controlled issues to invoke automation and consume Actions capacity.

Fix in Claude Code

@sticky-gecko sticky-gecko Bot mentioned this pull request Jul 27, 2026
doonga pushed a commit to greyrock-labs/home-ops that referenced this pull request Aug 21, 2026
…fi-webhook (0.10.9 ➔ 0.10.11) (#384)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [ghcr.io/home-operations/external-dns-unifi-webhook](https://github.com/home-operations/external-dns-unifi-webhook) | patch | `0.10.9` → `0.10.11` |

---

### Release Notes

<details>
<summary>home-operations/external-dns-unifi-webhook (ghcr.io/home-operations/external-dns-unifi-webhook)</summary>

### [`v0.10.11`](https://github.com/home-operations/external-dns-unifi-webhook/blob/HEAD/CHANGELOG.md#01011-2026-08-21)

[Compare Source](home-operations/external-dns-unifi-webhook@0.10.10...0.10.11)

##### Bug Fixes

- **go:** update to go 1.27.0 ([#&#8203;313](home-operations/external-dns-unifi-webhook#313)) ([931e211](home-operations/external-dns-unifi-webhook@931e211))

### [`v0.10.10`](https://github.com/home-operations/external-dns-unifi-webhook/blob/HEAD/CHANGELOG.md#01010-2026-08-21)

[Compare Source](home-operations/external-dns-unifi-webhook@0.10.9...0.10.10)

##### Features

- **deps:** update module github.com/prometheus/client\_golang (v1.23.2 → v1.24.0) ([#&#8203;276](home-operations/external-dns-unifi-webhook#276)) ([cc63630](home-operations/external-dns-unifi-webhook@cc63630))
- **deps:** update module golang.org/x/sync (v0.21.0 → v0.22.0) ([#&#8203;271](home-operations/external-dns-unifi-webhook#271)) ([45f002d](home-operations/external-dns-unifi-webhook@45f002d))
- **go:** update module sigs.k8s.io/external-dns (v0.21.0 → v0.22.0) ([#&#8203;312](home-operations/external-dns-unifi-webhook#312)) ([ada3935](home-operations/external-dns-unifi-webhook@ada3935))

##### Bug Fixes

- **ci:** fail the merge gate on cancelled jobs, and key the lint cache on the toolchain ([#&#8203;293](home-operations/external-dns-unifi-webhook#293)) ([0d0abca](home-operations/external-dns-unifi-webhook@0d0abca))
- **deps:** update module github.com/prometheus/client\_golang (v1.24.0 → v1.24.1) ([#&#8203;281](home-operations/external-dns-unifi-webhook#281)) ([b5ca23b](home-operations/external-dns-unifi-webhook@b5ca23b))
- **go:** update module go (1.26.4 → 1.26.5) ([#&#8203;302](home-operations/external-dns-unifi-webhook#302)) ([ed85692](home-operations/external-dns-unifi-webhook@ed85692))
- **go:** update module go (1.26.5 → 1.26.6) ([#&#8203;307](home-operations/external-dns-unifi-webhook#307)) ([c3a0c92](home-operations/external-dns-unifi-webhook@c3a0c92))

##### Documentation

- add AGENTS.md with Go conventions ([#&#8203;296](home-operations/external-dns-unifi-webhook#296)) ([47d1025](home-operations/external-dns-unifi-webhook@47d1025))
- point the CI badge at ci.yaml ([#&#8203;285](home-operations/external-dns-unifi-webhook#285)) ([ac12f51](home-operations/external-dns-unifi-webhook@ac12f51))

##### Styles

- indent markdown at 2 to match embedded yaml ([#&#8203;277](home-operations/external-dns-unifi-webhook#277)) ([0194a09](home-operations/external-dns-unifi-webhook@0194a09))

##### Build System

- **mise:** add actionlint and refresh the lockfile ([#&#8203;286](home-operations/external-dns-unifi-webhook#286)) ([a9a633a](home-operations/external-dns-unifi-webhook@a9a633a))

##### Continuous Integration

- gate pull requests on a single Build Success check ([#&#8203;284](home-operations/external-dns-unifi-webhook#284)) ([f9244d6](home-operations/external-dns-unifi-webhook@f9244d6))
- **github-action:** Update action actions/checkout (v7.0.0 → v7.0.1) ([7d0f63a](home-operations/external-dns-unifi-webhook@7d0f63a))
- **github-action:** Update action actions/stale (v10.3.0 → v10.4.0) ([fed963e](home-operations/external-dns-unifi-webhook@fed963e))
- **github-action:** Update action actions/stale (v10.4.0 → v11.0.0) ([#&#8203;294](home-operations/external-dns-unifi-webhook#294)) ([39338f0](home-operations/external-dns-unifi-webhook@39338f0))
- **github-action:** Update action docker/github-builder (v1.12.0 → v1.13.0) ([7aaa300](home-operations/external-dns-unifi-webhook@7aaa300))
- **github-action:** Update action docker/github-builder (v1.13.0 → v1.14.0) ([dddd3a9](home-operations/external-dns-unifi-webhook@dddd3a9))
- **github-action:** Update action docker/github-builder (v1.14.0 → v1.15.0) ([#&#8203;292](home-operations/external-dns-unifi-webhook#292)) ([fc10a57](home-operations/external-dns-unifi-webhook@fc10a57))
- **github-action:** Update action docker/github-builder (v1.15.0 → v1.16.0) ([#&#8203;305](home-operations/external-dns-unifi-webhook#305)) ([a05131f](home-operations/external-dns-unifi-webhook@a05131f))
- **github-action:** Update action home-operations/.github/actions/workflow-lint (v1.0.2 → v1.0.3) ([#&#8203;301](home-operations/external-dns-unifi-webhook#301)) ([cd22d30](home-operations/external-dns-unifi-webhook@cd22d30))
- **github-action:** Update action jdx/mise-action (v4.2.0 → v4.2.1) ([39bb0fb](home-operations/external-dns-unifi-webhook@39bb0fb))
- **github-action:** Update action jdx/mise-action (v4.2.1 → v4.2.2) ([#&#8203;288](home-operations/external-dns-unifi-webhook#288)) ([b371250](home-operations/external-dns-unifi-webhook@b371250))
- **github-action:** Update action jdx/mise-action (v4.2.2 → v4.2.3) ([#&#8203;290](home-operations/external-dns-unifi-webhook#290)) ([af33171](home-operations/external-dns-unifi-webhook@af33171))
- **github-action:** Update action jdx/mise-action (v4.2.3 → v4.2.4) ([#&#8203;303](home-operations/external-dns-unifi-webhook#303)) ([f9e4782](home-operations/external-dns-unifi-webhook@f9e4782))
- **github-action:** update workflow-lint action (1.0.0 → v1.0.2) ([#&#8203;298](home-operations/external-dns-unifi-webhook#298)) ([b36f7e7](home-operations/external-dns-unifi-webhook@b36f7e7))
- lint workflows with the shared composite action ([#&#8203;287](home-operations/external-dns-unifi-webhook#287)) ([24556e2](home-operations/external-dns-unifi-webhook@24556e2))
- **renovate:** reactive dashboard + config runs in one workflow ([#&#8203;282](home-operations/external-dns-unifi-webhook#282)) ([73dc821](home-operations/external-dns-unifi-webhook@73dc821))
- skip release-please churn and stop cancelling main runs ([#&#8203;275](home-operations/external-dns-unifi-webhook#275)) ([9608dc2](home-operations/external-dns-unifi-webhook@9608dc2))
- skip release-please version-bump PRs in checks ([#&#8203;283](home-operations/external-dns-unifi-webhook#283)) ([45c7f27](home-operations/external-dns-unifi-webhook@45c7f27))
- wire govulncheck into mise and CI ([#&#8203;300](home-operations/external-dns-unifi-webhook#300)) ([8ea7966](home-operations/external-dns-unifi-webhook@8ea7966))

##### Miscellaneous Chores

- **github-action:** update action jdx/mise-action (v4.2.4 → v4.2.5) ([#&#8203;309](home-operations/external-dns-unifi-webhook#309)) ([6291830](home-operations/external-dns-unifi-webhook@6291830))
- **go:** pin go directive to 1.26.1 ([#&#8203;310](home-operations/external-dns-unifi-webhook#310)) ([0674b98](home-operations/external-dns-unifi-webhook@0674b98))
- **mise:** Lock file maintenance tool ([#&#8203;280](home-operations/external-dns-unifi-webhook#280)) ([a140d90](home-operations/external-dns-unifi-webhook@a140d90))
- **mise:** prune lockfile to used platforms ([#&#8203;299](home-operations/external-dns-unifi-webhook#299)) ([d8cd350](home-operations/external-dns-unifi-webhook@d8cd350))
- **mise:** Update tool go (1.26.4 → 1.26.5) ([#&#8203;272](home-operations/external-dns-unifi-webhook#272)) ([4e08b20](home-operations/external-dns-unifi-webhook@4e08b20))
- **mise:** update tool go (1.26.5 → 1.26.6) ([#&#8203;311](home-operations/external-dns-unifi-webhook#311)) ([25f566e](home-operations/external-dns-unifi-webhook@25f566e))
- **mise:** update tool go:golang.org/x/vuln/cmd/govulncheck (1.6.0 → v1.7.0) ([#&#8203;308](home-operations/external-dns-unifi-webhook#308)) ([0874d3f](home-operations/external-dns-unifi-webhook@0874d3f))
- **mise:** Update tool lefthook (2.1.9 → 2.1.10) ([#&#8203;270](home-operations/external-dns-unifi-webhook#270)) ([94a9f77](home-operations/external-dns-unifi-webhook@94a9f77))
- **mise:** Update tool oxfmt (0.57.0 → 0.58.0) ([#&#8203;268](home-operations/external-dns-unifi-webhook#268)) ([18cdddf](home-operations/external-dns-unifi-webhook@18cdddf))
- **mise:** Update tool oxfmt (0.58.0 → 0.59.0) ([#&#8203;273](home-operations/external-dns-unifi-webhook#273)) ([1d1cf5b](home-operations/external-dns-unifi-webhook@1d1cf5b))
- **mise:** Update tool oxfmt (0.59.0 → 0.60.0) ([#&#8203;279](home-operations/external-dns-unifi-webhook#279)) ([ddcdf65](home-operations/external-dns-unifi-webhook@ddcdf65))
- **mise:** Update tool oxfmt (0.60.0 → 0.61.0) ([#&#8203;289](home-operations/external-dns-unifi-webhook#289)) ([ebbeed6](home-operations/external-dns-unifi-webhook@ebbeed6))
- **mise:** Update tool oxfmt (0.61.0 → 0.62.0) ([#&#8203;304](home-operations/external-dns-unifi-webhook#304)) ([b71b144](home-operations/external-dns-unifi-webhook@b71b144))
- **mise:** Update tool oxfmt (0.62.0 → 0.63.0) ([#&#8203;306](home-operations/external-dns-unifi-webhook#306)) ([6a018b0](home-operations/external-dns-unifi-webhook@6a018b0))
- **mise:** Update tool zizmor (1.26.1 → 1.27.0) ([#&#8203;274](home-operations/external-dns-unifi-webhook#274)) ([573fa64](home-operations/external-dns-unifi-webhook@573fa64))
- **mise:** Update tool zizmor (1.27.0 → 1.28.0) ([#&#8203;278](home-operations/external-dns-unifi-webhook#278)) ([2f39159](home-operations/external-dns-unifi-webhook@2f39159))
- **mise:** Update tool zizmor (1.28.0 → 1.29.0) ([#&#8203;297](home-operations/external-dns-unifi-webhook#297)) ([3173103](home-operations/external-dns-unifi-webhook@3173103))
- **release-please:** standardize the release pull request title pattern ([#&#8203;295](home-operations/external-dns-unifi-webhook#295)) ([5f825de](home-operations/external-dns-unifi-webhook@5f825de))
- standardize release-please changelog sections ([#&#8203;291](home-operations/external-dns-unifi-webhook#291)) ([5f0866a](home-operations/external-dns-unifi-webhook@5f0866a))

</details>

---

### Configuration

📅 **Schedule**: (in timezone America/New_York)

- 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 these updates 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:eyJjcmVhdGVkSW5WZXIiOiI0NC4zMS4wIiwidXBkYXRlZEluVmVyIjoiNDQuMzEuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsicmVub3ZhdGUvY29udGFpbmVyIiwidHlwZS9wYXRjaCJdfQ==-->

Reviewed-on: https://git.greyrock.io/greyrock-labs/home-ops/pulls/384
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