Skip to content

Goes back to GitHub token #2

Goes back to GitHub token

Goes back to GitHub token #2

name: Dependabot auto merger
on:
workflow_call:
inputs:
packages-minor-autoupdate:
description: An array of packages to automerge
default: ""
required: false
type: string
secrets:
GITHUB_TOKEN:

Check failure on line 12 in .github/workflows/dependabot-automerge.yaml

View workflow run for this annotation

GitHub Actions / .github/workflows/dependabot-automerge.yaml

Invalid workflow file

secret name `GITHUB_TOKEN` within `workflow_call` can not be used since it would collide with system reserved name
required: false
permissions:
pull-requests: write
contents: write
jobs:
review-dependabot-pr:
runs-on: ubuntu-latest
if: ${{ github.event.pull_request.user.login == 'dependabot[bot]' }}
env:
PR_URL: ${{github.event.pull_request.html_url}}
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
steps:
- name: Generate token
id: generate_token
uses: tibdex/github-app-token@v1
with:
app_id: ${{ secrets.APP_ID }}
private_key: ${{ secrets.PRIVATE_KEY }}
- name: Update GITHUB_TOKEN
run: echo "GITHUB_TOKEN=${{ steps.generate_token.outputs.token }}" >> $GITHUB_ENV
- name: Dependabot metadata
id: dependabot-metadata
uses: dependabot/fetch-metadata@v1.5.1
- name: Enable auto-merge for Dependabot PRs
run: gh pr merge --auto --merge "$PR_URL"
- name: Approve patch updates
if: ${{ steps.dependabot-metadata.outputs.update-type == 'version-update:semver-patch' }}
run: gh pr review $PR_URL --approve -b "**Approving** patch update"
- name: Approve minor updates of development dependencies
if: ${{ steps.dependabot-metadata.outputs.update-type == 'version-update:semver-minor' && steps.dependabot-metadata.outputs.dependency-type == 'direct:development'}}
run: gh pr review $PR_URL --approve -b "**Approving** minor update to a development dependency"
- name: Approve minor updates of allowlisted production dependencies
if: ${{ steps.dependabot-metadata.outputs.update-type == 'version-update:semver-minor' && steps.dependabot-metadata.outputs.dependency-type == 'direct:production' && contains(fromJSON(inputs.packages-minor-autoupdate), steps.dependabot-metadata.outputs.dependency-names) }}
run: gh pr review $PR_URL --approve -b "**Approving** minor update to an allowlisted production dependency"
- name: Comment on minor updates of non-allowlisted production dependencies
if: ${{ steps.dependabot-metadata.outputs.update-type == 'version-update:semver-minor' && steps.dependabot-metadata.outputs.dependency-type == 'direct:production' && !contains(fromJSON(inputs.packages-minor-autoupdate), steps.dependabot-metadata.outputs.dependency-names) }}
run: |
gh pr comment $PR_URL --body "**Not approving** minor update to a non-allowlisted production dependency"
gh pr edit $PR_URL --add-label "requires-manual-approval"
- name: Comment on major updates of production 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 "**Not approving** major update to a production dependency"
gh pr edit $PR_URL --add-label "requires-manual-approval"