Skip to content

Commit 86b7d7e

Browse files
committed
feat: Add workflow for updating "status:" label based on server status
1 parent 951320a commit 86b7d7e

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
name: Update Request Status Label
2+
on:
3+
schedule:
4+
# Run every 5 mins
5+
- cron: "* * * * *"
6+
workflow_dispatch:
7+
8+
permissions:
9+
issues: write
10+
contents: read
11+
12+
jobs:
13+
update-request-status-label:
14+
runs-on: self-hosted
15+
steps:
16+
- uses: actions/checkout@v4
17+
18+
- name: Update issues
19+
run: |
20+
export OS_CLOUD=BIO180006_IU # Select openstack auth settings defined in ".config/openstack/clouds.yaml"
21+
22+
source ~/venv/bin/activate
23+
24+
instance_prefix=${PREFIX:+${PREFIX}_}
25+
instance_basename="${instance_prefix}instance"
26+
27+
openstack server list --name "^${instance_basename}-\d+" -f json | \
28+
jq -r '.[] | [.Name, .Status] | @tsv' | \
29+
while IFS=$'\t' read -r instance_name status; do
30+
issue_number=${instance_name##*-}
31+
status_lowercase=${status,,}
32+
33+
add_label="status:$status_lowercase"
34+
35+
remove_labels=$(gh issue view $issue_number --json labels \
36+
--jq '[.labels[].name | select(test("^status:")?)] | join(",")')
37+
38+
echo "Updating issue $issue_number adding label [$add_label] and removing labels [$remove_labels]"
39+
40+
gh issue edit ${issue_number} --add-label "${add_label}" --remove-label "${remove_labels}"
41+
done
42+
env:
43+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
44+
GH_REPO: ${{ github.repository }}
45+
PREFIX: ${{ vars.INSTANCE_NAME_PREFIX }}

0 commit comments

Comments
 (0)