Loading
_ DESCIFRANDO CONEXIÓN SEGURA...

CODEOWNERS y propiedad real del código

5 tareas · 40 min · Principiante

El archivo CODEOWNERS dice quién debe revisar cada ruta de un repositorio, pero un archivo que nadie mantiene miente: nombra equipos disueltos, personas sin permiso o patrones que se pisan entre sí. Con el repositorio de pólizas de Cobaltea Seguros, una aseguradora ficticia, cruzas el archivo de propietarios con la lista de equipos y con quién cambia de verdad cada carpeta. Es lectura de archivos ficticios: no se modifica nada.

0 de 5 · 0%

Objetivo de la sala

El archivo CODEOWNERS dice quién debe revisar cada ruta de un repositorio, pero un archivo que nadie mantiene miente: nombra equipos disueltos, personas sin permiso o patrones que se pisan entre sí. Con el repositorio de pólizas de Cobaltea Seguros, una aseguradora ficticia, cruzas el archivo de propietarios con la lista de equipos y con quién cambia de verdad cada carpeta. Es lectura de archivos ficticios: no se modifica nada.

En GitHub, el archivo CODEOWNERS se busca en .github/, en la raíz o en docs/, y se usa el primero que se encuentra. Cuando varios patrones coinciden con una ruta, gana el último del archivo. Si un propietario no tiene permiso de escritura en el repositorio, no se le asigna como revisor. Y la regla de la rama protegida «Require review from Code Owners» exige la aprobación de alguno de los propietarios listados, no de todos.

Es decir: el archivo declara una intención; que haya revisión efectiva depende de que los equipos existan, tengan miembros y permiso, y de que el orden de los patrones diga lo que se cree que dice.

Responde para continuar

¿Qué puede salir mal aunque un patrón de CODEOWNERS parezca correcto?

Ver pista de ayuda

Recuerda dos reglas: el último patrón que coincide gana, y sin escritura no se asigna.

Un archivo de propietarios se escribe cuando el equipo existe y envejece sin ruido: nadie se queja de que un equipo disuelto «siga» siendo dueño de una carpeta, hasta que una propuesta sobre esa carpeta se queda sin quien la revise.

Abre el CODEOWNERS del repositorio y la lista de equipos de la organización, y busca un propietario con cero miembros activos.

Responde para continuar

Escribe el nombre del equipo propietario, sin la organización, que no tiene ningún miembro activo.

Ver pista de ayuda

Abre organizacion/equipos.txt y mira la columna miembros_activos.

Los patrones se leen de arriba abajo y el último que coincide con la ruta decide. Un patrón general escrito al final, como el de una extensión de archivo, puede dejar sin efecto a todos los específicos de más arriba.

Aplica la regla a un archivo concreto: src/tarifas/recargos.py.

Responde para continuar

Escribe el nombre del equipo, sin la organización, que es el propietario efectivo de src/tarifas/recargos.py.

Ver pista de ayuda

Recorre CODEOWNERS de arriba abajo y quédate con el último patrón que coincide con la ruta.

Un patrón queda sin revisor efectivo cuando su propietario no tiene miembros activos o no tiene permiso de escritura en el repositorio. Cuenta los patrones del archivo en esa situación, mirando el CODEOWNERS y la tabla de equipos.

Responde para continuar

¿Cuántos patrones del archivo apuntan a un propietario sin miembros activos o sin permiso de escritura?

Ver pista de ayuda

Cruza cada equipo del CODEOWNERS con miembros_activos y permiso_en_el_repositorio.

El archivo de cambios de los últimos 90 días muestra quién toca de verdad cada carpeta. Si la carpeta de pagos la cambia casi siempre un equipo que no figura en CODEOWNERS, la revisión obligatoria recae en un equipo vacío y la carpeta con más movimiento queda con la regla general.

Responde para continuar

¿Cómo se acerca la propiedad declarada a la real?

Ver pista de ayuda

El patrón más específico debe ir después del general, y el propietario debe ser quien realmente mantiene la ruta.

Inicia sesión para registrar tus puntos y progreso en el ranking.

Whoami-Labs Pro

Whoami-Labs Pro utiliza cookies

Utilizamos cookies y almacenamiento local para el funcionamiento del sitio, seguridad de sesión y, si lo autorizas, analítica y marketing. Puedes aceptar, rechazar o personalizar. Política de Privacidad