{"id":24611129,"url":"https://github.com/jonathanporta/github-actions-terraform-s3-example","last_synced_at":"2026-01-04T02:42:13.218Z","repository":{"id":150177984,"uuid":"279235950","full_name":"JonathanPorta/github-actions-terraform-s3-example","owner":"JonathanPorta","description":null,"archived":false,"fork":false,"pushed_at":"2020-07-13T09:25:42.000Z","size":6,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"f-initial-code","last_synced_at":"2025-01-24T19:37:01.418Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"HCL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JonathanPorta.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-07-13T07:27:32.000Z","updated_at":"2021-06-02T10:30:13.000Z","dependencies_parsed_at":"2023-08-27T02:30:48.990Z","dependency_job_id":null,"html_url":"https://github.com/JonathanPorta/github-actions-terraform-s3-example","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JonathanPorta%2Fgithub-actions-terraform-s3-example","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JonathanPorta%2Fgithub-actions-terraform-s3-example/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JonathanPorta%2Fgithub-actions-terraform-s3-example/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JonathanPorta%2Fgithub-actions-terraform-s3-example/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JonathanPorta","download_url":"https://codeload.github.com/JonathanPorta/github-actions-terraform-s3-example/tar.gz/refs/heads/f-initial-code","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244247092,"owners_count":20422552,"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":[],"created_at":"2025-01-24T19:34:51.979Z","updated_at":"2026-01-04T02:42:13.173Z","avatar_url":"https://github.com/JonathanPorta.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Continuous Integration with GitHub Actions and HashiCorp Terraform\n\nhttps://wahlnetwork.com/2020/05/12/continuous-integration-with-github-actions-and-terraform/\n\n## Overview\n\nIn this scenario, continuous integration of an AWS environment is desired. Configuration is managed via HashiCorp Terraform. Continuous Integration is managed via GitHub Actions. By loading the necessary Terraform configuration files into this repository along with two GitHub Workflows, the Terraform files can be used to Plan and Apply into the target environment.\n\n**NOTE**: GitHub Actions are disabled for this repository to prevent abuse. You can view previous runs [here](/actions).\n\n## Details\n\nThis repository contains two GitHub Workflow files:\n\n* [Terraform Plan](/.github/workflows/tf-plan.yml) - Triggered by any Pull Request.\n\n* [Terraform Apply](/.github/workflows/tf-apply.yml) - Triggered by a Push into the `master` branch.\n\n## Terraform Plan\n\n* Checks the Terraform configuration for security vulnerabilities with [tfsec](https://github.com/liamg/tfsec).\n\n* Constructs AWS credentials using a Secrets stored in this repository.\n\n* Loads the Terraform CLI wrapper with [Setup Terraform](https://github.com/marketplace/actions/hashicorp-setup-terraform)\n\n* Terraform CLI performs an `Init` and `Plan` based on the pull request's configuration.\n\n* GitHub Actions Bot adds a comment to the pull request with the results. Example: [Pull Request 1](https://github.com/WahlNetwork/github-action-terraform/pull/1)\n\nYou can view pervious Terraform Plan workflows [here](https://github.com/WahlNetwork/github-action-terraform/actions?query=workflow%3A%22Terraform+Plan%22).\n\n## Terraform Apply\n\n* Constructs AWS credentials using a Secrets stored in this repository.\n\n* Loads the Terraform CLI wrapper with [Setup Terraform](https://github.com/marketplace/actions/hashicorp-setup-terraform)\n\n* Terraform CLI performs an `Init` and `Apply` based on the new push configuration.\n\nYou can view pervious Terraform Apply workflows [here](https://github.com/WahlNetwork/github-action-terraform/actions?query=workflow%3A%22Terraform+Apply%22).\n\n## Credentials\n\nCredentials should be stored in the `user\\.aws\\credential` file using Secrets stored in this repository.\n\nExample:\n\n```bash\nmkdir -p ~/.aws\necho \"[default]\" \u003e ~/.aws/credentials\necho \"aws_access_key_id = ${{ secrets.AWS_ACCESS_KEY_ID }}\" \u003e\u003e ~/.aws/credentials\necho \"aws_secret_access_key = ${{ secrets.AWS_SECRET_ACCESS_KEY }}\" \u003e\u003e ~/.aws/credentials\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjonathanporta%2Fgithub-actions-terraform-s3-example","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjonathanporta%2Fgithub-actions-terraform-s3-example","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjonathanporta%2Fgithub-actions-terraform-s3-example/lists"}