Skip to content
Latchkey

Labels workflow (tiangolo/uvicorn-gunicorn-fastapi-docker)

The Labels workflow from tiangolo/uvicorn-gunicorn-fastapi-docker, explained and optimized by Latchkey.

A

CI health: A - excellent

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

Grade your own workflow free or run it on Latchkey →
Source: tiangolo/uvicorn-gunicorn-fastapi-docker.github/workflows/labeler.ymlLicense MITView source

What it does

This is the Labels workflow from the tiangolo/uvicorn-gunicorn-fastapi-docker 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: Labels
on:
  pull_request_target: # zizmor: ignore[dangerous-triggers]
    types:
      - opened
      - synchronize
      - reopened
      # For label-checker
      - labeled
      - unlabeled

jobs:
  labeler:
    permissions:
      contents: read
      pull-requests: write
    runs-on: ubuntu-latest
    steps:
    - uses: actions/labeler@f27b608878404679385c85cfa523b85ccb86e213 # v6
      if: ${{ github.event.action != 'labeled' && github.event.action != 'unlabeled' }}
    - run: echo "Done adding labels"
  # Run this after labeler applied labels
  check-labels:
    permissions:
      pull-requests: read
    needs:
      - labeler
    runs-on: ubuntu-latest
    steps:
      - uses: docker://agilepathway/pull-request-label-checker:latest
        with:
          one_of: breaking,security,feature,bug,refactor,upgrade,docs,internal
          repo_token: ${{ secrets.GITHUB_TOKEN }}

The same workflow, on Latchkey

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

name: Labels
on:
  pull_request_target: # zizmor: ignore[dangerous-triggers]
    types:
      - opened
      - synchronize
      - reopened
      # For label-checker
      - labeled
      - unlabeled
 
jobs:
  labeler:
    timeout-minutes: 30
    permissions:
      contents: read
      pull-requests: write
    runs-on: latchkey-small
    steps:
    - uses: actions/labeler@f27b608878404679385c85cfa523b85ccb86e213 # v6
      if: ${{ github.event.action != 'labeled' && github.event.action != 'unlabeled' }}
    - run: echo "Done adding labels"
  # Run this after labeler applied labels
  check-labels:
    timeout-minutes: 30
    permissions:
      pull-requests: read
    needs:
      - labeler
    runs-on: latchkey-small
    steps:
      - uses: docker://agilepathway/pull-request-label-checker:latest
        with:
          one_of: breaking,security,feature,bug,refactor,upgrade,docs,internal
          repo_token: ${{ secrets.GITHUB_TOKEN }}
 

What changed

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

Actions used in this workflow