Skip to main content

Interactive CLI to configure security tools for CI/CD pipelines

Project description

AppSec Kit

CLI interativo que configura ferramentas de segurança para esteiras CI/CD com um único comando. Roda no projeto do dev e gera os arquivos prontos para uso.

Suporte: Python · Node.js · GitHub Actions


O que ele instala

Camada Python Node.js
SAST Bandit Semgrep
Dependency scanning pip-audit npm audit
Secret scanning Gitleaks + detect-secrets Gitleaks + detect-secrets
Pre-commit hooks pre-commit pre-commit

Pré-requisitos

  • Python 3.12+
  • uv ou pip
  • Git inicializado no projeto-alvo (git init)

Instalação

Via uv (recomendado)

uv tool install appsec-tool-kit

Via pip

pip install appsec-tool-kit

Direto do repositório (desenvolvimento)

git clone https://github.com/seu-usuario/appsec-tool-kit.git
cd appsec-tool-kit
uv sync
uv run appsec-kit

Tutorial passo a passo

Passo 1 — Acesse o diretório do seu projeto

cd /caminho/do/seu/projeto

O kit detecta automaticamente o tipo de projeto pelo conteúdo do diretório.


Passo 2 — Execute o wizard

appsec-kit

Você verá a tela inicial:

╭──────────────────────────────────────────────────────╮
│  AppSec Kit  –  Security toolkit for CI/CD pipelines │
╰──────────────────────────────────────────────────────╯

Detected: Python project

? Project type:
> Python
  Node.js

Passo 3 — Confirme o tipo de projeto

O kit detecta automaticamente se é Python ou Node.js pelo conteúdo do diretório:

  • Python → presença de pyproject.toml, requirements.txt, setup.py ou Pipfile
  • Node.js → presença de package.json

Confirme ou altere com as setas e pressione Enter.


Passo 4 — Confirme o diretório-alvo

? Target directory: [.]

Pressione Enter para usar o diretório atual ou informe outro caminho:

? Target directory: ../meu-outro-projeto

Passo 5 — Selecione as camadas de segurança

? Security layers to configure:
 > [x] SAST (Static Analysis)
   [x] Dependency Scanning
   [x] Secret Scanning
   [x] Pre-commit Hooks

Use Espaço para marcar/desmarcar, Enter para confirmar. Por padrão todas as camadas ficam selecionadas.


Passo 6 — Aguarde a geração dos arquivos

  ✓  .github/workflows/security.yml  (created)
  ✓  .pre-commit-config.yaml         (created)
  ↻  pyproject.toml                  (updated)

Passo 7 — Siga as instruções pós-instalação

O wizard exibe os próximos passos automaticamente:

╭─ Next steps ──────────────────────────────────────────╮
│  pip install pre-commit detect-secrets                 │
│  detect-secrets scan > .secrets.baseline               │
│  pre-commit install                                    │
│                                                        │
│  # Commit e push para ativar o GitHub Actions:        │
│  git add .github/ .pre-commit-config.yaml             │
│  git commit -m "chore: add appsec security config"    │
│  git push                                             │
╰───────────────────────────────────────────────────────╯

Execute esses comandos na ordem.


O que é gerado

.github/workflows/security.yml

Workflow do GitHub Actions com jobs separados por camada:

  • SAST — análise estática roda a cada push/PR
  • Dependency scan — verifica vulnerabilidades nas dependências
  • Secret scanning — Gitleaks varre o histórico git em busca de segredos expostos

O workflow é acionado em push e pull requests para main e master.


.pre-commit-config.yaml

Hooks que rodam localmente antes de cada commit:

Python:

repos:
  - repo: https://github.com/PyCQA/bandit      # SAST
  - repo: https://github.com/Yelp/detect-secrets # secrets
  - repo: https://github.com/pypa/pip-audit      # dependências

Node.js:

repos:
  - repo: https://github.com/Yelp/detect-secrets # secrets
  - repo: https://github.com/gitleaks/gitleaks   # secrets
  - repo: local                                   # npm audit

pyproject.toml (apenas Python)

Adiciona configuração do Bandit ao arquivo existente:

[tool.bandit]
exclude_dirs = ["tests", "venv", ".venv"]
skips = []

Casos de uso comuns

Só quero pre-commit, sem CI

Execute o wizard e desmarque as camadas SAST, Dependency Scanning e Secret Scanning. Mantenha apenas Pre-commit Hooks selecionado.

Só quero o GitHub Actions, sem pre-commit

Desmarque Pre-commit Hooks e mantenha as outras camadas.

Projeto já tem .pre-commit-config.yaml

O kit sobrescreve o arquivo com status (updated). Faça backup antes se necessário:

cp .pre-commit-config.yaml .pre-commit-config.yaml.bak
appsec-kit

Atualizando versões dos hooks

As versões dos hooks pre-commit ficam fixadas em .pre-commit-config.yaml. Para atualizar todas para o latest:

pre-commit autoupdate

Ferramentas utilizadas

Ferramenta Finalidade Docs
Bandit SAST para Python bandit.readthedocs.io
Semgrep SAST para JavaScript/TypeScript semgrep.dev
pip-audit CVEs em dependências Python pypi.org/project/pip-audit
detect-secrets Detecção de segredos github.com/Yelp/detect-secrets
Gitleaks Varredura de segredos no histórico git gitleaks.io
pre-commit Framework de git hooks pre-commit.com

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

appsec_tool_kit-0.1.1.tar.gz (12.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

appsec_tool_kit-0.1.1-py3-none-any.whl (9.5 kB view details)

Uploaded Python 3

File details

Details for the file appsec_tool_kit-0.1.1.tar.gz.

File metadata

  • Download URL: appsec_tool_kit-0.1.1.tar.gz
  • Upload date:
  • Size: 12.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.16 {"installer":{"name":"uv","version":"0.11.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Zorin OS","version":"18","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for appsec_tool_kit-0.1.1.tar.gz
Algorithm Hash digest
SHA256 c30547be5c5d503dfa0c32330aa49abe433a31eff79a87b312db98f24fb5a2e0
MD5 3f9012b7ee68ba63effd7a42ae2d0b98
BLAKE2b-256 a6435f787d954aa2a01127ea4c17fc5b69b3776cdf0d6ce3b8b7c66c3f6ed33f

See more details on using hashes here.

File details

Details for the file appsec_tool_kit-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: appsec_tool_kit-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 9.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.16 {"installer":{"name":"uv","version":"0.11.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Zorin OS","version":"18","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for appsec_tool_kit-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e419961ee777d45c41af3040f47bd262ba834a7a2bd6b587da63039f65a1f21c
MD5 6e7326bffb63b2aa73b3ebc0713d6b2f
BLAKE2b-256 a137fdb805de3900490c623f4e609f5250d3dd1f2cad9c42045c5a7c2eb3cd63

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page