[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