Skip to content

chore(repo): make dependabot subjects pass the commit convention - #19

Merged
mrpollo merged 1 commit into
mainfrom
chore/dependabot-commit-subjects
Oct 12, 2026
Merged

mrpollo merged 1 commit into
mainfrom
chore/dependabot-commit-subjects

Conversation

@TSC21

@TSC21 TSC21 commented Oct 11, 2026

Copy link
Copy Markdown
Member

Dependabot's pull requests fail Commit Checks, and their subjects reach main in a form the repository's own check rejects. With no commit-message setting, dependabot copies the repository's style and writes chore(deps): ... (as on #17), but deps is not a scope check_commits.sh accepts, and the composite action's separate entry puts its directory path in the title, well past 72 characters.

This sets an explicit chore(repo) prefix, so every dependabot subject and title reads chore(repo): bump .... A bump touches several workflows and the composite action, so no single workflow's ci scope fits, and repo is the area for repository-wide maintenance. The two update entries become one with directories, so the workflows and the composite action move together in one pull request and no title carries a directory path. The group is named ci so that the grouped subject, chore(repo): bump the ci group across 2 directories with 5 updates, stays within 72 characters even with the (#NN) a squash merge appends.

Wire impact: none.

Two cases stay over the limit, both from dependabot's own wording, which no setting changes. A month with a single update gets a title like chore(repo): bump actions/checkout from 7.0.1 to 7.0.2 in the ci group across 1 directory; dependabot shortens that commit's subject to chore(repo): bump actions/checkout, which passes, and a squash merge of the one-commit pull request keeps it. From #100 on, a squash-merged subject for both directories comes to 73 characters.

Validation: dependabot.yml validates against the SchemaStore dependabot-2.0 schema, and zizmor 1.30.1 (the pin in workflow_lint.yml) reports no findings. I ported dependabot-core's title and subject code (message_builder.rb, pr_name_prefixer.rb and title_builder.rb on main) and ran 42 cases through check_commits.sh (1 to 7 updates, either or both directories, both capitalizations): no commit subject fails, where all 42 fail with the file as it is on main. Titles fail only in the 6 single-update cases, and squash-merged subjects only with three-digit pull request numbers. The first monthly run after the merge is the real check.

Assisted-by: Claude-Code:claude-opus-5-5

Root cause: with no commit-message setting, dependabot copies the
repository's style and writes chore(deps), as on #17, and deps is not
a scope check_commits.sh accepts. The composite action's own entry also
puts its directory in the title ("in
/.github/actions/setup-mavlink-tooling with N updates"), well past 72
characters. Every dependabot pull request fails Commit Checks, and its
subject reaches main in a form the repository's own check rejects.

Mechanism: an explicit prefix, chore(repo), which dependabot writes
with a colon and a space before every subject and title. A bump touches
several workflows and the composite action, so no single workflow's ci
scope fits, and the repo area covers repository-wide maintenance. The
two entries become one with directories, so the workflows and the
composite action bump together in one pull request and no title
carries a directory path. The group name ci is short, so the grouped
subject, "chore(repo): bump the ci group across 2 directories with 5
updates", stays within 72 characters with the " (#NN)" a squash merge
appends.

Two cases stay outside the limit, both from dependabot's own wording:
a month with a single update gets the title "bump <action> from <old>
to <new> in the ci group across 1 directory", which no setting
shortens, while dependabot cuts that commit's subject to "chore(repo):
bump <action>", which passes and which a squash merge of the one-commit
pull request keeps; and from #100 on, a squash-merged subject for both
directories comes to 73 characters.

Validation: the file validates against the SchemaStore dependabot-2.0
schema, and zizmor 1.30.1 (the pin in workflow_lint.yml) reports no
findings. A port of dependabot-core's title and subject code
(message_builder.rb, pr_name_prefixer.rb and title_builder.rb at main)
over 42 cases (1 to 7 updates, either or both directories, both
capitalizations) gives 0 commit subjects that check_commits.sh
rejects; with the file as it stands on main every case fails. Titles
fail only in the 6 single-update cases, and squash-merged subjects only
with three-digit pull request numbers.

Assisted-by: Claude-Code:claude-opus-5-5
Signed-off-by: Nuno Marques <nmarques@riis.com>
@mrpollo
mrpollo merged commit 7742a18 into main Oct 12, 2026
10 checks passed
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.

2 participants