{"id":13408045,"url":"https://github.com/fugue/regula","last_synced_at":"2025-12-25T14:26:29.001Z","repository":{"id":37563304,"uuid":"228634068","full_name":"fugue/regula","owner":"fugue","description":"Regula checks infrastructure as code templates (Terraform, CloudFormation, k8s manifests) for AWS, Azure, Google Cloud, and Kubernetes security and compliance using Open Policy Agent/Rego","archived":false,"fork":false,"pushed_at":"2024-07-15T01:35:11.000Z","size":3654,"stargazers_count":947,"open_issues_count":60,"forks_count":106,"subscribers_count":30,"default_branch":"master","last_synced_at":"2024-07-31T20:28:56.247Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://regula.dev/","language":"Open Policy Agent","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/fugue.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":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-12-17T14:27:12.000Z","updated_at":"2024-07-31T14:49:19.000Z","dependencies_parsed_at":"2023-02-18T08:31:39.561Z","dependency_job_id":"4d5a7631-2bb3-4a4a-b2f9-2ea46c88b6bd","html_url":"https://github.com/fugue/regula","commit_stats":{"total_commits":367,"total_committers":33,"mean_commits":"11.121212121212121","dds":0.561307901907357,"last_synced_commit":"db40b0e5fb67c83fec27b7b74cbd69129221acdb"},"previous_names":[],"tags_count":44,"template":false,"template_full_name":null,"purl":"pkg:github/fugue/regula","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fugue%2Fregula","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fugue%2Fregula/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fugue%2Fregula/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fugue%2Fregula/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fugue","download_url":"https://codeload.github.com/fugue/regula/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fugue%2Fregula/sbom","scorecard":{"id":413235,"data":{"date":"2025-08-11","repo":{"name":"github.com/fugue/regula","commit":"259c10a6a746e3c1eb84857d9f548cca463034af"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.2,"checks":[{"name":"Code-Review","score":5,"reason":"Found 14/24 approved changesets -- score normalized to 5","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":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","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":"Maintained","score":0,"reason":"project is archived","details":["Warn: Repository is archived."],"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"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":"Security-Policy","score":9,"reason":"security policy file detected","details":["Info: security policy file detected: SECURITY.md:1","Info: Found linked content: SECURITY.md:1","Warn: One or no descriptive hints of disclosure, vulnerability, and/or timelines in security policy","Info: Found text in security policy: SECURITY.md:1"],"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":"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":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/docs-site.yaml:1","Warn: no topLevel permission defined: .github/workflows/main.yml:1","Warn: no topLevel permission defined: .github/workflows/release.yml:1","Info: no jobLevel write permissions found"],"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":"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":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"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"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/docs-site.yaml:11: update your workflow using https://app.stepsecurity.io/secureworkflow/fugue/regula/docs-site.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/docs-site.yaml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/fugue/regula/docs-site.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/main.yml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/fugue/regula/main.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/main.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/fugue/regula/main.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:14: update your workflow using https://app.stepsecurity.io/secureworkflow/fugue/regula/release.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/fugue/regula/release.yml/master?enable=pin","Warn: containerImage not pinned by hash: Dockerfile:1: pin your Docker image by updating alpine:3.18 to alpine:3.18@sha256:de0eb0b3f2a47ba1eb89389859a9bd88b28e82f5826b6969ad604979713c2d4f","Warn: pipCommand not pinned by hash: docs/scripts/deploy.sh:23","Warn: pipCommand not pinned by hash: docs/scripts/deploy.sh:24","Info:   0 out of   6 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   2 pipCommand dependencies pinned","Info:   0 out of   1 containerImage dependencies pinned"],"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":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact v3.2.1 not signed: https://api.github.com/repos/fugue/regula/releases/92692165","Warn: release artifact v3.2.0 not signed: https://api.github.com/repos/fugue/regula/releases/92589523","Warn: release artifact v3.1.0 not signed: https://api.github.com/repos/fugue/regula/releases/92059751","Warn: release artifact v3.0.0 not signed: https://api.github.com/repos/fugue/regula/releases/90075127","Warn: release artifact v2.10.0 not signed: https://api.github.com/repos/fugue/regula/releases/82685133","Warn: release artifact v3.2.1 does not have provenance: https://api.github.com/repos/fugue/regula/releases/92692165","Warn: release artifact v3.2.0 does not have provenance: https://api.github.com/repos/fugue/regula/releases/92589523","Warn: release artifact v3.1.0 does not have provenance: https://api.github.com/repos/fugue/regula/releases/92059751","Warn: release artifact v3.0.0 does not have provenance: https://api.github.com/repos/fugue/regula/releases/90075127","Warn: release artifact v2.10.0 does not have provenance: https://api.github.com/repos/fugue/regula/releases/82685133"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 21 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":0,"reason":"21 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: PYSEC-2023-117 / GHSA-mrwq-x4v8-fh7p","Warn: Project is vulnerable to: GO-2022-0635","Warn: Project is vulnerable to: GO-2022-0646","Warn: Project is vulnerable to: GO-2024-2456 / GHSA-449p-3h89-pw88","Warn: Project is vulnerable to: GO-2024-2466 / GHSA-mw99-9chc-xw7r","Warn: Project is vulnerable to: GO-2025-3367 / GHSA-r9px-m959-cxf4","Warn: Project is vulnerable to: GO-2025-3368 / GHSA-v725-9546-7q7m","Warn: Project is vulnerable to: GO-2024-2800 / GHSA-q64h-39hv-4cf7","Warn: Project is vulnerable to: GO-2024-2948 / GHSA-xfhp-jf8p-mh5w","Warn: Project is vulnerable to: GO-2024-2947 / GHSA-v6v8-xj6m-xwqh","Warn: Project is vulnerable to: GO-2024-3141 / GHSA-c77r-fh37-x2px","Warn: Project is vulnerable to: GO-2025-3660 / GHSA-6m8w-jc87-6cr7","Warn: Project is vulnerable to: GO-2023-2402 / GHSA-45x7-px36-x8w8","Warn: Project is vulnerable to: GO-2024-3321 / GHSA-v778-237x-gjrc","Warn: Project is vulnerable to: GO-2025-3487 / GHSA-hcg3-q754-cr77","Warn: Project is vulnerable to: GO-2024-2687 / GHSA-4v7x-pqxf-cx7m","Warn: Project is vulnerable to: GO-2024-3333","Warn: Project is vulnerable to: GO-2025-3503 / GHSA-qxp5-gwg8-xv66","Warn: Project is vulnerable to: GO-2025-3595 / GHSA-vvgc-356p-c3xw","Warn: Project is vulnerable to: GO-2025-3488 / GHSA-6v2p-p543-phr9","Warn: Project is vulnerable to: GO-2024-2611 / GHSA-8r3f-844c-mc37"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-18T23:13:00.232Z","repository_id":37563304,"created_at":"2025-08-18T23:13:00.232Z","updated_at":"2025-08-18T23:13:00.232Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28031125,"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","status":"online","status_checked_at":"2025-12-25T02:00:05.988Z","response_time":58,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":"2024-07-30T20:00:50.377Z","updated_at":"2025-12-25T14:26:28.962Z","avatar_url":"https://github.com/fugue.png","language":"Open Policy Agent","funding_links":[],"categories":["Tools","Open Policy Agent","Infrastructure as Code","Infrastructure as Code Security"],"sub_categories":["Infrastructure as Code Analysis","Community providers","Datasource Integrations Blogs and Articles","Kubernetes Audit","Others"],"readme":"# Archival note\n\n**Regula is no longer actively maintained.  Most of the relevant code has been\nmoved to [snyk/policy-engine](https://github.com/snyk/policy-engine/) which\nis the engine powering the new\n[Snyk IaC](https://snyk.io/product/infrastructure-as-code-security/).**\n\n# Regula\n\n**Tip: See all of our documentation at [regula.dev](https://regula.dev)!**\n\n- [Regula](#regula)\n  - [Introduction](#introduction)\n  - [Installation](#installation)\n    - [Homebrew (macOS \u0026 Linux)](#homebrew-macos--linux)\n    - [Prebuilt binary (all platforms)](#prebuilt-binary-all-platforms)\n    - [Docker (all platforms)](#docker-all-platforms)\n    - [From source](#from-source)\n  - [Usage](#usage)\n  - [For more information](#for-more-information)\n\n## Introduction\n\n[Regula](https://regula.dev) is a tool that evaluates infrastructure as code files for potential AWS, Azure, Google Cloud, and Kubernetes security and compliance violations prior to deployment.\n\nRegula supports the following file types:\n\n- CloudFormation JSON/YAML templates\n- Terraform source code\n- Terraform JSON plans\n- Kubernetes YAML manifests\n- Azure Resource Manager (ARM) JSON templates _(in preview)_\n\nRegula includes a library of rules written in Rego, the policy language used by the [Open Policy Agent](https://www.openpolicyagent.org/) (OPA) project. Regula works with your favorite CI/CD tools such as Jenkins, Circle CI, and AWS CodePipeline; we’ve included a [GitHub Actions example](https://github.com/fugue/regula-action) so you can get started quickly. Where relevant, we’ve mapped Regula policies to the CIS AWS, Azure, Google Cloud, and Kubernetes Foundations Benchmarks so you can assess compliance posture. Regula is maintained by engineers at [Fugue](https://fugue.co).\n\nRegula is also available as a Docker image on DockerHub [here](https://hub.docker.com/r/fugue/regula).\n\nMore information is available at [regula.dev](https://regula.dev).\n\n## Installation\n\n### Homebrew (macOS \u0026 Linux)\n\nTo install Regula via [Homebrew](https://brew.sh/):\n\n```\nbrew tap fugue/regula\nbrew install regula\n```\n\nTo upgrade Regula:\n\n```\nbrew upgrade regula\n```\n\n### Prebuilt binary (all platforms)\n\n1. Download the Regula archive for your platform from the [Releases](https://github.com/fugue/regula/releases) page.\n2. Extract the downloaded archive.\n3. Move the extracted `regula` binary to somewhere in your PATH:\n\n    macOS:\n\n    ```\n    mv regula /usr/local/bin\n    ```\n\n    Linux:\n\n    ```\n    sudo mv regula /usr/local/bin\n    ```\n\n    Windows (cmd):\n\n    ```\n    md C:\\regula\\bin\n    move regula.exe C:\\regula\\bin\n    setx PATH \"%PATH%;C:\\regula\\bin\"\n    ```\n\n    Windows (PowerShell):\n\n    ```\n    md C:\\regula\\bin\n    move regula.exe C:\\regula\\bin\n    $env:Path += \";C:\\regula\\bin\"\n    # You can add '$env:Path += \";C:\\regula\\bin\"' to your profile.ps1 file to\n    # persist that change across shell sessions.\n    ```\n\n4. _Windows users only:_ Close cmd and re-open it so the changes take effect.\n5. You can now run `regula`.\n\n### Docker (all platforms)\n\nRegula is available as a Docker image on DockerHub [here](https://hub.docker.com/r/fugue/regula).\n\nFor usage, see [Running Regula with Docker](https://regula.dev/usage.html#running-regula-with-docker).\n\n### From source\n\n_macOS, Linux, and [WSL](https://docs.microsoft.com/en-us/windows/wsl/install) only_\n\n1. [Install Go (v1.18+)](https://go.dev/doc/install)\n\n2. Build binary and move to `/usr/local/bin/regula`:\n\n    ```bash\n    make # this builds ./bin/regula\n    make install # this builds ./bin/regula and installs it to /usr/local/bin/regula\n    ```\n\nOnce you've built the binary, execute the following to run tests:\n\n```\ngit submodule update --init --recursive\nmake test\n```\n\n## Usage\n\n**For a tutorial on using Regula with example IaC, see [Getting Started](https://regula.dev/getting-started.html#tutorial-run-regula-locally-on-terraform-iac).**\n\n```\nRegula\n\nUsage:\n  regula [command]\n\nAvailable Commands:\n  completion        generate the autocompletion script for the specified shell\n  help              Help about any command\n  init              Create a new Regula configuration file in the current working directory.\n  repl              Start an interactive session for testing rules with Regula\n  run               Evaluate rules against infrastructure as code with Regula.\n  show              Show debug information.\n  test              Run OPA test with Regula.\n  version           Print version information.\n  write-test-inputs Persist dynamically-generated test inputs for use with other Rego interpreters\n\nFlags:\n  -h, --help      help for regula\n  -v, --verbose   verbose output\n\nUse \"regula [command] --help\" for more information about a command.\n```\n\nFor details about each command, including examples, see [Usage](https://regula.dev/usage.html).\n\n## For more information\n\nVisit [regula.dev](https://regula.dev) for more information about Regula, including:\n\n- [Regula's report output](https://regula.dev/report.html)\n- [Integrations](https://regula.dev/integrations/conftest.html)\n- [Writing](https://regula.dev/development/writing-rules.html) and [testing](https://regula.dev/development/testing-rules.html) custom rules\n- [Configuring waivers and disabling rules](https://regula.dev/configuration.html)\n- and more!\n\n\n[opa]: https://www.openpolicyagent.org/\n[fregot]: https://github.com/fugue/fregot\n[CloudFormation]: https://docs.aws.amazon.com/cloudformation/\n[Terraform]: https://www.terraform.io/\n[Rego]: https://www.openpolicyagent.org/docs/latest/policy-language/\n[Fugue Custom Rules]: https://docs.fugue.co/rules.html\n[Conftest]: https://github.com/open-policy-agent/conftest\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffugue%2Fregula","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffugue%2Fregula","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffugue%2Fregula/lists"}