50 lines
1.4 KiB
Python
50 lines
1.4 KiB
Python
#!/usr/bin/env python3
|
|||
|
|
"""Generate GitHub App manifest with domain URL"""
|
||
|
|
import json
|
||
|
|
import base64
|
||
|
|
import secrets
|
||
|
|
|
||
|
|
webhook_secret = secrets.token_hex(20)
|
||
|
|
print(f"Webhook Secret: {webhook_secret}")
|
||
|
|
|
||
|
|
manifest = {
|
||
|
|
"name": "pr-agent-auto-review",
|
||
|
|
"url": "https://github.com/asepharyana",
|
||
|
|
"hook_attributes": {
|
||
|
|
"url": "https://pr-agent.asepharyana.my.id/api/v1/github_webhooks",
|
||
|
|
"active": True
|
||
|
|
},
|
||
|
|
"redirect_url": "https://pr-agent.asepharyana.my.id/setup/callback",
|
||
|
|
"callback_urls": ["https://pr-agent.asepharyana.my.id/setup/callback"],
|
||
|
|
"public": False,
|
||
|
|
"default_events": [
|
||
|
|
"pull_request",
|
||
|
|
"issue_comment"
|
||
|
|
],
|
||
|
|
"default_permissions": {
|
||
|
|
"pull_requests": "write",
|
||
|
|
"issues": "write",
|
||
|
|
"contents": "read",
|
||
|
|
"metadata": "read",
|
||
|
|
"checks": "write"
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
manifest_json = json.dumps(manifest)
|
||
|
|
manifest_b64 = base64.urlsafe_b64encode(manifest_json.encode()).decode()
|
||
|
|
|
||
|
|
print(f"\n{'='*60}")
|
||
|
|
print("BUAT APP BARU - Klik link ini di browser GitHub:")
|
||
|
|
print(f"{'='*60}")
|
||
|
|
print(f"https://github.com/settings/apps/new?manifest={manifest_b64}")
|
||
|
|
print(f"{'='*60}")
|
||
|
|
|
||
|
|
# Save
|
||
|
|
with open("/opt/pr-agent-server/manifest_domain.json", "w") as f:
|
||
|
|
json.dump(manifest, f, indent=2)
|
||
|
|
with open("/opt/pr-agent-server/webhook_secret.txt", "w") as f:
|
||
|
|
f.write(webhook_secret)
|
||
|
|
|
||
|
|
print(f"\nWebhook secret: {webhook_secret}")
|
||
|
|
print(f"Webhook URL: https://pr-agent.asepharyana.my.id/api/v1/github_webhooks")
|