Skip to content

Contributions

Arpan Sarkar edited this page Dec 30, 2024 · 13 revisions

Hi, looks like you got some cool ideas 😎

Everyone is welcome to use, review and contribute to the tool development. Let's join forces to democratize effective security testing. Hard problems need easier solutions!

As we all think of improvements and new capabilities to add to Halberd, use the goal of simple, fast & effective security testing as the guiding principle.

Checkout development focus areas

Note: Expect to see more information and resources on this space to make contributions & reporting easier.

Report Bugs

Found issues in the tool? Great, area of improvement!

  • Use the GitHub issue tracker to report bugs
  • Before creating a new issue, please check if it hasn't been reported already
  • Describe the issue in detail, including steps to reproduce and expected vs. actual behavior (screenshots are great whenever possible)
  • Include your environment details (OS, Python version, etc.)

Suggesting Enhancements

  • Use the GitHub issue tracker to suggest enhancements
  • Clearly describe the feature and its potential benefits
  • If possible, provide examples of how the feature would work

Adding New Attack Techniques

We especially welcome contributions that add new attack techniques to increase Halberd's testing coverage. When adding a new technique:

  • Ensure it aligns with one of the supported attack surfaces (Entra ID, M365, AWS, Azure, GCP)
  • Follow the existing structure for implementing techniques
  • Include proper documentation and usage examples

Submit PR

  1. Fork the repo
  2. Create your branch from main
  3. Make your changes
  4. Open a pull request directly to the main branch

Don't worry if your code isn't perfect or complete! We encourage you to submit work-in-progress PRs. This allows us to provide early feedback and help shape the contribution.

When submitting a PR:

  • Clearly describe what your changes do and why they're needed
  • If it's a work-in-progress, mark it as "[WIP]" in the title
  • Stay active on your PR and respond to comments promptly (within 2-3 days if possible)
  • Be open to feedback and willing to make changes

Remember, every PR is a learning opportunity for both the contributor and the maintainers. Let's collaborate to make Halberd even better!

Style Guide

We follow the PEP 8 style guide for Python code. Additionally:

  • Use 4 spaces for indentation
  • Use docstrings for all public modules, functions, classes, and methods
  • Keep line length to a maximum of 100 characters
  • Use meaningful variable and function names

Note: We acknowledge that some of the existing code in the project may not fully adhere to these style guidelines. This is due to the project's evolution and ongoing development. We're actively working on bringing all code up to these standards. When contributing:

  • For new code, please follow the style guide as closely as possible
  • When modifying existing code, feel free to update it to match the style guide if feasible
  • Don't let perfect be the enemy of good - we value your contributions even if the style isn't perfect!

Licensing

Halberd is licensed under the GPL-3.0 License. By contributing to Halberd, you agree that your contributions will be licensed under its GPL-3.0 License.

Clone this wiki locally