- Inicio
- Docs Control
- Referencia de configuración
Referencia de configuración
El archivo de configuración central impulsa todo el comportamiento de aplicación, sincronización y envío. Reside en .github/config/repo-settings.json en docs-control y es obtenido por los repositorios descendentes en el momento de la ejecución del flujo de trabajo.
{ "_comment": "Central repo-settings config — enforced by enforce-repo-settings.yml", "repository": { "private": false, "has_issues": true, "has_projects": false, "has_wiki": false, "is_template": false, "allow_squash_merge": true, "allow_merge_commit": true, "allow_rebase_merge": true, "allow_auto_merge": false, "delete_branch_on_merge": true, "web_commit_signoff_required": false, "squash_merge_commit_title": "COMMIT_OR_PR_TITLE", "squash_merge_commit_message": "COMMIT_MESSAGES", "merge_commit_title": "MERGE_MESSAGE", "merge_commit_message": "PR_TITLE", "allow_update_branch": true, "homepage": "" }, "actions_permissions": { "default_workflow_permissions": "write", "can_approve_pull_request_reviews": true }, "branch_protection": [ { "branch": "main", "enforce_admins": true, "required_status_checks": { "strict": true, "contexts": [ "Check linked issues", "lint / Lint Code Base", "lint / Shell Unit Tests" ], "self_contexts": ["Check linked issues", "Lint Code Base", "Shell Unit Tests"] }, "required_pull_request_reviews": { "dismiss_stale_reviews": false, "require_code_owner_reviews": false, "required_approving_review_count": 0, "require_last_push_approval": false, "dismissal_restrictions": { "users": [], "teams": [] }, "bypass_pull_request_allowances": { "users": [], "teams": [], "apps": [] } }, "restrictions": null, "required_linear_history": false, "allow_force_pushes": false, "allow_deletions": false, "block_creations": false, "required_conversation_resolution": false, "lock_branch": false, "allow_fork_syncing": false } ], "topics": [], "pages": { "enabled": true, "build_type": "workflow" }, "managed_files": { "source_repo": "f5-sales-demo/docs-control", "files": [ {"src": "workflows/github-pages-deploy.yml", "dest": ".github/workflows/github-pages-deploy.yml"}, {"src": "workflows/enforce-repo-settings.yml", "dest": ".github/workflows/enforce-repo-settings.yml"}, {"src": "workflows/require-linked-issue.yml", "dest": ".github/workflows/require-linked-issue.yml"}, {"src": "workflows/antigravity-review.yml", "dest": ".github/workflows/antigravity-review.yml"}, {"src": "workflows/antigravity-translate.yml", "dest": ".github/workflows/antigravity-translate.yml"}, {"src": ".github/PULL_REQUEST_TEMPLATE.md", "dest": ".github/PULL_REQUEST_TEMPLATE.md"}, {"src": ".github/ISSUE_TEMPLATE/bug_report.md", "dest": ".github/ISSUE_TEMPLATE/bug_report.md"}, {"src": ".github/ISSUE_TEMPLATE/feature_request.md", "dest": ".github/ISSUE_TEMPLATE/feature_request.md"}, {"src": ".github/ISSUE_TEMPLATE/documentation.md", "dest": ".github/ISSUE_TEMPLATE/documentation.md"}, {"src": ".github/ISSUE_TEMPLATE/config.yml", "dest": ".github/ISSUE_TEMPLATE/config.yml"},
{"src": "CONTRIBUTING.md", "dest": "CONTRIBUTING.md"}, {"src": "CLAUDE.md", "dest": "CLAUDE.md"}, {"src": "AGENTS.md", "dest": "AGENTS.md"}, {"src": ".agents/skills/demo-components/SKILL.md", "dest": ".agents/skills/demo-components/SKILL.md"}, {"src": ".agents/skills/i18n-translate/SKILL.md", "dest": ".agents/skills/i18n-translate/SKILL.md"}, {"src": ".editorconfig", "dest": ".editorconfig"}, {"src": ".gitignore", "dest": ".gitignore"}, {"src": "LICENSE", "dest": "LICENSE"}, {"src": ".pre-commit-config.yaml", "dest": ".pre-commit-config.yaml"} ] }}Referencia de campos
Sección titulada «Referencia de campos»repository
Sección titulada «repository»Configuración estándar del repositorio de GitHub aplicada a través de PATCH /repos/{owner}/{repo}. Cada clave se asigna directamente al campo de la API de GitHub. El flujo de trabajo de aplicación compara cada clave con el valor actual del repositorio y solo aplica parches a las claves que se han desviado.
Ajustes destacados:
delete_branch_on_merge: true— limpia automáticamente las ramas de PR fusionadasallow_update_branch: true— habilita el botón “Update branch” en las PRhomepage: ""— se calcula automáticamente en tiempo de ejecución comohttps://f5-sales-demo.github.io/{repo}/
actions_permissions
Sección titulada «actions_permissions»Controla los permisos de flujo de trabajo de GitHub Actions para el repositorio:
default_workflow_permissions: "write"— los flujos de trabajo obtienen acceso de lectura/escritura al repositorio de forma predeterminadacan_approve_pull_request_reviews: true— permite que los flujos de trabajo aprueben solicitudes de extracción
Controles de automatización de Antigravity
Sección titulada «Controles de automatización de Antigravity»El flujo de trabajo Configure Antigravity Controls cambia las variables de organización que controlan el
revisor y el traductor de Antigravity. Cada fase es segura de reejecutar:
disabledestablece ambas variables enfalsecon visibilidadall.pilotestablece ambas variables entruecon visibilidadselectedrestringida a docs-control.allestablece ambas variables entruecon visibilidadallsolo después de validar el recibo de revisión exact-head del piloto seleccionado y la publicación de la traducción en los 12 idiomas.
El flujo de trabajo utiliza el token de acceso personal de gobernanza existente, reintentos limitados de la API de GitHub y latidos de progreso estructurados. No requiere una aplicación de GitHub ni funciones de GitHub Enterprise.
branch_protection
Sección titulada «branch_protection»Un arreglo de reglas de protección de ramas. Cada entrada especifica un nombre de branch y los ajustes de protección deseados. Actualmente solo main está protegida.
Campos clave:
enforce_admins: true— las reglas de protección también se aplican a los administradores del repositoriorequired_status_checks.strict: true— las ramas deben estar actualizadas antes de fusionarserequired_status_checks.contexts— los nombres de las comprobaciones que deben pasar los repositorios descendentes (por ejemplo,Check linked issuesylint / Shell Unit Tests)required_status_checks.self_contexts— los nombres de las comprobaciones que debe pasar el propio docs-control (por ejemplo,Check linked issuesyShell Unit Tests)required_pull_request_reviews— requiere que todos los cambios ingresen a través de un pull request mientras querequired_approving_review_count: 0mantiene opcional la aprobación humana; las listas de desestimación y exención permanecen vacíasrestrictions: null— sin restricciones de push más allá de la protección de ramas
contexts frente a self_contexts
Sección titulada «contexts frente a self_contexts»Las comprobaciones de flujos de trabajo reutilizables en repositorios descendentes utilizan <caller_job_key> / <reusable_job_name>, mientras que docs-control informa sus nombres de trabajo simples. La puerta de enlace de incidencias vinculadas es una excepción: su flujo de trabajo programado publica el estado de confirmación Check linked issues directamente en cada repositorio, por lo que tanto contexts como self_contexts deben usar ese nombre exacto.
El campo self_contexts almacena los nombres de las comprobaciones que se aplican al propio docs-control. Durante la aplicación, el flujo de trabajo detecta si se está ejecutando en el repositorio de origen y sustituye contexts por self_contexts antes de aplicar la protección de ramas. El campo self_contexts siempre se elimina antes de enviar la carga útil a la API de GitHub.
Shell Unit Tests es la puerta de enlace de pruebas uniforme del repositorio. El flujo de trabajo reutilizable siempre lo informa: los repositorios consumidores ejecutan cada archivo tests/test-*.sh, mientras que un repositorio sin pruebas coincidentes informa de un éxito con un mensaje explícito de sin pruebas. Esto hace que las pruebas de shell del repositorio sean obligatorias de forma predeterminada en lugar de depender de listas de inclusión voluntaria por repositorio.
Perfiles de pruebas de shell del consumidor
Sección titulada «Perfiles de pruebas de shell del consumidor»El valor predeterminado asume que cada script tests/test-*.sh de nivel raíz es hermético en un ejecutor alojado por GitHub no aprovisionado. Un repositorio que también almacena pruebas de integración de servicios o contenedores bajo ese glob necesita una entrada consumer_shell_tests.profiles en repo-settings.json.
Cada perfil clasifica el inventario coincidente completo:
- Las entradas
unitcontienen unpathde prueba y un arregloargs. El ejecutor pasa cada argumento literalmente, sin evaluación de shell. - Las entradas
environmentcontienen unpathde prueba y unareasonno vacía que explica por qué la puerta de enlace de unidad del ejecutor no puede ejecutarla.
El flujo de trabajo reutilizable obtiene el selector y la configuración de la misma revisión main de docs-control, registra esa revisión y valida el inventario antes de ejecutar cualquier cosa. La configuración faltante, las rutas o argumentos no seguros, las rutas duplicadas y las pruebas no clasificadas o faltantes hacen que falle el contexto requerido. Esto convierte a un perfil en un contrato de clasificación auditado en lugar de una lista de ignorados. Los repositorios sin un perfil mantienen el valor predeterminado general.
La sustitución de xcsh excluye ambos contextos de Super-Linter porque ese repositorio no llama al flujo de trabajo reutilizable de Super-Linter; sus contextos nativos check, pii-guard y test siguen siendo obligatorios. La verificación en vivo debe demostrar que una exclusión es necesaria antes de ser agregada.
No requiera un contexto de un flujo de trabajo con filtros paths o paths-ignore. GitHub deja ese contexto pendiente cuando el flujo de trabajo no se inicia. Las herramientas de seguridad generales deben ejecutarse en un flujo de trabajo de solicitud de extracción no filtrado o en una auditoría programada de árbol completo; la auditoría de seguridad de flujo de trabajo gestionado utiliza este último modelo para zizmor. Una condición a nivel de trabajo es segura porque un trabajo omitido sigue informando una comprobación exitosa.
Un arreglo de temas de GitHub para aplicar al repositorio. Actualmente vacío — los temas no se aplican.
Configuración de GitHub Pages:
enabled: true— garantiza que Pages esté habilitado en todos los repositorios inscritosbuild_type: "workflow"— utiliza GitHub Actions para la compilación de Pages (no compilaciones heredadas basadas en ramas)
managed_files
Sección titulada «managed_files»Define el manifiesto de sincronización de archivos:
source_repo— el repositorio que contiene las versiones canónicas de los archivos gestionados (f5-sales-demo/docs-control)files— un arreglo de objetos{src, dest}que asignan rutas de origen en docs-control a rutas de destino en repositorios descendentes
El flujo de trabajo de sincronización de archivos itera sobre este arreglo para detectar y corregir la desviación. Los archivos no enumerados aquí (como dependabot.yml y README.md) se generan dinámicamente en lugar de sincronizarse desde fuentes estáticas.