Skip to content

ci(dependabot): removed the paths filter of the auto-merge caller - #21

Merged
karlspace merged 2 commits into
mainfrom
ci/dependabot-all-ecosystems
Oct 10, 2026
Merged

karlspace merged 2 commits into
mainfrom
ci/dependabot-all-ecosystems

Conversation

@karlspace

Copy link
Copy Markdown
Contributor

Why

docker-maintenance.yml only started for changes to Dockerfile. Dependabot also updates pip (pyproject.toml) and docker-compose (docker-compose.e2e.yml) here, and those PRs never reached docker-maintenance-dependabot.yml: no job, no annotation, the PR just stayed open without any decision (row 1 of the module's decision table). Owner decision: the module reacts to every Dependabot ecosystem.

What

  1. docker-maintenance.yml: removed the paths: filter from the pull_request trigger (types unchanged: opened, synchronize, reopened, ready_for_review). Updated the header so it describes the real scope, and dropped the claim that the merge triggers docker-release.yml: the merge is made with GITHUB_TOKEN, which starts no push workflow.
  2. actions-maintenance.yml: removed. It called the same module for GitHub Actions updates only, and the module never merges those. With (1), docker-maintenance.yml covers them too and writes the same "left open" annotation. Keeping both would start the module twice on every GitHub Actions PR. The module's job-level concurrency group (docker-maintenance-dependabot-pr-<n>, cancel-in-progress: true) applies across the whole repository, so one of the two runs would be cancelled and leave a cancelled check on the PR.

required-workflows (docker-release.yml), merge-method, auto-approve, merge-update-types (default patch), permissions and secrets: inherit are unchanged. docker-release.yml is not touched: its pull_request paths already cover every file Dependabot changes here.

Per ecosystem

Ecosystem Files changed by Dependabot Reaches module Auto-merge Why Prefix / release
docker Dockerfile (python:3.14-alpine) yes (before too) yes (patch updates) docker-release.yml builds the image from it, pytest gate included, and the e2e round trips run with it chore(docker): no release
pip pyproject.toml yes (new) yes (patch updates) docker-release.yml starts on pyproject.toml. Its pytest job runs pip install -e ".[test]", the image build installs from it and runs pytest, and the round trips run that image chore(deps): no release
docker-compose docker-compose.e2e.yml (postgres, mariadb, mysql, mailpit) yes (new) yes (patch updates) docker-release.yml starts on docker-compose*.yml. The e2e round trips start the server images of docker-compose.e2e.yml (the compose leg uses its database images, the alerts suite uses mailpit). Compose images with ${VAR:-default} cannot be updated by Dependabot chore(deps): no release
github-actions .github/workflows/** yes (via this caller now) no (by design) module guard: a CI change stays open for a manual merge chore(ci): no release
npm, composer, cargo, nuget/.NET, gomod, terraform none n/a n/a not configured in dependabot.yml, and the repository has no such manifests n/a

With merge-update-types: patch, minor and major updates stay open for review with a notice. Most of the tags here are not plain X.Y.Z (3.14-alpine, 18-alpine, 13, 26.7, v1), so in practice most image updates will be left open on purpose. chore(...) prefixes and the GITHUB_TOKEN merge cut no release. The daily check-base-images.yml still handles base-image digest drift.

Compatibility

  • Docker base-image PRs behave exactly as before.
  • Human PRs: the caller job is skipped (dependabot[bot] only), as before.
  • GitHub Actions PRs: one "Docker Maintenance" decision ("left open - a CI change") replaces the former "Actions Maintenance" one.
  • Public repository: the three read scopes (checks/statuses/actions: read) are not needed and were not added.

Test

This PR changes only .github/, so docker-release.yml does not start on it. Its CI shows that the workflow files are valid and that the caller now starts without a paths filter (its job is skipped, because this is not a Dependabot PR). The end-to-end proof comes with the next Dependabot pip or docker-compose PR: it will now get a "Docker Maintenance" run with an annotation.

The caller only started for changes to the Dockerfile, so pip
(pyproject.toml) and docker-compose (docker-compose.e2e.yml) PRs never
reached docker-maintenance-dependabot.yml: no job, no annotation, the
PR just stayed open. Without the filter every Dependabot PR gets an
explicit decision from the module.

Why this is safe:
* required-workflows stays docker-release.yml. Its pull_request paths
  already cover Dockerfile, pyproject.toml and docker-compose*.yml,
  and its PR run genuinely exercises each of them: pytest installs
  from pyproject.toml, the image build runs the pytest gate, and the
  e2e round trips start the server images of docker-compose.e2e.yml.
* GitHub Actions updates and any change under .github/ stay manual by
  the module's own guard.
* Merge settings, permissions and merge-update-types (patch) are
  unchanged.

The header no longer claims the merge triggers docker-release.yml: the
merge is made with GITHUB_TOKEN, which starts no push workflow.
actions-maintenance.yml called the same docker-maintenance-dependabot
module, filtered on .github/workflows/**, for GitHub Actions updates
only. The module never merges those (a CI change cannot be vouched for
by its own CI), so this caller only ever wrote the "left open"
annotation.

docker-maintenance.yml now starts for every Dependabot PR, GitHub
Actions updates included, and writes that same annotation. Keeping both
would start the module twice on every GitHub Actions PR. Its job-level
concurrency group (docker-maintenance-dependabot-pr-<number>, cancel in
progress) is shared repository-wide, so one of the two runs would be
cancelled and leave a cancelled check on the PR.

Nothing that worked is lost: GitHub Actions PRs still get exactly one
explicit decision and stay a manual merge.
@karlspace
karlspace merged commit 429f81c into main Oct 10, 2026
5 checks passed
@karlspace
karlspace deleted the ci/dependabot-all-ecosystems branch October 10, 2026 20:29
@github-actions

Copy link
Copy Markdown
Contributor

🎉 This PR is included in version 1.10.2 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant