Mantener Información Precisa del Mantenedor del Repositorio en GitHub

Publicado el 31 agosto 2024 por Lauratuero @incubaweb

La estructura de las empresas y sus proyectos están en constante evolución. Con el intercambio continuo de personas e información, es común que la información sobre los responsables de un repositorio se vuelva obsoleta o confusa. Los mantenedores juegan un rol crucial en la guía y administración de un proyecto, y conocer quiénes son es esencial para una colaboración y toma de decisiones eficiente. Aunque esta información puede almacenarse en el archivo CODEOWNERS, surge la pregunta de cómo asegurarnos de que esté siempre actualizada. Analicemos por qué esto es importante y cómo la herramienta del OSPO de GitHub, cleanowners, puede ayudar a los mantenedores a mantener una información precisa sobre la propiedad de sus proyectos.

En cualquier proyecto de software, tener directrices claras de propiedad es fundamental para una colaboración efectiva. Los mantenedores son responsables de revisar contribuciones, fusionar cambios y guiar la dirección del proyecto. Sin una información clara sobre la propiedad, los colaboradores pueden no saber a quién dirigirse para orientación o revisión. Imagina que has descubierto una vulnerabilidad de seguridad de alto riesgo y nadie responde a tu solicitud de extracción para solucionarlo, ni coordina que todos los equipos de la empresa obtengan los parches necesarios para solucionarlo. Esta ambigüedad puede ocasionar retrasos y confusión, enseñando desafortunadamente a los equipos que es mejor mantener el control que colaborar. Estos no son los resultados esperados como desarrolladores, por lo que es importante considerar cómo asegurar un mantenimiento activo, especialmente de nuestros componentes de producción.

Solucionar este problema comienza con documentar a los mantenedores. Un archivo CODEOWNERS, que reside en la raíz de un repositorio, permite a los mantenedores especificar individuos o equipos responsables de revisar y mantener áreas específicas del código. Al definir la propiedad a nivel de archivo o directorio, CODEOWNERS proporciona claridad sobre quién es responsable de revisar cambios en cada parte del proyecto.

CODEOWNERS no solo agiliza el proceso de contribución, sino que también fomenta la transparencia y la responsabilidad dentro de la organización. Los colaboradores saben exactamente a quién contactar para obtener comentarios, escalaciones o aprobaciones, mientras que los mantenedores pueden distribuir responsabilidades de manera efectiva y asegurarse de que cada parte del código tenga la cobertura adecuada.

Aunque CODEOWNERS es una herramienta poderosa para gestionar la información sobre la propiedad, mantenerla manualmente puede ser tedioso y fácil de pasar por alto. Para abordar este desafío, el OSPO de GitHub desarrolló cleanowners: una acción de GitHub que automatiza el proceso de mantener los archivos CODEOWNERS limpios y actualizados. Si detecta que algo necesita cambiar, abrirá una solicitud de extracción para que este problema se aborde lo antes posible.

Así es como funciona cleanowners:

---
name: Weekly codeowners cleanup
on:
  workflow_dispatch:
  schedule:
    - cron: '3 2 * * 6'

permissions:
  issues: write

jobs:
  cleanowners:
    name: cleanowners
    runs-on: ubuntu-latest

    steps:
      - name: Run cleanowners action
        uses: github/cleanowners@v1
        env:
          GH_TOKEN: ${{ secrets.GH_TOKEN }}
          ORGANIZATION: <tu_organización_va_aquí>

Este flujo de trabajo, desencadenado por ejecuciones programadas, asegura que el archivo CODEOWNERS se limpie automáticamente. Al aprovechar cleanowners, los mantenedores pueden estar seguros de que la información de propiedad es precisa, o será llevada a la atención del equipo a través de una solicitud de extracción automática que solicita una actualización del archivo. Aquí hay un ejemplo donde @zkoppert y @no-longer-in-this-org solían ser ambos mantenedores, pero @no-longer-in-this-org ha dejado la empresa y ya no mantiene este repositorio.

Con herramientas como cleanowners, la tarea de gestionar los archivos CODEOWNERS se convierte en una actividad gestionada activamente en lugar de ignorada, permitiendo a los mantenedores centrarse en lo más importante: construir y nutrir proyectos de software prósperos. Al adoptar prácticas de documentación de propiedad claras y precisas, los proyectos de software pueden continuar floreciendo, guiados por principios de propiedad y colaboración bien definidos.

Para más información sobre cómo configurar y poner en marcha la acción, visita el repositorio.

vía: Github Open Source