Skip to content

Add Dependabot for GitHub Actions and SwiftPM - #402

Merged
tylervick merged 1 commit into
mainfrom
dependabot-config
Aug 7, 2026
Merged

Add Dependabot for GitHub Actions and SwiftPM#402
tylervick merged 1 commit into
mainfrom
dependabot-config

Conversation

@tylervick

@tylervick tylervick commented Aug 7, 2026

Copy link
Copy Markdown
Member

First of the maintenance-automation batch. Closes part of #384.

Why

Third-party actions in this repo went years without a bump. At the 3.0 release, five were between two and six major versions behind:

Action Was Current
Apple-Actions/import-codesign-certs v1 v7
softprops/action-gh-release v1 v3
peter-evans/create-pull-request v3 v8
dawidd6/action-homebrew-bump-formula v3.10.1 v8
reecetech/version-increment 2022.5.1 2024.10.1

And two workflows were already broken by drift nobody was watching for — ci.yml and release.yml both pinned Xcode versions that no longer exist on macos-latest, the second of which would have failed during a release.

Dependabot is the cheapest fix for this class of rot, and unlike a drift detector it arrives with the fix already written.

Grouping

Minor and patch updates are grouped into one PR per ecosystem, so a quiet week costs one review instead of nine. Majors stay ungrouped — those are the ones that break workflows and deserve individual attention.

Weekly, Mondays. Labels reuse the repo's existing dependencies and github_actions.

On Package.resolved

This repo's Package.resolved is schema version 1 — the Swift 5.5-era format, where pins live under object.pins with repositoryURL/package keys rather than the modern top-level pins with location/identity.

Rather than assume Dependabot could read it, I checked dependabot-core:

SUPPORTED_VERSIONS = [1, 2, 3].freeze

PIN_KEYS = {
  1 => { url: "repositoryURL", identity: "package", state: "state" },
  ...

v1 is supported and maps to exactly the keys this file uses, so no regeneration is needed. Regenerating would have churned pinned versions for no benefit.

Not in this PR

SHA-pinning the actions (the other half of #384) comes after the lint workflow lands — it rewrites every uses: line and would conflict with anything adding CI steps.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Chores
    • Added automated weekly maintenance checks to help keep the project’s supporting components up to date.
    • Updates are grouped and labeled consistently, with safeguards to limit the number of simultaneous maintenance changes.
    • This streamlines routine upkeep and makes maintenance activity easier to track.

Third-party actions went years without a bump. At the 3.0 release five of
them were between two and six majors behind, and two workflows were
already broken by drift nobody was watching for: ci.yml pinned an Xcode
that no longer exists on the runner image, and release.yml did the same.

Minor and patch updates are grouped into a single PR per ecosystem so a
quiet week costs one review rather than nine. Majors stay ungrouped,
since those are the ones that break workflows and deserve individual
attention.

Verified Package.resolved is parseable before relying on it: the file is
schema version 1 (Swift 5.5 era), and dependabot-core's Swift parser
supports versions 1, 2 and 3, mapping v1 to the repositoryURL/package
keys this file uses. No regeneration needed.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Aug 7, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 8315ac46-7600-4902-b2c2-aba1f6ca6178

📥 Commits

Reviewing files that changed from the base of the PR and between 377e730 and 30eaecb.

📒 Files selected for processing (1)
  • .github/dependabot.yml

📝 Walkthrough

Walkthrough

The pull request adds Dependabot version 2 configuration for weekly GitHub Actions and Swift dependency updates. It applies labels, groups minor and patch updates, and limits open pull requests to five.

Changes

Dependabot configuration

Layer / File(s) Summary
Dependency update policy
.github/dependabot.yml
Dependabot checks GitHub Actions and Swift dependencies every Monday. It applies ecosystem-specific labels, groups minor and patch updates, and limits open pull requests to five.

Estimated code review effort: 2 (Simple) | ~10 minutes

Possibly related issues

  • Issue 384 — The configuration adds Dependabot coverage for GitHub Actions and Swift dependencies. It does not add commit-SHA pinning for actions.
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the addition of Dependabot configuration for GitHub Actions and SwiftPM.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch dependabot-config

Comment @coderabbitai help to get the list of available commands.

@tylervick
tylervick merged commit 047d077 into main Aug 7, 2026
6 checks passed
@tylervick
tylervick deleted the dependabot-config branch August 7, 2026 23:30
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.

1 participant