1 changed files with 46 additions and 0 deletions
@ -0,0 +1,46 @@ |
|||||||
|
name: Mark Duplicate PRs |
||||||
|
|
||||||
|
on: |
||||||
|
pull_request: |
||||||
|
types: [closed] |
||||||
|
|
||||||
|
jobs: |
||||||
|
check_duplicate_prs: |
||||||
|
runs-on: ubuntu-latest |
||||||
|
if: github.event.pull_request.merged == 'true' && github.event.pull_request.user.login == 'dependabot[bot]' |
||||||
|
steps: |
||||||
|
- name: Checkout Repository |
||||||
|
uses: actions/checkout@v4 |
||||||
|
|
||||||
|
- name: Extract Dependency Name from PR Title |
||||||
|
id: extract |
||||||
|
run: | |
||||||
|
PR_TITLE="${{ github.event.pull_request.title }}" |
||||||
|
DEPENDENCY_NAME=$(echo "$PR_TITLE" | awk -F ' from ' '{print $1}') |
||||||
|
echo "dependency_name=$DEPENDENCY_NAME" >> $GITHUB_OUTPUT |
||||||
|
|
||||||
|
- name: Find PRs |
||||||
|
id: find_duplicates |
||||||
|
env: |
||||||
|
DEPENDENCY_NAME: ${{ steps.extract.outputs.dependency_name }} |
||||||
|
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
||||||
|
run: | |
||||||
|
PRS=$(gh pr list --search "milestone:${{ github.event.pull_request.milestone.title }} is:merged $DEPENDENCY_NAME" --json number --jq 'map(.number) | join(",")') |
||||||
|
echo "prs=$PRS" >> $GITHUB_OUTPUT |
||||||
|
|
||||||
|
- name: Label Duplicate PRs |
||||||
|
if: steps.find_duplicates.outputs.prs != '' |
||||||
|
env: |
||||||
|
PRS: ${{ steps.find_duplicates.outputs.prs }} |
||||||
|
CURRENT_PR_NUMBER: ${{ github.event.pull_request.number }} |
||||||
|
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
||||||
|
shell: bash |
||||||
|
run: | |
||||||
|
for i in ${PRS//,/ } |
||||||
|
do |
||||||
|
if [ ! $i -eq "$CURRENT_PR_NUMBER" ]; then |
||||||
|
echo "Marking PR $i as duplicate" |
||||||
|
gh pr edit "$i" --add-label "status: duplicate" |
||||||
|
gh pr comment "$i" --body "Duplicate of #$CURRENT_PR_NUMBER" |
||||||
|
fi |
||||||
|
done |
||||||
Loading…
Reference in new issue