From 557633a5d64227fc6c61826a19ff54ae362a14fd Mon Sep 17 00:00:00 2001 From: Adipa Wijayathilaka Date: Fri, 24 Jul 2026 16:50:48 -0400 Subject: [PATCH 1/2] copy support for multiple teams from shared vulcan workflow (unnecessary here, but for consistency) --- .github/workflows/vulcan-approval.yml | 38 ++++++++++++++++++--------- 1 file changed, 26 insertions(+), 12 deletions(-) diff --git a/.github/workflows/vulcan-approval.yml b/.github/workflows/vulcan-approval.yml index 81b97c30..70f03416 100644 --- a/.github/workflows/vulcan-approval.yml +++ b/.github/workflows/vulcan-approval.yml @@ -17,20 +17,31 @@ jobs: env: GH_TOKEN: ${{ secrets.APPROVAL_CHECK_GITHUB_TOKEN }} PR_NUMBER: ${{ github.event.pull_request.number }} - TEAM: vulcan + TEAMS: vulcan SHA: ${{ github.event.pull_request.head.sha }} shell: bash run: | + if [ -z "$TEAMS" ]; then + echo "Error: 'teams' input is required." + exit 1 + fi + + if [ -n "$TEAMS" ]; then + IFS=',' read -r -a TEAMS_LIST <<< "$TEAMS" + fi + + TEAMS_STR=$(IFS=','; echo "${TEAMS_LIST[*]}") + create_success_check() { local summary="$1" echo "Creating success check on commit ${SHA}..." gh api "/repos/${GITHUB_REPOSITORY}/check-runs" \ --method POST \ - --field name="${TEAM}-approval" \ + --field name="[${TEAMS_STR}]-approval" \ --field head_sha="${SHA}" \ --field status="completed" \ --field conclusion="success" \ - --field "output[title]=${TEAM} approval" \ + --field "output[title]=[${TEAMS_STR}] approval" \ --field "output[summary]=${summary}" } @@ -53,15 +64,18 @@ jobs: echo "Approvers found:" echo "$APPROVERS" - # Check if any approver is a member of the team + # Check if any approver is a member of the specified team(s) for USER in $APPROVERS; do - MEMBERSHIP=$(gh api "/orgs/${GITHUB_REPOSITORY_OWNER}/teams/${TEAM}/memberships/${USER}" --jq '.state' 2>/dev/null || true) - echo "Membership status for ${USER}: ${MEMBERSHIP}" - if [ "$MEMBERSHIP" = "active" ]; then - echo "Found ${TEAM} team approval from: ${USER}" - create_success_check "Approved by ${TEAM} team member: ${USER}" - exit 0 - fi + for APPROVER_TEAM in "${TEAMS_LIST[@]}"; do + echo "Checking membership for user ${USER} in team ${APPROVER_TEAM}..." + MEMBERSHIP=$(gh api "/orgs/${GITHUB_REPOSITORY_OWNER}/teams/${APPROVER_TEAM}/memberships/${USER}" --jq '.state' 2>/dev/null || true) + echo "Membership status for ${USER}: ${MEMBERSHIP}" + if [ "$MEMBERSHIP" = "active" ]; then + echo "Found ${APPROVER_TEAM} team approval from: ${USER}" + create_success_check "Approved by ${APPROVER_TEAM} team member: ${USER}" + exit 0 + fi + done done # Check for auto-approved dependency update PRs @@ -91,4 +105,4 @@ jobs: done fi - echo "No approvals from ${TEAM} team members found." + echo "No approvals from ${TEAMS_STR} team members found." \ No newline at end of file From 51a310e12f5234f5ad9780ca9a70939fdf0170bf Mon Sep 17 00:00:00 2001 From: Adipa Wijayathilaka Date: Mon, 27 Jul 2026 13:07:35 -0400 Subject: [PATCH 2/2] lint: was missing editorconfig in vscode... somehow --- .github/workflows/vulcan-approval.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/vulcan-approval.yml b/.github/workflows/vulcan-approval.yml index 70f03416..2c556b80 100644 --- a/.github/workflows/vulcan-approval.yml +++ b/.github/workflows/vulcan-approval.yml @@ -25,7 +25,7 @@ jobs: echo "Error: 'teams' input is required." exit 1 fi - + if [ -n "$TEAMS" ]; then IFS=',' read -r -a TEAMS_LIST <<< "$TEAMS" fi @@ -105,4 +105,4 @@ jobs: done fi - echo "No approvals from ${TEAMS_STR} team members found." \ No newline at end of file + echo "No approvals from ${TEAMS_STR} team members found."