Skip to content

fix: exempt dependabot PRs from title check by PR author, not event actor#31

Merged
ncipollina merged 4 commits into
mainfrom
fix/dependabot-title-check-skip
Jul 21, 2026
Merged

fix: exempt dependabot PRs from title check by PR author, not event actor#31
ncipollina merged 4 commits into
mainfrom
fix/dependabot-title-check-skip

Conversation

@ncipollina

@ncipollina ncipollina commented Jul 21, 2026

Copy link
Copy Markdown
Collaborator

Summary

Title-check fix:

  • `pr-title-check.yml` skips validation with `if: github.actor != 'dependabot[bot]'`, meant to exempt dependabot's auto-generated (capitalized, non-conventional) titles
  • `github.actor` is whoever triggered this specific event, not who owns the PR — so the exemption silently stops applying the moment a human pushes any follow-up commit to a dependabot PR (e.g. resolving a merge conflict), because that `synchronize` event's actor is the human
  • Switches the condition to `github.event.pull_request.user.login != 'dependabot[bot]'`, which stays tied to PR authorship regardless of who pushes afterward

Dogfooding this repo's own reusable workflows:
This repo ships reusable workflow templates for consumers but never called any of them on its own PRs/pushes.

  • `.github/dependabot.yml` — tracks the `github-actions` ecosystem (no application code here, just pinned actions), grouped minor/patch vs major, same shape as sharp-mud's config
  • `dependabot-auto-merge.yml` — same pattern as sharp-mud: auto-approve + auto-merge patch/minor dependabot PRs, majors stay manual
  • `pr-title-check.yaml` / `release-drafter.yaml` — thin callers triggering on this repo's own `pull_request`/`push` events, invoking the existing reusable `pr-title-check.yml`/`release-drafter.yml` via relative path (`uses: ./.github/workflows/...`) — mirrors exactly how sharp-mud consumes them

Consumer impact (title-check fix)

