Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
68 changes: 62 additions & 6 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,13 +35,38 @@ GitHub.
- [Git Cheat Sheet](https://education.github.com/git-cheat-sheet-education.pdf)
- [GitHub Flow](https://guides.github.com/introduction/flow/)

#### Forking the microsoftgraph/entra-powershell repository
#### Getting the code

Unless you're working with multiple contributors on the same file, we ask that you fork the
repository and submit your pull request from there. The following guide explains how to fork a
GitHub repo.
There are two ways to contribute code changes:

- [Contributing to GitHub projects](https://guides.github.com/activities/forking/).
**Option 1: Clone directly (recommended for regular contributors)**

Clone the repository directly and create a feature branch. Pull requests created from branches pushed
directly to the repository will have the CI/CD pipeline run **automatically**.

```git
git clone https://github.com/microsoftgraph/entra-powershell.git
cd entra-powershell
git checkout -b feature/your-change-description
```

**Option 2: Fork the repository**

External contributors can fork the repository and submit pull requests from their fork. Note that
pull requests from forks **will not** trigger the CI/CD pipeline automatically — an internal
reviewer must manually trigger the pipeline run after reviewing the changes.

```git
# Fork via GitHub UI, then clone your fork
git clone https://github.com/<YOUR-USERNAME>/entra-powershell.git
cd entra-powershell
git remote add upstream https://github.com/microsoftgraph/entra-powershell.git
git checkout -b feature/your-change-description
```

> **Note**: Regardless of which option you choose, ensure all tests pass locally before submitting
> your PR. For fork-based PRs, the pipeline will be triggered by an internal reviewer once the
> changes are reviewed.

## Filing Issues

Expand All @@ -68,13 +93,14 @@ You can find all of the pull requests that opened in the

When creating a pull request, keep the following in mind:

- Verify you're pointing to the fork and branch that your changes were made in.
- Verify you're pointing to the branch that your changes were made in.
- Choose the correct branch you want your pull request to be merged into.
- The **main** branch is for active development; changes in this branch will be in the next Entra
PowerShell release.
- The pull request template that is provided **must be filled out**. Don't delete or ignore it when
the pull request is created.
- **_IMPORTANT:_** Deleting or ignoring the pull request template delays the PR review process.
- Once your PR is complete and ready for review, add the **Ready For Review** label to signal the team.
- The SLA for reviewing pull requests is **three business days**.

### Pull Request Guidelines
Expand All @@ -90,6 +116,36 @@ The following guidelines must be followed in **every** pull request that is open
- Changes made have corresponding test coverage.
- Tests shouldn't include any hardcoded values, such as DisplayName, resource ID, etc.
- No existing tests should be skipped.
- All API calls in tests must be mocked — never call the real Microsoft Graph API in unit tests.
- Tests must pass both locally and in CI before a PR is reviewed.

For detailed instructions on writing and running tests, see the [Testing Guide](development-docs/TESTING.md).

#### Building and testing locally

Before submitting a PR, build and validate your changes locally:

1. **Build the module** — see the [Local Build and Validation Guide](development-docs/LOCAL-BUILD-AND-VALIDATION.md) or [BUILD.md](build/BUILD.md).
2. **Run unit tests** — use Pester to run all tests and ensure zero failures.
3. **Run static analysis** — use PSScriptAnalyzer on your changed files.

```powershell
# Quick validation workflow
.\build\Install-Dependencies.ps1 -ModuleName Entra
. .\build\Common-functions.ps1
Create-ModuleHelp -Module Entra
.\build\Create-EntraModule.ps1 -Module 'Entra'
.\build\Create-EntraModule.ps1 -Module 'Entra' -Root
Import-Module .\bin\Microsoft.Entra.psd1 -Force

# Run tests
Invoke-Pester -Path .\test\Entra\ -Output Detailed

# Static analysis
Invoke-ScriptAnalyzer -Path .\module\Entra\ -Recurse -Severity Warning
```

For the full guide, including safe testing practices and troubleshooting, see the [Local Build and Validation Guide](development-docs/LOCAL-BUILD-AND-VALIDATION.md).

## Microsoft Entra PowerShell documentation contributions

Expand Down
14 changes: 10 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,9 +33,9 @@ The following table contains a list of the Microsoft Entra PowerShell modules.
| [`Microsoft.Entra`][entrapsgallery] | [![mg]][entrapsgallery] | v1.0 Module |
| [`Microsoft.Entra.Beta`][entrapsgallerybeta] | [![mgbeta]][entrapsgallerybeta] | Beta Module |

## Roadmap
## Suggestions

Explore what's coming next on our [public roadmap][public-roadmap] ✨ and [share your suggestions][suggestions] with us!
Have ideas for improvement? [Share your suggestions][suggestions] with us!

## Learn more

Expand All @@ -52,7 +52,14 @@ Explore what's coming next on our [public roadmap][public-roadmap] ✨ and [shar

## Contribute

To contribute, see [contribution guide](CONTRIBUTING.md). By the way, our documentation ([cmdlet references](./module/docs/) and [conceptual articles][docs-repo]) 🤓 are open source!
To contribute, see the [contribution guide](CONTRIBUTING.md). For local development, these guides will help you get started:

- **[Local Build and Validation Guide](development-docs/LOCAL-BUILD-AND-VALIDATION.md)** — How to build the module, run tests, and validate your changes locally.
- **[Testing Guide](development-docs/TESTING.md)** — How to write and run unit tests using Pester.
- **[Developer Guide](development-docs/README.md)** — Complete guide for creating cmdlets, design guidelines, and code review process.
- **[Build Instructions](build/BUILD.md)** — Detailed module build steps and FAQs.

By the way, our documentation ([cmdlet references](./module/docs/) and [conceptual articles][docs-repo]) 🤓 are open source!

## Known Issues

Expand Down Expand Up @@ -86,6 +93,5 @@ Copyright (c) Microsoft Corporation. All Rights Reserved. Licensed under the MIT
[entraPowershellIssues]: htts://aka.ms/entra/ps/issues
[azureADRetirement]: https://techcommunity.microsoft.com/blog/microsoft-entra-blog/action-required-msonline-and-azuread-powershell-retirement---2025-info-and-resou/4364991
[learn.microsoft]: https://aka.ms/entra/ps/docs
[public-roadmap]: https://github.com/orgs/microsoftgraph/projects/69/views/1
[suggestions]: https://github.com/microsoftgraph/entra-powershell/discussions
[docs-repo]: https://github.com/MicrosoftDocs/entra-powershell-docs/tree/main/docs/conceptual
Loading