Skip to content

Commit

Permalink
chore: make roadmap issues mini dashboards
Browse files Browse the repository at this point in the history
  • Loading branch information
worstell committed Aug 28, 2024
1 parent 2094725 commit 77ba88e
Show file tree
Hide file tree
Showing 3 changed files with 141 additions and 3 deletions.
39 changes: 36 additions & 3 deletions .github/workflows/workflow-roadmap.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Update roadmap issue #728
name: Update roadmap issues
on:
issues:
types:
Expand All @@ -25,7 +25,7 @@ concurrency:
group: ${{ github.ref }}-workflow-roadmap
cancel-in-progress: true
jobs:
update-workflow-issue:
update-dashboard-issue:
runs-on: ubuntu-latest
permissions:
issues: write
Expand All @@ -34,7 +34,40 @@ jobs:
with:
fetch-depth: 1
- uses: cashapp/activate-hermit@v1
- run: update-workflow-issue
- run: update-dashboard-issue
env:
GH_TOKEN: ${{ secrets.FTL_WORKFLOW_TOKEN }}
GH_REPO: ${{ github.repository }}
update-roadmap-issues:
runs-on: ubuntu-latest
strategy:
matrix:
label: ["jvm"] # add if desired: "codebase-health", "core", "infrastructure", "go", "security", "dx"
permissions:
issues: write
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 1
- uses: cashapp/activate-hermit@v1
- run: |
declare -A label_to_issue_map=(
["codebase-health"]=2443
["core"]=2442
["infrastructure"]=2441
["go"]=2440
["jvm"]=2439
["security"]=2438
["dx"]=2436
)
issue_number=${label_to_issue_map["${{ matrix.label }}"]}
if [ -n "$issue_number" ]; then
update-roadmap-issues "${{ matrix.label }}" "$issue_number"
else
echo "No associated issue found for label '${{ matrix.label }}'."
fi
env:
GH_TOKEN: ${{ secrets.FTL_WORKFLOW_TOKEN }}
GH_REPO: ${{ github.repository }}
Original file line number Diff line number Diff line change
Expand Up @@ -103,4 +103,13 @@ $(
echo "$issues"
)
$(
issues="$(list_issues --label roadmap)"
test -z "$issues" && exit 0
echo "### https://github.com/TBD54566975/ftl/labels/roadmap"
echo
echo "$issues"
)
EOF
96 changes: 96 additions & 0 deletions scripts/update-roadmap-issues
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
#!/bin/bash

label="$1"
issue_number="$2"
if [ -z "$label" ] || [ -z "$issue_number" ]; then
echo "Error: Both label and issue number must be provided."
echo "Usage: $0 <label> <issue_number>"
exit 1
fi

map_to_markdown() {
echo 'map("- #\(.number) \(.labels | map(select(.name != "run-all")) | map("https://github.com/TBD54566975/ftl/labels/\(.name | gsub(" ";"%20"))") | join(" "))")[]'
}

list_issues() {
gh issue list "$@" --label "$label" --json number,labels | jq -r "$(map_to_markdown)" | sort -n
}

search_issues() {
gh search issues --label "$label" --state open --repo TBD54566975/ftl --json number,labels "$@" | jq -r "$(map_to_markdown)" | sort -n
}

list_prioritized_issues() {
gh issue list "$@" --label "$label" --json number,labels | jq '.[]' | jq -s '
map(
. as $issue |
($issue.labels | map(select(.name == "P0")) | length > 0) as $p0 |
($issue.labels | map(select(.name == "P1")) | length > 0) as $p1 |
($issue.labels | map(select(.name == "P2")) | length > 0) as $p2 |
($issue.labels | map(select(.name == "P3")) | length > 0) as $p3 |
$issue + {priority: (if $p0 then 0 elif $p1 then 1 elif $p2 then 2 elif $p3 then 3 else 4 end)}
) |
sort_by(.priority) |
map(del(.priority))
' | jq -r "$(map_to_markdown)"
}

update_issue_template() {
update_issue <<EOF
<!-- This file is generated by scripts/update-workflow-issue. Do not edit manually. -->
$(
issues="$(list_issues --label P0)"
test -z "$issues" && exit 0
echo "### https://github.com/TBD54566975/ftl/labels/P0"
echo
echo "> [!WARNING]"
echo "> These issues are P0 and need immediate attention."
echo "$issues"
)
$(
echo "### All Issues"
echo
issues="$(search_issues -- -label:next -label:roadmap)"
if [ -n "$issues" ]; then
echo "$issues"
else
echo "> [!NOTE]"
echo "> There are no issues."
fi
)
### https://github.com/TBD54566975/ftl/labels/next
$(
issues="$(list_prioritized_issues --label next)"
if test -z "$issues"; then
echo "> [!WARNING]"
echo "> There are no issues labelled for upcoming work."
exit 0
fi
echo "$issues"
)
$(
issues="$(list_issues --label epic)"
test -z "$issues" && exit 0
echo "### https://github.com/TBD54566975/ftl/labels/epic"
echo "$issues"
)
EOF
}

update_issue() {
if test -z "$NOOP"; then
gh issue edit -F - "$issue_number"
else
cat
fi
}

update_issue_template "$issue_number" "$label"

0 comments on commit 77ba88e

Please sign in to comment.