Repos consume `pr-title-check.yml` via a pinned tag (e.g. sharp-mud's `pr-title-check.yaml` references `@v10.1`). The fix needs a new tag cut (publish the release-drafter draft — which this PR also wires up) and each consumer bumping its pin before it takes effect.

Test plan

  • This PR's own `PR Title Check` and `Release Drafter` runs succeed (first real exercise of the new callers)
  • After merge, confirm a release-drafter draft appears for this repo
  • Cut a new release/tag, confirm dependabot-auto-merge and title-check-skip behave correctly on the next dependabot PR here
  • Bump sharp-mud (and other consumers) to the new tag

🤖 Generated with Claude Code

ncipollina and others added 2 commits July 21, 2026 08:36
…ctor

github.actor reflects whoever triggered the current event, not who
owns the PR — so the skip stopped applying the moment a human pushed
a follow-up commit (e.g. resolving a merge conflict) to an otherwise
dependabot-authored PR, since that push's actor is the human, not
dependabot[bot]. Keying off github.event.pull_request.user.login
instead keeps the exemption tied to PR authorship, which doesn't
change no matter who pushes to the branch afterward.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This repo ships reusable workflow templates for other repos but never
called any of them on its own PRs/pushes - no title validation, no
release drafting, no dependency updates for the actions its own
workflows pin.

- .github/dependabot.yml: track the github-actions ecosystem (this
  repo has no application code, just pinned actions in workflow
  files), grouped by minor/patch vs major like sharp-mud's config
- dependabot-auto-merge.yml: same pattern as sharp-mud - auto-approve
  and auto-merge patch/minor dependabot PRs, leave majors for manual
  review
- pr-title-check.yaml / release-drafter.yaml: thin callers that
  trigger on this repo's own pull_request/push events and invoke the
  existing reusable pr-title-check.yml/release-drafter.yml via
  relative path, mirroring exactly how sharp-mud consumes them

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@github-actions github-actions Bot added the type: fix Bug fix label Jul 21, 2026
ncipollina and others added 2 commits July 21, 2026 08:43
Existing tag history (v8.3, v8.4, v9.0, v10.0, v10.1) is two-part, but
the resolver config had three tiers (major/minor/patch) with the
default $RESOLVED_VERSION template, which tracks a hidden $PATCH digit
that was never displayed - two different patch-labeled merges in a
row would have resolved to the same visible tag.

Adds an explicit version-template of $MAJOR.$MINOR and collapses the
minor/patch tiers into one: everything except 'breaking-change' now
bumps $MINOR, so every release advances the visible version by
exactly one step no matter which label it carries.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
pr-title-check.yaml/release-drafter.yaml sitting next to
pr-title-check.yml/release-drafter.yml was confusing - the .yaml vs
.yml extension was the only visual signal distinguishing "the
reusable template" from "the thing that actually runs on this repo's
own PRs". Prefixing the callers local- makes that distinction explicit
instead of relying on file extension.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@ncipollina

Copy link
Copy Markdown
Collaborator Author

@codex review

Comment thread .github/workflows/dependabot-auto-merge.yml
Comment thread .github/workflows/dependabot-auto-merge.yml
@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. 🚀

Reviewed commit: 8b70379e18

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@ncipollina
ncipollina merged commit 6cc0f64 into main Jul 21, 2026
3 checks passed
@ncipollina
ncipollina deleted the fix/dependabot-title-check-skip branch July 21, 2026 13:00
ncipollina added a commit to LayeredCraft/sharp-mud that referenced this pull request Jul 21, 2026
Picks up the dependabot title-check-skip fix (LayeredCraft/devops-templates#31)
and this repo's own dogfooding of its reusable workflows - the whole
point of that fix only takes effect once consumers move off v10.1.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
ncipollina added a commit to LayeredCraft/sharp-mud that referenced this pull request Jul 21, 2026
…tiple ecosystems (#11)

* chore(deps): Bump the infrastructure group with 5 updates

Bumps the infrastructure group with 5 updates:

| Package | From | To |
| --- | --- | --- |
| [actions/checkout](https://github.com/actions/checkout) | `6` | `7.0.0` |
| [actions/setup-python](https://github.com/actions/setup-python) | `6` | `6.3.0` |
| [actions/upload-pages-artifact](https://github.com/actions/upload-pages-artifact) | `4` | `5` |
| [actions/configure-pages](https://github.com/actions/configure-pages) | `5` | `6` |
| [actions/deploy-pages](https://github.com/actions/deploy-pages) | `4` | `5` |


Updates `actions/checkout` from 6 to 7.0.0
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v6...v7)

Updates `actions/setup-python` from 6 to 6.3.0
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](actions/setup-python@v6...v6.3.0)

Updates `actions/upload-pages-artifact` from 4 to 5
- [Release notes](https://github.com/actions/upload-pages-artifact/releases)
- [Commits](actions/upload-pages-artifact@v4...v5)

Updates `actions/configure-pages` from 5 to 6
- [Release notes](https://github.com/actions/configure-pages/releases)
- [Commits](actions/configure-pages@v5...v6)

Updates `actions/deploy-pages` from 4 to 5
- [Release notes](https://github.com/actions/deploy-pages/releases)
- [Commits](actions/deploy-pages@v4...v5)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 7.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: infrastructure
- dependency-name: actions/setup-python
  dependency-version: 6.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: infrastructure
- dependency-name: actions/upload-pages-artifact
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: infrastructure
- dependency-name: actions/configure-pages
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: infrastructure
- dependency-name: actions/deploy-pages
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: infrastructure
...

Signed-off-by: dependabot[bot] <support@github.com>

* chore(deps): bump devops-templates pin to v10.2

Picks up the dependabot title-check-skip fix (LayeredCraft/devops-templates#31)
and this repo's own dogfooding of its reusable workflows - the whole
point of that fix only takes effect once consumers move off v10.1.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Nick Cipollina <ncipollina@gmail.com>
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

type: fix Bug fix

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant