Welcome, and thank you for your interest in contributing to PSRule!
There are many ways in which you can contribute, beyond writing code. The goal of this document is to provide a high-level overview of how you can get involved.
- Reporting issues
- Improve documentation
- Adding or improving rules
- Fix bugs or add features
This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.microsoft.com.
When you submit a pull request, a CLA-bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repositories using our CLA.
This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.
Have you identified a reproducible problem? Have a feature request? We want to hear about it! Here's how you can make reporting your issue as effective as possible.
Before you create a new issue, please do a search in open issues to see if the issue or feature request has already been filed.
If you find your issue already exists, make relevant comments and add your reaction. Use a reaction in place of a "+1" comment:
- 👍 - upvote
This project contains a wide range of documentation. Some of the documentation that you might like to improve include:
- Rule recommendations (
src/PSRule.Rules.MSFT.OSS/
). - Scenarios and examples (
docs/scenarios/
).
Before improving rule recommendations familiarize yourself with writing rule markdown documentation.
Rule documentation requires the following annotations:
category
online version
- Rules are stored in
src/PSRule.Rules.MSFT.OSS/
. - Rule documentation in English is stored in
src/PSRule.Rules.MSFT.OSS/en/
.- Additional cultures can be added in a subdirectory under
src/PSRule.Rules.MSFT.OSS/
.
- Additional cultures can be added in a subdirectory under
- Use pre-conditions to limit the type of resource a rule applies to.
Tips for authoring rules:
- To create new rules, snippets in the VS Code extension for PSRule can be used.
- Use
-Type
over-If
pre-conditions when possible. Both may be required in some cases.
When contributing to documentation or code changes, you'll need to have a GitHub account and a basic understanding of Git. Check out the links below to get started.
- Make sure you have a GitHub account.
- GitHub Help:
You should use the multi-platform Visual Studio Code (VS Code). The project contains a number of workspace specific settings that make it easier to author consistently.
After installing VS Code, install the following extensions:
When creating a pull request to merge your changes, a continuous integration (CI) pipeline is run. The CI pipeline will build then test your changes across MacOS, Linux and Windows configurations.
Before opening a pull request try building your changes locally. To do this See building from source for instructions.
Your contributions to open source, large or small, make great projects like this possible. Thank you for taking the time to contribute.