Repository navigation
Streamline Dependabot pull requests - #347
Merged
Merged
Conversation
Combine the GitHub Actions and pre-commit updates into a single multi-ecosystem group so that routine CI tooling bumps arrive as one pull request instead of two. Move the schedule from weekly to monthly to cut review overhead, since neither ecosystem affects the package's runtime dependencies and security updates are not tied to this schedule. Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Automate the assignment step, which has been manual on each pull request even though CODEOWNERS already requests the review. Set it in the group configuration so that every grouped update arrives assigned and shows up in the assigned pull request list. Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Keep squash-merge commit subjects, which append the PR number to the PR title, within the 50-character limit. Rename each Dependabot pull request from a workflow, since Dependabot offers no option for a fixed title. Base the title on the changed files so that runtime dependency bumps from security updates stay distinct from CI tooling bumps in the history, and pick the singular or plural form from the dependency list in Dependabot's commit message, which survives the rename on later runs. List the new workflow in CLAUDE.md alongside the others. Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Stop Dependabot from creating and applying its default python label on security update pull requests, since that label is not in labels.yml and has to be removed by hand each time. Assign those pull requests to the maintainer as well, matching the grouped CI tooling updates. Set the open pull request limit to zero so that the new pip entry carries these settings for security updates without also opening routine version bumps to the requirements files. Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Replace the manual step of adding each Dependabot pull request to the next release milestone. Pick the lowest open milestone titled with a semantic version rather than using Dependabot's own milestone option, which accepts only a fixed milestone number and would need editing after every release. Skip pull requests that already have a milestone so that later pushes from Dependabot never override one set by hand. Rename the workflow to reflect its broader role, and update its entry in CLAUDE.md to match. Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Contributor
There was a problem hiding this comment.
🟡 Changes recommended
The workflow’s read-only Dependabot token prevents PR updates, and its stale event-payload milestone check can overwrite a maintainer’s manual assignment.
2 open issues
What changed in this PR
This PR reduces manual Dependabot upkeep by consolidating CI tooling updates and automating pull request metadata.
Changes:
- Groups GitHub Actions and pre-commit updates into one monthly pull request, retaining seven-day cooldowns.
- Configures labels and assignment for pip security updates while disabling routine pip version updates.
- Adds a workflow to shorten Dependabot pull request titles and assign the lowest open release milestone.
| File | Description |
|---|---|
CLAUDE.md |
Adds the triage workflow to the documented workflow list. |
.github/workflows/dependabot-triage.yml |
Automates Dependabot pull request titles and milestone assignment. |
.github/dependabot.yml |
Consolidates tooling updates and configures pip security update metadata. |
Review effort: Balanced
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Add check for existing milestone before setting a new one. Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Description
This PR reduces the manual upkeep that Dependabot pull requests need. The GitHub Actions and pre-commit version updates now share one monthly multi-ecosystem group, so routine CI tooling bumps arrive as a single pull request each month instead of two weekly ones. A new
dependabot-triage.ymlworkflow runs on every Dependabot pull request, replacing its title with a short fixed one and adding it to the lowest open release milestone. A newpipentry independabot.ymlcontrols the labels and assignee on pip security update pull requests without opening any routine version updates for the requirements files. Separate from this PR, I also made the newdependabot-triage.ymlworkflow a required status check in themainruleset.Neither workflow step can run before this merges, because the workflow only runs from
mainonce Dependabot opens a pull request. The first grouped pull request after merging is therefore its first real test. This PR deliberately leaves out automatic rebasing of pull requests that fall behindmainand an approval requirement for Dependabot pull requests only. Dependabot ignores@dependabot rebasecomments posted with the workflow token, and rulesets cannot scope an approval requirement or merge method to a pull request's author, so both stay manual.Motivation
Every Dependabot pull request has needed the same set of manual steps: assigning it, setting its milestone, removing stray labels such as
pythonthat Dependabot creates on security updates, and editing the squash-merge subject so it stays within the 50-character commit subject limit. Dependabot's own titles, such as "Bump the actions group with 3 updates", leave little room once the squash merge appends the pull request number. Weekly updates for two ecosystems also produced a steady stream of small pull requests for tooling that never affects the package's runtime. Security updates do not follow the version update schedule, so the slower cadence does not delay vulnerability fixes.Relevant Issues
None.
Changes
scheduleand single-ecosystemgroupsof thegithub-actionsandpre-commitentries independabot.ymlwith oneci-toolingmulti-ecosystem group on a monthly interval, keeping the 7-daycooldownon each entry.assigneeson theci-toolinggroup so grouped pull requests arrive assigned to the maintainer. Review requests already come fromCODEOWNERS.pipentry withopen-pull-requests-limit: 0,labels: [dependencies], andassignees. The zero limit disables pip version updates, while the labels and assignee still apply to pip security update pull requests, which replaces Dependabot's defaultpythonlabel..github/workflows/dependabot-triage.yml, which runs onopened,reopened, andsynchronizeevents for pull requests authored bydependabot[bot], withpermissions: {}at the top level andissues: writeandpull-requests: writeon its single job."Bump CI tooling"when every changed file is under.github/or is.pre-commit-config.yaml. Otherwise it sets"Bump runtime dependency"or"Bump runtime dependencies", chosen by counting the- dependency-name:entries in Dependabot's own commit messages, which keeps the count correct after the title has already been replaced.vX.Y.Z, sorting the version numbers numerically so thatv5.9.0sorts beforev5.10.0. It skips pull requests that already have a milestone, so a milestone set by hand is never overwritten.dependabot-triage.ymlto the list of workflows inCLAUDE.md.Dependency Updates
None.
Change Magnitude
Minor: Small change such as a bug fix, small enhancement, or documentation update.
Checklist (check each item when completed or not applicable)
mainand is up to date with the upstreammainbranch.--in-place --black). See the style guide for type hints and docstrings for more details.pterasoftwarepackage use type hints. See the style guide for type hints and docstrings for more details.testspackage.testspackage.ascii-only,pre-commit-hooks, andzizmorGitHub actions.lintjob of theCIGitHub action.testjobs of theCIGitHub action.Assisted-by: Claude Opus 5.5