Conversation
…o's own dependabot.yml Two maintainer decisions (temper#71). 1. Auto-merge is armed only for non-breaking updates. Breaking uses the leftmost-non-zero rule Cargo and npm carets use (major; 0.x minor; 0.0.x patch). Every update in a grouped PR is read from Dependabot's own summary lines, never from quoted release notes. Anything unreadable as semver is refused, not assumed safe, and temper comments why it did not arm. Motivation: a green PR is no evidence for a workflow action whose changed code runs only on tag or dispatch (varve: cosign-installer, setup-oras). 2. applyDependabotConfig writes .github/dependabot.yml only where none exists. An existing file is the repository's own -- grouping, held majors, paths CI never runs -- and temper cannot know those details. Decided in one place so /configure-repo, /generate-dependabot and the scheduler cannot differ; a 403 or 500 on the existence check throws rather than counting as absence. Negative controls: disabling the existence guard fails 3 tests; treating any error as absence fails 1; removing the refusal fails the handler test. Full suite 867/867, eslint clean. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019TNtfRjLNhEz82G2ggeeNu
Automated review for PR #72pulseengine/temper: Verdict: 💬 Comment Summary: This pull request introduces a new module Findings: 0 mechanical (rivet) · 1 from local AI model. Findings (1):
Generated by a local AI model and post-validated against a strict JSON contract. Each finding includes the verbatim line being criticised — verify by reading the file at the cited location. Reviewed at |
Closes #71.
Two maintainer decisions
1. Auto-merge is armed only for non-breaking updates.
src/dependabot-update-type.jsreads every update a Dependabot PR makes and refuses to arm if any is breaking. It uses the leftmost-non-zero rule that Cargo and npm carets use: a major bump, a 0.x minor, or a 0.0.x patch counts as breaking. When temper refuses, it leaves a comment giving the reason.Updates \x` from … to …` lines, because the title has no versions. witness#211, "the wasmtime group", actually carries 47 → 48.Why CI can't decide this: a green PR proves nothing for an action whose changed code only runs on a tag or a manual dispatch. On varve,
cosign sign-blobruns only in the release workflow andsetup-orasonly in a dispatch-triggered deposit workflow. Before this change, varve#152 (a toml major bump) was merged automatically.2. temper writes
.github/dependabot.ymlonly if the repository has none.If the file exists, it belongs to the repository. It holds choices temper can't know: which updates to group, which majors to hold, which paths PR CI never runs. For example, varve groups minor and patch updates (varve#160), and the generic org config would undo that. The check lives in
applyDependabotConfig, so/configure-repo,/generate-dependabotand the scheduler can't behave differently. If the existence check fails with a 403 or 500, temper throws an error. It doesn't treat the file as missing./generate-dependabotnow says the config was not applied, where before it said "✅ applied!" either way.Evidence
Note: temper only arms auto-merge on
pull_request.opened. Dependabot PRs that are already open keep whatever state they have now.🤖 Generated with Claude Code
https://claude.ai/code/session_019TNtfRjLNhEz82G2ggeeNu