{"id":16545234,"url":"https://github.com/politician/template-terraform","last_synced_at":"2025-03-21T10:31:39.806Z","repository":{"id":37626543,"uuid":"497759595","full_name":"politician/template-terraform","owner":"politician","description":"Repository template for a basic (cloud-agnostic) Terraform module.","archived":false,"fork":false,"pushed_at":"2025-03-14T02:04:28.000Z","size":283,"stargazers_count":1,"open_issues_count":9,"forks_count":2,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-03-18T08:16:34.355Z","etag":null,"topics":["github","terraform","terraform-module"],"latest_commit_sha":null,"homepage":"","language":"Makefile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/politician.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"docs/CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":"docs/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"docs/SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-05-30T02:11:32.000Z","updated_at":"2022-06-10T10:29:46.000Z","dependencies_parsed_at":"2024-01-04T03:28:39.217Z","dependency_job_id":"87fb4c92-3aba-4988-80d6-70f20bca4cef","html_url":"https://github.com/politician/template-terraform","commit_stats":{"total_commits":46,"total_committers":2,"mean_commits":23.0,"dds":"0.021739130434782594","last_synced_commit":"e57a8efc1c33e2ef6b8fefdbaf9129a6e616aacf"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/politician%2Ftemplate-terraform","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/politician%2Ftemplate-terraform/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/politician%2Ftemplate-terraform/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/politician%2Ftemplate-terraform/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/politician","download_url":"https://codeload.github.com/politician/template-terraform/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244777899,"owners_count":20508807,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["github","terraform","terraform-module"],"created_at":"2024-10-11T19:06:12.543Z","updated_at":"2025-03-21T10:31:39.508Z","avatar_url":"https://github.com/politician.png","language":"Makefile","funding_links":[],"categories":[],"sub_categories":[],"readme":"# USING THIS TEMPLATE\n\n\u003cspan v-pre\u003e\n\n1. Search/replace for these variables:\n\n   - `{{repo_owner}}` - GitHub repository username\n   - `{{repo_name}}` - GitHub repository name\n   - `{{project_name}}` - Project name\n   - `{{project_tagline}}` - Project tagline\n   - `{{security_email}}` - Email to send vulnerabilities add `-noreply` before the `@`\n   - `{{author_name}}` - Your name\n   - `{{docs_base_url}}` - Base URL to the documentation (no trailing slash). It could be:\n     - `https://\u003crepo_owner\u003e.github.io/\u003crepo_name\u003e` (GitHub Pages default)\n     - `https://\u003cyour_domain\u003e` (GitHub Pages with CNAME file)\n     - `https://github.com/\u003crepo_owner\u003e/\u003crepo_name\u003e/blob/main` (if you removed/don't want the documentation site)\n   - `{{docs_extension}}` - Should be `html` if you use the documentation site, otherwise `md`\n   - `{{forum_url}}` - URL to your forum for users to ask questions. It could be:\n     - `https://github.com/\u003crepo_owner\u003e/\u003crepo_name\u003e/discussions` (if you enabled the discussions feature on your repo)\n     - `https://github.com/orgs/\u003crepo_owner\u003e/discussions` (if you enabled the discussions feature at your org level)\n     - `https://\u003cyour_domain\u003e` (if you maintain a separate discussion forum, or a link to your community on Slack, Discord, etc.)\n\n   \u003e For any decent-sized project, it is better to **own** your brand and use your own domain rather than GitHub links.\n\n2. Remove this README.md and move docs/README.md to the root\n\n## GitHub Actions\n\nSome GitHub Actions bundled in this template require a personal access token (PAT). This can be sourced either from an app (recommended) or from a user.\n\n### From an app\n\n1. Create an app [with the minimum permissions](https://github.com/settings/apps/new?\u0026name=-bot\u0026description=Bot%20account\u0026url=https%3A%2F%2Fwww.github.com\u0026user_token_expiration_enabled=true\u0026webhook_active=false\u0026contents=write\u0026issues=write\u0026pull_requests=write) or add the following permissions to an existing app:\n\n   - **Contents**: Read and write\n   - **Issues**: Read and write\n   - **Pull requests**: Read and write\n\n2. Set the `GH_APP_ID` and `GH_APP_PRIVATE_KEY` repository secrets.\n3. Install the app to your repository (click `Install App` on the left menu of the app page)\n\n### From a user\n\n1. [Create a personal access token](https://github.com/settings/tokens/new?scopes=repo) with the `repo` permissions.\n\n2. Set the `GH_PERSONAL_TOKEN` repository secret.\n\n3. Look into each file in [.github/workflows](https://github.com/{{repo_owner}}/{{repo_name}}/blob/main/.github/workflows):\n\n   - Remove every step called `Generate app token`\n   - Replace `${{ steps.generate_token.outputs.token }}` with `${{ secrets.GH_PERSONAL_TOKEN }}`\n\n## Dependency updates\n\nYou can pick between [Renovate](https://docs.renovatebot.com/) (recommended) or [Dependabot](https://docs.github.com/en/code-security/dependabot) for your dependency updates.\n\n\u003e Dependabot [won't keep your pre-commit hooks up to date](https://github.com/dependabot/dependabot-core/issues/1524) as opposed to Renovate.\n\n### Renovate\n\n1. [Install it](https://docs.renovatebot.com/getting-started/running/#running-renovate)\n2. Remove the file `.github/dependabot.yaml`\n\n### Dependabot\n\nJust remove the file `.github/renovate.json`.\n\n## Tests\n\n### Unit tests\n\nThis template comes with two types of unit tests: **static code analysis** and **runtime tests** using various tools.\n\nUnit tests are performed on the main module and on each example (eg. `./examples/minimal`)\n\n### Integration tests\n\nThis template comes with two ways to test your module actually running `terraform apply` (and `terraform destroy`). Pick the one you prefer and delete the other one:\n\n- Using [Terratest](https://terratest.gruntwork.io/): `./tests/minimal_test.go`\n- Using [Terraform tests (experimental)](https://www.terraform.io/language/modules/testing-experiment): `./tests/minimal`\n\n\u003e No actual `terraform apply` is run on the `./examples/*` because the two ways above are more suited for actually testing the output.\n\n\u003c/span\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpolitician%2Ftemplate-terraform","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpolitician%2Ftemplate-terraform","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpolitician%2Ftemplate-terraform/lists"}