44 lines
1.2 KiB
Python
44 lines
1.2 KiB
Python
import os
|
|
import requests
|
|
from typing import Dict, List
|
|
|
|
GITEA_API = os.getenv("GITEA_API_URL", "https://forge.alexanderwhitestone.com/api/v1")
|
|
GITEA_TOKEN = os.getenv("GITEA_TOKEN")
|
|
REPOS = [
|
|
"hermes-agent",
|
|
"the-nexus",
|
|
"timmy-home",
|
|
"timmy-config",
|
|
]
|
|
|
|
BRANCH_PROTECTION = {
|
|
"required_pull_request_reviews": True,
|
|
"required_status_checks": True,
|
|
"required_signatures": False,
|
|
"required_linear_history": False,
|
|
"allow_force_push": False,
|
|
"allow_deletions": False,
|
|
"required_approvals": 1,
|
|
"dismiss_stale_reviews": True,
|
|
"restrictions": {
|
|
"users": ["@perplexity"],
|
|
"teams": []
|
|
}
|
|
}
|
|
|
|
def apply_protection(repo: str):
|
|
url = f"{GITEA_API}/repos/Timmy_Foundation/{repo}/branches/main/protection"
|
|
headers = {
|
|
"Authorization": f"token {GITEA_TOKEN}",
|
|
"Content-Type": "application/json"
|
|
}
|
|
response = requests.post(url, json=BRANCH_PROTECTION, headers=headers)
|
|
if response.status_code == 200:
|
|
print(f"✅ Protection applied to {repo}/main")
|
|
else:
|
|
print(f"❌ Failed to apply protection to {repo}/main: {response.text}")
|
|
|
|
if __name__ == "__main__":
|
|
for repo in REPOS:
|
|
apply_protection(repo)
|