Skip to main content

Snyk faz parceria com os criadores do Greenkeeper para ajudar desenvolvedores a manter a integridade das dependências de forma proativa

Escrito por
Headshot of Dan Mckean

Dan Mckean

5 de março de 2020

0 minutos de leitura

Temos o prazer de anunciar o lançamento de Atualizações Automáticas de Dependências, um recurso do Snyk Open Source que ajuda desenvolvedores a reduzir proativamente as vulnerabilidades de segurança e manter a integridade das dependências ao usar software de código aberto. Atualizações Automáticas de Dependências é resultado de uma nova e empolgante parceria entre a Snyk e a Neighbourhoodie Software, criadora do Greenkeeper e inovadora em ferramentas para desenvolvedores.

A equipe do Greenkeeper ajuda desenvolvedores a manter seus softwares atualizados e íntegros desde 2015 e foi uma das pioneiras nesse segmento. Unir forças com outra equipe que entende as necessidades dos desenvolvedores foi uma escolha natural para nós, e temos orgulho de disponibilizar o resultado dessa parceria para os usuários da Snyk e do Greenkeeper.

O desafio crescente das dependências de código aberto

Os desenvolvedores incorporam uma grande quantidade de dependências de código aberto ao código, tanto diretas quanto indiretas. Muitas delas contêm vulnerabilidades de segurança, e a possibilidade de aplicar correções depende muito de quanto essas dependências estão atualizadas: quanto mais antiga a versão, mais difícil fica atualizá-la.

Manter dependências vulneráveis e desatualizadas sob controle é essencial para que os aplicativos continuem seguros e íntegros. Sem automação, isso é praticamente impossível até mesmo para a equipe de desenvolvedores mais experiente. Revisar manualmente as dependências em vários projetos e atualizá-las quando necessário é, no mínimo, uma tarefa desafiadora.

Com Atualizações Automáticas de Dependências, o Snyk Open Source monitora continuamente cada projeto integrado e cria automaticamente pull requests práticos e contextualizados quando identifica novas versões das dependências. O controle total sobre o ritmo e o escopo evita que os desenvolvedores recebam atualizações demais. Com a abrangente base de dados de vulnerabilidades da Snyk, sempre atualizada, Atualizações Automáticas de Dependências também garante que as versões recomendadas não introduzam novas vulnerabilidades.

Fluxos de atualização que facilitam o trabalho dos desenvolvedores

Na Snyk, nosso objetivo sempre foi oferecer aos desenvolvedores ferramentas que se encaixem nos fluxos de trabalho existentes, em vez de criar novos. Atualizações Automáticas de Dependências não é exceção: o recurso se integra nativamente aos repositórios de código e inicia atualizações automáticas de dependências como qualquer outro pull request.

Pull request do GitHub mostrando o Snyk atualizando o react-scripts da versão 1.0.14 para a 1.1.5 e listando as vulnerabilidades corrigidas.

Como qualquer pull request, os pull requests de atualização de dependências podem ser revisados e verificados antes da mesclagem para garantir que não haja risco de falhas. Na mesma linha, a Snyk não inicia um pull request de atualização para uma versão de dependência com menos de 21 dias, pois nossas pesquisas mostram que isso pode ajudar a evitar versões ilegítimas caso a conta de um mantenedor seja comprometida e uma versão maliciosa seja publicada intencionalmente.

Solicitação de pull do GitHub mostrando alterações no package-lock.json que atualizam o pacote content-disposition da versão 0.5.2 para a 0.5.3

Tome decisões de atualização com base em dados

Ao contrário de outras soluções automatizadas que simplesmente aplicam atualizações para novas versões, a Snyk oferece informações contextualizadas e práticas para ajudar os desenvolvedores a tomar decisões de atualização mais embasadas. Isso é extremamente importante em projetos com muitas dependências desatualizadas e ajuda a priorizar o que atualizar.

Os pull requests de atualização automatizados da Snyk incluem detalhes sobre a maturidade da atualização sugerida e as notas de versão da dependência. Também são fornecidas informações sobre as vulnerabilidades de segurança corrigidas pela atualização, incluindo o nível de gravidade e a existência de exploits conhecidos para cada vulnerabilidade.

Pull request do GitHub criado por snyk-bot para atualizar o pacote express da versão 4.16.0 para a 4.17.1, com as notas da versão exibidas.

Controle o ritmo das atualizações

Manter as dependências atualizadas é fundamental para a integridade geral dos projetos, mas analisar pull requests de cada nova versão de cada dependência pode ser uma tarefa desafiadora e demorada. Queríamos evitar que os desenvolvedores ficassem sobrecarregados com notificações em excesso e, por isso, adicionamos controles para definir o ritmo e o escopo dos pull requests de atualização.

Como as atualizações de versões principais costumam ser mais arriscadas, por padrão a Snyk cria pull requests de atualização apenas para versões secundárias e correções. Os usuários podem alterar esse comportamento e pedir que a Snyk também crie pull requests de atualização para versões principais — um dos recursos que a Neighbourhoodie nos ajudou a implementar como parte da parceria.

A Snyk permite limitar o número de pull requests de atualização abertos ao mesmo tempo e também especificar quais dependências você quer ignorar.

Tela de configurações da Snyk para pull requests de atualização automática de dependências, com as atualizações ativadas, versões de patch e minor selecionadas e react-scripts ignorado.

E então... como começar?

Atualizações Automáticas de Dependências está disponível em todos os planos do Snyk Open Source: Free, Standard, Pro e Enterprise. Para começar a usar esse recurso, basta se cadastrar na Snyk, integrar seus projetos e aguardar a chegada de um pull request com atualizações recomendadas para suas dependências!

No momento, Atualizações Automáticas de Dependências é compatível com projetos npm, Maven-Central e Yarn no GitHub/GitHub Enterprise e no Bitbucket Cloud. Em breve, haverá suporte para outros tipos de projeto. Fique de olho nas novidades.

Para saber mais sobre esse recurso e o Snyk Open Source, confira:

Boas atualizações!