Introdução

Concluído

As equipes de desenvolvimento de software precisam entregar alterações de código de forma rápida e segura. Isso requer automação que funcione durante todo o processo de desenvolvimento. Os ganchos Git são uma ferramenta poderosa que pode ajudar as equipes a verificar automaticamente a qualidade do código, encontrar problemas de segurança e seguir regras de codificação. Muitas equipes não usam ganchos Git o suficiente, mas eles podem melhorar o desenvolvimento.

Por que os ganchos Git são importantes

O desenvolvimento de software tem muitos desafios. As equipes devem lidar com ameaças à segurança, seguir as regras da empresa, manter a qualidade do código e implantar o código rapidamente. Os ganchos do Git ajudam a resolver esses problemas adicionando verificações automáticas exatamente onde os desenvolvedores trabalham - quando salvam as alterações no código.

  • Verificações automáticas de qualidade: os ganchos Git podem verificar a qualidade do código automaticamente. Em vez de encontrar problemas mais tarde no processo, os ganchos detetam problemas cedo quando são mais fáceis e baratos de corrigir.
  • Proteção de segurança: Com mais ameaças de segurança todos os dias, os ganchos Git atuam como a primeira linha de defesa. Eles podem impedir automaticamente que senhas, chaves de API e outros segredos sejam salvos no código. Eles também podem verificar se há problemas de segurança.
  • Seguindo as regras da empresa: Para empresas que devem seguir regras rígidas (como bancos ou serviços de saúde), os ganchos Git podem verificar automaticamente se cada alteração de código atende aos padrões da empresa e aos requisitos legais.
  • Desenvolvimento mais rápido: bons ganchos Git criam um sistema onde os problemas são encontrados imediatamente. Ele dá aos desenvolvedores feedback rápido, reduz o tempo de espera e torna todo o processo de desenvolvimento mais rápido.

Como funcionam os ganchos Git

Os ganchos Git trabalham em diferentes níveis no processo de desenvolvimento, e cada nível tem finalidades diferentes:

Ganchos em computadores de desenvolvedores

  • Verificações de desenvolvimento local: esses ganchos são executados no computador de cada desenvolvedor. Eles fornecem feedback imediato e evitam que códigos incorretos saiam do ambiente local do desenvolvedor.
  • Verificações personalizáveis: esses ganchos podem ser configurados para projetos específicos, linguagens de programação e padrões da empresa, mantendo a consistência entre todos os desenvolvedores.

Ganchos no servidor

  • Aplicação de regras centrais: ganchos do lado do servidor são executados no repositório de código principal. Eles fornecem uma aplicação de política central que os desenvolvedores individuais não podem ignorar.
  • Integração do Azure DevOps: plataformas Git modernas, como o Azure DevOps e o GitHub, oferecem funcionalidades poderosas de hooks no servidor que funcionam bem com fluxos de trabalho de desenvolvimento empresarial e sistemas de verificação de conformidade.

Objetivos de aprendizagem

Depois de concluir este módulo, você saberá como:

  • Planeje a estratégia do gancho Git: Projete planos completos de ganchos Git que ajudem grandes equipes de desenvolvimento, mantendo os desenvolvedores produtivos e os fluxos de trabalho eficientes.
  • Crie automação avançada: crie ganchos de pré-confirmação, pós-confirmação e push que verificam automaticamente a qualidade, verificam se há problemas de segurança e validam as regras da empresa.
  • Crie ganchos focados na segurança: crie ganchos de segurança que impeçam vazamentos de senhas, detetem vulnerabilidades e apliquem políticas de segurança automaticamente.
  • Conecte-se com o Azure DevOps: integre ganchos Git sem problemas com serviços de DevOps do Azure, pipelines de CI/CD e ferramentas da empresa.
  • Gerenciar a implantação da equipe: configure maneiras escaláveis de implantar, gerenciar e manter ganchos Git em grandes equipes de desenvolvimento e estruturas empresariais complexas.

Pré-requisitos

Para obter o máximo deste módulo, você deve ter:

  • Fortes habilidades de Git: Boa compreensão do controle de versão do Git, estratégias de ramificação e fluxos de trabalho avançados do Git, incluindo ganchos, rebase e estratégias de mesclagem.
  • Experiência de DevOps do Azure: boa experiência com os serviços de DevOps do Azure, especialmente Azure Repos, Azure Pipelines e implementação de fluxo de trabalho de desenvolvimento da empresa.
  • Habilidades de automação e scripting: Boas habilidades com linguagens de script, como Bash, PowerShell ou Python, e compreensão dos princípios de automação e práticas recomendadas.

Este módulo baseia-se no conhecimento básico do Git e do Azure DevOps para ensinar estratégias avançadas de automação que são importantes para grandes equipes de desenvolvimento.