Skip to content
Latchkey

Issue Manager workflow (explosion/spaCy)

The Issue Manager workflow from explosion/spaCy, 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: explosion/spaCy.github/workflows/issue-manager.ymlLicense MITView source

What it does

This is the Issue Manager workflow from the explosion/spaCy 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: Issue Manager

on:
  schedule:
    - cron: "0 0 * * *"
  issue_comment:
    types:
      - created
      - edited
  issues:
    types:
      - labeled

permissions: {}

jobs:
  issue-manager:
    permissions:
      issues: write
    if: github.repository_owner == 'explosion'
    runs-on: ubuntu-latest
    steps:
      - uses: tiangolo/issue-manager@4d1b7e05935a404dc8337d30bd23be46be8bb8e5  # 0.4.0
        with:
          token: ${{ secrets.GITHUB_TOKEN }}
          config: >
            {
              "resolved": {
                "delay": "P7D",
                "message": "This issue has been automatically closed because it was answered and there was no follow-up discussion.",
                "remove_label_on_comment": true,
                "remove_label_on_close": true
              },
              "more-info-needed": {
                "delay": "P7D",
                "message": "This issue has been automatically closed because there has been no response to a request for more information from the original author. With only the information that is currently in the issue, there's not enough information to take action. If you're the original author, feel free to reopen the issue if you have or find the answers needed to investigate further.",
                "remove_label_on_comment": true,
                "remove_label_on_close": true
              }
            }

The same workflow, on Latchkey

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

name: Issue Manager
 
on:
  schedule:
    - cron: "0 0 * * *"
  issue_comment:
    types:
      - created
      - edited
  issues:
    types:
      - labeled
 
permissions: {}
 
jobs:
  issue-manager:
    timeout-minutes: 30
    permissions:
      issues: write
    if: github.repository_owner == 'explosion'
    runs-on: latchkey-small
    steps:
      - uses: tiangolo/issue-manager@4d1b7e05935a404dc8337d30bd23be46be8bb8e5  # 0.4.0
        with:
          token: ${{ secrets.GITHUB_TOKEN }}
          config: >
            {
              "resolved": {
                "delay": "P7D",
                "message": "This issue has been automatically closed because it was answered and there was no follow-up discussion.",
                "remove_label_on_comment": true,
                "remove_label_on_close": true
              },
              "more-info-needed": {
                "delay": "P7D",
                "message": "This issue has been automatically closed because there has been no response to a request for more information from the original author. With only the information that is currently in the issue, there's not enough information to take action. If you're the original author, feel free to reopen the issue if you have or find the answers needed to investigate further.",
                "remove_label_on_comment": true,
                "remove_label_on_close": true
              }
            }
 

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.