Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
Updated the "Contribution Guidelines" to provide better details on creating a new scenario & linked the template scenario to help contributors get started.
  • Loading branch information
TeneBrae93 authored Jun 3, 2024
1 parent 04b8410 commit aaba59e
Showing 1 changed file with 21 additions and 4 deletions.
25 changes: 21 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -328,13 +328,30 @@ For features, much the same applies! Be specific in your request, and make sure

Contributions to CloudGoat are greatly appreciated. If you'd like to help make the project better, read on.

1. Python code in CloudGoat should generally follow Python's style conventions, favoring readability and maintainability above all.
2. Follow good git practices: use pull requests, prefer feature branches, always write clear commit messages.
3. CloudGoat uses `black` and `flake8` - Python syntax and style linters - If you're going to commit code for CloudGoat, ensure that first `flake8`, and then `black` are both run on all Python files in `core/python/` and on `cloudgoat.py`. `black`'s decisions take priority over `flake8`'s. Both of these are commented out in the `core/python/requirements.txt` file since normal users don't need them.
4. CloudGoat code should always use the BSD 3-clause license.
1. **Creating a New Scenario**:
- We have provided a scenario template to help you get started quickly. The template includes the basic structure and necessary files for a CloudGoat scenario. You can find the scenario template [here](/scenarios/scenario_template).
- **Steps to Create a New Scenario**:
- **Copy the Template**: Copy the contents of the scenario template to a new directory named after your scenario.
- **Modify the Template**: Replace the placeholder content in the template with the specifics of your new scenario.
- **Test the Scenario**: Ensure that your scenario works as expected by testing it thoroughly.
2. **Coding Standards**:
- **Code Style**: Follow the existing code style in the project. Consistency is key.
- **Comments**: Add comments to your code where necessary to explain complex logic or important decisions.
- **Documentation**: Update the README.md and other relevant documentation to include details about your new scenario or changes.
3. **Whitelisting**:
- When creating or modifying scenarios, keep the following in mind:
- **Whitelisting**: Ensure that security group rules and other access controls are configured to whitelist only the IP from the CloudGoat configuration.
- **Review**: Double-check your configurations for any potentially vulnerable public resources before contributing (i.e. do not create vulnerable EC2s accessible to the internet).
4. **Python Code Style**:
- Python code in CloudGoat should generally follow Python's style conventions, favoring readability and maintainability above all.
- Follow good git practices: use pull requests, prefer feature branches, always write clear commit messages.
- CloudGoat uses `black` and `flake8` - Python syntax and style linters. Ensure that both `flake8` and `black` are run on all Python files in `core/python/` and on `cloudgoat.py` before committing code. `black`'s decisions take priority over `flake8`'s. Both of these are commented out in the `core/python/requirements.txt` file since normal users don't need them.
5. **Licensing**:
- CloudGoat code should always use the BSD 3-clause license.

And lastly, thank you for contributing!


## Changelog

- **6/24/19:** CloudGoat 2.0 is released!
Expand Down

0 comments on commit aaba59e

Please sign in to comment.