Skip to content

Commit

Permalink
refactor(workflow): dry dependabot.yml
Browse files Browse the repository at this point in the history
Motivation
----------
I was looking into configuration for dependabot to update the same
package across multiple `package.json`s and found the [`directories`
option](https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file#directories)

My goal is to update e.g. `vue` *across all subfolders* to the same
version. You can check our PR list and see that the same dependency is
updated separately for each folder, which is the culprit of our many
dependanbot PRs.

Nevertheless, even if we don't see this behaviour, it's good to DRY our
configuration files.

How to test
-----------
1. Merge this PR
2. See if dependabot updates the same package across several directories
  • Loading branch information
roschaefer committed Aug 15, 2024
1 parent e05a575 commit 4b559c1
Showing 1 changed file with 27 additions and 239 deletions.
266 changes: 27 additions & 239 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
version: 2

updates:

- package-ecosystem: "github-actions"
open-pull-requests-limit: 99
directory: "/"
Expand All @@ -9,197 +11,53 @@ updates:
day: "saturday"
timezone: "Europe/Berlin"
time: "03:00"
- package-ecosystem: npm
open-pull-requests-limit: 99
directory: "/"
rebase-strategy: "disabled"
schedule:
interval: weekly
day: "saturday"
timezone: "Europe/Berlin"
time: "03:00"
groups:
remark:
applies-to: version-updates
patterns:
- "remark*"
vuepress:
applies-to: version-updates
patterns:
- "*vuepress*"
- package-ecosystem: docker
open-pull-requests-limit: 99
directory: "/"
rebase-strategy: "disabled"
schedule:
interval: weekly
day: "saturday"
timezone: "Europe/Berlin"
time: "03:00"

# presenter
- package-ecosystem: npm
open-pull-requests-limit: 99
directory: "/presenter"
directories:
- "/"
- "/admin"
- "/backend"
- "/frontend"
- "/presenter"
- "/tests"
rebase-strategy: "disabled"
schedule:
interval: weekly
day: "saturday"
timezone: "Europe/Berlin"
time: "03:00"
groups:
eslint:
applies-to: version-updates
patterns:
- "*eslint*"
pinia:
applies-to: version-updates
patterns:
- "*pinia*"
react:
cypress:
applies-to: version-updates
patterns:
- "react*"
- "*cypress*"
- "*cucumber*"
remark:
applies-to: version-updates
patterns:
- "remark*"
sass:
applies-to: version-updates
patterns:
- "sass*"
storybook:
applies-to: version-updates
patterns:
- "*storybook*"
stylelint:
applies-to: version-updates
patterns:
- "*stylelint*"
typescript:
applies-to: version-updates
patterns:
- "ts*"
- "*types*"
vite:
applies-to: version-updates
patterns:
- "*vite*"
exclude-patterns:
- "@vuepress/bundler-vite"
- "eslint-plugin-vitest"
- "vite-plugin-checker"
vue:
applies-to: version-updates
patterns:
- "*vue?(/)*"
exclude-patterns:
- "vuetify"
- "*vuepress*"
- "vue-tsc"
vuepress:
applies-to: version-updates
patterns:
- "*vuepress*"
- package-ecosystem: docker
open-pull-requests-limit: 99
directory: "/presenter"
rebase-strategy: "disabled"
schedule:
interval: weekly
day: "saturday"
timezone: "Europe/Berlin"
time: "03:00"

# admin
- package-ecosystem: npm
open-pull-requests-limit: 99
directory: "/admin"
rebase-strategy: "disabled"
schedule:
interval: weekly
day: "saturday"
timezone: "Europe/Berlin"
time: "03:00"
groups:
eslint:
applies-to: version-updates
patterns:
- "*eslint*"
pinia:
applies-to: version-updates
patterns:
- "*pinia*"
react:
applies-to: version-updates
patterns:
- "react*"
remark:
applies-to: version-updates
patterns:
- "remark*"
sass:
applies-to: version-updates
patterns:
- "sass*"
storybook:
applies-to: version-updates
patterns:
- "*storybook*"
stylelint:
applies-to: version-updates
patterns:
- "*stylelint*"
typescript:
applies-to: version-updates
patterns:
- "ts*"
- "*types*"
vite:
applies-to: version-updates
patterns:
- "*vite*"
exclude-patterns:
- "@vuepress/bundler-vite"
- "eslint-plugin-vitest"
- "vite-plugin-checker"
vue:
linting:
applies-to: version-updates
patterns:
- "*vue?(/)*"
- "@eslint-community/eslint-plugin-eslint-comments"
- "@typescript-eslint/*"
- "eslint-*"
- "prettier"
exclude-patterns:
- "vuetify"
- "*vuepress*"
- "vue-tsc"
vuepress:
applies-to: version-updates
patterns:
- "*vuepress*"
- package-ecosystem: docker
open-pull-requests-limit: 99
directory: "/admin"
rebase-strategy: "disabled"
schedule:
interval: weekly
day: "saturday"
timezone: "Europe/Berlin"
time: "03:00"

# frontend
- package-ecosystem: npm
open-pull-requests-limit: 99
directory: "/frontend"
rebase-strategy: "disabled"
schedule:
interval: weekly
day: "saturday"
timezone: "Europe/Berlin"
time: "03:00"
groups:
eslint:
- "eslint"
prisma:
applies-to: version-updates
patterns:
- "*eslint*"
- "*prisma*"
pinia:
applies-to: version-updates
patterns:
Expand Down Expand Up @@ -245,90 +103,20 @@ updates:
- "vuetify"
- "*vuepress*"
- "vue-tsc"
vuepress:
applies-to: version-updates
patterns:
- "*vuepress*"
- package-ecosystem: docker
open-pull-requests-limit: 99
directory: "/frontend"
rebase-strategy: "disabled"
schedule:
interval: weekly
day: "saturday"
timezone: "Europe/Berlin"
time: "03:00"

# backend
- package-ecosystem: npm
open-pull-requests-limit: 99
directory: "/backend"
rebase-strategy: "disabled"
schedule:
interval: weekly
day: "saturday"
timezone: "Europe/Berlin"
time: "03:00"
groups:
eslint:
applies-to: version-updates
patterns:
- "*eslint*"
exclude-patterns:
- "eslint-plugin-n"
- "eslint"
prisma:
applies-to: version-updates
patterns:
- "*prisma*"
remark:
applies-to: version-updates
patterns:
- "remark*"
vuepress:
applies-to: version-updates
patterns:
- "*vuepress*"
- package-ecosystem: docker
open-pull-requests-limit: 99
directory: "/backend"
directories:
- "/"
- "/authentik"
- "/admin"
- "/backend"
- "/frontend"
- "/presenter"
rebase-strategy: "disabled"
schedule:
interval: weekly
day: "saturday"
timezone: "Europe/Berlin"
time: "03:00"

- package-ecosystem: npm
open-pull-requests-limit: 99
directory: "/tests"
rebase-strategy: "disabled"
schedule:
interval: weekly
day: "saturday"
timezone: "Europe/Berlin"
time: "03:00"
groups:
cypress:
applies-to: version-updates
patterns:
- "*cypress*"
- "*cucumber*"
linting:
applies-to: version-updates
patterns:
- "@eslint-community/eslint-plugin-eslint-comments"
- "@typescript-eslint/*"
- "eslint-*"
- "prettier"
exclude-patterns:
- "eslint"
typescript:
applies-to: version-updates
patterns:
- "typescript"
- "ts*"
vuepress:
applies-to: version-updates
patterns:
- "*vuepress*"

0 comments on commit 4b559c1

Please sign in to comment.