Dependências

Esta página descreve inventário de dependências, monitorização de vulnerabilidade, triagem de dependências, e análise de vulnerabilidades de contentor. Para artefactos de lançamentos publicados, SBOMs, assinaturas, e certificados de proveniências, veja Release artifacts and verification.

Inventário de dependências

Informação de dependência do Weblate é mantida em vários ficheiros de repositório:

  • Dependências de Python são declaradas em pyproject.toml e resolvidos em uv.lock.

  • Dependências de frontend são declaradas em client/package.json e resolvidas em client/yarn.lock.

  • Bibliotecas de frontend fornecidas e dados de licença gerados estão documentados em Subprojetos e código incorporado.

  • SBOMs lançados são publicados para lançamentos Weblate conforme descrito em Lista de materiais de software.

  • Imagem do Docker e dependências de gráficos do Helm agora são mantidas nos repositórios do Weblate Docker e Helm listados em Release artifact inventory.

Os intervalos de dependências em pyproject.toml descrevem os requisitos de tempo de execução suportados. Os ficheiros de bloqueio descrevem o conjunto de dependências testado utilizado pelo CI e a automatização de lançamento.

Rastreamento de dependências para vulnerabilidades

Problemas de segurança nas dependências Weblate são monitorados através de Renovate. revisão de dependências GitHub, FOSSA, SBOMs de lançamento, e análises de vulnerabilidade de contentor.

Os repositórios Weblate estendem a predefinição partilhada Renovate de WeblateOrg/meta. Essa predefinição ativa o painel de dependências, alertas de vulnerabilidade OSV, alertas de vulnerabilidade de plataforma, commits de dependência semântica, e gestores personalizados Renovate para o GitHub Actions, Dockerfiles, gráficos de versões de aplicação Help, e outras versões de ferramentas afixadas. Também configura o agrupamento de pacote selecionado, horários, e comportamento de auto-mesclagem.

Este repositório adiciona main e stable enquanto ramos base Renovate. Atualizações de dependências gerais e manutenção de ficheiros lock estão desativados no stable; cobertura de atualizações de segurança para lançamentos do Weblate estão descritas em Atualizações de segurança.

A revisão de dependências GitHub é executado em pull requests para mostrar mudanças de dependências antes de serem unidos. FOSSA é executado em pushes para o main e grava resultados de análise e teste de políticas no serviço FOSSA.

Rastreamento de triagens de vulnerabilidades

Quando uma vulnerabilidade de dependência é reportado pelo Renovate, revisão de dependência GitHub, FOSSA, uma revisão de lançamento SBOM, uma análise de contentor, ou um relatório de vulnerabilidade, colaboradores avaliam se afeta ou não o Weblate. As verificações de triagem incluem:

  • se a dependência afetada e versão são usadas pelo Weblate, um artefacto de lançamento publicado, ou um artefacto de implementação mantido;

  • se o caminho do código da vulnerabilidade é alcançável através de uma funcionalidade Weblate suportada ou modos de implementação suportados;

  • se o problema na utilização da dependência no Weblate deve ser reportado para o projeto na fonte;

  • se uma atualização de dependências, alteração de configuração, mitigação, aconselhamento, ou atualização de segurança do Weblate é necessária.

Dica

Pode haver vulnerabilidades em bibliotecas de terceiros que não afetam o Weblate, portanto, não são solucionadas com o lançamento de versões de correção de bugs do Weblate.

Dependência e manutenção de ficheiros de bloqueio

O ficheiro de bloqueio do Python é mantido pelo fluxo de trabalho uv lock update. O ficheiro de bloqueio de dependências do frontend e ficheiros de frontend fornecidos são mantidos pelo fluxo de trabalho yarn update.

Alterações de manutenção geradas são passadas pelo fluxo de trabalho Aplicar patch de manutenção. O fluxo de trabalho aplica-se apenas a artefactos de patches validados e limita os camihos que cada fluxo de trabalho de manutenção tem permissão para atualizar.

Segurança de contentor Docker

Os contentores do Weblate e Weblate Client Docker são analisados para vulnerabilidade de segurança no CI. Isso nos permite detetar vulnerabilidades antecipadamente e lançar melhorias rapidamente.

Os fluxos de trabalho Weblate Docker e Weblate Client inspecionados analisam contentores de imagens compiladas com Anchore e Trivy. Resultados são enviados para a análise de código GitHub na forma de dados SARIF. Os fluxos de trabalho inspecionados também armazenam artefactos SARIF Trivy, e o fluxos de trabalho do Weblate Client armazenam artefactos SARIF Anchore.

Detalhes de política externas conhecidas

Alguns detalhes de dependência e gestão de vulnerabilidades são mantidos fora desta documentação:

  • o comportamento Renovate completo é definido na predefinição WeblateOrg/meta partilhado e configurações de plataforma de repositório;

  • Gráfico de dependência GitHub, alerta Dependabot, e proteção de estado de ramo são configuração da plataforma GitHub;

  • Histórico de resultado FOSSA e limites de política estão armazenados em FOSSA;

  • análise de resultado é armazenada nos artefactos de fluxo de trabalho de análise de código.