{"id":19748691,"url":"https://github.com/doitintl/terraform-provider-doit","last_synced_at":"2026-04-13T13:01:13.551Z","repository":{"id":209999970,"uuid":"725437802","full_name":"doitintl/terraform-provider-doit","owner":"doitintl","description":"Terraform provider for DoiT Cloud Intelligence™","archived":false,"fork":false,"pushed_at":"2026-04-02T13:20:47.000Z","size":18269,"stargazers_count":3,"open_issues_count":10,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-04-02T20:14:28.359Z","etag":null,"topics":["doit","finops","terraform-provider"],"latest_commit_sha":null,"homepage":"https://www.doit.com","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/doitintl.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-11-30T06:19:31.000Z","updated_at":"2026-04-02T08:23:42.000Z","dependencies_parsed_at":"2024-01-03T03:09:45.681Z","dependency_job_id":"657aebc6-fd93-4e2c-a1d4-031680653a04","html_url":"https://github.com/doitintl/terraform-provider-doit","commit_stats":null,"previous_names":["doitintl/terraform-provider-doit"],"tags_count":27,"template":false,"template_full_name":null,"purl":"pkg:github/doitintl/terraform-provider-doit","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doitintl%2Fterraform-provider-doit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doitintl%2Fterraform-provider-doit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doitintl%2Fterraform-provider-doit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doitintl%2Fterraform-provider-doit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/doitintl","download_url":"https://codeload.github.com/doitintl/terraform-provider-doit/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doitintl%2Fterraform-provider-doit/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31753550,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-13T09:16:15.125Z","status":"ssl_error","status_checked_at":"2026-04-13T09:16:05.023Z","response_time":93,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["doit","finops","terraform-provider"],"created_at":"2024-11-12T02:23:01.361Z","updated_at":"2026-04-13T13:01:13.524Z","avatar_url":"https://github.com/doitintl.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DoiT Cloud Intelligence Provider\n\n[![Tests](https://github.com/doitintl/terraform-provider-doit/actions/workflows/tests.yml/badge.svg)](https://github.com/doitintl/terraform-provider-doit/actions/workflows/tests.yml)\n[![Release](https://img.shields.io/github/v/release/doitintl/terraform-provider-doit)](https://github.com/doitintl/terraform-provider-doit/releases/latest)\n[![Terraform Registry](https://img.shields.io/badge/terraform-registry-blueviolet?logo=terraform)](https://registry.terraform.io/providers/doitintl/doit/latest)\n[![Go](https://img.shields.io/github/go-mod/go-version/doitintl/terraform-provider-doit)](https://go.dev/)\n[![License](https://img.shields.io/github/license/doitintl/terraform-provider-doit)](LICENSE)\n\nThis Terraform provider allows you to manage DoiT Cloud Intelligence resources using the [DoiT API](https://developer.doit.com/reference). The provider is being actively developed and aims to provide full coverage of the compatible public API endpoints. Version 1.0.0 is considered the first stable release.\n\n## Upgrading to v1.0.0\n\n\u003e [!IMPORTANT]\n\u003e Version 1.0.0 is a major release with breaking changes. If you are upgrading from v0.x, please see the [v1.0.0 Upgrade Guide](docs/guides/version_1_upgrade.md) for detailed migration instructions.\n\n## Getting Started\n\nTo get started with the provider, you first need to create an [API key](https://developer.doit.com/docs/start#api-keys) for the DoiT Console.\n\nYou then configure the provider like so:\n\n```terraform\nterraform {\n  required_providers {\n    doit = {\n      source  = \"doitintl/doit\"\n      version = \"~\u003e 1.0\"\n    }\n  }\n}\n\nprovider \"doit\" {\n  api_token = \"your-api-key\"\n}\n```\n\nIf you are a Do'er, you also need to define the customer context:\n\n```terraform\nprovider \"doit\" {\n  api_token = \"your-api-key\"\n  customer_context = \"your-customer-context\"\n}\n```\n\nAlternatively, you can also use the `DOIT_API_TOKEN` and `DOIT_CUSTOMER_CONTEXT` environment variables.\n\n## Requirements\n\n- [Terraform](https://developer.hashicorp.com/terraform/downloads) \u003e= 1.0\n- [Go](https://golang.org/doc/install) \u003e= 1.26\n\n### Optional: Using Nix Flake\n\nIf you have [Nix](https://nixos.org/download.html) installed with flakes enabled:\n\n```shell\nnix develop\n```\n\nOr with [direnv](https://direnv.net/) for automatic environment loading:\n\n```shell\ndirenv allow\n```\n\nThis will automatically set up:\n\n- Go 1.26\n- Terraform v1.13.3\n- golangci-lint v2.5.0\n\nTo enable flakes if not already enabled, add to your `~/.config/nix/nix.conf`:\n\n```\nexperimental-features = nix-command flakes\n```\n\n\u003e **Note:** If you use direnv but don't want the Nix flake environment, add `export DIRENV_SKIP_FLAKE=1` to your shell profile (e.g., `~/.zshrc`). This skips flake activation while still loading environment variables from `.envrc.local`.\n\n## Building The Provider\n\n1. Clone the repository\n1. Enter the repository directory\n1. Build the provider using the Go `install` command:\n\n```shell\ngo install\n```\n\n## Adding Dependencies\n\nThis provider uses [Go modules](https://github.com/golang/go/wiki/Modules).\nPlease refer to the Go documentation for the most up-to-date information on using Go modules.\n\nTo add a new dependency `github.com/author/dependency` to your Terraform provider:\n\n```shell\ngo get github.com/author/dependency\ngo mod tidy\n```\n\nThen commit the changes to `go.mod` and `go.sum`.\n\n## Using the provider\n\nPlease check the docs folder to find an example to use the DoiT Console provider.\n\n## Developing the Provider\n\nIf you wish to work on the provider, you'll first need [Go](http://www.golang.org) installed on your machine (see [Requirements](#requirements) above).\n\nTo compile the provider, run `go install`. This will build the provider and put the provider binary in the `$GOPATH/bin` directory.\n\nTo generate or update documentation, run `go generate`.\n\n## Running Acceptance Tests\n\nAcceptance tests create real resources in a DoiT account and require proper configuration.\n\n### Required Environment Variables\n\n| Variable           | Description                                                                    |\n| ------------------ | ------------------------------------------------------------------------------ |\n| `DOIT_API_TOKEN`   | Your DoiT API token                                                            |\n| `DOIT_HOST`        | The DoiT API host (must be set; for most users this is `https://api.doit.com`) |\n| `TEST_USER`        | Email address for test budget collaborators/recipients                         |\n| `TEST_ATTRIBUTION` | Attribution ID for test budget scope                                           |\n| `TEST_SLACK_CHAN`  | Slack channel ID for notification tests                                        |\n| `TEST_PROJECT`     | Project ID for allocation rule tests                                           |\n| `TEST_CUSTOMER_ID` | Customer ID for Slack channel recipient                                        |\n\n### Optional Environment Variables\n\nThese variables are used by specific data source tests that will be skipped if unset:\n\n| Variable                 | Description                                            |\n| ------------------------ | ------------------------------------------------------ |\n| `TEST_ATTRIBUTION_GROUP` | Attribution group ID for report tests                  |\n| `TEST_INVOICE_ID`        | Invoice ID for invoice data source tests               |\n| `TEST_ANOMALY_ID`        | Anomaly ID for anomaly data source tests               |\n| `TEST_CLOUD_INCIDENT_ID` | Cloud incident ID for cloud incident data source tests |\n| `TEST_COMMITMENT_ID`     | Commitment ID for commitment data source tests         |\n| `TEST_ASSET_ID`          | Asset ID for asset data source tests (G Suite)         |\n| `TEST_ASSET_ID_AWS`      | AWS asset ID for asset data source tests               |\n\n### Running Tests\n\n#### Using direnv (Recommended)\n\nIf you use [direnv](https://direnv.net/), copy the example file and fill in your values:\n\n```shell\ncp .envrc.example .envrc.local\n# Edit .envrc.local with your values\ndirenv allow\n```\n\nThen run tests:\n\n```shell\ngo test -v -timeout 120m ./...\n```\n\n#### Manual Setup\n\nSet the required environment variables and run:\n\n```shell\nexport TF_ACC=1\nexport DOIT_API_TOKEN=\"your-api-token\"\nexport DOIT_HOST=\"https://api.doit.com\"\nexport TEST_USER=\"your-email@example.com\"\nexport TEST_ATTRIBUTION=\"your-attribution-id\"\nexport TEST_SLACK_CHAN=\"your-slack-channel-id\"\nexport TEST_PROJECT=\"your-project-id\"\nexport TEST_CUSTOMER_ID=\"your-customer-id\"\n\n# Optional - specific data source tests will be skipped if these are unset\n# export TEST_ATTRIBUTION_GROUP=\"your-attribution-group-id\"\n# export TEST_INVOICE_ID=\"your-invoice-id\"\n# export TEST_ANOMALY_ID=\"your-anomaly-id\"\n# export TEST_CLOUD_INCIDENT_ID=\"your-cloud-incident-id\"\n# export TEST_COMMITMENT_ID=\"your-commitment-id\"\n# export TEST_ASSET_ID=\"your-asset-id\"\n# export TEST_ASSET_ID_AWS=\"your-aws-asset-id\"\n\ngo test -v -timeout 120m ./...\n```\n\n\u003e [!IMPORTANT]\n\u003e **DoiT employees only:** You must also set the `DOIT_CUSTOMER_CONTEXT` environment variable\n\u003e to the same value as `TEST_CUSTOMER_ID` for certain tests to work correctly.\n\n_Note:_ Acceptance tests create real resources and may incur costs.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdoitintl%2Fterraform-provider-doit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdoitintl%2Fterraform-provider-doit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdoitintl%2Fterraform-provider-doit/lists"}