Skip to content

Commit

Permalink
ci: Add dependabot configuration
Browse files Browse the repository at this point in the history
  • Loading branch information
TrueSkrillor committed Feb 10, 2025
1 parent 6f8de7d commit 02eb12d
Show file tree
Hide file tree
Showing 2 changed files with 69 additions and 0 deletions.
15 changes: 15 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
version: 2
registries:
rub-nexus:
type: maven-repository
url: https://hydrogen.cloud.nds.rub.de/nexus/repository/maven-releases/
username: dependabot
password: ${{secrets.DEPENDABOT_NEXUS_PASSWORD}}
updates:
- package-ecosystem: "maven"
directory: "/"
schedule:
# Check for dependency updates on a daily basis
interval: "daily"
open-pull-requests-limit: 20
registries: "*"
54 changes: 54 additions & 0 deletions .github/workflows/dependabot-reviewer.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
# Based on 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: read
contents: read

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@v1
- name: Generate temporary access token for GitHub app
id: generate-token
uses: tibdex/github-app-token@v1
with:
app_id: ${{ secrets.DEPENDABOT_REVIEWER_APP_ID }}
private_key: ${{ secrets.DEPENDABOT_REVIEWER_PRIVATE_KEY }}
- name: Enable auto-merge for Dependabot PRs
run: gh pr merge --auto --merge "$PR_URL"
env:
PR_URL: ${{github.event.pull_request.html_url}}
GITHUB_TOKEN: ${{ steps.generate-token.outputs.token }}
- name: Approve any update of protocol-toolkit-bom
if: ${{ steps.dependabot-metadata.outputs.dependency-names == 'de.rub.nds:protocol-toolkit-bom' }}
run: gh pr review $PR_URL --approve -b "I'm **approving** this pull request because **it is a BOM update**"
env:
PR_URL: ${{github.event.pull_request.html_url}}
GITHUB_TOKEN: ${{ steps.generate-token.outputs.token }}
- name: Approve patch and minor updates of other dependencies
if: ${{ (steps.dependabot-metadata.outputs.update-type == 'version-update:semver-patch' || steps.dependabot-metadata.outputs.update-type == 'version-update:semver-minor') && steps.dependabot-metadata.outputs.dependency-names != 'de.rub.nds:protocol-toolkit-bom' }}
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: ${{ steps.generate-token.outputs.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: ${{ steps.generate-token.outputs.token }}
- name: Comment on major updates of non-development dependencies and request review from tls-attacker-extended
if: ${{ steps.dependabot-metadata.outputs.update-type == 'version-update:semver-major' && steps.dependabot-metadata.outputs.dependency-type == 'direct:production' && steps.dependabot-metadata.outputs.dependency-names != 'de.rub.nds:protocol-toolkit-bom' }}
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 "help wanted" --add-reviewer "tls-attacker/tls-attacker-extended"
env:
PR_URL: ${{github.event.pull_request.html_url}}
GITHUB_TOKEN: ${{ steps.generate-token.outputs.token }}

0 comments on commit 02eb12d

Please sign in to comment.