ovotech / circleci-orbs

CircleCI Orbs
MIT License
52 stars 37 forks source link

Add bearer token for retrieving terraform module versions #479

Open drewhemm opened 2 years ago

drewhemm commented 2 years ago

This PR fixes the curl request to retrieve existing versions where the /versions endpoint for a given module is not publicly-available.

Example of module with public /versions:

$ curl "${REGISTRY_URL}dex/terrapin/aws/versions"
{"modules": [{"source": "dex/terrapin/aws", "versions": [{"version": "1.0.0"}, {"version": "1.1.0"}, {"version": "1.2.0"}, {"version": "1.3.0"}, {"version": "1.4.0"}, {"version": "1.4.1"}, {"version": "1.4.2"}, {"version": "1.4.3"}, {"version": "1.5.0"}, {"version": "1.5.1"}, {"version": "1.5.2"}, {"version": "1.5.3"}, {"version": "1.6.0"}, {"version": "1.6.1"}, {"version": "1.6.2"}, {"version": "1.6.3"}, {"version": "1.7.0"}, {"version": "2.0.0"}, {"version": "2.0.1"}, {"version": "2.1.0"}, {"version": "2.1.1"}, {"version": "2.2.0"}, {"version": "2.3.0"}, {"version": "2.3.1"}, {"version": "2.4.0"}, {"version": "2.5.0"}, {"version": "2.5.1"}, {"version": "2.6.0"}, {"version": "2.6.1"}, {"version": "2.6.2"}, {"version": "2.6.3"}, {"version": "2.6.4"}, {"version": "2.6.5"}, {"version": "3.0.0"}, {"version": "3.0.1"}, {"version": "3.0.2"}, {"version": "3.0.3"}, {"version": "3.0.5"}, {"version": "3.0.6"}, {"version": "3.0.7"}, {"version": "3.1.0"}, {"version": "3.2.0"}, {"version": "3.2.1"}, {"version": "3.2.2"}, {"version": "3.2.3"}, {"version": "3.2.4"}, {"version": "3.2.5"}, {"version": "3.3.0"}, {"version": "3.3.1"}, {"version": "3.3.2"}, {"version": "3.3.3"}, {"version": "3.4.0"}, {"version": "3.5.2"}, {"version": "3.5.3"}, {"version": "3.6.0"}, {"version": "3.6.1"}, {"version": "3.6.2"}, {"version": "3.7.0"}]}]}% 

Example of module with private /versions:

$ curl "${REGISTRY_URL}${MODULE_NAME}/versions"               
{"errors": ["Forbidden"]}% 
$ curl -H "Authorization: Bearer $TF_REGISTRY_TOKEN"  "${REGISTRY_URL}${MODULE_NAME}/versions"
{"modules": [{"source": "kafka-platform/terrapin/aws", "versions": [{"version": "4.0.0"}]}]}%