mirror of
				https://github.com/openimsdk/open-im-server.git
				synced 2025-11-01 00:42:13 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			67 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			67 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| # Copyright © 2023 OpenIM. All rights reserved.
 | |
| #
 | |
| # Licensed under the Apache License, Version 2.0 (the "License");
 | |
| # you may not use this file except in compliance with the License.
 | |
| # You may obtain a copy of the License at
 | |
| #
 | |
| #     http://www.apache.org/licenses/LICENSE-2.0
 | |
| #
 | |
| # Unless required by applicable law or agreed to in writing, software
 | |
| # distributed under the License is distributed on an "AS IS" BASIS,
 | |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | |
| # See the License for the specific language governing permissions and
 | |
| # limitations under the License.
 | |
| 
 | |
| name: Github Rebot for Cherry Pick when PR is merged
 | |
| on:
 | |
|   pull_request_target:
 | |
|     types:
 | |
|       - closed
 | |
| 
 | |
| jobs:
 | |
|   comment:
 | |
|     runs-on: ubuntu-latest
 | |
|     steps:
 | |
|       - name: Comment cherry-pick command
 | |
|         uses: actions/github-script@v7
 | |
|         with:
 | |
|           github-token: ${{ secrets.BOT_GITHUB_TOKEN }}
 | |
|           script: |
 | |
|             const pr = context.payload.pull_request;
 | |
|             if (!pr.merged) {
 | |
|               console.log("PR is not merged. Skipping...");
 | |
|               return;
 | |
|             }
 | |
|             if (!pr.milestone || !pr.milestone.title) {
 | |
|               console.log("Milestone is not set. Skipping...");
 | |
|               return;
 | |
|             }
 | |
|             const milestone = pr.milestone.title;
 | |
|             const ref = `heads/release-${milestone}`;
 | |
|             let branchExists;
 | |
|             try {
 | |
|               await github.rest.git.getRef({
 | |
|                 owner: context.repo.owner,
 | |
|                 repo: context.repo.repo,
 | |
|                 ref: ref
 | |
|               });
 | |
|               branchExists = true;
 | |
|             } catch (error) {
 | |
|               if (error.status === 404) {
 | |
|                 console.log(`Branch ${ref} does not exist. Skipping...`);
 | |
|                 branchExists = false;
 | |
|               } else {
 | |
|                 throw error; // Rethrow if it's another error
 | |
|               }
 | |
|             }
 | |
|             if (!branchExists) {
 | |
|               return;
 | |
|             }
 | |
|             const cherryPickCmd = `/cherry-pick release-${milestone}`;
 | |
|             console.log(`Adding comment: ${cherryPickCmd}`);
 | |
|             await github.rest.issues.createComment({
 | |
|               owner: context.repo.owner,
 | |
|               repo: context.repo.repo,
 | |
|               issue_number: pr.number,
 | |
|               body: cherryPickCmd
 | |
|             }); |