aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.github/dependabot.yml36
-rw-r--r--.github/workflows/dependabot-auto.yaml43
2 files changed, 79 insertions, 0 deletions
diff --git a/.github/dependabot.yml b/.github/dependabot.yml
index e70c764..317b202 100644
--- a/.github/dependabot.yml
+++ b/.github/dependabot.yml
@@ -5,6 +5,15 @@
version: 2
updates:
+ - package-ecosystem: "cargo"
+ directory: "/"
+ schedule:
+ interval: "daily"
+ groups:
+ rust-deps:
+ applies-to: version-updates
+ patterns:
+ - "*"
- package-ecosystem: "github-actions"
directory: "/"
schedule:
@@ -14,3 +23,30 @@ updates:
applies-to: version-updates
patterns:
- "*"
+ - package-ecosystem: "npm"
+ directory: "/"
+ schedule:
+ interval: "daily"
+ groups:
+ nodejs-dependencies:
+ applies-to: version-updates
+ patterns:
+ - "*"
+ - package-ecosystem: "nuget"
+ directory: "/"
+ schedule:
+ interval: "daily"
+ groups:
+ dotnet-dependencies:
+ applies-to: version-updates
+ patterns:
+ - "*"
+ - package-ecosystem: "pip"
+ directory: "/"
+ schedule:
+ interval: "daily"
+ groups:
+ python-dependencies:
+ applies-to: version-updates
+ patterns:
+ - "*"
diff --git a/.github/workflows/dependabot-auto.yaml b/.github/workflows/dependabot-auto.yaml
new file mode 100644
index 0000000..911b094
--- /dev/null
+++ b/.github/workflows/dependabot-auto.yaml
@@ -0,0 +1,43 @@
+# Shamelessly stolen from https://nicolasiensen.github.io/2022-07-23-automating-dependency-updates-with-dependabot-github-auto-merge-and-github-actions/
+
+name: Dependabot reviewer
+
+on: pull_request_target
+
+permissions:
+ pull-requests: write
+ contents: write
+
+jobs:
+ review-dependabot-pr:
+ runs-on: ubuntu-latest
+ if: ${{ github.event.pull_request.user.login == 'dependabot[bot]' }}
+ steps:
+ - name: Dependabot metadata
+ id: dependabot-metadata
+ uses: dependabot/fetch-metadata@v2.2.0
+ - name: Enable auto-merge for Dependabot PRs
+ run: gh pr merge --auto --rebase "$PR_URL"
+ env:
+ PR_URL: ${{github.event.pull_request.html_url}}
+ GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
+ - name: Approve patch and minor updates
+ if: ${{steps.dependabot-metadata.outputs.update-type == 'version-update:semver-patch' || steps.dependabot-metadata.outputs.update-type == 'version-update:semver-minor'}}
+ run: gh pr review $PR_URL --approve -b "I'm **approving** this pull request because **it includes a patch or minor update**"
+ env:
+ PR_URL: ${{github.event.pull_request.html_url}}
+ GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
+ - name: Approve major updates of development dependencies
+ if: ${{steps.dependabot-metadata.outputs.update-type == 'version-update:semver-major' && steps.dependabot-metadata.outputs.dependency-type == 'direct:development'}}
+ run: gh pr review $PR_URL --approve -b "I'm **approving** this pull request because **it includes a major update of a dependency used only in development**"
+ env:
+ PR_URL: ${{github.event.pull_request.html_url}}
+ GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
+ - name: Comment on major updates of non-development dependencies
+ if: ${{steps.dependabot-metadata.outputs.update-type == 'version-update:semver-major' && steps.dependabot-metadata.outputs.dependency-type == 'direct:production'}}
+ run: |
+ gh pr comment $PR_URL --body "I'm **not approving** this PR because **it includes a major update of a dependency used in production**"
+ gh pr edit $PR_URL --add-label "requires-manual-qa"
+ env:
+ PR_URL: ${{github.event.pull_request.html_url}}
+ GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} \ No newline at end of file