Compare commits
1
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
04a5ec4b23 |
@@ -109,3 +109,51 @@ jobs:
|
|||||||
- name: Cleanup TLS credentials
|
- name: Cleanup TLS credentials
|
||||||
if: always()
|
if: always()
|
||||||
run: rm -rf /tmp/dagger-tls /tmp/stunnel-dagger.conf /tmp/stunnel.pid
|
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
|
||||||
|
|||||||
+7
-1
@@ -6,5 +6,11 @@
|
|||||||
"labels": ["dependencies"],
|
"labels": ["dependencies"],
|
||||||
"github-actions": {
|
"github-actions": {
|
||||||
"fileMatch": ["^\\.forgejo/workflows/[^/]+\\.ya?ml$"]
|
"fileMatch": ["^\\.forgejo/workflows/[^/]+\\.ya?ml$"]
|
||||||
}
|
},
|
||||||
|
"packageRules": [
|
||||||
|
{
|
||||||
|
"matchUpdateTypes": ["minor", "patch", "pin", "digest", "lockFileMaintenance"],
|
||||||
|
"addLabels": ["automerge"]
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user