- π Scan: Analyze the repository for CI/CD enhancement suggestions, including security services and best practices.
- β Help: Get details on available commands and usage.
- π CI Analysis: Examines the repository's Continuous Integration (CI) setup and suggests improvements for security and best practices.
- π Open Source: Contributions are welcome to enhance Zanadir's capabilities!
Zanadir currently supports:
- GitHub Actions
- CircleCI
- GitLab
Future work will include support for:
- Bitbucket
Zanadir analyzes repositories in the following categories:
- π‘οΈ SCA: Software Composition Analysis
- π Secrets: Secrets Management
- π Licenses: License Compliance
- π οΈ EndOfLife: End-of-Life Software Packages
- π Coverage: Test Coverage
- π Performance Testing: Test Performance and Reliability
- π§βπ» Linter: Code Linting
Scan a repository for CI/CD improvement suggestions:
zanadir scan --dir /path/to/your/repoZanadir supports two output formats: table (default) and JSON.
zanadir scan --dir . --output tableSample Output:
|--------------------------------|--------------------------------|-------------------|
| CATEGORY | DESCRIPTION | SUGGESTED TOOLS |
|--------------------------------|--------------------------------|-------------------|
| Performance and Reliability | Tools for measuring code | k6, JMeter, |
| Testing Tools | coverage to ensure testing | Gatling, Apache |
| | completeness and software | Bench, Artillery, |
| | quality. | BlazeMeter |
|--------------------------------|--------------------------------|-------------------|
zanadir scan --dir . --output jsonSample Output:
[
{
"ID": "Performance Testing",
"Name": "Performance and Reliability Testing Tools",
"Description": "Tools for measuring code coverage to ensure testing completeness and software quality.",
"Suggestions": [
{
"Name": "k6",
"Repository": "https://github.com/grafana/k6",
"Description": "Grafana k6 is an open-source, developer-friendly, and extensible load testing tool. k6 allows you to prevent performance issues and proactively improve reliability.",
"Language": ""
},
{
"Name": "JMeter",
"Repository": "https://github.com/apache/jmeter",
"Description": "An Apache project designed to load test functional behavior and measure performance, with support for various protocols and servers.",
"Language": ""
}
]
}
]Skip certain categories during analysis:
zanadir scan --dir . --excluded-categories "SCA,Secrets"Zanadir provides an --enforce flag to ensure that all CI/CD suggestions are fulfilled. If any suggestion is not met, the CI pipeline will fail. This helps enforce security best practices and compliance in automated workflows.
zanadir scan --dir . --enforceGet detailed logging information:
zanadir scan --dir . --debug# Scan with all options
zanadir scan \
--dir /path/to/repo \
--output json \
--excluded-categories "Linter" \
--enforce \
--debugYou can install Zanadir using Go:
# Install directly from source
go install github.com/MustacheCase/zanadir@latestOr using Homebrew:
# Install using Homebrew (custom tap)
brew tap --custom-remote MustacheCase/zanadir https://github.com/MustacheCase/zanadir.git
brew install zanadirIf you're using GitHub Actions, you can use our Zanadir-based action to run CI\CD scans on your code during your CI workflows.
Zanadir is still in its experimental phase. We are working hard to release the first stable version soon.
Your feedback and contributions are welcome!
