Azure / Azure/Azure-Verified-Modules

[Feedback]: Implement automated checks for the module index CSVs

Open
#382 6 comments 1 reaction 1 assignee Claimed by @matebarabas View on GitHub
Type: Documentation :page_facing_up: Type: Hygiene :broom: Type: Question/Feedback :raising_hand:
Dominant language
PowerShell
Stars
580
Forks
161
Avg merge
11h 3m
Merged PRs (30d)
15

Description

### Check for previous/existing GitHub issues

- [X] I have checked for previous/existing GitHub issues

### Description

Implement a GitHub workflow that validates the module index CSVs during PRs: : check all records in all 4 module index CSV files (Bicep/TF, res/ptn modules).

Scenarios to test include but aren't limited to:
- make sure the telemetry id prefix is within the given character length limits
- the name of resource modules should be derived from the provider and resource type, based on camel casing
- Bicep: only use dashes where the word starts with uppercase character in the API definition
- make sure the "ModuleStatus" column only contains one of the possible states:
- `Proposed :new:`
- `Available :green_circle:`
- `Orphaned :eyes:`
- if a module is marked available, the module owner display name, and module owner GH handle fields must be populated.
- if a module is marked orphaned, the module owner display name, and module owner GH handle fields must NOT be populated.
- if a module is either marked available or orphaned, the first published in field must be populated with the following format: YYYY-MM.
> Note: the pattern module CSVs don't have the first 2 columns of the resource module CSVs!
- if either the "**PrimaryModuleOwnerGHHandle**" or "**PrimaryModuleOwnerDisplayName**" has a value, the other one also must have one (both the handle and the display name must be defined, once the owner is identified)
- if the module status is set to `Available :green_circle:`
- make sure the "**PrimaryModuleOwnerGHHandle**" AND "**PrimaryModuleOwnerDisplayName**" columns have a value
- make sure the "**FirstPublishedIn**" has a value
- if the module has a secondary owner defined, make sure it also has a primary owner (i.e., if the "**SecondaryModuleOwnerGHHandle**" and/or the "**SecondaryModuleOwnerDisplayName**" columns have a value, the "**PrimaryModuleOwnerGHHandle**" and "**PrimaryModuleOwnerDisplayName**" columns also must have a value)
- make sure the values of the "**ModuleOwnersGHTeam**" and "**ModuleContributorsGHTeam**" columns follow the naming convention based on the module's name
- make sure the "**ModuleDisplayName**" column has a value
- there must not be any leading or trailing white spaces in any of the fields
- the first segment of a module's name after `avm/res/` or `avm-res` MUST be equal to the `ProviderNamespace`'s value (first column of the resource CSVs) - i.e., no conversion to singular form!

@ChrisSidebotham - could you please help with this? Thanks!
CC: @AlexanderSehr

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.