[JH] Add new workflow
This commit is contained in:
		
							parent
							
								
									76a19d218d
								
							
						
					
					
						commit
						202aed56e5
					
				
							
								
								
									
										51
									
								
								.github/workflows/sync-upstream-pr.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										51
									
								
								.github/workflows/sync-upstream-pr.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,51 @@ | ||||
| name: Create Upstream PRs | ||||
| 
 | ||||
| on: | ||||
|   schedule: | ||||
|     - cron: '0 0 * * *' | ||||
|   workflow_dispatch: | ||||
| 
 | ||||
| jobs: | ||||
|   create_prs: | ||||
|     runs-on: ubuntu-latest | ||||
| 
 | ||||
|     steps: | ||||
|       - name: Checkout Forked Repository | ||||
|         uses: actions/checkout@v2 | ||||
|         with: | ||||
|           repository: jonholdermanE/it-tools | ||||
|           token: ${{ secrets.GITHUB_TOKEN }} | ||||
| 
 | ||||
|       - name: Add Upstream Remote | ||||
|         run: git remote add upstream https://github.com/CorentinTh/it-tools.git | ||||
| 
 | ||||
|       - name: Fetch All PRs from Upstream | ||||
|         run: git fetch upstream '+refs/pull/*/head:refs/remotes/upstream-pr/*' | ||||
| 
 | ||||
|       - name: Create PRs in Forked Repository | ||||
|         env: | ||||
|           GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||||
|         run: | | ||||
|           # Fetch the list of open PRs from the upstream repository | ||||
|           prs=$(curl -s -H "Authorization: token $GITHUB_TOKEN" \ | ||||
|               https://api.github.com/repos/CorentinTh/it-tools/pulls?state=open) | ||||
| 
 | ||||
|           for pr in $(echo "$prs" | jq -r '.[] | @base64'); do | ||||
|             _jq() { | ||||
|               echo ${pr} | base64 --decode | jq -r ${1} | ||||
|             } | ||||
| 
 | ||||
|             pr_number=$(_jq '.number') | ||||
|             pr_title=$(_jq '.title') | ||||
|             pr_body=$(_jq '.body') | ||||
|             pr_user_login=$(_jq '.user.login') | ||||
| 
 | ||||
|             branch_name="pr-$pr_number" | ||||
|             git checkout -b $branch_name upstream-pr/$pr_number | ||||
|             git push origin $branch_name | ||||
| 
 | ||||
|             # Create a PR in the forked repository with the same title and body | ||||
|             curl -X POST -H "Authorization: token $GITHUB_TOKEN" \ | ||||
|             -d "{\"title\":\"$pr_title\",\"body\":\"$pr_body\",\"head\":\"$branch_name\",\"base\":\"main\"}" \ | ||||
|             https://api.github.com/repos/YOUR-USERNAME/it-tools/pulls | ||||
|           done | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user