Azure / Azure/Azure-Verified-Modules
[Feedback]: Implement automated checks for the module index CSVs
- 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.