From 5a217e02a486e03054296cba59f8cec215396782 Mon Sep 17 00:00:00 2001 From: Nick Cipollina Date: Wed, 22 Jul 2026 15:29:08 -0400 Subject: [PATCH] ci(github): configure dependabot automation --- .github/dependabot.yml | 42 ++++++++++++++++++++- .github/workflows/dependabot-auto-merge.yml | 42 +++++++++++++++++++++ Directory.Packages.props | 39 +++++++++++-------- LayeredCraft.OptimizedEnums.slnx | 1 + 4 files changed, 107 insertions(+), 17 deletions(-) create mode 100644 .github/workflows/dependabot-auto-merge.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 5e7d1cc..8fb5246 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -1,4 +1,15 @@ version: 2 + +multi-ecosystem-groups: + infrastructure: + schedule: + interval: "weekly" + day: "wednesday" + open-pull-requests-limit: 25 + commit-message: + prefix: "chore" + include: "scope" + updates: - package-ecosystem: "nuget" directory: "/" @@ -6,7 +17,36 @@ updates: interval: "weekly" day: "wednesday" open-pull-requests-limit: 25 + cooldown: + default-days: 7 + commit-message: + prefix: "chore" + include: "scope" groups: - dotnet: + dotnet-minor-patch: + update-types: + - "minor" + - "patch" patterns: - "*" + dotnet-major: + update-types: + - "major" + patterns: + - "*" + + - package-ecosystem: "github-actions" + directory: "/" + patterns: + - "*" + multi-ecosystem-group: "infrastructure" + cooldown: + default-days: 7 + + - package-ecosystem: "uv" + directory: "/" + patterns: + - "*" + multi-ecosystem-group: "infrastructure" + cooldown: + default-days: 7 diff --git a/.github/workflows/dependabot-auto-merge.yml b/.github/workflows/dependabot-auto-merge.yml new file mode 100644 index 0000000..4665ec9 --- /dev/null +++ b/.github/workflows/dependabot-auto-merge.yml @@ -0,0 +1,42 @@ +name: Dependabot auto-merge + +on: + pull_request_target: + types: [opened, synchronize, reopened] + +permissions: + contents: write + pull-requests: write + +jobs: + dependabot: + runs-on: ubuntu-latest + if: github.event.pull_request.user.login == 'dependabot[bot]' && github.repository == 'LayeredCraft/optimized-enums' + steps: + - name: Dependabot metadata + id: metadata + uses: dependabot/fetch-metadata@25dd0e34f4fe68f24cc83900b1fe3fe149efef98 # v3 + with: + github-token: "${{ secrets.GITHUB_TOKEN }}" + + - name: Generate app token + id: app-token + if: steps.metadata.outputs.update-type == 'version-update:semver-patch' || steps.metadata.outputs.update-type == 'version-update:semver-minor' + uses: actions/create-github-app-token@fee1f7d63c2ff003460e3d139729b119787bc349 # v2 + with: + app-id: ${{ secrets.DEPENDABOT_AUTOMERGE_APP_ID }} + private-key: ${{ secrets.DEPENDABOT_AUTOMERGE_PRIVATE_KEY }} + + - name: Approve PR + if: steps.metadata.outputs.update-type == 'version-update:semver-patch' || steps.metadata.outputs.update-type == 'version-update:semver-minor' + run: gh pr review --approve "$PR_URL" + env: + PR_URL: ${{ github.event.pull_request.html_url }} + GH_TOKEN: ${{ steps['app-token'].outputs.token }} + + - name: Enable auto-merge for Dependabot PRs + if: steps.metadata.outputs.update-type == 'version-update:semver-patch' || steps.metadata.outputs.update-type == 'version-update:semver-minor' + run: gh pr merge --auto --squash "$PR_URL" + env: + PR_URL: ${{ github.event.pull_request.html_url }} + GH_TOKEN: ${{ steps['app-token'].outputs.token }} diff --git a/Directory.Packages.props b/Directory.Packages.props index 5124500..a61ec1a 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -28,30 +28,37 @@ + - + - - - + + + - - - - + + + + - - - - + + + + + - - - - + + + + \ No newline at end of file diff --git a/LayeredCraft.OptimizedEnums.slnx b/LayeredCraft.OptimizedEnums.slnx index f33d1be..07b0f60 100644 --- a/LayeredCraft.OptimizedEnums.slnx +++ b/LayeredCraft.OptimizedEnums.slnx @@ -43,6 +43,7 @@ +