Github Commiters Spy - Dimensionando licenças de SAST, SCA e IaC.
Posted on August 14, 2024 • 3 min read • 538 wordsSe você usa Github e precisa de ajuda no dimensionamento de licenças de soluções de análise estática, o GHCS pode oferecer um bom auxílio. 😉
O “Github Committers Spy” (GHCS) é uma ferramenta desenvolvida em Python 3 que te auxiliará a identificar a quantidade de desenvolvedores individuais em sua organização no Github, atendendo aos modelos atuais de licenciamento das principais fabricantes destas soluções. Você pode acessar o repositório do projeto através do link https://github.com/0xtiago/GithubCommittersSpy.
O GHCS foi desenvolvido durante o período de testes e dimensionamento de solução de SAST (Static Application Security Testing) e SCA (Software Composition Analysis) em um dos projetos que sou responsável. Paralelamente, enquanto parte do time triava o caderno de testes, a outra parte (eu incluso) nos direcionamos a realizar o levantamento de desenvolvedores individuais nos projetos que entrariam no escopo de cobertura de alguma dessas soluções enterprise que estávamos avaliando.
Antes de partirmos para o desenvolvimento, tivemos algumas dificuldades no levantamento das seguintes informações:
A partir deste momento, resolvemos ir para o plano B, que era obter os dados brutos e fazer a análise por script (GHCS). Mas antes tivemos um pouco mais de trabalho…
Com essas informações em mãos, partimos para o código.
repo
e user
.Clone e acesse o repositório https://github.com/0xtiago/GithubCommittersSpy:
git clone https://github.com/0xtiago/GithubCommittersSpy && cd GithubCommittersSpy
Instale as dependências do script:
pip install -r requirements.txt
Renomeio o arquivo config_sample.yaml
para config.yaml
e configure o Personal Access Token do Github em github_token
:
github_token: "gh_XXXXXXXXXX"
Crie um arquivo chamado repositories.txt
e adicione a lista de todos os repositórios que deseja analisar, no seguinte formato:
owner/repo
ou https://github.com/owner/repo
.Agora é só executar o script passando com o argumento -d
passando a quantidade de dias pregressos para análise:
python gh_committers_spy.py -d 90
O script exibirá para você ao fim da execução a quantidade de committers individuais. As informações dos usuários e a quantidade de commits encontrados de cada um será exportado para o arquivo commiters.csv
.
Como esse tipo de informação em mãos, fica muito mais fácil dimensionar o licenciamento necessário para atender aos modelos de exemplo abaixo.
Checkmarx
Snyk
Verifique se o token gerado no Github (Personal Access Token ) possui as permissões necessárias para o acesso em repositórios privados.
O script avalia apenas os commmits na branch default de cada repositório.
Cada repositório listado no arquivo repositories.txt
será convertido para o formato owner/repository
durante o processo de verificações e parsings.
Algumas pessoas que contribuiram durante todo o processo de desenvolvimento e testes. ❤️
👾