mirror of
				https://github.com/Swatinem/rust-cache.git
				synced 2025-10-31 15:53:48 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			66 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| # https://docs.github.com/en/code-security/dependabot/working-with-dependabot/automating-dependabot-with-github-actions#enabling-automerge-on-a-pull-request
 | |
| 
 | |
| name: Dependabot Automation
 | |
| on: pull_request
 | |
| 
 | |
| permissions: {}
 | |
| 
 | |
| jobs:
 | |
|   automerge:
 | |
|     runs-on: ubuntu-latest
 | |
|     permissions:
 | |
|       contents: write # for pushing commits
 | |
|       pull-requests: write # for merging PRs
 | |
|     if: github.event.pull_request.user.login == 'dependabot[bot]' && github.repository == 'Swatinem/rust-cache'
 | |
|     steps:
 | |
|       - name: Fetch metadata
 | |
|         id: metadata
 | |
|         uses: dependabot/fetch-metadata@08eff52bf64351f401fb50d4972fa95b9f2c2d1b # v2.4.0
 | |
|         with:
 | |
|           github-token: "${{ secrets.GITHUB_TOKEN }}"
 | |
|       - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
 | |
|         with:
 | |
|           fetch-depth: 2
 | |
|           persist-credentials: false
 | |
|         if: steps.metadata.outputs.update-type == 'version-update:semver-patch'
 | |
|       - name: Check if package-lock.json has been changed
 | |
|         if: steps.metadata.outputs.update-type == 'version-update:semver-patch'
 | |
|         id: npm
 | |
|         env:
 | |
|           PR_URL: ${{github.event.pull_request.html_url}}
 | |
|           GH_TOKEN: ${{secrets.GITHUB_TOKEN}}
 | |
|         run: |
 | |
|           if ! git diff --quiet HEAD~1.. -- package-lock.json; then
 | |
|             echo "changed=true" >> $GITHUB_OUTPUT
 | |
|             echo "changed=true, checking out $PR_URL to allow amend"
 | |
|             gh pr checkout "$PR_URL"
 | |
|           fi
 | |
|       - name: Setup node if necessary
 | |
|         if: steps.npm.outputs.changed != ''
 | |
|         uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0
 | |
|         with:
 | |
|           node-version: 20.x
 | |
|           cache: npm
 | |
|       - name: Re-generate and commit dist/ if changed
 | |
|         id: amend
 | |
|         if: steps.npm.outputs.changed != ''
 | |
|         run: |
 | |
|           npm ci
 | |
|           npm run prepare
 | |
|           if ! git diff --quiet dist/*/index.js; then
 | |
|             echo "dist/ changed, amending last commit"
 | |
|             export $(git log -1 --pretty=format:'GIT_COMMITTER_NAME=%cn GIT_COMMITTER_EMAIL=%ce GIT_AUTHOR_NAME=%an GIT_AUTHOR_EMAIL=%ae')
 | |
|             git fetch --unshallow
 | |
|             echo "Before amend:" && git show --name-only --pretty=
 | |
|             git commit --amend --no-edit --no-reset-author -- dist/*/index.js
 | |
|             echo "After amend:" && git show --name-only --pretty=
 | |
|             git push --force-with-lease origin HEAD
 | |
|             echo "changed=true" >> $GITHUB_OUTPUT
 | |
|           fi
 | |
|       - name: Auto-merge Patch PRs
 | |
|         if: steps.metadata.outputs.update-type == 'version-update:semver-patch'
 | |
|         run: gh pr merge --auto --merge "$PR_URL"
 | |
|         env:
 | |
|           PR_URL: ${{github.event.pull_request.html_url}}
 | |
|           GH_TOKEN: ${{secrets.GITHUB_TOKEN}}
 |