Skip to content
Latchkey

Signature Assistant workflow (scratchfoundation/scratch-blocks)

The Signature Assistant workflow from scratchfoundation/scratch-blocks, 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: scratchfoundation/scratch-blocks.github/workflows/signature-assistant.ymlLicense Apache-2.0View source

What it does

This is the Signature Assistant workflow from the scratchfoundation/scratch-blocks repository, a real project running GitHub Actions. It is shown here with attribution under its Apache-2.0 license.

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

The workflow

workflow (.yml)
name: 'Signature Assistant'
on:
  issue_comment:
    types: [created]
  pull_request_target:
    types: [opened, closed, synchronize]

permissions:
  actions: write
  contents: read
  pull-requests: write
  statuses: write

jobs:
  CLA-Assistant:
    if: github.event_name == 'pull_request_target' ||
      (
      github.event.comment.body == 'recheck' ||
      github.event.comment.body == 'I have read the CLA Document and I hereby sign the CLA'
      )
    runs-on: ubuntu-latest
    steps:
      - uses: scratchfoundation/scratch-agreements/.github/actions/cla-allowlist@56b5881fe70ad0d74ada0ec51f52ff720be869c0 # main
        id: cla-allowlist
      - name: 'CLA Assistant'
        uses: contributor-assistant/github-action@ca4a40a7d1004f18d9960b404b97e5f30a505a08 # v2.6.1
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          # the below token should have repo scope and must be manually added by you in the repository's secrets
          PERSONAL_ACCESS_TOKEN: ${{ secrets.GHA_AGREEMENTS_PAT }}
        with:
          remote-organization-name: 'scratchfoundation'
          remote-repository-name: 'scratch-agreements'
          path-to-signatures: 'signatures/version1/cla.json'
          path-to-document: 'https://github.com/scratchfoundation/scratch-agreements/blob/main/CLA.md'
          branch: 'main'
          allowlist: ${{ steps.cla-allowlist.outputs.allowlist }}

The same workflow, on Latchkey

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

name: 'Signature Assistant'
on:
  issue_comment:
    types: [created]
  pull_request_target:
    types: [opened, closed, synchronize]
 
permissions:
  actions: write
  contents: read
  pull-requests: write
  statuses: write
 
jobs:
  CLA-Assistant:
    timeout-minutes: 30
    if: github.event_name == 'pull_request_target' ||
      (
      github.event.comment.body == 'recheck' ||
      github.event.comment.body == 'I have read the CLA Document and I hereby sign the CLA'
      )
    runs-on: latchkey-small
    steps:
      - uses: scratchfoundation/scratch-agreements/.github/actions/cla-allowlist@56b5881fe70ad0d74ada0ec51f52ff720be869c0 # main
        id: cla-allowlist
      - name: 'CLA Assistant'
        uses: contributor-assistant/github-action@ca4a40a7d1004f18d9960b404b97e5f30a505a08 # v2.6.1
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          # the below token should have repo scope and must be manually added by you in the repository's secrets
          PERSONAL_ACCESS_TOKEN: ${{ secrets.GHA_AGREEMENTS_PAT }}
        with:
          remote-organization-name: 'scratchfoundation'
          remote-repository-name: 'scratch-agreements'
          path-to-signatures: 'signatures/version1/cla.json'
          path-to-document: 'https://github.com/scratchfoundation/scratch-agreements/blob/main/CLA.md'
          branch: 'main'
          allowlist: ${{ steps.cla-allowlist.outputs.allowlist }}
 

What changed

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