- A GitHub repository with valid Terragrunt code
- Your cloud provider credentials:
- For AWS: Hashicorp’s AWS tutorial
- For GCP: Hashicorp’s GCP tutorial
- For Azure: Hashicorp’s Azure tutorial
Prerequisite: OpenTaco account setup
Complete Set up your OpenTaco account before continuing.
Prerequisite: GitHub App installed
Complete Set up GitHub App before continuing.
Create Action Secrets with cloud credentials
In GitHub repository settings, go to Secrets and Variables - Actions. Create the following secrets:
- AWS
- GCP
- Azure
AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY
Create digger.yml
Terragrunt projects can be configured in two ways:This approach automatically discovers all Terragrunt modules under each directory and creates projects for them. Digger will also handle dependencies between modules.
Option A: Individual projects (for smaller setups)
If you have a few Terragrunt modules, you can list them individually:Option B: Generated projects (recommended for larger setups)
For Terragrunt monorepos with many modules, use the blocks syntax to automatically generate projects:For more advanced configurations and performance optimization for large monorepos, see Using Terragrunt and Generate Projects.
Create Github Actions workflow file
Place it at
.github/workflows/digger_workflow.yml (name is important!)- AWS
- GCP
- Azure
Notice that we use
setup-terragrunt: true instead of setup-terraform. Terragrunt will handle the Terraform binary installation internally.Create a PR to verify that it works
Terragrunt will run an existing plan against your code.Make any change to your Terragrunt code e.g. add a blank line. An action run should start (you can see log output in Actions). After some time you should see output of Terragrunt Plan added as a comment to your PR.Then you can add a comment like
digger apply and shortly after apply output will be added as comment too.Demo repositories
Important notes
SOPS integration
If you usesops_decrypt_file in your terragrunt.hcl, you need to handle the case when Digger generates projects in the backend. Use the DIGGER_GENERATE_PROJECT environment variable:
Performance optimization
For very large Terragrunt monorepos, consider:- Using the blocks syntax to segment your repository
- Implementing config caching for faster PR processing
- Organizing modules by environment or provider to minimize traversal time

