Contributing to the Project
This document is the single source of truth on how to contribute to this codebase. Please feel free to browse the open issues and file new ones. All feedback is welcome!
Topics
- Prerequisites
- Contributor License Agreement
- Code of Conduct
- Contribution Workflow
- Feature Requests and Bug Reports
- Fixing Issues
- Pull Requests
- Code Review
- Documentation
- Maintainers
Prerequisites
When contributing to this repository, please first discuss the change you wish to make via a GitHub issue, Slack message, email, or via other channels with the owners of this repository.
Contributor License Agreement
At the moment, we can only accept pull requests submitted from either:
- Splunk employees or
- Individuals that have signed our contributors' agreement
If you wish to be a contributing member of our community, please see the agreement for individuals or for organizations.
Code of Conduct
Please make sure to read and observe our Code of Conduct. Please follow it in all of your interactions involving the project.
Contribution Workflow
Help is always welcome! For example, documentation can always use improvement. There's always code that can be clarified, functionality that can be extended, and tests to be added to guarantee behavior. If you see something you think should be fixed, don't be afraid to own it.
Feature Requests and Bug Reports
Have ideas on improvements? See something that needs work? While the community encourages everyone to contribute code, it is also appreciated when someone reports an issue. Please report any issues or bugs you find through GitHub's issue tracker.
If you are reporting a bug, please include:
- Your operating system name and version
- Any details about your local setup that might be helpful in troubleshooting (ex. Python interpreter version, Splunk version, etc.)
- Detailed steps to reproduce the bug
We'd also like to hear about your propositions and suggestions. Feel free to submit them as issues and:
- Explain in detail how they should work
- Note that keeping the scope as narrow as possible will make the suggestion easier to implement
Fixing Issues
Look through our issue tracker to find problems to fix! Feel free to comment and tag corresponding stakeholders or full-time maintainers of this project with any questions or concerns.
Pull Requests
What is a "pull request"? It informs the project's core developers about the changes you want to review and merge. Once you submit a pull request, it enters a stage of code review where you and others can discuss its potential modifications and maybe even add more commits to it later on.
If you want to learn more, please consult this tutorial on how pull requests work in the GitHub Help Center.
Pre-commit Hooks
We leverage pre-commit hooks in our project to have some basic/local validation of common code artifacts before a commit is recorded. If you would like to learn more about pre-commit hooks please visit the projects site.
Here's an overview of how you can make a pull request against this project:
-
Fill out the Splunk Contribution Agreement.
-
Clone your fork using git and create a branch off of develop
$ git clone git@github.com:YOUR_GITHUB_USERNAME/attack_range.git
$ cd attack_range
# This project uses 'develop' for all development activity, so create your branch off that
$ git checkout -b your-bugfix-branch-name develop