@@ -43,12 +43,31 @@ jobs:
4343 name : Dependabot metadata
4444 id : metadata
4545 uses : dependabot/fetch-metadata@21025c705c08248db411dc16f3619e6b5f9ea21a # v2.5.0
46+ -
47+ name : Checkout repository
48+ uses : actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
49+ with :
50+ fetch-depth : 0
51+ -
52+ name : Check go directive unchanged
53+ id : go-directive
54+ run : |
55+ changed=false
56+ for gomod in $(find . -name go.mod -not -path '*/vendor/*'); do
57+ head_go=$(grep '^go ' "$gomod" | awk '{print $2}')
58+ base_go=$(git show "origin/${{ github.event.pull_request.base.ref }}:$gomod" 2>/dev/null | grep '^go ' | awk '{print $2}' || echo "")
59+ if [ -n "$base_go" ] && [ "$head_go" != "$base_go" ]; then
60+ echo "::warning title=go-directive::${gomod}: go directive changed from ${base_go} to ${head_go} — skipping auto-merge"
61+ changed=true
62+ fi
63+ done
64+ echo "changed=$changed" >> "$GITHUB_OUTPUT"
4665 -
4766 name : Auto-approve all dependabot PRs
4867 run : gh pr review --approve "$PR_URL"
4968 -
5069 name : Auto-merge dependabot PRs for development dependencies
51- if : ${{ contains(steps.metadata.outputs.dependency-group, 'development-dependencies') }}
70+ if : ${{ contains(steps.metadata.outputs.dependency-group, 'development-dependencies') && steps.go-directive.outputs.changed != 'true' }}
5271 run : |
5372 set +e # Don't exit on error
5473 OUTPUT=$(gh pr merge --auto --rebase "$PR_URL" 2>&1)
7089 exit $EXIT_CODE
7190 -
7291 name : Auto-merge dependabot PRs for go-openapi patches
73- if : ${{ contains(steps.metadata.outputs.dependency-group, 'go-openapi-dependencies') && (steps.metadata.outputs.update-type == 'version-update:semver-minor' || steps.metadata.outputs.update-type == 'version-update:semver-patch') }}
92+ if : ${{ contains(steps.metadata.outputs.dependency-group, 'go-openapi-dependencies') && (steps.metadata.outputs.update-type == 'version-update:semver-minor' || steps.metadata.outputs.update-type == 'version-update:semver-patch') && steps.go-directive.outputs.changed != 'true' }}
7493 run : |
7594 set +e # Don't exit on error
7695 gh pr merge --auto --rebase "$PR_URL"
90109 exit $EXIT_CODE
91110 -
92111 name : Auto-merge dependabot PRs for golang.org updates
93- if : ${{ contains(steps.metadata.outputs.dependency-group, 'golang-org-dependencies') }}
112+ if : ${{ contains(steps.metadata.outputs.dependency-group, 'golang-org-dependencies') && steps.go-directive.outputs.changed != 'true' }}
94113 run : |
95114 set +e # Don't exit on error
96115 OUTPUT=$(gh pr merge --auto --rebase "$PR_URL" 2>&1)
0 commit comments