Skip to content
Latchkey

Auto-merge Dependabot workflow (mietzen/porkbun-ddns)

The Auto-merge Dependabot workflow from mietzen/porkbun-ddns, explained and optimized by Latchkey.

C

CI health: C - fair

Point runs-on at Latchkey and get run de-duplication, job timeouts, SHA-pinned actions, self-healing for flaky steps, and up to 58% lower cost, applied automatically.

Grade your own workflow free or run it on Latchkey →
Source: mietzen/porkbun-ddns.github/workflows/auto-merge-dependabot.ymlLicense MITView source

What it does

This is the Auto-merge Dependabot workflow from the mietzen/porkbun-ddns repository, a real project running GitHub Actions. It is shown here with attribution under its MIT license.

Below, Latchkey shows a faster, safer version produced by its optimization engine.

The workflow

workflow (.yml)
name: Auto-merge Dependabot
on: 
  pull_request:
      types:
        - opened
      branches:
        - 'main'

permissions:
  pull-requests: write
  contents: write

jobs:
  auto-merge:
    runs-on: ubuntu-latest
    if: github.actor == 'dependabot[bot]'
    steps:
      - uses: actions/create-github-app-token@v3
        id: generate-token
        with:
          app-id: ${{ secrets.APP_ID }}
          private-key: ${{ secrets.APP_PRIVATE_KEY }}
      - uses: peter-evans/enable-pull-request-automerge@v3
        with:
          token: ${{ steps.generate-token.outputs.token }}
          pull-request-number: ${{ github.event.pull_request.number }}
          merge-method: squash

The same workflow, on Latchkey

Removes redundant runs and caps runaway jobs. Added and changed lines are highlighted.

name: Auto-merge Dependabot
on: 
  pull_request:
      types:
        - opened
      branches:
        - 'main'
 
permissions:
  pull-requests: write
  contents: write
 
concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true
 
jobs:
  auto-merge:
    timeout-minutes: 30
    runs-on: latchkey-small
    if: github.actor == 'dependabot[bot]'
    steps:
      - uses: actions/create-github-app-token@v3
        id: generate-token
        with:
          app-id: ${{ secrets.APP_ID }}
          private-key: ${{ secrets.APP_PRIVATE_KEY }}
      - uses: peter-evans/enable-pull-request-automerge@v3
        with:
          token: ${{ steps.generate-token.outputs.token }}
          pull-request-number: ${{ github.event.pull_request.number }}
          merge-method: squash

What changed

1 third-party action is referenced by a movable tag. Pin it to the commit SHA (Latchkey resolves and applies this automatically) so a repointed tag cannot change what runs.

This workflow runs 1 job per trigger. On Latchkey the same minutes cost up to 58% less than GitHub-hosted, with zero queue time.

Actions used in this workflow