diff --git a/.github/policies/eventResponder.yml b/.github/policies/eventResponder.yml
index f936928ea..2703db257 100644
--- a/.github/policies/eventResponder.yml
+++ b/.github/policies/eventResponder.yml
@@ -242,12 +242,3 @@ configuration:
then:
- removeLabel:
label: "Status: In PR :point_right:"
-
- - description: 'ITA26 - When owner is ready for repository creation, add the "Status: Ready For Repository Creation :memo:" label'
- if:
- - payloadType: Issue_Comment
- - commentContains:
- pattern: "#RFRC"
- then:
- - addLabel:
- label: "Status: Ready For Repository Creation :memo:"
diff --git a/.github/workflows/github-teams-check-existance.yml b/.github/workflows/github-teams-check-existance.yml
index 8456de36e..57d9486bc 100644
--- a/.github/workflows/github-teams-check-existance.yml
+++ b/.github/workflows/github-teams-check-existance.yml
@@ -129,57 +129,3 @@ jobs:
Invoke-AvmGitHubTeamLinter @functionInput -Verbose
env:
GITHUB_TOKEN: ${{ steps.generate-token.outputs.token }}
-
- - name: "Compare Terraform Resource Teams"
- if: always()
- id: comparetfres
- shell: pwsh
- run: |
- # Load used functions
- . (Join-Path $env:GITHUB_WORKSPACE 'utilities' 'pipelines' 'sharedScripts' 'teamLinter' 'Invoke-AvmGitHubTeamLinter.ps1')
-
- $functionInput = @{
- ModuleIndex = 'Terraform-Resource'
- TeamFilter = 'AllTerraformResource'
- ValidateTerraformTeamsPermissons = $true
- }
-
- $branch = git branch --show-current
- $branchName = $branch.split('/')[-1]
- if ($branchName -eq "main"){
- $functionInput['CreateIssues'] = $true
- }
-
- Write-Verbose 'Invoke task with' -Verbose
- Write-Verbose ($functionInput | ConvertTo-Json | Out-String) -Verbose
-
- Invoke-AvmGitHubTeamLinter @functionInput -Verbose
- env:
- GITHUB_TOKEN: ${{ steps.generate-token.outputs.token }}
-
- - name: "Compare Terraform Pattern Teams"
- if: always()
- id: comparetfptn
- shell: pwsh
- run: |
- # Load used functions
- . (Join-Path $env:GITHUB_WORKSPACE 'utilities' 'pipelines' 'sharedScripts' 'teamLinter' 'Invoke-AvmGitHubTeamLinter.ps1')
-
- $functionInput = @{
- ModuleIndex = 'Terraform-Pattern'
- TeamFilter = 'AllTerraformPattern'
- ValidateTerraformTeamsPermissons = $true
- }
-
- $branch = git branch --show-current
- $branchName = $branch.split('/')[-1]
- if ($branchName -eq "main"){
- $functionInput['CreateIssues'] = $true
- }
-
- Write-Verbose 'Invoke task with' -Verbose
- Write-Verbose ($functionInput | ConvertTo-Json | Out-String) -Verbose
-
- Invoke-AvmGitHubTeamLinter @functionInput -Verbose
- env:
- GITHUB_TOKEN: ${{ steps.generate-token.outputs.token }}
diff --git a/docs/content/help-support/issue-triage/avm-issue-triage.md b/docs/content/help-support/issue-triage/avm-issue-triage.md
index 5387b6bbd..d279c7830 100644
--- a/docs/content/help-support/issue-triage/avm-issue-triage.md
+++ b/docs/content/help-support/issue-triage/avm-issue-triage.md
@@ -77,7 +77,6 @@ If requestor is interested in becoming a module owner, but is not a Microsoft FT
1. If the requestor indicated they didn't want to or can't become a module owner (or is not a Microsoft FTE), make sure the Needs: Module Owner 📣 label is assigned to the issue. Note: the GitHub Policy Service Bot should automatically do this, based on how the issue author responded to the related question.
1. Move the issue to the "`Looking for owners`" column on the [AVM - Modules Triage](https://aka.ms/avm/moduletriage) GitHub project board.
-1. Add a comment on the issue with the `#RFRC` tag to indicate that the repository should be created. This allows the module to be added the module indexes in the `Proposed` state, so that it can be found by the community and potential module owners.
1. Find module owners - if the requestor didn't volunteer in the module proposal OR the requestor does not want or cannot be owner of the module:
- Try to find an owner from the AVM communities or await a module owner to comment and propose themselves on the proposal issue.
1. When a new potential owner is identified, continue with the steps described [as follows](#scenario-2-requestor-wants-to-and-can-become-module-owner).
@@ -105,7 +104,6 @@ You **MUST** still confirm that the requestor is a Microsoft FTE and that they u
3. Once module owner identified has confirmed they understand and accept their roles and responsibilities as an AVM module owner
- Make sure the issue is assigned to the confirmed module owner.
- Move the issue into the "`In development`" column on the [AVM - Modules Triage](https://aka.ms/avm/moduletriage) GitHub Project board.
- - Add a comment on the issue with the `#RFRC` tag to indicate that the repository should be created. This allows the module to be added the module indexes in the `Proposed` state, so that it can be found by the community.
- Make sure the Status: Owners Identified 🤘 label is added to the issue.
- If applied earlier, remove the Needs: Module Owner 📣 label from the issue.
- Remove the labels of Needs: Triage 🔍 and Status: In Triage 🔍 to indicate you're done with triaging the issue.
diff --git a/docs/content/help-support/issue-triage/issue-triage-automation.md b/docs/content/help-support/issue-triage/issue-triage-automation.md
index bf5905ae4..9062c394e 100644
--- a/docs/content/help-support/issue-triage/issue-triage-automation.md
+++ b/docs/content/help-support/issue-triage/issue-triage-automation.md
@@ -621,20 +621,6 @@ Inform module owners that they need to add the Status: Ready For Repository Creation 📝 when a module owner adds a comment to the issue to tell them.
-
-**Trigger criteria:**
-
-- A comment is added to an issue that contains the `#RFRC` tag.
-
-**Action(s):**
-
-- Adds the Status: Ready For Repository Creation 📝 label to the Issue.
-
----
-
-### ITA27
-
Add a comment to a PR that modifies these files based on the regex pattern, advising to disable GitHub Actions prior to merging:
- ".github/actions/templates/avm-**"
@@ -705,5 +691,4 @@ The ITA05 rule is currently disabled in the AVM and BRM repositories.
| [ITA22](#ita22) | | ✔️ | ✔️ |
| [ITA23](#ita23) | ✔️ | | ✔️ |
| [ITA25](#ita25) | | ✔️ | |
-| [ITA26](#ita26) | ✔️ | | |
-| [ITA27](#ita27) | | ✔️ | |
+| [ITA26](#ita26) | | ✔️ | |
diff --git a/docs/content/specs-defs/includes/shared/shared/non-functional/SNFR20.md b/docs/content/specs-defs/includes/shared/shared/non-functional/SNFR20.md
index a5560962f..6398a11f8 100644
--- a/docs/content/specs-defs/includes/shared/shared/non-functional/SNFR20.md
+++ b/docs/content/specs-defs/includes/shared/shared/non-functional/SNFR20.md
@@ -9,11 +9,10 @@ tags: [
Type-NonFunctional, # SINGLE VALUE: this can be "Type-Functional" OR "Type-NonFunctional"
Category-Contribution/Support, # SINGLE VALUE: this can be "Category-Testing" OR "Category-Telemetry" OR "Category-Contribution/Support" OR "Category-Documentation" OR "Category-CodeStyle" OR "Category-Naming/Composition" OR "Category-Inputs/Outputs" OR "Category-Release/Publishing"
Language-Bicep, # MULTIPLE VALUES: this can be "Language-Bicep" AND/OR "Language-Terraform"
- Language-Terraform, # MULTIPLE VALUES: this can be "Language-Bicep" AND/OR "Language-Terraform"
Severity-MUST, # SINGLE VALUE: this can be "Severity-MUST" OR "Severity-SHOULD" OR "Severity-MAY"
Persona-Owner, # MULTIPLE VALUES: this can be "Persona-Owner" AND/OR "Persona-Contributor"
Lifecycle-Initial, # SINGLE VALUE: this can be "Lifecycle-Initial" OR "Lifecycle-BAU" OR "Lifecycle-EOL"
- Validation-TBD # SINGLE VALUE (PER LANGUAGE): for Bicep, this can be "Validation-BCP/Manual" OR "Validation-BCP/CI/Informational" OR "Validation-BCP/CI/Enforced" and for Terraform, this can be "Validation-TF/Manual" OR "Validation-TF/CI/Informational" OR "Validation-TF/CI/Enforced"
+ Validation-TBD # SINGLE VALUE (PER LANGUAGE): this can be "Validation-BCP/Manual" OR "Validation-BCP/CI/Informational" OR "Validation-BCP/CI/Enforced" and for Terraform, this can be "Validation-TF/Manual" OR "Validation-TF/CI/Informational" OR "Validation-TF/CI/Enforced"
]
priority: 1110
---
@@ -31,8 +30,6 @@ The names for the GitHub teams for each approved module are already defined in t
- [Bicep Resource Modules]({{% siteparam base %}}/indexes/bicep/bicep-resource-modules/#module-name-telemetry-id-prefix-github-teams-for-owners--contributors)
- [Bicep Pattern Modules]({{% siteparam base %}}/indexes/bicep/bicep-pattern-modules/#module-name-telemetry-id-prefix-github-teams-for-owners--contributors)
-- [Terraform Resource Modules]({{% siteparam base %}}/indexes/terraform/tf-resource-modules/#module-name-telemetry-id-prefix-github-teams-for-owners--contributors)
-- [Terraform Pattern Modules]({{% siteparam base %}}/indexes/terraform/tf-pattern-modules/#module-name-telemetry-id-prefix-github-teams-for-owners--contributors)
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!
@@ -46,8 +43,8 @@ Non-FTE / external contributors (subject matter experts that aren't Microsoft em
The naming convention for the GitHub teams **MUST** follow the below pattern:
-- `-module-owners-` - to be assigned as the GitHub repository's `Module Owners` team
-- `-module-contributors-` - to be assigned as the GitHub repository's `Module Contributors` team
+- `-module-owners-bicep` - to be assigned as the GitHub repository's `Module Owners` team
+- `-module-contributors-bicep` - to be assigned as the GitHub repository's `Module Contributors` team
{{% notice style="note" %}}
The naming convention for Bicep modules is slightly different than the naming convention for their respective GitHub teams.
@@ -59,12 +56,12 @@ Segments:
- See [RMNFR1]({{% siteparam base %}}/spec/RMNFR1) for AVM Resource Module Naming
- See [PMNFR1]({{% siteparam base %}}/spec/PMNFR1) for AVM Pattern Module Naming
- `module-owners` or `module-contributors` == the role the GitHub Team is assigned to
-- `` == the language the module is written in
+- `bicep` == the language the module is written in
Examples:
- `avm-res-compute-virtualmachine-module-owners-bicep`
-- `avm-res-compute-virtualmachine-module-contributors-tf`
+- `avm-res-compute-virtualmachine-module-contributors-bicep`
### Add Team Members
@@ -124,16 +121,7 @@ Every `CODEOWNERS` entry (line) **MUST** include the following segments separate
Example - `CODEOWNERS` entry for the Bicep resource module of Azure Virtual Network (`avm/res/network/virtual-network`):
-- `/avm/res/network/virtual-network/ @Azure/avm-res-network-virtualnetwork-module-owners-bicep @Azure/avm-module-reviewers-bicep`
-
-### Grant Permissions - Terraform
-
-Module owners **MUST** assign the `-module-owners-`and `-module-contributors-` teams the necessary permissions on their Terraform module repository per the guidance below.
-
-| GitHub Team Name | Description | Permissions | Permissions granted through | Where to work? |
-|----------------------------------------|---------------------------------------------------|-------------|-----------------------------|-----------------------------------------------------------------------------------------------|
-| `-module-owners-tf` | AVM Terraform Module Owners - \ | **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. |
-| `-module-contributors-tf` | AVM Terraform Module Contributors - \ | **Write** | Direct assignment to repo | Need to work in a fork. |
+- `/avm/res/network/virtual-network/ @Azure/avm-res-network-virtualnetwork-module-owners-bicep @Azure/avm-module-reviewers-bicep` |
{{% notice style="tip" %}}
Direct link to create a new GitHub team: [Create new team](https://github.com/orgs/Azure/new-team)
diff --git a/docs/content/specs-defs/team-definitions.md b/docs/content/specs-defs/team-definitions.md
index 050ec915c..34c6d5f6b 100644
--- a/docs/content/specs-defs/team-definitions.md
+++ b/docs/content/specs-defs/team-definitions.md
@@ -54,7 +54,10 @@ Module owners are responsible for:
- Module Feature Request Triage & Additions
4. **Managing additional module contributors**
-Ideally there **SHOULD** be at least 2 module owners per module who **MUST** be added to a [GitHub Team in the `Azure` organization.]({{%siteparam base%}}/spec/SNFR20/)
+Ideally there **SHOULD** be at least 2 module owners per module:
+
+- Bicep: Owners **MUST** be added to a [GitHub Team in the `Azure` organization.]({{%siteparam base%}}/spec/SNFR20/)
+- Terraform: Owners **MUST** add themselves to the Azure Verified Module Owners Terraform entitlement in Core Identity.
### Module Contributors
@@ -68,7 +71,8 @@ Module Contributors are responsible for:
- Assisting the Module Owners with their responsibilities
-Module Contributors **MUST** be added to a separate [GitHub Team in the `Azure` organization]({{%siteparam base%}}/spec/SNFR20/) that the Module Owners manage and are maintainers of.
+- Bicep: Module Contributors **MUST** be added to a separate [GitHub Team in the `Azure` organization]({{%siteparam base%}}/spec/SNFR20/) that the Module Owners manage and are maintainers of.
+- Terraform: Contributors **MUST** add themselves to the Azure Verified Module Owners Terraform entitlement in Core Identity.
### Product Groups
diff --git a/docs/static/includes/avm-terraform-module-review-template.md b/docs/static/includes/avm-terraform-module-review-template.md
index df4a585bc..d1e80f720 100644
--- a/docs/static/includes/avm-terraform-module-review-template.md
+++ b/docs/static/includes/avm-terraform-module-review-template.md
@@ -36,73 +36,72 @@ Please use the comments columns to provide additional details especially if the
| 14 | [ID: SNFR7 - Category: Testing - Idempotency Tests](https://azure.github.io/Azure-Verified-Modules/spec/SNFR7) | Yes | Yes if e2e tests passed |
| 15 | [ID: SNFR24 - Category: Testing - Testing Child, Extension & Interface Resources](https://azure.github.io/Azure-Verified-Modules/spec/SNFR24) | Yes | Yes if e2e tests passed |
| 16 | [ID: SNFR8 - Category: Contribution/Support - Module Owner(s) GitHub](https://azure.github.io/Azure-Verified-Modules/spec/SNFR8) | | |
-| 17 | [ID: SNFR20 - Category: Contribution/Support - GitHub Teams Only](https://azure.github.io/Azure-Verified-Modules/spec/SNFR20) | | |
-| 18 | [ID: SNFR9 - Category: Contribution/Support - AVM & PG Teams GitHub Repo Permissions](https://azure.github.io/Azure-Verified-Modules/spec/SNFR9) | | |
-| 19 | [ID: SNFR10 - Category: Contribution/Support - MIT Licensing](https://azure.github.io/Azure-Verified-Modules/spec/SNFR10) | Yes | Yes if AVM Template Repo has been used |
-| 20 | [ID: SNFR11 - Category: Contribution/Support - Issues Response Times](https://azure.github.io/Azure-Verified-Modules/spec/SNFR11) | NA | Module Owner to action this spec post-publish as appropriate |
-| 21 | [ID: SNFR12 - Category: Contribution/Support - Versions Supported](https://azure.github.io/Azure-Verified-Modules/spec/SNFR12) | NA | Module Owner to action this spec post-publish as appropriate |
-| 22 | [ID: SNFR23 - Category: Contribution/Support - GitHub Repo Labels](https://azure.github.io/Azure-Verified-Modules/spec/SNFR23) | | |
-| 23 | [ID: SNFR14 - Category: Inputs - Data Types](https://azure.github.io/Azure-Verified-Modules/spec/SNFR14) | | |
-| 24 | [ID: SNFR22 - Category: Inputs - Parameters/Variables for Resource IDs](https://azure.github.io/Azure-Verified-Modules/spec/SNFR22) | | |
-| 25 | [ID: SNFR15 - Category: Documentation - Automatic Documentation Generation](https://azure.github.io/Azure-Verified-Modules/spec/SNFR15) | Yes | Yes if linting / docs check passed |
-| 26 | [ID: SNFR16 - Category: Documentation - Examples/E2E](https://azure.github.io/Azure-Verified-Modules/spec/SNFR16) | Yes | Yes if e2e tests passed |
-| 27 | [ID: SNFR17 - Category: Release - Semantic Versioning](https://azure.github.io/Azure-Verified-Modules/spec/SNFR17) | Yes | Yes if version-check check passed |
-| 28 | [ID: SNFR18 - Category: Release - Breaking Changes](https://azure.github.io/Azure-Verified-Modules/spec/SNFR18) | NA | Module Owner to action this spec post-publish as appropriate |
-| 29 | [ID: SNFR19 - Category: Publishing - Registries Targeted](https://azure.github.io/Azure-Verified-Modules/spec/SNFR19) | NA | Module Owner to action this spec post-publish as appropriate |
-| 30 | [ID: SNFR21 - Category: Publishing - Cross Language Collaboration](https://azure.github.io/Azure-Verified-Modules/spec/SNFR21) | NA | Module Owner to action this spec post-publish as appropriate |
-| 31 | [ID: RMFR1 - Category: Composition - Single Resource Only](https://azure.github.io/Azure-Verified-Modules/spec/RMFR1) | | |
-| 32 | [ID: RMFR2 - Category: Composition - No Resource Wrapper Modules](https://azure.github.io/Azure-Verified-Modules/spec/RMFR2) | | |
-| 33 | [ID: RMFR3 - Category: Composition - Resource Groups](https://azure.github.io/Azure-Verified-Modules/spec/RMFR3) | | |
-| 34 | [ID: RMFR4 - Category: Composition - AVM Consistent Feature & Extension Resources Value Add](https://azure.github.io/Azure-Verified-Modules/spec/RMFR4) | Yes | Yes if linting / terraform check passed |
-| 35 | [ID: RMFR5 - Category: Composition - AVM Consistent Feature & Extension Resources Value Add Interfaces/Schemas](https://azure.github.io/Azure-Verified-Modules/spec/RMFR5) | Yes | Yes if linting / terraform check passed |
-| 36 | [ID: RMFR8 - Category: Composition - Dependency on child and other resources](https://azure.github.io/Azure-Verified-Modules/spec/RMFR8) | | |
-| 37 | [ID: RMFR6 - Category: Inputs - Parameter/Variable Naming](https://azure.github.io/Azure-Verified-Modules/spec/RMFR6) | | |
-| 38 | [ID: RMFR7 - Category: Outputs - Minimum Required Outputs](https://azure.github.io/Azure-Verified-Modules/spec/RMFR7) | Yes | Yes if linting / terraform check passed |
-| 39 | [ID: RMNFR1 - Category: Naming - Module Naming](https://azure.github.io/Azure-Verified-Modules/spec/RMNFR1) | | |
-| 40 | [ID: RMNFR2 - Category: Inputs - Parameter/Variable Naming](https://azure.github.io/Azure-Verified-Modules/spec/RMNFR2) | | |
-| 41 | [ID: RMNFR3 - Category: Composition - RP Collaboration](https://azure.github.io/Azure-Verified-Modules/spec/RMNFR3) | NA | Module Owner to action this spec post-publish as appropriate |
-| 42 | [ID: PMFR1 - Category: Composition - Resource Group Creation](https://azure.github.io/Azure-Verified-Modules/spec/PMFR1) | | NA if this is not a pattern module |
-| 43 | [ID: PMNFR1 - Category: Naming - Module Naming](https://azure.github.io/Azure-Verified-Modules/spec/PMNFR1) | | NA if this is not a pattern module |
-| 44 | [ID: PMNFR2 - Category: Composition - Use Resource Modules to Build a Pattern Module](https://azure.github.io/Azure-Verified-Modules/spec/PMNFR2) | | NA if this is not a pattern module |
-| 45 | [ID: PMNFR3 - Category: Composition - Use other Pattern Modules to Build a Pattern Module](https://azure.github.io/Azure-Verified-Modules/spec/PMNFR3) | | NA if this is not a pattern module |
-| 46 | [ID: PMNFR4 - Category: Hygiene - Missing Resource Module(s)](https://azure.github.io/Azure-Verified-Modules/spec/PMNFR4) | | NA if this is not a pattern module |
-| 47 | [ID: PMNFR5 - Category: Inputs - Parameter/Variable Naming](https://azure.github.io/Azure-Verified-Modules/spec/PMNFR5) | | NA if this is not a pattern module |
-| 48 | [ID: TFFR1 - Category: Composition - Cross-Referencing Modules](https://azure.github.io/Azure-Verified-Modules/spec/TFFR1) | | |
-| 49 | [ID: TFFR2 - Category: Outputs - Additional Terraform Outputs](https://azure.github.io/Azure-Verified-Modules/spec/TFFR2) | Yes | Yes if linting / terraform check passed |
-| 50 | [ID: TFNFR1 - Category: Documentation - Descriptions](https://azure.github.io/Azure-Verified-Modules/spec/TFNFR1) | | |
-| 51 | [ID: TFNFR2 - Category: Documentation - Module Documentation Generation](https://azure.github.io/Azure-Verified-Modules/spec/TFNFR2) | Yes | Yes if linting / docs check passed |
-| 52 | [ID: TFNFR3 - Category: Contribution/Support - GitHub Repo Branch Protection](https://azure.github.io/Azure-Verified-Modules/spec/TFNFR3) | Yes | Yes if AVM Template Repo has been used |
-| 53 | [ID: TFNFR4 - Category: Composition - Code Styling - lower snake_casing](https://azure.github.io/Azure-Verified-Modules/spec/TFNFR4) | Yes | Yes if linting / terraform check passed |
-| 54 | [ID: TFNFR5 - Category: Testing - Test Tooling](https://azure.github.io/Azure-Verified-Modules/spec/TFNFR5) | Yes | Yes if linting / terraform check passed |
-| 55 | [ID: TFNFR6 - Category: Code Style - Resource & Data Order](https://azure.github.io/Azure-Verified-Modules/spec/TFNFR6) | | |
-| 56 | [ID: TFNFR7 - Category: Code Style - count & for_each Use](https://azure.github.io/Azure-Verified-Modules/spec/TFNFR7) | | |
-| 57 | [ID: TFNFR8 - Category: Code Style - Resource & Data Block Orders](https://azure.github.io/Azure-Verified-Modules/spec/TFNFR8) | Yes | Yes if linting / avmfix check passed |
-| 58 | [ID: TFNFR9 - Category: Code Style - Module Block Order](https://azure.github.io/Azure-Verified-Modules/spec/TFNFR9) | | |
-| 59 | [ID: TFNFR10 - Category: Code Style - No Double Quotes in ignore_changes](https://azure.github.io/Azure-Verified-Modules/spec/TFNFR10) | | |
-| 60 | [ID: TFNFR11 - Category: Code Style - Null Comparison Toggle](https://azure.github.io/Azure-Verified-Modules/spec/TFNFR11) | | |
-| 61 | [ID: TFNFR12 - Category: Code Style - Dynamic for Optional Nested Objects](https://azure.github.io/Azure-Verified-Modules/spec/TFNFR12) | | |
-| 62 | [ID: TFNFR13 - Category: Code Style - Default Values with coalesce/try](https://azure.github.io/Azure-Verified-Modules/spec/TFNFR13) | | |
-| 63 | [ID: TFNFR14 - Category: Inputs - Not allowed variables](https://azure.github.io/Azure-Verified-Modules/spec/TFNFR14) | | |
-| 64 | [ID: TFNFR15 - Category: Code Style - Variable Definition Order](https://azure.github.io/Azure-Verified-Modules/spec/TFNFR15) | Yes | Yes if linting / avmfix check passed |
-| 65 | [ID: TFNFR16 - Category: Code Style - Variable Naming Rules](https://azure.github.io/Azure-Verified-Modules/spec/TFNFR16) | Yes | Yes if linting / terraform check passed |
-| 66 | [ID: TFNFR17 - Category: Code Style - Variables with Descriptions](https://azure.github.io/Azure-Verified-Modules/spec/TFNFR17) | Yes | Yes if linting / terraform check passed |
-| 67 | [ID: TFNFR18 - Category: Code Style - Variables with Types](https://azure.github.io/Azure-Verified-Modules/spec/TFNFR18) | Yes | Yes if linting / terraform check passed |
-| 68 | [ID: TFNFR19 - Category: Code Style - Sensitive Data Variables](https://azure.github.io/Azure-Verified-Modules/spec/TFNFR19) | | |
-| 69 | [ID: TFNFR20 - Category: Code Style - Non-Nullable Defaults for collection values](https://azure.github.io/Azure-Verified-Modules/spec/TFNFR20) | | |
-| 70 | [ID: TFNFR21 - Category: Code Style - Discourage Nullability by Default](https://azure.github.io/Azure-Verified-Modules/spec/TFNFR21) | Yes | Yes if linting / avmfix check passed |
-| 71 | [ID: TFNFR22 - Category: Code Style - Avoid sensitive = false](https://azure.github.io/Azure-Verified-Modules/spec/TFNFR22) | Yes | Yes if linting / avmfix check passed |
-| 72 | [ID: TFNFR23 - Category: Code Style - Sensitive Default Value Conditions](https://azure.github.io/Azure-Verified-Modules/spec/TFNFR23) | Yes | Yes if linting / terraform check passed |
-| 73 | [ID: TFNFR24 - Category: Code Style - Handling Deprecated Variables](https://azure.github.io/Azure-Verified-Modules/spec/TFNFR24) | NA | Module Owner to action this spec post-publish as appropriate |
-| 74 | [ID: TFNFR25 - Category: Code Style - Verified Modules Requirements](https://azure.github.io/Azure-Verified-Modules/spec/TFNFR25) | Yes | Yes if linting / terraform check passed |
-| 75 | [ID: TFNFR26 - Category: Code Style - Providers in required_providers](https://azure.github.io/Azure-Verified-Modules/spec/TFNFR26) | Yes | Yes if linting / terraform check passed |
-| 76 | [ID: TFNFR27 - Category: Code Style - Provider Declarations in Modules](https://azure.github.io/Azure-Verified-Modules/spec/TFNFR27) | Yes | Yes if linting / terraform check passed |
-| 77 | [ID: TFNFR29 - Category: Code Style - Sensitive Data Outputs](https://azure.github.io/Azure-Verified-Modules/spec/TFNFR29) | Yes | Yes if linting / avmfix check passed |
-| 78 | [ID: TFNFR30 - Category: Code Style - Handling Deprecated Outputs](https://azure.github.io/Azure-Verified-Modules/spec/TFNFR30) | NA | Module Owner to action this spec post-publish as appropriate |
-| 79 | [ID: TFNFR31 - Category: Code Style - locals.tf for Locals Only](https://azure.github.io/Azure-Verified-Modules/spec/TFNFR31) | | |
-| 80 | [ID: TFNFR32 - Category: Code Style - Alphabetical Local Arrangement](https://azure.github.io/Azure-Verified-Modules/spec/TFNFR32) | Yes | Yes if linting / avmfix check passed |
-| 81 | [ID: TFNFR33 - Category: Code Style - Precise Local Types](https://azure.github.io/Azure-Verified-Modules/spec/TFNFR33) | | |
-| 82 | [ID: TFNFR34 - Category: Code Style - Using Feature Toggles](https://azure.github.io/Azure-Verified-Modules/spec/TFNFR34) | NA | Module Owner to action this spec post-publish as appropriate |
-| 83 | [ID: TFNFR35 - Category: Code Style - Reviewing Potential Breaking Changes](https://azure.github.io/Azure-Verified-Modules/spec/TFNFR35) | NA | Module Owner to action this spec post-publish as appropriate |
-| 84 | [ID: TFNFR36 - Category: Code Style - Setting prevent_deletion_if_contains_resources](https://azure.github.io/Azure-Verified-Modules/spec/TFNFR36) | | |
-| 85 | [ID: TFNFR37 - Category: Code Style - Tool Usage by Module Owner](https://azure.github.io/Azure-Verified-Modules/spec/TFNFR37) | | |
+| 17 | [ID: SNFR9 - Category: Contribution/Support - AVM & PG Teams GitHub Repo Permissions](https://azure.github.io/Azure-Verified-Modules/spec/SNFR9) | | |
+| 18 | [ID: SNFR10 - Category: Contribution/Support - MIT Licensing](https://azure.github.io/Azure-Verified-Modules/spec/SNFR10) | Yes | Yes if AVM Template Repo has been used |
+| 19 | [ID: SNFR11 - Category: Contribution/Support - Issues Response Times](https://azure.github.io/Azure-Verified-Modules/spec/SNFR11) | NA | Module Owner to action this spec post-publish as appropriate |
+| 20 | [ID: SNFR12 - Category: Contribution/Support - Versions Supported](https://azure.github.io/Azure-Verified-Modules/spec/SNFR12) | NA | Module Owner to action this spec post-publish as appropriate |
+| 21 | [ID: SNFR23 - Category: Contribution/Support - GitHub Repo Labels](https://azure.github.io/Azure-Verified-Modules/spec/SNFR23) | | |
+| 22 | [ID: SNFR14 - Category: Inputs - Data Types](https://azure.github.io/Azure-Verified-Modules/spec/SNFR14) | | |
+| 23 | [ID: SNFR22 - Category: Inputs - Parameters/Variables for Resource IDs](https://azure.github.io/Azure-Verified-Modules/spec/SNFR22) | | |
+| 24 | [ID: SNFR15 - Category: Documentation - Automatic Documentation Generation](https://azure.github.io/Azure-Verified-Modules/spec/SNFR15) | Yes | Yes if linting / docs check passed |
+| 25 | [ID: SNFR16 - Category: Documentation - Examples/E2E](https://azure.github.io/Azure-Verified-Modules/spec/SNFR16) | Yes | Yes if e2e tests passed |
+| 26 | [ID: SNFR17 - Category: Release - Semantic Versioning](https://azure.github.io/Azure-Verified-Modules/spec/SNFR17) | Yes | Yes if version-check check passed |
+| 27 | [ID: SNFR18 - Category: Release - Breaking Changes](https://azure.github.io/Azure-Verified-Modules/spec/SNFR18) | NA | Module Owner to action this spec post-publish as appropriate |
+| 28 | [ID: SNFR19 - Category: Publishing - Registries Targeted](https://azure.github.io/Azure-Verified-Modules/spec/SNFR19) | NA | Module Owner to action this spec post-publish as appropriate |
+| 29 | [ID: SNFR21 - Category: Publishing - Cross Language Collaboration](https://azure.github.io/Azure-Verified-Modules/spec/SNFR21) | NA | Module Owner to action this spec post-publish as appropriate |
+| 30 | [ID: RMFR1 - Category: Composition - Single Resource Only](https://azure.github.io/Azure-Verified-Modules/spec/RMFR1) | | |
+| 31 | [ID: RMFR2 - Category: Composition - No Resource Wrapper Modules](https://azure.github.io/Azure-Verified-Modules/spec/RMFR2) | | |
+| 32 | [ID: RMFR3 - Category: Composition - Resource Groups](https://azure.github.io/Azure-Verified-Modules/spec/RMFR3) | | |
+| 33 | [ID: RMFR4 - Category: Composition - AVM Consistent Feature & Extension Resources Value Add](https://azure.github.io/Azure-Verified-Modules/spec/RMFR4) | Yes | Yes if linting / terraform check passed |
+| 34 | [ID: RMFR5 - Category: Composition - AVM Consistent Feature & Extension Resources Value Add Interfaces/Schemas](https://azure.github.io/Azure-Verified-Modules/spec/RMFR5) | Yes | Yes if linting / terraform check passed |
+| 35 | [ID: RMFR8 - Category: Composition - Dependency on child and other resources](https://azure.github.io/Azure-Verified-Modules/spec/RMFR8) | | |
+| 36 | [ID: RMFR6 - Category: Inputs - Parameter/Variable Naming](https://azure.github.io/Azure-Verified-Modules/spec/RMFR6) | | |
+| 37 | [ID: RMFR7 - Category: Outputs - Minimum Required Outputs](https://azure.github.io/Azure-Verified-Modules/spec/RMFR7) | Yes | Yes if linting / terraform check passed |
+| 38 | [ID: RMNFR1 - Category: Naming - Module Naming](https://azure.github.io/Azure-Verified-Modules/spec/RMNFR1) | | |
+| 39 | [ID: RMNFR2 - Category: Inputs - Parameter/Variable Naming](https://azure.github.io/Azure-Verified-Modules/spec/RMNFR2) | | |
+| 40 | [ID: RMNFR3 - Category: Composition - RP Collaboration](https://azure.github.io/Azure-Verified-Modules/spec/RMNFR3) | NA | Module Owner to action this spec post-publish as appropriate |
+| 41 | [ID: PMFR1 - Category: Composition - Resource Group Creation](https://azure.github.io/Azure-Verified-Modules/spec/PMFR1) | | NA if this is not a pattern module |
+| 42 | [ID: PMNFR1 - Category: Naming - Module Naming](https://azure.github.io/Azure-Verified-Modules/spec/PMNFR1) | | NA if this is not a pattern module |
+| 43 | [ID: PMNFR2 - Category: Composition - Use Resource Modules to Build a Pattern Module](https://azure.github.io/Azure-Verified-Modules/spec/PMNFR2) | | NA if this is not a pattern module |
+| 44 | [ID: PMNFR3 - Category: Composition - Use other Pattern Modules to Build a Pattern Module](https://azure.github.io/Azure-Verified-Modules/spec/PMNFR3) | | NA if this is not a pattern module |
+| 45 | [ID: PMNFR4 - Category: Hygiene - Missing Resource Module(s)](https://azure.github.io/Azure-Verified-Modules/spec/PMNFR4) | | NA if this is not a pattern module |
+| 46 | [ID: PMNFR5 - Category: Inputs - Parameter/Variable Naming](https://azure.github.io/Azure-Verified-Modules/spec/PMNFR5) | | NA if this is not a pattern module |
+| 47 | [ID: TFFR1 - Category: Composition - Cross-Referencing Modules](https://azure.github.io/Azure-Verified-Modules/spec/TFFR1) | | |
+| 48 | [ID: TFFR2 - Category: Outputs - Additional Terraform Outputs](https://azure.github.io/Azure-Verified-Modules/spec/TFFR2) | Yes | Yes if linting / terraform check passed |
+| 49 | [ID: TFNFR1 - Category: Documentation - Descriptions](https://azure.github.io/Azure-Verified-Modules/spec/TFNFR1) | | |
+| 50 | [ID: TFNFR2 - Category: Documentation - Module Documentation Generation](https://azure.github.io/Azure-Verified-Modules/spec/TFNFR2) | Yes | Yes if linting / docs check passed |
+| 51 | [ID: TFNFR3 - Category: Contribution/Support - GitHub Repo Branch Protection](https://azure.github.io/Azure-Verified-Modules/spec/TFNFR3) | Yes | Yes if AVM Template Repo has been used |
+| 52 | [ID: TFNFR4 - Category: Composition - Code Styling - lower snake_casing](https://azure.github.io/Azure-Verified-Modules/spec/TFNFR4) | Yes | Yes if linting / terraform check passed |
+| 53 | [ID: TFNFR5 - Category: Testing - Test Tooling](https://azure.github.io/Azure-Verified-Modules/spec/TFNFR5) | Yes | Yes if linting / terraform check passed |
+| 54 | [ID: TFNFR6 - Category: Code Style - Resource & Data Order](https://azure.github.io/Azure-Verified-Modules/spec/TFNFR6) | | |
+| 55 | [ID: TFNFR7 - Category: Code Style - count & for_each Use](https://azure.github.io/Azure-Verified-Modules/spec/TFNFR7) | | |
+| 56 | [ID: TFNFR8 - Category: Code Style - Resource & Data Block Orders](https://azure.github.io/Azure-Verified-Modules/spec/TFNFR8) | Yes | Yes if linting / avmfix check passed |
+| 57 | [ID: TFNFR9 - Category: Code Style - Module Block Order](https://azure.github.io/Azure-Verified-Modules/spec/TFNFR9) | | |
+| 58 | [ID: TFNFR10 - Category: Code Style - No Double Quotes in ignore_changes](https://azure.github.io/Azure-Verified-Modules/spec/TFNFR10) | | |
+| 59 | [ID: TFNFR11 - Category: Code Style - Null Comparison Toggle](https://azure.github.io/Azure-Verified-Modules/spec/TFNFR11) | | |
+| 60 | [ID: TFNFR12 - Category: Code Style - Dynamic for Optional Nested Objects](https://azure.github.io/Azure-Verified-Modules/spec/TFNFR12) | | |
+| 61 | [ID: TFNFR13 - Category: Code Style - Default Values with coalesce/try](https://azure.github.io/Azure-Verified-Modules/spec/TFNFR13) | | |
+| 62 | [ID: TFNFR14 - Category: Inputs - Not allowed variables](https://azure.github.io/Azure-Verified-Modules/spec/TFNFR14) | | |
+| 63 | [ID: TFNFR15 - Category: Code Style - Variable Definition Order](https://azure.github.io/Azure-Verified-Modules/spec/TFNFR15) | Yes | Yes if linting / avmfix check passed |
+| 64 | [ID: TFNFR16 - Category: Code Style - Variable Naming Rules](https://azure.github.io/Azure-Verified-Modules/spec/TFNFR16) | Yes | Yes if linting / terraform check passed |
+| 65 | [ID: TFNFR17 - Category: Code Style - Variables with Descriptions](https://azure.github.io/Azure-Verified-Modules/spec/TFNFR17) | Yes | Yes if linting / terraform check passed |
+| 66 | [ID: TFNFR18 - Category: Code Style - Variables with Types](https://azure.github.io/Azure-Verified-Modules/spec/TFNFR18) | Yes | Yes if linting / terraform check passed |
+| 67 | [ID: TFNFR19 - Category: Code Style - Sensitive Data Variables](https://azure.github.io/Azure-Verified-Modules/spec/TFNFR19) | | |
+| 68 | [ID: TFNFR20 - Category: Code Style - Non-Nullable Defaults for collection values](https://azure.github.io/Azure-Verified-Modules/spec/TFNFR20) | | |
+| 69 | [ID: TFNFR21 - Category: Code Style - Discourage Nullability by Default](https://azure.github.io/Azure-Verified-Modules/spec/TFNFR21) | Yes | Yes if linting / avmfix check passed |
+| 70 | [ID: TFNFR22 - Category: Code Style - Avoid sensitive = false](https://azure.github.io/Azure-Verified-Modules/spec/TFNFR22) | Yes | Yes if linting / avmfix check passed |
+| 71 | [ID: TFNFR23 - Category: Code Style - Sensitive Default Value Conditions](https://azure.github.io/Azure-Verified-Modules/spec/TFNFR23) | Yes | Yes if linting / terraform check passed |
+| 72 | [ID: TFNFR24 - Category: Code Style - Handling Deprecated Variables](https://azure.github.io/Azure-Verified-Modules/spec/TFNFR24) | NA | Module Owner to action this spec post-publish as appropriate |
+| 73 | [ID: TFNFR25 - Category: Code Style - Verified Modules Requirements](https://azure.github.io/Azure-Verified-Modules/spec/TFNFR25) | Yes | Yes if linting / terraform check passed |
+| 74 | [ID: TFNFR26 - Category: Code Style - Providers in required_providers](https://azure.github.io/Azure-Verified-Modules/spec/TFNFR26) | Yes | Yes if linting / terraform check passed |
+| 75 | [ID: TFNFR27 - Category: Code Style - Provider Declarations in Modules](https://azure.github.io/Azure-Verified-Modules/spec/TFNFR27) | Yes | Yes if linting / terraform check passed |
+| 76 | [ID: TFNFR29 - Category: Code Style - Sensitive Data Outputs](https://azure.github.io/Azure-Verified-Modules/spec/TFNFR29) | Yes | Yes if linting / avmfix check passed |
+| 77 | [ID: TFNFR30 - Category: Code Style - Handling Deprecated Outputs](https://azure.github.io/Azure-Verified-Modules/spec/TFNFR30) | NA | Module Owner to action this spec post-publish as appropriate |
+| 78 | [ID: TFNFR31 - Category: Code Style - locals.tf for Locals Only](https://azure.github.io/Azure-Verified-Modules/spec/TFNFR31) | | |
+| 79 | [ID: TFNFR32 - Category: Code Style - Alphabetical Local Arrangement](https://azure.github.io/Azure-Verified-Modules/spec/TFNFR32) | Yes | Yes if linting / avmfix check passed |
+| 80 | [ID: TFNFR33 - Category: Code Style - Precise Local Types](https://azure.github.io/Azure-Verified-Modules/spec/TFNFR33) | | |
+| 81 | [ID: TFNFR34 - Category: Code Style - Using Feature Toggles](https://azure.github.io/Azure-Verified-Modules/spec/TFNFR34) | NA | Module Owner to action this spec post-publish as appropriate |
+| 82 | [ID: TFNFR35 - Category: Code Style - Reviewing Potential Breaking Changes](https://azure.github.io/Azure-Verified-Modules/spec/TFNFR35) | NA | Module Owner to action this spec post-publish as appropriate |
+| 83 | [ID: TFNFR36 - Category: Code Style - Setting prevent_deletion_if_contains_resources](https://azure.github.io/Azure-Verified-Modules/spec/TFNFR36) | | |
+| 84 | [ID: TFNFR37 - Category: Code Style - Tool Usage by Module Owner](https://azure.github.io/Azure-Verified-Modules/spec/TFNFR37) | | |
diff --git a/docs/static/includes/msg-final-conf-new-prop-mod-owners-tf.md b/docs/static/includes/msg-final-conf-new-prop-mod-owners-tf.md
index 8d9115c2e..f3fb78392 100644
--- a/docs/static/includes/msg-final-conf-new-prop-mod-owners-tf.md
+++ b/docs/static/includes/msg-final-conf-new-prop-mod-owners-tf.md
@@ -4,8 +4,9 @@ Hi @avm_module_owner,
Thanks for confirming that you wish to own this AVM module and understand the related requirements and responsibilities!
Check if this module exists in the other IaC language. If so, collaborate with the other owner for consistency. 👍
+ You may now create the repository if it hasn't already been created. Please follow the steps [here](https://azure.github.io/Azure-Verified-Modules/contributing/terraform/terraform-contribution-flow/repository-creation-process/) to create the repository.
-You can now start the development of this module! ✅ Happy coding! 🎉 If you have additional contributors, ensure you grant them permissions by adding them to the related GitHub teams, as outlined [here](https://azure.github.io/Azure-Verified-Modules/spec/SNFR20).
+You can now start the development of this module! ✅ Happy coding! 🎉
**Please respond to this comment and request a review from the AVM core team once your module is ready to be published! Please include a link pointing to your PR, once available. 🙏**
diff --git a/utilities/pipelines/sharedScripts/teamLinter/Invoke-AvmGitHubTeamLinter.ps1 b/utilities/pipelines/sharedScripts/teamLinter/Invoke-AvmGitHubTeamLinter.ps1
index 0b0f6e84e..16137e5ab 100644
--- a/utilities/pipelines/sharedScripts/teamLinter/Invoke-AvmGitHubTeamLinter.ps1
+++ b/utilities/pipelines/sharedScripts/teamLinter/Invoke-AvmGitHubTeamLinter.ps1
@@ -7,18 +7,15 @@ Compares Azure Verified Modules Module Indexes with existing GitHub Teams config
.PARAMETER ModuleIndex
Required. Modules Index to use as source, allowed strings are:
-'Bicep-Resource', 'Bicep-Pattern', 'Terraform-Resource', 'Terraform-Pattern'
+'Bicep-Resource', 'Bicep-Pattern'
.PARAMETER TeamFilter
Required. Teams to filter on, allowed strings are:
-'AllTeams', 'AllResource', 'AllPattern', 'AllBicep', 'AllBicepResource', 'BicepResourceOwners', 'BicepResourceContributors', 'AllBicepPattern', 'BicepPatternOwners', 'BicepPatternContributors', 'AllTerraform', 'AllTerraformResource', 'TerraformResourceOwners', 'TerraformResourceContributors', 'AllTerraformPattern', 'TerraformPatternOwners', 'TerraformPatternContributors'
+'AllTeams', 'AllResource', 'AllPattern', 'AllBicep', 'AllBicepResource', 'BicepResourceOwners', 'BicepResourceContributors', 'AllBicepPattern', 'BicepPatternOwners', 'BicepPatternContributors'
.PARAMETER ValidateBicepParentConfiguration
Optional. Validate if Parent Team is configured for Owners Team
-.PARAMETER ValidateTerraformTeamsPermissons
-Optional. Validate if correct permissions are configured for Terraform Teams
-
.PARAMETER CreateIssues
Optional. Create GitHub Issues for unmatched teams
@@ -27,11 +24,6 @@ Invoke-AvmGitHubTeamLinter -ModuleIndex Bicep-Resource -TeamFilter AllBicepResou
Compares all bicep resource modules with GitHub Teams and validates if Parent Team is configured for Owners Team. Verbose output is displayed and GitHub Issues are created for unmatched teams.
-.EXAMPLE
-Invoke-AvmGitHubTeamLinter -ModuleIndex Terraform-Resource -TeamFilter AllTerraformResource -ValidateTerraformTeamsPermissons -Verbose -CreateIssues
-
-Compares all terraform resource modules with GitHub Teams and validates if Teams have correct permissions on repository. Verbose output is displayed and GitHub Issues are created for unmatched teams.
-
.EXAMPLE
Invoke-AvmGitHubTeamLinter -ModuleIndex Bicep-Pattern -TeamFilter AllBicepPattern -ValidateBicepParentConfiguration -Verbose
@@ -43,30 +35,18 @@ Function Invoke-AvmGitHubTeamLinter {
[CmdletBinding()]
param (
[Parameter(Mandatory)]
- [ValidateSet('Bicep-Resource', 'Bicep-Pattern', 'Terraform-Resource', 'Terraform-Pattern')]
+ [ValidateSet('Bicep-Resource', 'Bicep-Pattern')]
[string]$ModuleIndex,
[Parameter(Mandatory)]
- [ValidateSet('AllTeams', 'AllResource', 'AllPattern', 'AllBicep', 'AllBicepResource', 'BicepResourceOwners', 'BicepResourceContributors', 'AllBicepPattern', 'BicepPatternOwners', 'BicepPatternContributors', 'AllTerraform', 'AllTerraformResource', 'TerraformResourceOwners', 'TerraformResourceContributors', 'AllTerraformPattern', 'TerraformPatternOwners', 'TerraformPatternContributors' )]
+ [ValidateSet('AllTeams', 'AllResource', 'AllPattern', 'AllBicep', 'AllBicepResource', 'BicepResourceOwners', 'BicepResourceContributors', 'AllBicepPattern', 'BicepPatternOwners', 'BicepPatternContributors' )]
[string]$TeamFilter,
[Parameter(Mandatory = $false)]
[switch]$ValidateBicepParentConfiguration,
[Parameter(Mandatory = $false)]
- [switch]$ValidateTerraformTeamsPermissons,
-
- [Parameter(Mandatory = $false)]
- [switch]$validateTerraformAdminPermissions,
-
- [Parameter(Mandatory = $false)]
- [switch]$CreateIssues,
-
- [Parameter(Mandatory = $false)]
- [array]$TerraformAdminTeamList = @(
- 'terraform-avm',
- 'avm-core-team-technical-terraform'
- )
+ [switch]$CreateIssues
)
# Load used functions
@@ -149,36 +129,6 @@ Function Invoke-AvmGitHubTeamLinter {
break
}
}
- elseif ($ValidateTerraformTeamsPermissons -and $matchFound) {
- Write-Verbose "Found team: $($module.ModuleOwnersGHTeam) Checking Permissions configuration"
- if ($module.ModuleOwnersGHTeam -like "*-tf") {
- $repoName = "terraform-azurerm-$($module.ModuleName)"
- $repoConfiguration = Test-AvmGitHubTeamPermission -Organization Azure -TeamName $module.ModuleOwnersGHTeam -RepoName $repoName -ExpectedPermission "Admin"
- if ($repoConfiguration -match "Success") {
- Write-Verbose "Good News! Team: [$($module.ModuleOwnersGHTeam)] is configured with the expected permission: [admin] on Repo: [$repoName] "
- Write-Verbose "Checking if an issue exists for the team: [$($ghTeam.name)]..."
- Close-ResolvedGithubIssue -title "[GitHub Team Issue] ``$($ghTeam.name)``"
- }
- else {
- Write-Verbose "Uh-oh no correct permissions configured for $($module.ModuleOwnersGHTeam) ($($module.PrimaryModuleOwnerDisplayName))"
- # Create a custom object for the unmatched team
- $unmatchedTeam = [PSCustomObject]@{
- TeamName = $module.ModuleOwnersGHTeam
- Validation = "No correct permissions assigned."
- Owner = "$($module.PrimaryModuleOwnerGHHandle) ($($module.PrimaryModuleOwnerDisplayName))"
- GitHubTeamName = $ghTeam.name
- Resolution = "Please assign the correct permissions to the team: $($module.ModuleOwnersGHTeam). This can be found in [SNFR20](https://azure.github.io/Azure-Verified-Modules/spec/SNFR20)."
- }
- # Add the custom object to the array
- $unmatchedTeams += $unmatchedTeam
- break
- }
- }
- else {
- Write-Verbose "Skipping non Terraform module: $($module.ModuleOwnersGHTeam)"
- break
- }
- }
elseif ($matchFound) {
# Write verbose output without parent check
Write-Verbose "Found team: $($module.ModuleOwnersGHTeam) ($($module.PrimaryModuleOwnerDisplayName))"
@@ -251,36 +201,6 @@ Function Invoke-AvmGitHubTeamLinter {
$unmatchedTeams += $unmatchedTeam
}
}
- elseif ($ValidateTerraformTeamsPermissons -and $matchFound) {
- Write-Verbose "Found team: $($module.ModuleContributorsGHTeam) Checking Permissions configuration"
- if ($module.ModuleContributorsGHTeam -like "*-tf") {
- $repoName = "terraform-azurerm-$($module.ModuleName)"
- $repoConfiguration = Test-AvmGitHubTeamPermission -Organization Azure -TeamName $module.ModuleContributorsGHTeam -RepoName $repoName -ExpectedPermission "Write"
- if ($repoConfiguration -match "Success") {
- Write-Verbose "Good News! Team: [$($module.ModuleOwnersGHTeam)] is configured with the expected permission: [write] on Repo: [$repoName] "
- Write-Verbose "Checking if an issue exists for the team: [$($ghTeam.name)]..."
- Close-ResolvedGithubIssue -title "[GitHub Team Issue] ``$($ghTeam.name)``"
- }
- else {
- Write-Verbose "Uh-oh no correct permissions configured for $($module.ModuleContributorsGHTeam) ($($module.PrimaryModuleOwnerDisplayName))"
- # Create a custom object for the unmatched team
- $unmatchedTeam = [PSCustomObject]@{
- TeamName = $module.ModuleContributorsGHTeam
- Validation = "No correct permissions assigned."
- Owner = "$($module.PrimaryModuleOwnerGHHandle) ($($module.PrimaryModuleOwnerDisplayName))"
- GitHubTeamName = $ghTeam.name
- Resolution = "Please assign the correct permissions to the team: $($module.ModuleContributorsGHTeam). This can be found in [SNFR20](https://azure.github.io/Azure-Verified-Modules/spec/SNFR20)."
- }
- # Add the custom object to the array
- $unmatchedTeams += $unmatchedTeam
- break
- }
- }
- else {
- Write-Verbose "Skipping non Terraform module: $($module.ModuleContributorsGHTeam)"
- break
- }
- }
elseif ($matchFound) {
Write-Verbose "Found team: $($module.ModuleContributorsGHTeam) ($($module.PrimaryModuleOwnerDisplayName))"
break
@@ -326,35 +246,6 @@ Function Invoke-AvmGitHubTeamLinter {
}
}
}
-
- if ($validateTerraformAdminPermissions -Or $validateAll) {
- foreach ($tfAdminteam in $TerraformAdminTeamList) {
- if ($module.ModuleOwnersGHTeam -like "*-tf") {
-
- $repoName = "terraform-azurerm-$($module.ModuleName)"
- $teamTest = Test-AvmGitHubTeamPermission -Organization Azure -TeamName $tfAdminteam -RepoName $repoName -ExpectedPermission "Admin"
- if ($teamTest -match "Success") {
- Write-Verbose "Good News! Team: [$tfAdminteam] is configured with the expected permission: [admin] on Repo: [$repoName] "
- Write-Verbose "Checking if an issue exists for the team: [$($ghTeam.name)]..."
- Close-ResolvedGithubIssue -title "[GitHub Team Issue] ``$($ghTeam.name)``"
- }
- else {
- Write-Verbose "Uh-oh no correct permissions configured for [$tfAdminteam]"
- # Create a custom object for the unmatched team
- $unmatchedTeam = [PSCustomObject]@{
- TeamName = $module.ModuleContributorsGHTeam
- Validation = "No correct permissions assigned."
- Owner = "$($module.PrimaryModuleOwnerGHHandle) ($($module.PrimaryModuleOwnerDisplayName))"
- GitHubTeamName = $tfAdminteam
- Resolution = "Please assign the correct permissions to the team: [$tfAdminteam]. This can be found in [SNFR20](https://azure.github.io/Azure-Verified-Modules/spec/SNFR20)."
- }
- # Add the custom object to the array
- $unmatchedTeams += $unmatchedTeam
- break
- }
- }
- }
- }
}
# Check if $unmatchedTeams is empty
if ($unmatchedTeams.Count -eq 0) {