Skip to content
Latchkey

Lock inactive closed issues workflow (pallets/click)

The Lock inactive closed issues workflow from pallets/click, 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: pallets/click.github/workflows/lock.yamlLicense BSD-3-ClauseView source

What it does

This is the Lock inactive closed issues workflow from the pallets/click repository, a real project running GitHub Actions. It is shown here with attribution under its BSD-3-Clause license.

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

The workflow

workflow (.yml)
name: Lock inactive closed issues
# Lock closed issues that have not received any further activity for two weeks.
# This does not close open issues, only humans may do that. It is easier to
# respond to new issues with fresh examples rather than continuing discussions
# on old issues.

on:
  schedule:
    - cron: '0 0 * * *'
permissions: {}
concurrency:
  group: lock
  cancel-in-progress: true
jobs:
  lock:
    runs-on: ubuntu-latest
    permissions:
      issues: write
      pull-requests: write
      discussions: write
    steps:
      - uses: dessant/lock-threads@7266a7ce5c1df01b1c6db85bf8cd86c737dadbe7 # v6.0.0
        with:
          issue-inactive-days: 14
          pr-inactive-days: 14
          discussion-inactive-days: 14

The same workflow, on Latchkey

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

name: Lock inactive closed issues
# Lock closed issues that have not received any further activity for two weeks.
# This does not close open issues, only humans may do that. It is easier to
# respond to new issues with fresh examples rather than continuing discussions
# on old issues.
 
on:
  schedule:
    - cron: '0 0 * * *'
permissions: {}
concurrency:
  group: lock
  cancel-in-progress: true
jobs:
  lock:
    timeout-minutes: 30
    runs-on: latchkey-small
    permissions:
      issues: write
      pull-requests: write
      discussions: write
    steps:
      - uses: dessant/lock-threads@7266a7ce5c1df01b1c6db85bf8cd86c737dadbe7 # v6.0.0
        with:
          issue-inactive-days: 14
          pr-inactive-days: 14
          discussion-inactive-days: 14
 

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.