Repository navigation
Conversation
Only the github-actions ecosystem is declared today, so Dependabot opens one pull request per advisory per manifest for Python. thrift 0.13.0 to 0.24.0 arrived as open-telemetry#5611 and open-telemetry#5615, differing only in which of the two fork-process-model example directories they edit, and protobuf arrived the same way as open-telemetry#4884 and open-telemetry#4896. The uv and pip entries group security updates into a single pull request each. open-pull-requests-limit is 0 so that declaring the ecosystems does not switch on version updates, which Renovate already performs here. Security updates are governed by a separate fixed limit and are not affected by that setting. The cooldown has no effect on security updates. It is set because the dependabot-cooldown audit in zizmor reports any entry that omits it.
Pull request dashboard statusWaiting on reviewers · refreshed 2026-10-26 20:58 UTC Review the latest changes. Status above doesn't look right?
|
This branch has not been deployed
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.
The counterpart of this change for
opentelemetry-python-contribis open-telemetry/opentelemetry-python-contrib#5236. The argument there is not the argument here, because this repository already has a Dependabot configuration and also runs Renovate, so please do not read the two as copies of each other.Definitions
A security update is a pull request Dependabot opens by itself to resolve a published advisory affecting a dependency of this repository. Security updates run for every ecosystem Dependabot can parse, whether or not
.github/dependabot.ymlmentions that ecosystem.A version update is a pull request Dependabot opens on a schedule to move a dependency to its latest release, regardless of any advisory. Version updates run only for an ecosystem that
.github/dependabot.ymldeclares, which today isgithub-actionsand nothing else.A group is a
groupsentry in.github/dependabot.ymlthat tells Dependabot to collect several updates into one pull request instead of opening one per dependency. Itsapplies-tokey chooses which kind it collects, andcommon/lib/dependabot/dependency_group.rb:52independabot-coreshows the default isversion-updates, so collecting security updates requires saying so explicitly.A cooldown is a number of days Dependabot waits after a release is published before proposing it, set by
cooldown.default-days. Omitting the key does not mean zero, because Dependabot's implicit default is three days.What this repository has today
.github/dependabot.ymldeclares one ecosystem,github-actions, with a weekly schedule, a seven day cooldown and a group matching*. That entry works. #5817, "bump the github-actions group across 1 directory with 11 updates", is what it produces, and this change leaves it untouched..github/renovate.json5also exists, and Renovate performs the Python version updates here:lockFileMaintenanceonuv.lockweekly, and apip-compilemanager for the*-requirements.oldest.txtand*-requirements.latest.txtfiles. That matters for the shape of this change and is the subject of Why open-pull-requests-limit is 0.The gap
Neither of those covers Python security updates. Dependabot opens those regardless of configuration, and with no
uvorpipentry to group them, it opens one per advisory per manifest.There are 126 open Dependabot alerts. The largest counts are urllib3 at 43, Pygments at 12, thrift at 9, requests at 8, then django, idna and protobuf at 7 each.
Evidence in this repository
114 Dependabot pull requests have been opened over the life of this repository and 45 merged. 30 of the 114 concern a single package rather than the github-actions group, and in two cases the same package produced two simultaneous pull requests that a group would have collapsed into one.
In both cases the two directories are
docs/examples/fork-process-model/flask-gunicornanddocs/examples/fork-process-model/flask-uwsgi, each with its ownrequirements.txtnaming the same package.thrift is the case worth dwelling on, because it is the one that cost something. #5611 and #5615 were both closed by the stale workflow on 2026-10-02, which told Dependabot not to offer 0.24.0 again, and thrift has had 9 alerts open ever since. One pull request instead of two would have halved the review needed to avoid that, and #5827 addresses the other half.
I checked the two other same-package overlaps I found and they are not duplicates, so I am not counting them. werkzeug #4835 and #4873, and virtualenv #5721 and #5810, are each Dependabot superseding its own earlier pull request with a newer target in the same file. Grouping would not change those.
The change
Two new entries in
.github/dependabot.yml, in one commit, adding no other file. Theuventry:The
pipentry is the same withdirectories: [/**]. Both ecosystems are needed because the Python manifests are split between them:uv.lockat the root is theuvecosystem, and the 49 requirements-style.txtfiles are thepipecosystem. Dependabot's own labels show the split, withpython:uvon #5765, #5800 and #5810 and no such label on thedocs/examplespull requests. Both values are registered ecosystems independabot-core,uvatuv/lib/dependabot/uv/package_manager.rb:11.The key order inside each entry follows the existing
github-actionsentry rather than the order used in the contrib pull request.Why open-pull-requests-limit is 0
Declaring an ecosystem normally switches on version updates for it, and that would be wrong here, because Renovate already performs them. Two bots proposing the same bump is worse than the problem this change fixes.
open-pull-requests-limit: 0prevents it. Security updates are unaffected, and GitHub's reference for.github/dependabot.ymlsays so directly: "Security update pull requests are subject to a separate, fixed limit of 10 open pull requests, which cannot be configured usingopen-pull-requests-limit."So after this merges, Dependabot proposes exactly what it proposes today for Python, grouped, and Renovate keeps doing the rest.
The cooldown, which does nothing here
Both new entries carry a seven day cooldown and it has no effect, which I would rather state than let it read as a judgement about release stability.
GitHub applies a cooldown only to version updates: "The
cooldownoption is only available for version updates, not security updates." The version updates it could delay are disabled byopen-pull-requests-limit: 0. It is present because thedependabot-cooldownaudit in zizmor requires seven days, treats the implicit three day default as insufficient, and does not distinguish the two kinds of update. zizmor runs on every pull request here through.github/workflows/zizmor.yml, and the existinggithub-actionsentry already carries the same key for the same reason, so omitting it on the new entries would raise two medium findings..github/zizmor.ymlexists and could instead carry arules.dependabot-cooldownentry. I did not take that route, because an inert setting is cheaper to read than a suppression that has to be justified again later.What this does not do
It does not reopen anything. thrift's 9 alerts and protobuf's 7 stay open after this merges, because Dependabot has already been told not to offer those releases. #5611 and #5615 need reopening by hand, or the pins raised directly.
It does not touch Renovate, the existing
github-actionsentry, or any workflow.What I could and could not verify
Verified:
https://raw.githubusercontent.com/SchemaStore/schemastore/master/src/schemas/json/dependabot-2.0.json, with no errors.uvandpipare realpackage-ecosystemvalues, andapplies-tois a realgroupskey defaulting toversion-updates, both checked against thedependabot-coresource rather than from memory.Not verified: Dependabot reads
.github/dependabot.ymlonly from the default branch, so none of this takes effect, and none of its runtime behaviour can be observed, until it is merged. In particular I could not confirm howdirectories: [/**]on thepipentry interacts with theuventry at/, since both could match a manifest at the root. If that double-processes anything it would show up as duplicate grouped pull requests rather than as missed updates, and the fix would be to narrow thepipdirectories.