I wanted to ensure that when this template repository was used to create a new repo that repo would have a specific set of labels.
Here's the workflow I came up with, saved as .github/workflows/ensure_labels.yml
:
name: Ensure labels
on: [push]
jobs:
ensure_labels:
runs-on: ubuntu-latest
steps:
- name: Create labels
uses: actions/github-script@v6
with:
script: |
try {
await github.rest.issues.createLabel({
...context.repo,
name: 'captions'
});
await github.rest.issues.createLabel({
...context.repo,
name: 'whisper'
});
} catch(e) {
// Ignore if labels exist already
}
This creates captions
and whisper
labels, if they do not yet exist.
It's wrapped in a try/catch
so that if the labels exist already (as they will on subsequent runs) the error can be ignored.
Note that you need to use await ...
inside that try/catch
block or exceptions thrown by those methods will still cause the action run to fail.
The ...context.repo
trick saves on having to pass owner
and repo
explicitly.
Created 2022-09-25T11:28:21-07:00, updated 2022-09-25T11:28:53-07:00 · History · Edit