keycloak-scim/.github/check-area-labels.sh

58 lines
1.4 KiB
Bash
Raw Permalink Normal View History

#!/bin/bash -e
TEAMS="teams.yml"
BUG="ISSUE_TEMPLATE/bug.yml"
GH_AREAS=( $(gh label list --search 'area/' --limit 100 --json name | jq -r .[].name | sort) )
LOCAL_AREAS=( $(cat teams.yml | grep 'area/' | sed 's/.*- //') )
BUG_TEMPLATE_AREAS=( $(yq '.body.[] | select(.id | test("area")) | .attributes.options.[]' ISSUE_TEMPLATE/bug.yml | grep -v '^$') )
TEAMS_VALID=true
BUG_VALID=true
echo "Checking: $TEAMS"
for AREA in "${GH_AREAS[@]}"; do
if ! ( echo "${LOCAL_AREAS[@]}" | grep -q -F -w "$AREA" ); then
echo "[$AREA] missing in $TEAMS"
TEAMS_VALID=false
fi
done
for AREA in "${LOCAL_AREAS[@]}"; do
if ! ( echo "${GH_AREAS[@]}" | grep -q -F -w "$AREA" ); then
echo "[$AREA] missing in GitHub"
TEAMS_VALID=false
fi
done
if [ "$TEAMS_VALID" = true ]; then
echo "[OK]"
fi
echo ""
echo "Checking: $BUG"
for AREA in "${GH_AREAS[@]}"; do
AREA_SHORT=$(echo $AREA | sed 's|area/||g')
if ! ( echo "${BUG_TEMPLATE_AREAS[@]}" | grep -q -F -w "$AREA_SHORT" ); then
echo "[$AREA] missing in $BUG"
BUG_VALID=false
fi
done
for AREA in "${BUG_TEMPLATE_AREAS[@]}"; do
AREA_LONG="area/$AREA"
if ! ( echo "${GH_AREAS[@]}" | grep -q -F -w "$AREA_LONG" ); then
echo "[$AREA_LONG] missing in GitHub"
BUG_VALID=false
fi
done
if [ "$BUG_VALID" = true ]; then
echo "[OK]"
fi
if [ "$TEAMS_VALID" != true ] || [ "$BUG_VALID" != true ]; then
exit 1
fi