A team wants to publish a module that manages VPC endpoints for AWS to the public Terraform Registry. The code already follows the standard module structure. What must the GitHub repository look like before the registry can publish the first version?
Select an answer to reveal the explanation.
Short Explanation
The public registry is picky about two things: the repo name and the tags. Name it terraform-PROVIDER-NAME, make it public on GitHub, push a semantic version tag, and you're in business.
Full Explanation
The public Terraform Registry requires that a module repository be hosted on GitHub as a public repository, be named in the three-part format terraform, provider, name, such as terraform-aws-vpc-endpoints, have a repository description, follow the standard module structure, and carry release tags that are semantic versions, optionally prefixed with v, such as v1.0.0. At least one such tag must exist before the first publish, and each later tag that looks like a version becomes a new release, while tags that do not look like versions are ignored. A repository named without the terraform prefix and provider segment does not match the naming convention, so the upload page will not even list it, and the registry identifies versions by tags, not branches. A private repository cannot be published to the public registry at all, and the registry reads no manifest file for versions. Putting the terraform and provider segments at the end instead of the start also breaks the required naming format, even with a valid tag, because the registry derives the provider and module name from that format. Exam caveat: the private registry in HCP Terraform does not require public GitHub and also supports branch-based publishing. Operational check: confirm the repository appears on the registry's upload page, publish it, then push a new tag and verify the version appears.