This is an automated email from the ASF dual-hosted git repository.

zihaoxiang pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler.git


The following commit(s) were added to refs/heads/dev by this push:
     new c7a0994fb0 [Chore] Add mergeable check (#16217)
c7a0994fb0 is described below

commit c7a0994fb0df3391f2e78a27752228f40ea93b7e
Author: xiangzihao <[email protected]>
AuthorDate: Wed Jun 26 20:05:49 2024 +0800

    [Chore] Add mergeable check (#16217)
    
    * add mergeable check
---
 .asf.yaml                       |  3 +-
 .github/workflows/mergeable.yml | 87 +++++++++++++++++------------------------
 2 files changed, 38 insertions(+), 52 deletions(-)

diff --git a/.asf.yaml b/.asf.yaml
index abeb08c0b8..1a8f27e5e0 100644
--- a/.asf.yaml
+++ b/.asf.yaml
@@ -46,7 +46,8 @@ github:
           - E2E
           - Docs
           - Frontend Build
-#          - "Mergeable: milestone-label-check"
+          - "Mergeable: milestone-label-check"
+          - "Title Validator"
       required_pull_request_reviews:
         dismiss_stale_reviews: true
         required_approving_review_count: 2
diff --git a/.github/workflows/mergeable.yml b/.github/workflows/mergeable.yml
index 8b7bd8799c..835b34bf57 100644
--- a/.github/workflows/mergeable.yml
+++ b/.github/workflows/mergeable.yml
@@ -14,65 +14,50 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
----
-#version: 2
 
 on:
   pull_request:
+    types:
+      - opened
+      - reopened
+      - synchronize
+      - labeled
+      - unlabeled
+      - milestoned
+      - demilestoned
+
 
 name: "Mergeable"
 
+
 jobs:
   result:
     name: "Mergeable: milestone-label-check"
     runs-on: ubuntu-latest
-    timeout-minutes: 30
+    timeout-minutes: 10
     steps:
-      - name: Status
-        run: |
-          echo "Temporary skipping this check"
-
-#mergeable:
-#  # we can not use `pull_request.*` which including event 
`pull_request.labeled`, according to 
https://github.com/mergeability/mergeable/issues/643,
-#  # otherwise mergeable will keep add or remove label endless, we just need 
this CI act like the default behavior as
-#  # GitHub action workflow `pull_requests` 
https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#pull_request
 like,
-#  # which only trigger runs when a pull_request event's activity type is 
opened, synchronize, or reopened
-#  - when: pull_request.opened, pull_request.reopened, pull_request.synchronize
-#    name: sync-sql-ddl
-#    validate:
-#      # Sql files must change synchronize
-#      - do: dependent
-#        files:
-#          - 
'dolphinscheduler-dao/src/main/resources/sql/dolphinscheduler_h2.sql'
-#          - 
'dolphinscheduler-dao/src/main/resources/sql/dolphinscheduler_mysql.sql'
-#          - 
'dolphinscheduler-dao/src/main/resources/sql/dolphinscheduler_postgresql.sql'
-#        message: 'Sql files not change synchronize'
-#    # Add labels 'sql not sync' and comment to reviewers if Sql files not 
change synchronize
-#    fail:
-#      - do: comment
-#        payload:
-#          body: >
-#            :warning: This PR do not change database DDL synchronize.
-#        leave_old_comment: false
-#      - do: labels
-#        add: 'sql not sync'
-#    # Remove labels 'sql not sync' if pass
-#    pass:
-#      - do: labels
-#        delete: 'sql not sync'
-#
-#  - when: pull_request.*
-#    name: milestone-label-check
-#    validate:
-#      - do: milestone
-#        no_empty:
-#          enabled: false # Cannot be empty when true.
-#          message: 'Milestone is required and cannot be empty.'
-#      - do: label
-#        and:
-#          - must_include:
-#              regex: 'feature|bug|improvement|document|chore|revert'
-#              message: 'Label must include one of the following: `feature`, 
`bug`, `improvement`, `document`, `chore`, `revert`'
-#          - must_include:
-#              regex: 'ready-to-merge'
-#              message: 'Please check if there are PRs that already have a 
`ready-to-merge` label and can be merged, if exists please merge them first.'
+      - name: Check milestone and labels
+        uses: actions/github-script@v7
+        with:
+          script: |
+            const { data } = await github.request("GET 
/repos/{owner}/{repo}/pulls/{pr}", {
+              owner: context.repo.owner,
+              repo: context.repo.repo,
+              pr: context.payload.pull_request.number
+            });
+            if (data.milestone) {
+              core.info(`This pull request has a milestone: 
${data.milestone.title}`);
+            } else {
+              core.setFailed(`A maintainer needs to set the milestone for this 
pull request.`);
+            }
+            let labeledFlag = false;
+            for (const label of data.labels) {
+              if (['feature', 'bug', 'improvement', 'document', 'chore', 
'DSIP', 'CI&CD', 'revert'].includes(label.name)) {
+                core.info(`This pull request has a valid label: 
${label.name}`);
+                labeledFlag = true;
+                break;
+              }
+            }
+            if (!labeledFlag) {
+              core.setFailed(`A maintainer needs to set a valid label for this 
pull request.`);
+            }

Reply via email to