Skip to content

ci: add Dependabot config for uv and Docker dependencies - #120

Merged
tabedzki merged 1 commit into
masterfrom
tabedzki/ci/dependabot-config
Sep 21, 2026
Merged

tabedzki merged 1 commit into
masterfrom
tabedzki/ci/dependabot-config

Conversation

@tabedzki

@tabedzki tabedzki commented Sep 21, 2026 •

Copy link
Copy Markdown
Contributor

🤖 Human guided, AI assisted PR (using this skill). AI text below. 🤖

What changed

Adds .github/dependabot.yml (the repo had Dependabot alerts and automated security fixes enabled, but no config file), modeled on the sibling configs in BrainCOGS/tech_calendar_streamlit#111, BrainCOGS/WaterPubsGUI#4 and BrainCOGS/U19-Data-Viewer#15.

ecosystem directory schedule notes
uv / monthly, Wed 06:00 UTC, 7-day cooldown grouped (python), deps: prefix, limit 5
docker / monthly, Tue 06:00 UTC grouped (docker), docker: prefix, limit 5

Ignore rules on uv (each commented inline with when to remove it):

  • datajoint >=2.0 — 2.x renamed its config file to datajoint.json and ignores the dj_local_conf.json the BrainCOGS repos ship. pyproject.toml already pins datajoint<2.0.0.
  • setuptools >=82 — datajoint <2.0 does import pkg_resources in plugin.py, which connection.py imports on every import datajoint. setuptools 83.0.0 removed pkg_resources entirely and there is no installable replacement (pkg_resources was never published separately; importlib.metadata has no equivalent for the egg_info path datajoint uses). In a clean venv the import fails with ModuleNotFoundError: No module named 'pkg_resources' — verified in BrainCOGS/tech_calendar_streamlit#110. Consequently the setuptools alert (GHSA-h35f-9h28-mq5c) is being dismissed as tolerable risk rather than fixed; low exposure (ReDoS over trusted package metadata).

Deliberately omitted:

  • github-actions — .github/workflows/ does not exist in this repo. Add a Monday-slot entry if workflows are introduced.
  • pip for requirements.txt — nothing in the repo consumes it (README instructs uv sync; Dockerfile does pip install -e; no script references it). It's legacy, and a pip entry alongside uv would just produce duplicate PRs. Deleting the file is a separate decision.

Why this PR first

Automated security fixes are already on. The ignore rules need to reach master before the lock-upgrade PR lands, otherwise Dependabot will keep regenerating an unmergeable setuptools 81→83 bump.

Verification

Assisted-by: ClaudeCode:claude-opus-5

Monthly grouped updates for the uv lock (Wednesday, 7-day cooldown) and
the root Dockerfile (Tuesday), each capped at 5 open PRs.

Two ignore rules on the uv ecosystem:
- datajoint >=2.0: 2.x renamed its config file to datajoint.json and
  ignores the dj_local_conf.json the BrainCOGS repos ship.
- setuptools >=82: datajoint <2.0 imports pkg_resources on every
  import; setuptools 83 removed it with no installable replacement.

No github-actions entry (no .github/workflows/ exists) and no pip entry
for requirements.txt (legacy; nothing in the repo consumes it, and it
would duplicate the uv PRs).

Assisted-by: ClaudeCode:claude-opus-5
@tabedzki
tabedzki force-pushed the tabedzki/ci/dependabot-config branch from b89c920 to e4dac69 Compare September 21, 2026 16:21
@tabedzki
tabedzki merged commit b490b3f into master Sep 21, 2026
tabedzki added a commit that referenced this pull request Sep 21, 2026
The `groups` added in #120 only batch scheduled version updates; a group
defaults to `applies-to: version-updates`, and security updates are
grouped independently. That is why the alert-driven fixes still arrive
as one PR per package. Add an explicit `security-updates` group to both
the uv and docker entries (and make the existing groups' scope explicit)
so each ecosystem's security fixes land as one PR.

Assisted-by: ClaudeCode:claude-opus-5
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