{"id":42082159,"url":"https://github.com/cloudify-cosmo/terraform-cost-action","last_synced_at":"2026-01-26T10:06:54.968Z","repository":{"id":65159291,"uuid":"546003910","full_name":"cloudify-cosmo/terraform-cost-action","owner":"cloudify-cosmo","description":null,"archived":false,"fork":false,"pushed_at":"2022-10-05T13:02:59.000Z","size":3,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-12-13T02:40:09.631Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cloudify-cosmo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-10-05T11:00:16.000Z","updated_at":"2022-10-05T11:00:16.000Z","dependencies_parsed_at":"2023-01-13T15:43:31.913Z","dependency_job_id":null,"html_url":"https://github.com/cloudify-cosmo/terraform-cost-action","commit_stats":{"total_commits":1,"total_committers":1,"mean_commits":1.0,"dds":0.0,"last_synced_commit":"396c258d8ae06efa1c7b3b4274b31d408c73d372"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/cloudify-cosmo/terraform-cost-action","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudify-cosmo%2Fterraform-cost-action","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudify-cosmo%2Fterraform-cost-action/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudify-cosmo%2Fterraform-cost-action/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudify-cosmo%2Fterraform-cost-action/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cloudify-cosmo","download_url":"https://codeload.github.com/cloudify-cosmo/terraform-cost-action/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudify-cosmo%2Fterraform-cost-action/sbom","scorecard":{"id":292981,"data":{"date":"2025-08-11","repo":{"name":"github.com/cloudify-cosmo/terraform-cost-action","commit":"396c258d8ae06efa1c7b3b4274b31d408c73d372"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":2.6,"checks":[{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Code-Review","score":0,"reason":"Found 0/1 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":0,"reason":"license file not detected","details":["Warn: project does not have a license file"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}}]},"last_synced_at":"2025-08-17T18:45:54.967Z","repository_id":65159291,"created_at":"2025-08-17T18:45:54.967Z","updated_at":"2025-08-17T18:45:54.967Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28774299,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-26T09:42:00.929Z","status":"ssl_error","status_checked_at":"2026-01-26T09:42:00.591Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5: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":[],"created_at":"2026-01-26T10:06:54.910Z","updated_at":"2026-01-26T10:06:54.963Z","avatar_url":"https://github.com/cloudify-cosmo.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":" Execute Terraform Environment Plan.\n\n# Environment Variables\n\nThis Action uses the Cloudify Profile environment variables described in the official\nCloudify documentation (see [More Information](#more-information) below).\n\n# Inputs\n\n(Certain commonly-used inputs are documented in our official website; see [More Information](#more-information) below)\n\n| Name | Description\n|------|------------\n| `module-file` | URL/path to Terraform module archive\n| `module-source-path` | path to Terraform module inside the archive\n| `variables-file` | YAML/JSON file containing template variables\n| `environment-file` | YAML/JSON file containing environment variables to pass to the Terraform process\n| `environment-mapping` | A whitespace-delimited list of strings denoting environment variables to pass through (see below)\n| `api-key` | Infracost API Key to interact with cloud pricing api.\n\n# Outputs\n\n| Name | Description\n|------|------------\n| `terraform-cost` | Terraform module cost\n\n## Notes\n\n* this action handles environment name and labels collision, and it will handle that by passing [environment-id]\n* it will check if the environment exists or not [ if it doesn't exist it will create one and execute plan only ] and if it exists it will trigger run_infracost workflow\n* You should use the latest version of terraform plugin (\u003e0.18.11) so it will set the `plain_text_infracost` runtime property\n* `environment-mapping` is whitespace-delimited list of strings. For each item:\n    * If it is of the form `k=v`, then the value of the environment variable `k` is passed\n      as environment variable `v` to Terraform.\n    * Otherwise, let the value be `x`; then the environment variable `x` is passed as-is\n      to Terraform.\n\n    This effectively passes environment variables, visible to the CI/CD platform,\n    as environment variables to Terraform. Useful, among others, for\n    passing Cloud credentials - stored in the CI/CD platform - to Terraform\n\n# Example\n\n```yaml\njobs:\n  test_job:\n    env:\n      AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}\n      AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}\n    steps:\n      - name: Checkout code\n        uses: actions/checkout@v2\n      - name: Create module archive\n        run: tar -cvzf /tmp/terraform-module.tar.gz -C tf/modules/ .\n      - name: Upload to S3\n        run: aws s3 cp /tmp/terraform-module.tar.gz s3://cloudify-cicd-public/\n      - name: Create environment\n        uses: cloudify-cosmo/terraform-cost-action@v1.3\n        with:\n          environment-name: \"test-terraform-$GITHUB_RUN_ID\"\n          labels: some_label:label_value,yet_another_label:some_value\n          module-file: https://cloudify-cicd-public.s3.amazonaws.com/terraform-module.tar.gz\n          module-source-path: '.'\n          variables-file: tf/test-params/integration.yaml\n          environment-mapping: AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY\n```\n\nOnce code is checked out, the Terraform module within the codebase is archived, and\nuploaded to an S3 bucket (the `aws` CLI is included with the Cloudify CLI Docker image). This is done\nin order to make the Terraform module available for Cloudify Manager to download.\n\nAs the Terraform AWS Provider supports obtaining AWS credentials from environment variables,\nwe define those variables based on GitHub Secrets, and use the `environment-mapping` input so\nthe variables are passed as-is to the Terraform executable.\n\n# More Information\n\nRefer to [Cloudify CI/CD Integration](https://docs.cloudify.co/latest/working_with/integration/) for additional information about\nCloudify's integration with CI/CD tools.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcloudify-cosmo%2Fterraform-cost-action","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcloudify-cosmo%2Fterraform-cost-action","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcloudify-cosmo%2Fterraform-cost-action/lists"}