146 lines
3.9 KiB
JSON
146 lines
3.9 KiB
JSON
{
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"$id": "urn:awoooi:source-control-ref-detail-diff-v1",
|
|
"title": "AWOOOI Source Control Ref Detail Diff (v1)",
|
|
"description": "針對 Gitea / GitHub refs-blocked repo 保存 branch/tag 層級 read-only diff 明細。",
|
|
"type": "object",
|
|
"required": [
|
|
"schema_version",
|
|
"status",
|
|
"date",
|
|
"default_mode",
|
|
"ignored_branches",
|
|
"repo_count",
|
|
"repos"
|
|
],
|
|
"properties": {
|
|
"schema_version": {
|
|
"const": "source_control_ref_detail_diff_v1"
|
|
},
|
|
"status": {
|
|
"type": "string",
|
|
"enum": ["draft_blocked"]
|
|
},
|
|
"date": {
|
|
"type": "string"
|
|
},
|
|
"default_mode": {
|
|
"type": "string",
|
|
"enum": ["read_only_diff"]
|
|
},
|
|
"ignored_branches": {
|
|
"type": "array",
|
|
"items": {"type": "string"}
|
|
},
|
|
"repo_count": {
|
|
"type": "integer",
|
|
"minimum": 0
|
|
},
|
|
"repos": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"required": [
|
|
"repo_key",
|
|
"repo_path",
|
|
"gitea_remote",
|
|
"github_remote",
|
|
"gitea_url_redacted",
|
|
"github_url_redacted",
|
|
"gitea_repo",
|
|
"github_repo",
|
|
"status",
|
|
"blocking_reason",
|
|
"branch_diff",
|
|
"tag_diff",
|
|
"still_forbidden"
|
|
],
|
|
"properties": {
|
|
"repo_key": {"type": "string"},
|
|
"repo_path": {"type": "string"},
|
|
"gitea_remote": {"type": "string"},
|
|
"github_remote": {"type": "string"},
|
|
"gitea_url_redacted": {"type": "string"},
|
|
"github_url_redacted": {"type": "string"},
|
|
"gitea_repo": {"type": "string"},
|
|
"github_repo": {"type": "string"},
|
|
"status": {
|
|
"type": "string",
|
|
"enum": ["blocked", "verified", "probe_failed"]
|
|
},
|
|
"blocking_reason": {"type": "string"},
|
|
"branch_diff": {"$ref": "#/$defs/refDiff"},
|
|
"tag_diff": {"$ref": "#/$defs/refDiff"},
|
|
"still_forbidden": {
|
|
"type": "array",
|
|
"items": {"type": "string"}
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
}
|
|
}
|
|
},
|
|
"$defs": {
|
|
"refItem": {
|
|
"type": "object",
|
|
"required": ["name", "sha"],
|
|
"properties": {
|
|
"name": {"type": "string"},
|
|
"sha": {"type": "string"}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"refMismatch": {
|
|
"type": "object",
|
|
"required": ["name", "gitea_sha", "github_sha"],
|
|
"properties": {
|
|
"name": {"type": "string"},
|
|
"gitea_sha": {"type": "string"},
|
|
"github_sha": {"type": "string"}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"refDiff": {
|
|
"type": "object",
|
|
"required": [
|
|
"gitea_count",
|
|
"github_count",
|
|
"only_gitea_count",
|
|
"only_github_count",
|
|
"sha_mismatch_count",
|
|
"matching_count",
|
|
"only_gitea",
|
|
"only_github",
|
|
"sha_mismatch",
|
|
"matching"
|
|
],
|
|
"properties": {
|
|
"gitea_count": {"type": "integer", "minimum": 0},
|
|
"github_count": {"type": "integer", "minimum": 0},
|
|
"only_gitea_count": {"type": "integer", "minimum": 0},
|
|
"only_github_count": {"type": "integer", "minimum": 0},
|
|
"sha_mismatch_count": {"type": "integer", "minimum": 0},
|
|
"matching_count": {"type": "integer", "minimum": 0},
|
|
"only_gitea": {
|
|
"type": "array",
|
|
"items": {"$ref": "#/$defs/refItem"}
|
|
},
|
|
"only_github": {
|
|
"type": "array",
|
|
"items": {"$ref": "#/$defs/refItem"}
|
|
},
|
|
"sha_mismatch": {
|
|
"type": "array",
|
|
"items": {"$ref": "#/$defs/refMismatch"}
|
|
},
|
|
"matching": {
|
|
"type": "array",
|
|
"items": {"$ref": "#/$defs/refItem"}
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
}
|