Public Access
DEVX-108: feat: add standard label creation to configure_repo
Post-merge / detect-type (push) Successful in 16s
Post-merge / validate-commit-msg (push) Successful in 21s
Post-merge / vikunja (push) Successful in 24s
Post-merge / configure-repo (push) Successful in 17s
Post-merge / sync-wiki (push) Successful in 49s
Post-merge / release (push) Successful in 50s
Post-merge / badges (push) Successful in 58s
Build Images / detect-type (push) Successful in 1m28s
Post-merge / publish (push) Successful in 20s
Build Images / build-and-push (push) Successful in 3m2s
Build Images / cleanup (push) Successful in 3m9s
Post-merge / detect-type (push) Successful in 16s
Post-merge / validate-commit-msg (push) Successful in 21s
Post-merge / vikunja (push) Successful in 24s
Post-merge / configure-repo (push) Successful in 17s
Post-merge / sync-wiki (push) Successful in 49s
Post-merge / release (push) Successful in 50s
Post-merge / badges (push) Successful in 58s
Build Images / detect-type (push) Successful in 1m28s
Post-merge / publish (push) Successful in 20s
Build Images / build-and-push (push) Successful in 3m2s
Build Images / cleanup (push) Successful in 3m9s
This commit was merged in pull request #165.
This commit is contained in:
@@ -1,9 +1,10 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Configure repository: branch protection + repo settings via Gitea REST API.
|
||||
"""Configure repository: branch protection, repo settings, and standard labels.
|
||||
|
||||
Uses ``GiteaClient`` for branch protection and repo settings.
|
||||
The ``tea`` CLI is used for label creation if available, with a
|
||||
fallback to ``GiteaClient`` if tea is not installed.
|
||||
Uses ``GiteaClient`` for branch protection, repo settings, and label
|
||||
creation. Standard labels (bug, ready-to-merge, feedback, tooling,
|
||||
ci-improvement, doc-improvement, workflow-improvement) are created
|
||||
idempotently via ``ensure_label``.
|
||||
|
||||
Usage:
|
||||
CI_GITEA_TOKEN=<token> python3 -m devx.tools.configure_repo --repo my-repo
|
||||
@@ -71,6 +72,19 @@ def _default_repo_settings_config() -> dict[str, Any]:
|
||||
}
|
||||
|
||||
|
||||
# Standard labels created in every oblachno repo.
|
||||
# These cover CI failure notifications, subagent feedback, and auto-merge.
|
||||
_STANDARD_LABELS: list[dict[str, str]] = [
|
||||
{"name": "bug", "color": "#ee0701", "description": "Something is not working"},
|
||||
{"name": "ready-to-merge", "color": "#a2eeef", "description": "PR has been reviewed and is ready for auto-merge"},
|
||||
{"name": "feedback", "color": "#fbca04", "description": "Issues from subagent or agent feedback"},
|
||||
{"name": "tooling", "color": "#c5def5", "description": "Tool-related feedback or improvements"},
|
||||
{"name": "ci-improvement", "color": "#84b6eb", "description": "CI workflow improvements"},
|
||||
{"name": "doc-improvement", "color": "#d4c5f9", "description": "Documentation improvements"},
|
||||
{"name": "workflow-improvement", "color": "#fef2c0", "description": "Workflow alignment or pattern improvements"},
|
||||
]
|
||||
|
||||
|
||||
def _handle_http_error(e: APIError) -> None:
|
||||
"""Raise a user-friendly Click exception for HTTP errors."""
|
||||
if e.status == http.HTTPStatus.FORBIDDEN:
|
||||
@@ -138,6 +152,12 @@ def configure_repo(
|
||||
client.update_repo_settings(cast(dict[str, object], rs_config))
|
||||
click.echo(_(" - Auto-delete branch after merge: yes"))
|
||||
|
||||
click.echo("")
|
||||
click.echo(_("Ensuring standard labels..."))
|
||||
for label in _STANDARD_LABELS:
|
||||
client.ensure_label(label["name"], label["color"], label["description"])
|
||||
click.echo(_(" - {count} standard labels verified", count=len(_STANDARD_LABELS)))
|
||||
|
||||
click.echo("")
|
||||
click.echo(_("Repository configuration complete."))
|
||||
except APIError as e:
|
||||
|
||||
@@ -3078,5 +3078,21 @@
|
||||
"pl": "Rebasing PR #{pr} via Gitea API...",
|
||||
"ru": "Rebasing PR #{pr} via Gitea API...",
|
||||
"zh": "Rebasing PR #{pr} via Gitea API..."
|
||||
},
|
||||
"Ensuring standard labels...": {
|
||||
"bg": "Ensuring standard labels...",
|
||||
"de": "Ensuring standard labels...",
|
||||
"en": "Ensuring standard labels...",
|
||||
"pl": "Ensuring standard labels...",
|
||||
"ru": "Ensuring standard labels...",
|
||||
"zh": "Ensuring standard labels..."
|
||||
},
|
||||
" - {count} standard labels verified": {
|
||||
"bg": " - {count} standard labels verified",
|
||||
"de": " - {count} standard labels verified",
|
||||
"en": " - {count} standard labels verified",
|
||||
"pl": " - {count} standard labels verified",
|
||||
"ru": " - {count} standard labels verified",
|
||||
"zh": " - {count} standard labels verified"
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user