diff --git a/.github/workflows/label-add-conflict.yml b/.github/workflows/label-add-conflict.yml deleted file mode 100644 index 43c291b4e889..000000000000 --- a/.github/workflows/label-add-conflict.yml +++ /dev/null @@ -1,53 +0,0 @@ -name: Auto Add Label "stale" & Comment Conflicts - -on: - push: - branches: - - develop - - '4.*' - pull_request: - branches: - - develop - - '4.*' - -jobs: - auto-label-comment-conflict: - - permissions: - contents: read - pull-requests: write - - runs-on: ubuntu-22.04 - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Get PR List - id: PR-list - run: echo "pr_list=$(gh pr list -L 100 --json mergeable,url,labels,author)" >> $GITHUB_OUTPUT - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - - name: 'Add label "stale" and comment' - env: - PR_LIST: ${{ steps.PR-list.outputs.pr_list }} - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: | - - IFS=$'\n' # Set Internal Field Separator to newline to handle array elements - - # Iterate through the PRs in PR_LIST - for pr in $(echo "$PR_LIST" | jq -c '.[]'); do - mergeable=$(echo "$pr" | jq -r '.mergeable') - author=$(echo "$pr" | jq -r '.author.login') - labels=$(echo "$pr" | jq -c '.labels[].name' | tr -d '[]"') - url=$(echo "$pr" | jq -r '.url') - - if [ "$mergeable" != "MERGEABLE" ] && [[ ! "$labels" == *"stale"* ]]; then - # Add "stale" label - gh pr edit $url --add-label "stale" - - # Add a comment - gh pr comment $url --body ":wave: Hi, @$author!

We detected conflicts in your PR against the base branch :speak_no_evil:
You may want to sync :arrows_counterclockwise: your branch with upstream!

Ref: [Syncing Your Branch](https://github.com/codeigniter4/CodeIgniter4/blob/develop/contributing/workflow.md#pushing-your-branch)" - fi - done diff --git a/.github/workflows/label-conflict.yml b/.github/workflows/label-conflict.yml new file mode 100644 index 000000000000..363cb967d274 --- /dev/null +++ b/.github/workflows/label-conflict.yml @@ -0,0 +1,33 @@ +name: Auto Comment Conflicts +on: + pull_request: + branches: + - 'develop' + - '4.*' + types: + - labeled + +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} + cancel-in-progress: true + +jobs: + auto-comment-conflict: + permissions: + contents: read + pull-requests: write + if: github.event.label.name == 'stale' + runs-on: ubuntu-latest + steps: + - name: Add comment for PR with conflict + uses: peter-evans/create-or-update-comment@v3 + with: + token: ${{ secrets.GITHUB_TOKEN }} + issue-number: ${{ github.event.pull_request.number }} + body: | + :wave: Hi, @${{ github.event.pull_request.user.login }}! + + We detected conflicts in your PR against the base branch :speak_no_evil: + You may want to sync :arrows_counterclockwise: your branch with upstream! + + Ref: https://github.com/codeigniter4/CodeIgniter4/blob/develop/contributing/workflow.md#pushing-your-branch diff --git a/.github/workflows/label-remove-conflict.yml b/.github/workflows/label-remove-conflict.yml deleted file mode 100644 index d1b6c665322d..000000000000 --- a/.github/workflows/label-remove-conflict.yml +++ /dev/null @@ -1,36 +0,0 @@ -name: Auto Remove "stale" label - -on: - pull_request: - branches: - - develop - - '4.*' - -jobs: - check-conflict: - runs-on: ubuntu-22.04 - permissions: - contents: read - pull-requests: write - - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Get PR Detail - id: PR-detail - run: echo "detail=$(gh pr view $PR_URL --json mergeable,url,labels,author)" >> $GITHUB_OUTPUT - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - PR_URL: ${{ github.event.pull_request.html_url }} - - - name: 'Remove label "stale"' - env: - PR_DETAIL: ${{ steps.PR-detail.outputs.detail }} - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - PR_URL: ${{ github.event.pull_request.html_url }} - run: | - if [ "$(echo $PR_DETAIL | jq -r '.mergeable')" == "MERGEABLE" ] && \ - [ "$(echo $PR_DETAIL | jq -r '.labels[] | select(.name == "stale")')" != "" ]; then - gh pr edit $PR_URL --remove-label "stale" - fi