Dependencias

Esta página describe el inventario de dependencias, la monitorización de vulnerabilidades, la clasificación de dependencias y el análisis de vulnerabilidades de contenedores. Para obtener información sobre los artefactos de lanzamiento publicados, los SBOM, las firmas y las certificaciones de procedencia, consulte Artefactos de lanzamiento y verificación.

Dependency inventory

La información sobre las dependencias de Weblate se mantiene en varios archivos del repositorio:

  • Las dependencias de Python se declaran en pyproject.toml y se resuelven en uv.lock.

  • Las dependencias del frontend se declaran en client/package.json y se resuelven en client/yarn.lock.

  • Las bibliotecas frontend de terceros y los datos de licencia generados están documentados en Sub‐proyectos y código embebido.

  • Los SBOM de lanzamiento se publican para los lanzamientos de Weblate como se describe en Cargo del Material de Software.

  • Las dependencias de imágenes Docker y gráficos Helm se mantienen en los repositorios Docker y Helm propiedad de Weblate que se enumeran en Inventario de artefactos de lanzamiento.

Los rangos de dependencia en pyproject.toml describen los requisitos de tiempo de ejecución compatibles. Los archivos de bloqueo describen el conjunto de dependencias probadas que utiliza la automatización de IC y de lanzamiento.

Búsqueda de vulnerabilidades en las dependencias

Security issues in Weblate dependencies are monitored using Renovate, GitHub dependency review, FOSSA, release SBOMs, and container vulnerability scans.

Los repositorios de Weblate extienden el preajuste compartido de Renovate de WeblateOrg/meta. Este preajuste habilita el panel de dependencias, las alertas de vulnerabilidad de OSV, las alertas de vulnerabilidad de la plataforma, las confirmaciones de dependencias semánticas y los administradores personalizados de Renovate para GitHub Actions, Dockerfiles, versiones de aplicaciones de gráficos Helm y otras versiones de herramientas fijadas. También configura la agrupación de paquetes, las programaciones y el comportamiento de fusión automática seleccionados.

Este repositorio añade main y stable como ramas base de Renovate. Las actualizaciones generales de dependencias y el mantenimiento de archivos de bloqueo están deshabilitados en stable; la cobertura de actualizaciones de seguridad para las versiones de Weblate se describe en Actualizaciones de seguridad.

La revisión de dependencias de GitHub se ejecuta en las solicitudes de extracción para mostrar los cambios de dependencia antes de que se fusionen. FOSSA se ejecuta en las actualizaciones a main y registra los resultados de los análisis y las pruebas de directivas con el servicio FOSSA.

Dependency vulnerability triage

Cuando Renovate, la revisión de dependencias de GitHub, FOSSA, una revisión SBOM de lanzamiento, un análisis de contenedores o un informe de vulnerabilidad informan sobre una vulnerabilidad, los mantenedores evalúan si afecta a Weblate. Las comprobaciones de triaje incluyen:

  • ya sea que la dependencia y la versión afectadas sean utilizadas por Weblate, un artefacto de lanzamiento publicado o un artefacto de despliegue mantenido;

  • si la ruta de código vulnerable es accesible a través de la funcionalidad Weblate compatible o los modos de implementación compatibles;

  • si el problema reside en el uso que hace Weblate de la dependencia o si debe informarse al proyecto original;

  • ya sea que se necesite una actualización de dependencia, un cambio de configuración, una mitigación, un aviso o una actualización de seguridad de Weblate.

Consejo

Podrían existir vulnerabilidades en bibliotecas de terceros que no afecten a Weblate, por lo que no se solucionarán lanzando versiones de corrección de defectos de Weblate.

Dependency and lockfile maintenance

El archivo de bloqueo de Python se mantiene mediante el flujo de trabajo uv lock update. El archivo de bloqueo de dependencias del frontend y los archivos frontend incluidos se mantienen mediante el flujo de trabajo yarn update.

Los cambios de mantenimiento generados se procesan mediante el flujo de trabajo Aplicar parche de mantenimiento. Este flujo de trabajo aplica únicamente los artefactos de parche validados y limita las rutas que cada flujo de trabajo de mantenimiento puede actualizar.

Seguridad del contenedor Docker

The Weblate and Weblate Client Docker containers are scanned for security vulnerabilities in CI. This allows us to detect vulnerabilities early and release improvements quickly.

Los flujos de trabajo inspeccionados de Weblate Docker y Weblate Client analizan las imágenes de contenedores creadas con Anchore y Trivy. Los resultados se cargan en GitHub Code Scanner como datos SARIF. Los flujos de trabajo inspeccionados también almacenan artefactos SARIF de Trivy, y el flujo de trabajo de Weblate Client almacena artefactos SARIF de Anchore.

Detalles conocidos de la directiva externa

Algunos detalles sobre la gestión de dependencias y vulnerabilidades se mantienen fuera de esta documentación:

  • el comportamiento completo de Renovate se define en el preajuste compartido WeblateOrg/meta y en la configuración de la plataforma del repositorio;

  • El gráfico de dependencias de GitHub, la alerta de Dependabot y el estado de protección de ramas son configuraciones de la plataforma GitHub;

  • El historial de resultados y los umbrales de directiva de FOSSA se almacenan en FOSSA;

  • el resultados del análisis se almacenan en los artefactos de análisis de código y flujo de trabajo de GitHub.