Compare commits
1
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
04a5ec4b23 |
@@ -109,3 +109,51 @@ jobs:
|
||||
- name: Cleanup TLS credentials
|
||||
if: always()
|
||||
run: rm -rf /tmp/dagger-tls /tmp/stunnel-dagger.conf /tmp/stunnel.pid
|
||||
|
||||
merge-renovate:
|
||||
name: Auto-merge Renovate PR
|
||||
needs: [check]
|
||||
if: github.event_name == 'pull_request' && startsWith(github.head_ref, 'renovate/')
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 5
|
||||
|
||||
steps:
|
||||
- name: Merge if automerge label is set
|
||||
env:
|
||||
FORGEJO_TOKEN: ${{ github.token }}
|
||||
PR_NUMBER: ${{ github.event.pull_request.number }}
|
||||
run: |
|
||||
python3 - << 'PYEOF'
|
||||
import os, json, urllib.request, urllib.error, sys
|
||||
|
||||
token = os.environ["FORGEJO_TOKEN"]
|
||||
url_base = os.environ.get("GITHUB_SERVER_URL", "").rstrip("/")
|
||||
repo = os.environ.get("GITHUB_REPOSITORY", "")
|
||||
pr_number = os.environ["PR_NUMBER"]
|
||||
api = f"{url_base}/api/v1/repos/{repo}"
|
||||
headers = {"Authorization": f"token {token}", "Content-Type": "application/json"}
|
||||
|
||||
req = urllib.request.Request(f"{api}/issues/{pr_number}/labels", headers=headers)
|
||||
with urllib.request.urlopen(req) as r:
|
||||
labels = [l["name"] for l in json.loads(r.read())]
|
||||
|
||||
if "automerge" not in labels:
|
||||
print(f"PR #{pr_number}: no 'automerge' label — major update, skipping")
|
||||
sys.exit(0)
|
||||
|
||||
body = json.dumps({"Do": "merge"}).encode()
|
||||
req = urllib.request.Request(
|
||||
f"{api}/pulls/{pr_number}/merge",
|
||||
data=body, headers=headers, method="POST"
|
||||
)
|
||||
try:
|
||||
with urllib.request.urlopen(req) as r:
|
||||
print(f"PR #{pr_number} merged successfully")
|
||||
except urllib.error.HTTPError as e:
|
||||
err = e.read().decode()
|
||||
if "already been merged" in err or "has been merged" in err:
|
||||
print(f"PR #{pr_number} already merged — OK")
|
||||
else:
|
||||
print(f"Merge failed: {err}")
|
||||
sys.exit(1)
|
||||
PYEOF
|
||||
|
||||
@@ -6,5 +6,11 @@
|
||||
"labels": ["dependencies"],
|
||||
"github-actions": {
|
||||
"fileMatch": ["^\\.forgejo/workflows/[^/]+\\.ya?ml$"]
|
||||
},
|
||||
"packageRules": [
|
||||
{
|
||||
"matchUpdateTypes": ["minor", "patch", "pin", "digest", "lockFileMaintenance"],
|
||||
"addLabels": ["automerge"]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user