harvester-ui-extension/.github/workflows/pr-management-auto-assign-action.yaml
Andy Lee f3c442f0ea
ci: update auto assign workflow
Signed-off-by: Andy Lee <andy.lee@suse.com>
2026-03-24 14:28:51 +08:00

55 lines
1.8 KiB
YAML

name: "PR Management Auto Assign"
on:
workflow_run:
workflows: ["PR Management Auto Assign Collect Data"]
types: [completed]
env:
REPO_NAME: harvester/harvester-ui-extension
jobs:
auto-assign:
runs-on: ubuntu-latest
if: ${{ github.event.workflow_run.conclusion == 'success' }}
permissions:
actions: read
pull-requests: write
steps:
- name: Download PR data artifact
uses: actions/download-artifact@v4
with:
name: pr-auto-assign-data
run-id: ${{ github.event.workflow_run.id }}
github-token: ${{ secrets.CUSTOM_GITHUB_TOKEN }}
- name: Load PR data
run: |
cat pr-auto-assign-data.env >> $GITHUB_ENV
- name: Checkout repository
uses: actions/checkout@v4
- name: Auto assign based on config
env:
GH_TOKEN: ${{ secrets.CUSTOM_GITHUB_TOKEN }}
run: |
# Read config
ADD_ASSIGNEES=$(yq e '.addAssignees' .github/auto-assign-config.yaml)
ADD_REVIEWERS=$(yq e '.addReviewers' .github/auto-assign-config.yaml)
REVIEWERS=$(yq e '.reviewers[]' .github/auto-assign-config.yaml 2>/dev/null || true)
# Assign author if addAssignees is 'author'
if [[ "$ADD_ASSIGNEES" == "author" ]]; then
echo "Assigning PR author: $PR_AUTHOR"
gh pr edit "$PR_NUMBER" --repo "${REPO_NAME}" --add-assignee "$PR_AUTHOR"
fi
# Add reviewers if addReviewers is true and reviewers list is non-empty
if [[ "$ADD_REVIEWERS" == "true" && -n "$REVIEWERS" ]]; then
SELECTED=$(echo "$REVIEWERS" | xargs)
echo "Adding reviewers: $SELECTED"
for reviewer in $SELECTED; do
gh pr edit "$PR_NUMBER" --repo "${REPO_NAME}" --add-reviewer "$reviewer"
done
fi