161 lines
5.3 KiB
JSON
161 lines
5.3 KiB
JSON
{
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"$id": "github_target_private_backup_evidence_gate_v1.schema.json",
|
|
"title": "GitHub Target Private Backup Evidence Gate",
|
|
"type": "object",
|
|
"required": [
|
|
"schema_version",
|
|
"generated_at",
|
|
"status",
|
|
"mode",
|
|
"source_reviews",
|
|
"summary",
|
|
"targets",
|
|
"acceptance_requirements",
|
|
"rejection_rules",
|
|
"operation_boundaries",
|
|
"authorization_flags"
|
|
],
|
|
"properties": {
|
|
"schema_version": {
|
|
"const": "github_target_private_backup_evidence_gate_v1"
|
|
},
|
|
"generated_at": {
|
|
"type": "string"
|
|
},
|
|
"status": {
|
|
"type": "string",
|
|
"pattern": "^blocked_"
|
|
},
|
|
"mode": {
|
|
"const": "read_only_private_backup_evidence_gate"
|
|
},
|
|
"source_reviews": {
|
|
"type": "object"
|
|
},
|
|
"summary": {
|
|
"type": "object",
|
|
"required": [
|
|
"approval_required_target_count",
|
|
"public_probe_visible_target_count",
|
|
"not_found_or_private_target_count",
|
|
"private_backup_verified_count",
|
|
"safe_credential_required_count",
|
|
"safe_credential_accepted_evidence_count",
|
|
"execution_ready_count",
|
|
"repo_creation_authorized",
|
|
"visibility_change_authorized",
|
|
"refs_sync_authorized",
|
|
"github_primary_switch_authorized",
|
|
"workflow_modification_authorized",
|
|
"workflow_trigger_authorized",
|
|
"secret_value_collection_allowed",
|
|
"private_clone_url_collection_allowed",
|
|
"not_found_or_private_as_absent_allowed",
|
|
"public_repo_allowed"
|
|
],
|
|
"properties": {
|
|
"repo_creation_authorized": { "const": false },
|
|
"visibility_change_authorized": { "const": false },
|
|
"refs_sync_authorized": { "const": false },
|
|
"github_primary_switch_authorized": { "const": false },
|
|
"workflow_modification_authorized": { "const": false },
|
|
"workflow_trigger_authorized": { "const": false },
|
|
"secret_value_collection_allowed": { "const": false },
|
|
"private_clone_url_collection_allowed": { "const": false },
|
|
"not_found_or_private_as_absent_allowed": { "const": false },
|
|
"public_repo_allowed": { "const": false }
|
|
}
|
|
},
|
|
"targets": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"required": [
|
|
"github_repo",
|
|
"approval_required",
|
|
"probe_status",
|
|
"visibility_evidence_status",
|
|
"private_backup_verified",
|
|
"owner_response_accepted",
|
|
"refs_sync_ready",
|
|
"execution_ready",
|
|
"blockers",
|
|
"repo_creation_authorized",
|
|
"visibility_change_authorized",
|
|
"refs_sync_authorized",
|
|
"github_primary_switch_authorized",
|
|
"secret_values_collected"
|
|
],
|
|
"properties": {
|
|
"private_backup_verified": { "const": false },
|
|
"owner_response_accepted": { "const": false },
|
|
"refs_sync_ready": { "const": false },
|
|
"execution_ready": { "const": false },
|
|
"repo_creation_authorized": { "const": false },
|
|
"visibility_change_authorized": { "const": false },
|
|
"refs_sync_authorized": { "const": false },
|
|
"github_primary_switch_authorized": { "const": false },
|
|
"secret_values_collected": { "const": false },
|
|
"blockers": {
|
|
"type": "array",
|
|
"minItems": 1
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"acceptance_requirements": {
|
|
"type": "array",
|
|
"minItems": 1,
|
|
"items": { "type": "string" }
|
|
},
|
|
"rejection_rules": {
|
|
"type": "array",
|
|
"minItems": 1,
|
|
"items": { "type": "string" }
|
|
},
|
|
"operation_boundaries": {
|
|
"type": "object",
|
|
"required": [
|
|
"read_only_api_allowed",
|
|
"github_api_write_allowed",
|
|
"gitea_api_write_allowed",
|
|
"repo_creation_allowed",
|
|
"visibility_change_allowed",
|
|
"refs_sync_allowed",
|
|
"workflow_modification_allowed",
|
|
"workflow_trigger_allowed",
|
|
"github_primary_switch_allowed",
|
|
"secret_value_collection_allowed",
|
|
"private_clone_url_collection_allowed"
|
|
],
|
|
"properties": {
|
|
"read_only_api_allowed": { "const": true },
|
|
"github_api_write_allowed": { "const": false },
|
|
"gitea_api_write_allowed": { "const": false },
|
|
"repo_creation_allowed": { "const": false },
|
|
"visibility_change_allowed": { "const": false },
|
|
"refs_sync_allowed": { "const": false },
|
|
"workflow_modification_allowed": { "const": false },
|
|
"workflow_trigger_allowed": { "const": false },
|
|
"github_primary_switch_allowed": { "const": false },
|
|
"secret_value_collection_allowed": { "const": false },
|
|
"private_clone_url_collection_allowed": { "const": false }
|
|
}
|
|
},
|
|
"authorization_flags": {
|
|
"type": "object",
|
|
"properties": {
|
|
"runtime_execution_authorized": { "const": false },
|
|
"repo_creation_authorized": { "const": false },
|
|
"visibility_change_authorized": { "const": false },
|
|
"refs_sync_authorized": { "const": false },
|
|
"workflow_modification_authorized": { "const": false },
|
|
"workflow_trigger_authorized": { "const": false },
|
|
"github_primary_switch_authorized": { "const": false },
|
|
"secret_values_collected": { "const": false }
|
|
}
|
|
}
|
|
}
|
|
}
|