Skip to content

Commit 3772a78

Browse files
committed
refactor: simplify GitHub team requirements by removing module contributors from AVM documentation
1 parent 17760d5 commit 3772a78

File tree

2 files changed

+30
-47
lines changed

2 files changed

+30
-47
lines changed

docs/content/help-support/issue-triage/avm-issue-triage.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,7 @@ To look for Orphaned Modules:
230230
- Add the &nbsp;<mark style="background-image:none;white-space: nowrap;background-color:#C8E6C9;">Status: Module Available 🟢</mark>&nbsp; and &nbsp;<mark style="background-image:none;white-space: nowrap;background-color:#FBEF2A;">Status: Owners Identified 🤘</mark>&nbsp; labels to the issue.
231231
- Move the issue into the "`Done`" column on the [AVM - Modules Triage](https://aka.ms/avm/moduletriage) GitHub Project board.
232232
3. Update the AVM Module Indexes, following the [process documented internally](https://dev.azure.com/CSUSolEng/Azure%20Verified%20Modules/_wiki/wikis/AVM%20Internal%20Wiki/684/Module-index-update-process).
233-
4. Get the new owner(s) and any new contributor(s) added to the related `-module-owners-` or `-module-contributors-` teams as applicable. See [SNFR20]({{% siteparam base %}}/spec/SNFR20) for more details.
233+
4. Get the new owner(s) added to the related `-module-owners-` team as applicable. See [SNFR20]({{% siteparam base %}}/spec/SNFR20) for more details.
234234
5. Remove the information notice (i.e., the file that states that `⚠️THIS MODULE IS CURRENTLY ORPHANED.⚠️, etc.` ):
235235
- In case of a Bicep module:
236236
- Delete the `ORPHANED.md` file from the module's root.
@@ -276,13 +276,12 @@ If a module meets the criteria described in the "[Deprecated Modules]({{% sitepa
276276
1. Remove the module from the [`CODEOWNERS`](https://github.com/Azure/bicep-registry-modules/blob/main/.github/CODEOWNERS) file.
277277
1. Submit a Pull Request
278278
1. For the AVM maintainers: Once the PR is merged, run the [.Platform - Publish [moduleIndex.json]](https://github.com/Azure/bicep-registry-modules/actions/workflows/platform.publish-module-index-json.yml) workflow with the `regenIndexFromBRM` flag set. This will de-list the module so that it won't show up in the VS-Code Bicep extension going forward.
279-
7. Delete the module's `-owners-` and `-contributors-` GitHub teams.
279+
7. Delete the module's `-owners-` GitHub teams.
280280

281281
**Terraform specific steps**
282282

283283
4. Place the information notice - with the text below - in the `README.md` file, in the module's root.
284284
5. Archive the module's repository on GitHub.
285-
6. Keep the module's `-owners-` and `-contributors-` GitHub teams, as these will keep granting access to the source code of the module.
286285

287286
**Deprecation information notice** (to be place in the module's repository as described above)
288287

docs/content/specs-defs/includes/shared/shared/non-functional/SNFR20.md

Lines changed: 28 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -22,69 +22,66 @@ priority: 1110
2222

2323
All GitHub repositories that AVM module are published from and hosted within **MUST** only assign GitHub repository permissions to GitHub teams only.
2424

25-
Each module **MUST** have separate GitHub teams assigned for module owners **AND** module contributors respectively. These GitHub teams **MUST** be created in the [Azure organization](https://github.com/orgs/Azure/teams) in GitHub.
25+
Each module **MUST** have a GitHub team assigned for module owners. This team **MUST** be created in the [Azure organization](https://github.com/orgs/Azure/teams) in GitHub.
2626

2727
There **MUST NOT** be any GitHub repository permissions assigned to individual users.
2828

29+
{{% notice style="important" %}}
30+
Non-FTE / external contributors (subject matter experts that aren't Microsoft employees) can't be members of the teams described in this chapter, hence, they won't gain any extra permissions on AVM repositories, therefore, they need to work in forks.
31+
{{% /notice %}}
32+
33+
### Bicep
34+
2935
{{% notice style="note" %}}
3036
The names for the GitHub teams for each approved module are already defined in the respective [Module Indexes]({{% siteparam base %}}/indexes/). These teams **MUST** be created (and used) for each module.
3137

3238
- [Bicep Resource Modules]({{% siteparam base %}}/indexes/bicep/bicep-resource-modules/#module-name-telemetry-id-prefix-github-teams-for-owners)
3339
- [Bicep Pattern Modules]({{% siteparam base %}}/indexes/bicep/bicep-pattern-modules/#module-name-telemetry-id-prefix-github-teams-for-owners)
34-
- [Terraform Resource Modules]({{% siteparam base %}}/indexes/terraform/tf-resource-modules/#module-name-telemetry-id-prefix-github-teams-for-owners)
35-
- [Terraform Pattern Modules]({{% siteparam base %}}/indexes/terraform/tf-pattern-modules/#module-name-telemetry-id-prefix-github-teams-for-owners)
40+
- [Bicep Utility Modules]({{% siteparam base %}}/indexes/bicep/bicep-utility-modules/#module-name-telemetry-id-prefix-github-teams-for-owners)
3641

3742
The `@Azure` prefix in the last column of the tables linked above represents the "Azure" GitHub organization all AVM-related repositories exist in. **DO NOT** include this segment in the team's name!
3843

3944
{{% /notice %}}
4045

41-
{{% notice style="important" %}}
42-
Non-FTE / external contributors (subject matter experts that aren't Microsoft employees) can't be members of the teams described in this chapter, hence, they won't gain any extra permissions on AVM repositories, therefore, they need to work in forks.
43-
{{% /notice %}}
4446

45-
### Naming Convention
4647

47-
The naming convention for the GitHub teams **MUST** follow the below pattern:
48+
#### Naming Convention
4849

49-
- `<hyphenated module name>-module-owners-<bicep/tf>` - to grant permissions for module owners
50-
- `<hyphenated module name>-module-contributors-tf` - to grant permissions for module contributors (for Terraform modules only)
50+
The naming convention for the GitHub teams **MUST** follow the below pattern:
5151

52-
{{% notice style="note" %}}
53-
The naming convention for Bicep modules is slightly different than the naming convention for their respective GitHub teams.
54-
{{% /notice %}}
52+
- `<hyphenated module name>-module-owners-bicep` - to grant permissions for module owners on Bicep modules
5553

5654
Segments:
5755

5856
- `<hyphenated module name>` == the AVM Module's name, with each segment separated by dashes, i.e., `avm-res-<resource provider>-<ARM resource type>`
5957
- See [RMNFR1]({{% siteparam base %}}/spec/RMNFR1) for AVM Resource Module Naming
6058
- See [PMNFR1]({{% siteparam base %}}/spec/PMNFR1) for AVM Pattern Module Naming
61-
- `module-owners` or `module-contributors` == the role the GitHub Team is assigned to
62-
- `<bicep/tf>` == the language the module is written in
59+
- `module-owners` == the role the GitHub Team is assigned to
60+
- `<bicep` == the language the module is written in
6361

6462
Examples:
6563

6664
- `avm-res-compute-virtualmachine-module-owners-bicep`
67-
- `avm-res-compute-virtualmachine-module-contributors-tf`
68-
69-
### Add Team Members
7065

71-
All officially documented module owner(s) **MUST** be added to the `-module-owners-` team. The `-module-owners-` team **MUST NOT** have any other members.
66+
{{% notice style="note" %}}
67+
The naming convention for Bicep modules is slightly different than the naming convention for their respective GitHub teams.
68+
{{% /notice %}}
7269

73-
In case of Terraform modules, any additional module contributors whom the module owner(s) agreed to work with **MUST** be added to the `-module-contributors-` team.
70+
#### Add Team Members
7471

75-
Unless explicitly requested and agreed, members of the AVM core team or any PG teams **MUST NOT** be added to the `-module-owners-` or `-module-contributors-` teams as permissions for them are granted through the teams described in [SNFR9]({{% siteparam base %}}/spec/SNFR9).
72+
All officially documented module owner(s) **MUST** be added to the `-module-owners-` team. The `-module-owners-` team **MUST NOT** have any other members.
7673

77-
### Grant Permissions - Bicep
74+
Unless explicitly requested and agreed, members of the AVM core team or any PG teams **MUST NOT** be added to the `-module-owners-` teams as permissions for them are granted through the teams described in [SNFR9]({{% siteparam base %}}/spec/SNFR9).
7875

79-
### Team memberships
76+
#### Grant permissions through team memberships
8077

8178
{{% notice style="note" %}}
8279

83-
In case of Bicep modules, permissions to the [BRM](https://aka.ms/BRM) repository (the repo of the Bicep Registry) are granted via assigning the `-module-owners-` and `-module-contributors-` teams to parent teams that already have the required level access configured. While it is the module owner's responsibility to initiate the addition of their teams to the respective parents, only the AVM core team can approve this parent-child relationship.
80+
In case of Bicep modules, permissions to the [BRM](https://aka.ms/BRM) repository (the repo of the Bicep Registry) are granted via assigning the `-module-owners-` teams to parent teams that already have the required level access configured. While it is the module owner's responsibility to initiate the addition of their team to the respective parent, only the AVM core team can approve this parent-child relationship.
8481

8582
{{% /notice %}}
8683

87-
Module owners **MUST** create their `-module-owners-` team and as part of the provisioning process, they **MUST** request the addition of this team to its respective parent teams (see the table below for details).
84+
Module owners **MUST** create their `-module-owners-` team and as part of the provisioning process, they **MUST** request the addition of this team to its respective parent team (see the table below for details).
8885

8986
| GitHub Team Name | Description | Permissions | Permissions granted through | Where to work? |
9087
|------------------------------------------------------|------------------------------------------------|-------------|--------------------------------------------------------------------|-------------------------|
@@ -106,7 +103,7 @@ Fill in the values as follows:
106103
- **Team notifications**: `Enabled`
107104
{{% /notice %}}
108105

109-
### CODEOWNERS file
106+
#### CODEOWNERS file
110107

111108
As part of the "initial Pull Request" (that publishes the first version of the module), module owners **MUST** add an entry to the `CODEOWNERS` file in the BRM repository ([here](https://github.com/Azure/bicep-registry-modules/blob/main/.github/CODEOWNERS)).
112109

@@ -124,23 +121,10 @@ Example - `CODEOWNERS` entry for the Bicep resource module of Azure Virtual Netw
124121

125122
- `/avm/res/network/virtual-network/ @Azure/avm-res-network-virtualnetwork-module-owners-bicep @Azure/avm-module-reviewers-bicep`
126123

127-
### Grant Permissions - Terraform
128-
129-
Module owners **MUST** assign the `-module-owners-`and `-module-contributors-` teams the necessary permissions on their Terraform module repository per the guidance below.
124+
### Terraform
130125

131-
| GitHub Team Name | Description | Permissions | Permissions granted through | Where to work? |
132-
|----------------------------------------|---------------------------------------------------|-------------|-----------------------------|-----------------------------------------------------------------------------------------------|
133-
| `<module name>-module-owners-tf` | AVM Terraform Module Owners - \<module name> | **Admin** | Direct assignment to repo | Module owner can decide whether they want to work in a branch local to the repo or in a fork. |
134-
| `<module name>-module-contributors-tf` | AVM Terraform Module Contributors - \<module name> | **Write** | Direct assignment to repo | Need to work in a fork. |
135-
136-
{{% notice style="tip" %}}
137-
Direct link to create a new GitHub team: [Create new team](https://github.com/orgs/Azure/new-team)
138-
139-
Fill in the values as follows:
140-
141-
- **Team name**: Following the naming convention described above, use the value defined in the module indexes.
142-
- **Description**: Follow the guidance above (see the Description column in the table above).
143-
- **Parent team**: Do not assign the team to any parent team.
144-
- **Team visibility**: `Visible`
145-
- **Team notifications**: `Enabled`
126+
{{% notice style="note" %}}
127+
Access management for Terraform repositories has been changed to...
146128
{{% /notice %}}
129+
130+
Permissions in case of Terraform repositories are granted through...

0 commit comments

Comments
 (0)