mirror of
				https://github.com/Unleash/unleash.git
				synced 2025-10-27 11:02:16 +01:00 
			
		
		
		
	feat: add core feature alert gh action (#8948)
Adds a GH action that notifies us that core features were changed. The action listens on paths in the source code where our client api and frontend api are located. If there is a change to these files, we add a comment to the PR to review carefully and add principals and CTO as reviewers.
This commit is contained in:
		
							parent
							
								
									9de96c8004
								
							
						
					
					
						commit
						dfcb196b20
					
				
							
								
								
									
										65
									
								
								.github/workflows/core-feature-alert.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										65
									
								
								.github/workflows/core-feature-alert.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,65 @@ | ||||
| name: Core Feature Alert | ||||
| 
 | ||||
| on: | ||||
|   pull_request: | ||||
|     types: | ||||
|       - opened | ||||
|       - synchronize | ||||
|     paths: | ||||
|       - src/lib/features/client-feature-toggles/* | ||||
|       - src/lib/features/frontend-api/* | ||||
| 
 | ||||
| jobs: | ||||
|   notify-core-changes: | ||||
|     runs-on: ubuntu-latest | ||||
| 
 | ||||
|     steps: | ||||
|       - name: Fetch PR Creator's Username | ||||
|         id: pr-creator | ||||
|         run: echo "PR_CREATOR=${{ github.event.pull_request.user.login }}" >> $GITHUB_ENV | ||||
| 
 | ||||
|       - name: Post a notification about core feature changes if not already commented | ||||
|         uses: actions/github-script@v6 | ||||
|         with: | ||||
|           script: | | ||||
|             const prCreator = process.env.PR_CREATOR; | ||||
|             const commentBody = `@${prCreator}, core features have been modified in this pull request. Please review carefully!`; | ||||
| 
 | ||||
|             const { data: comments } = await github.rest.issues.listComments({ | ||||
|               owner: context.repo.owner, | ||||
|               repo: context.repo.repo, | ||||
|               issue_number: context.payload.pull_request.number, | ||||
|             }); | ||||
| 
 | ||||
|             const alreadyCommented = comments.some(comment => comment.body === commentBody); | ||||
| 
 | ||||
|             if (!alreadyCommented) { | ||||
|               await github.rest.issues.createComment({ | ||||
|                 owner: context.repo.owner, | ||||
|                 repo: context.repo.repo, | ||||
|                 issue_number: context.payload.pull_request.number, | ||||
|                 body: commentBody, | ||||
|               }); | ||||
|               console.log('Posted a new comment.'); | ||||
|             } else { | ||||
|               console.log('Comment already exists, skipping.'); | ||||
|             } | ||||
|       - name: Add reviewers to the PR if they are not the creator | ||||
|         uses: actions/github-script@v6 | ||||
|         with: | ||||
|           script: | | ||||
|             const prCreator = process.env.PR_CREATOR; | ||||
|             const allReviewers = ['FredrikOseberg', 'gastonfournier', 'chriswk', 'ivarconr']; | ||||
|             const reviewersToAdd = allReviewers.filter(reviewer => reviewer !== prCreator); | ||||
| 
 | ||||
|             if (reviewersToAdd.length > 0) { | ||||
|               github.rest.pulls.requestReviewers({ | ||||
|                 owner: context.repo.owner, | ||||
|                 repo: context.repo.repo, | ||||
|                 pull_number: context.payload.pull_request.number, | ||||
|                 reviewers: reviewersToAdd, | ||||
|               }); | ||||
|               console.log(`Added reviewers: ${reviewersToAdd.join(', ')}`); | ||||
|             } else { | ||||
|               console.log(`No reviewers to add as all match the PR creator.`); | ||||
|             } | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user