Observação
A conformidade com a licença de código aberto está em prévia pública e sujeita a alterações.
Overview
A conformidade de licenças de código aberto ajuda você a rastrear as licenças das dependências e aplicar políticas ao software de código aberto em sua cadeia de suprimentos. Você pode usar a conformidade de licença para reduzir o risco legal e operacional, capturando dependências não em conformidade antes que as alterações sejam mescladas.
Como funciona a política de licença
Você pode definir uma política empresarial ou organizacional que controla quais licenças as dependências podem usar.
Você pode especificar licenças de uma lista interna ou, se uma licença não estiver listada, adicionando manualmente um identificador de licença SPDX.
Sua política é aplicada no escopo da empresa, da organização e do repositório. Você também pode adicionar exceções de pacote ou licença quando um Enterprise Open Source License Manager aprova solicitações.
A avaliação de licença usa dados de dependência de seus repositórios, incluindo dependências transitivas detectadas no grafo de dependência.
Como funciona a imposição de solicitação de pull
A conformidade com licenças de código aberto é garantida por meio de conjuntos de regras de ramificação. Quando uma solicitação pull altera os manifestos do pacote, GitHub compara as alterações de dependência entre os branches de solicitação base e pull, avalia licenças detectadas em relação à política e relata violações.
Se houver um conjunto de regras no modo Ativo que use a condição "Requer resultados de conformidade de licença antes da mesclagem", as solicitações de pull que introduzem dependências não compatíveis serão bloqueadas até que as violações sejam resolvidas. Um conjunto de regras do modo Avaliar com essa condição executará verificações de licença e anotará a solicitação de pull, mas não bloqueará mesclagens.
Além disso, uma regra de proteção de ramificação que exige a resolução dos comentários antes da mesclagem rastreará anotações das verificações de licença, de modo que até mesmo os alertas gerados por conjuntos de regras Evaluate estarão sujeitos à proteção.
Onde os resultados são exibidos
Se a licença de uma dependência não estiver na sua política, os resultados aparecerão nas anotações da pull request. As anotações não geram automaticamente uma solicitação de exceção, pois o desenvolvedor pode decidir modificar seu código para evitar a dependência não compatível. Se realmente quiserem usar a dependência, GitHub solicitará ao desenvolvedor mais informações e, em seguida, enviará a solicitação de encerramento aos gerentes de licenças de código aberto da empresa, que têm permissão para modificar a política.
Para Os Gerentes de Licenças de Software Livre Corporativo, as solicitações de exceção pendentes estão disponíveis nas exibições de segurança da empresa e enviadas como notificações por email.
Escopo e modelo de governança
Você pode criar uma política no escopo empresarial para uma baseline comum e, em seguida, adicionar exceções específicas de repositório, quando necessário.
Para grandes empresas, um padrão comum é:
- Definir uma política ampla centralmente
- Atribuir a função Enterprise Open Source License Manager aos revisores de política
- Usar uma propriedade personalizada do repositório para classificar repositórios como inativos, avaliados ou ativos
- Use conjuntos de regras que tenham como alvo os valores da propriedade personalizada para controlar o modo de aplicação para cada repositório
Desenvolvedores com permissão de gravação podem visualizar a política efetiva e as exceções de um repositório na página de configurações da política de licença do repositório.
Próximas Etapas
Para começar, consulte Configurando políticas de licença código aberto.
Para obter mais informações sobre os conjuntos de regras, confira Sobre os conjuntos de regras.