{"id":31265826,"url":"https://github.com/open-policy-agent/regal","last_synced_at":"2025-09-23T15:03:47.360Z","repository":{"id":173382757,"uuid":"592365615","full_name":"open-policy-agent/regal","owner":"open-policy-agent","description":"Regal is a linter and language server for Rego, bringing your policy development experience to the next level!","archived":false,"fork":false,"pushed_at":"2025-09-10T13:29:22.000Z","size":8785,"stargazers_count":339,"open_issues_count":119,"forks_count":47,"subscribers_count":12,"default_branch":"main","last_synced_at":"2025-09-10T17:43:51.545Z","etag":null,"topics":["code-quality","language-server","linter","lsp","magnificent","opa","open-policy-agent","policy-as-code","rego","static-analysis"],"latest_commit_sha":null,"homepage":"","language":"Go","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/open-policy-agent.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"docs/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"docs/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"docs/SECURITY.md","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-01-23T15:23:06.000Z","updated_at":"2025-09-10T16:33:08.000Z","dependencies_parsed_at":"2023-10-27T22:41:06.856Z","dependency_job_id":"565b1216-2d2e-48b7-a676-42227d22440c","html_url":"https://github.com/open-policy-agent/regal","commit_stats":{"total_commits":796,"total_committers":34,"mean_commits":23.41176470588235,"dds":0.4623115577889447,"last_synced_commit":"6716d37742ea31b884c1d4ff9992333149ef2176"},"previous_names":["styrainc/regal","styraoss/regal","open-policy-agent/regal"],"tags_count":61,"template":false,"template_full_name":null,"purl":"pkg:github/open-policy-agent/regal","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-policy-agent%2Fregal","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-policy-agent%2Fregal/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-policy-agent%2Fregal/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-policy-agent%2Fregal/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/open-policy-agent","download_url":"https://codeload.github.com/open-policy-agent/regal/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-policy-agent%2Fregal/sbom","scorecard":{"id":14,"data":{"date":"2025-08-14T11:08:01Z","repo":{"name":"github.com/StyraInc/regal","commit":"8a9efd4877dcd923e015f38bb664bad0d2f85e90"},"scorecard":{"version":"v5.2.1","commit":"ab2f6e92482462fe66246d9e32f642855a691dc1"},"score":7.6,"checks":[{"name":"Code-Review","score":10,"reason":"all changesets reviewed","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/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#code-review"}},{"name":"Dependency-Update-Tool","score":10,"reason":"update tool detected","details":["Info: detected update tool: Dependabot: .github/dependabot.yml:1"],"documentation":{"short":"Determines if the project uses a dependency update tool.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#dependency-update-tool"}},{"name":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: docs/SECURITY.md:1","Info: Found linked content: docs/SECURITY.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: docs/SECURITY.md:1","Info: Found text in security policy: docs/SECURITY.md:1"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#security-policy"}},{"name":"Maintained","score":10,"reason":"30 commit(s) and 28 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#maintained"}},{"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/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Info: jobLevel 'contents' permission set to 'read': .github/workflows/codeql.yml:17","Info: jobLevel 'actions' permission set to 'read': .github/workflows/codeql.yml:16","Warn: jobLevel 'contents' permission set to 'write': .github/workflows/update-example-index.yaml:21","Info: topLevel permissions set to 'read-all': .github/workflows/build.yaml:14","Info: topLevel 'contents' permission set to 'read': .github/workflows/codeql.yml:8","Info: topLevel 'contents' permission set to 'read': .github/workflows/push-tags.yaml:9","Info: topLevel permissions set to 'read-all': .github/workflows/scorecard.yml:9","Warn: topLevel 'contents' permission set to 'write': .github/workflows/update-caps.yml:9","Info: topLevel permissions set to 'read-all': .github/workflows/update-docs.yaml:11","Info: topLevel 'contents' permission set to 'read': .github/workflows/update-example-index.yaml:12"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/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/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#binary-artifacts"}},{"name":"Pinned-Dependencies","score":10,"reason":"all dependencies are pinned","details":["Info:  29 out of  29 GitHub-owned GitHubAction dependencies pinned","Info:  11 out of  11 third-party GitHubAction dependencies pinned","Info:   1 out of   1 npmCommand 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/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#pinned-dependencies"}},{"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/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#cii-best-practices"}},{"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/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#license"}},{"name":"SAST","score":7,"reason":"SAST tool detected but not run on all commits","details":["Info: SAST configuration detected: CodeQL","Warn: 0 commits out of 30 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#sast"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact v0.35.1 not signed: https://api.github.com/repos/StyraInc/regal/releases/228841419","Warn: release artifact v0.34.1 not signed: https://api.github.com/repos/StyraInc/regal/releases/223048136","Warn: release artifact v0.34.0 not signed: https://api.github.com/repos/StyraInc/regal/releases/222062181","Warn: release artifact v0.33.1 not signed: https://api.github.com/repos/StyraInc/regal/releases/213927131","Warn: release artifact v0.35.1 does not have provenance: https://api.github.com/repos/StyraInc/regal/releases/228841419","Warn: release artifact v0.34.1 does not have provenance: https://api.github.com/repos/StyraInc/regal/releases/223048136","Warn: release artifact v0.34.0 does not have provenance: https://api.github.com/repos/StyraInc/regal/releases/222062181","Warn: release artifact v0.33.1 does not have provenance: https://api.github.com/repos/StyraInc/regal/releases/213927131"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#signed-releases"}},{"name":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/push-tags.yaml:12"],"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/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#packaging"}},{"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/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#fuzzing"}},{"name":"Branch-Protection","score":8,"reason":"branch protection is not maximal on development and all release branches","details":["Info: 'allow deletion' disabled on branch 'main'","Info: 'force pushes' disabled on branch 'main'","Warn: required approving review count is 1 on branch 'main'","Warn: codeowners review is not required on branch 'main'","Info: status check found to merge onto on branch 'main'","Info: PRs are required in order to make changes on branch 'main'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#branch-protection"}},{"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/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#vulnerabilities"}},{"name":"CI-Tests","score":10,"reason":"30 out of 30 merged PRs checked by a CI test -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project runs tests before pull requests are merged.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#ci-tests"}},{"name":"Contributors","score":10,"reason":"project has 9 contributing companies or organizations","details":["Info: found contributions from: NixOS, StyraInc, open-policy-agent, reviewdog, rinx-playground, styrainc, styrainc @open-policy-agent, twocodersbrewing, vodafoneziggo"],"documentation":{"short":"Determines if the project has a set of contributors from multiple organizations (e.g., companies).","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#contributors"}}]},"last_synced_at":"2025-08-14T12:08:42.108Z","repository_id":173382757,"created_at":"2025-08-14T12:08:42.108Z","updated_at":"2025-08-14T12:08:42.108Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":276595650,"owners_count":25670172,"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-09-23T02:00:09.130Z","response_time":73,"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":["code-quality","language-server","linter","lsp","magnificent","opa","open-policy-agent","policy-as-code","rego","static-analysis"],"created_at":"2025-09-23T15:01:36.516Z","updated_at":"2025-09-23T15:03:47.350Z","avatar_url":"https://github.com/open-policy-agent.png","language":"Go","funding_links":[],"categories":["Tools and Utilities"],"sub_categories":["Testing Blogs and Articles"],"readme":"\u003c!-- Please see docs/readme-sections/ to update readme content --\u003e\n\n\u003c!-- markdownlint-disable MD041 --\u003e\n\n# Regal\n\n\n\u003c!-- markdownlint-disable MD041 --\u003e\n\n[![Build Status](https://github.com/open-policy-agent/regal/workflows/Build/badge.svg)](https://github.com/open-policy-agent/regal/actions)\n![OPA v1.7.1](https://openpolicyagent.org/badge/v1.7.1)\n[![codecov](https://codecov.io/github/StyraInc/regal/graph/badge.svg?token=EQK01YF3X3)](https://codecov.io/github/StyraInc/regal)\n[![Downloads](https://img.shields.io/github/downloads/styrainc/regal/total.svg)](https://github.com/open-policy-agent/regal/releases)\n\n\n\u003c!-- markdownlint-disable MD041 --\u003e\n\nRegal is a linter, debugger and language server for [Rego](https://www.openpolicyagent.org/docs/policy-language/),\nmaking your Rego magnificent, and you the ruler of rules!\n\nWith its extensive set of linter rules, documentation and editor integrations, Regal is the perfect companion for policy\ndevelopment, whether you're an experienced Rego developer or just starting out.\n\n\u003e [!IMPORTANT]\n\u003e Regal is now an official OPA project!\n\u003e ([More Info](https://blog.openpolicyagent.org/note-from-teemu-tim-and-torin-to-the-open-policy-agent-community-2dbbfe494371))\n\u003e For those previously installing Regal from StyraInc/regal, please update your\n\u003e scripts and documentation to refer to this Repo. We will be migrating the\n\u003e Regal's documentation to openpolicyagent.org from the next release. Please\n\u003e [file an issue](https://github.com/open-policy-agent/regal/issues/new)\n\u003e for any problems you run into.\n\n\n\u003c!-- markdownlint-disable MD033 --\u003e\n\u003c!-- markdownlint-disable MD041 --\u003e\n\n\u003cimg\n  src=\"/docs/assets/regal-banner.png\"\n  alt=\"illustration of a viking representing the Regal logo\"\n  width=\"150px\" /\u003e\n\n\u003e regal\n\u003e\n\u003e adj : of notable excellence or magnificence : splendid\n\n\\- [Merriam Webster](https://www.merriam-webster.com/dictionary/regal)\n\n\n\u003c!-- markdownlint-disable MD041 --\u003e\n\n## Goals\n\n- Deliver an outstanding policy development experience by providing the best possible tools for that purpose\n- Identify common mistakes, bugs and inefficiencies in Rego policies, and suggest better approaches\n- Provide advice on [best practices](https://github.com/StyraInc/rego-style-guide), coding style, and tooling\n- Allow users, teams and organizations to enforce custom rules on their policy code\n\n\n\u003c!-- markdownlint-disable MD041 --\u003e\n\n## What People Say About Regal\n\n\u003e I really like that at each release of Regal I learn something new!\n\u003e Of all the linters I'm exposed to, Regal is probably the most instructive one.\n\n— Leonardo Taccari, [NetBSD](https://www.netbsd.org/)\n\n\u003e Reviewing the Regal rules documentation. Pure gold.\n\n— Dima Korolev, [Miro](https://miro.com/)\n\n\u003e Such an awesome project!\n\n— Shawn McGuire, [Atlassian](https://www.atlassian.com/)\n\n\u003e I am really impressed with Regal. It has helped me write more expressive and deterministic Rego.\n\n— Jimmy Ray, [Boeing](https://www.boeing.com/)\n\nSee the [adopters](https://openpolicyagent.org/projects/regal/adopters) file for more Regal users.\n\n\n\u003c!-- markdownlint-disable MD041 --\u003e\n\n## Getting Started\n\n### Download Regal\n\n**MacOS and Linux**\n\n```shell\nbrew install regal\n```\n\n\u003cdetails\u003e\n  \u003csummary\u003e\u003cstrong\u003eOther Installation Options\u003c/strong\u003e\u003c/summary\u003e\n\nPlease see [Packages](https://openpolicyagent.org/projects/regal/adopters#packaging)\nfor a list of package repositories which distribute Regal.\n\nManual installation commands:\n\n**MacOS (Apple Silicon)**\n\n```shell\ncurl -L -o regal \"https://github.com/open-policy-agent/regal/releases/latest/download/regal_Darwin_arm64\"\n```\n\n**MacOS (x86_64)**\n\n```shell\ncurl -L -o regal \"https://github.com/open-policy-agent/regal/releases/latest/download/regal_Darwin_x86_64\"\n```\n\n**Linux (x86_64)**\n\n```shell\ncurl -L -o regal \"https://github.com/open-policy-agent/regal/releases/latest/download/regal_Linux_x86_64\"\nchmod +x regal\n```\n\n**Windows**\n\n```shell\ncurl.exe -L -o regal.exe \"https://github.com/open-policy-agent/regal/releases/latest/download/regal_Windows_x86_64.exe\"\n```\n\n**Docker**\n\n```shell\ndocker pull ghcr.io/styrainc/regal:latest\n```\n\nSee all versions, and checksum files, at the Regal [releases](https://github.com/open-policy-agent/regal/releases/)\npage, and published Docker images at the [packages](https://github.com/open-policy-agent/regal/pkgs/container/regal)\npage.\n\n\u003c/details\u003e\n\n### Try it out!\n\nFirst, author some Rego!\n\n**policy/authz.rego**\n\n```rego\npackage authz\n\ndefault allow = false\n\nallow if {\n    isEmployee\n    \"developer\" in input.user.roles\n}\n\nisEmployee if regex.match(\"@acmecorp\\\\.com$\", input.user.email)\n```\n\nNext, run `regal lint` pointed at one or more files or directories to have them linted.\n\n```shell\nregal lint policy/\n```\n\n\u003c!-- markdownlint-capture --\u003e\n\u003c!-- markdownlint-disable MD010 --\u003e\n\n```text\nRule:         \tnon-raw-regex-pattern\nDescription:  \tUse raw strings for regex patterns\nCategory:     \tidiomatic\nLocation:     \tpolicy/authz.rego:12:27\nText:         \tisEmployee if regex.match(\"@acmecorp\\\\.com$\", input.user.email)\nDocumentation:\thttps://openpolicyagent.org/projects/regal/rules/idiomatic/non-raw-regex-pattern\n\nRule:         \tuse-assignment-operator\nDescription:  \tPrefer := over = for assignment\nCategory:     \tstyle\nLocation:     \tpolicy/authz.rego:5:1\nText:         \tdefault allow = false\nDocumentation:\thttps://openpolicyagent.org/projects/regal/rules/style/use-assignment-operator\n\nRule:         \tprefer-snake-case\nDescription:  \tPrefer snake_case for names\nCategory:     \tstyle\nLocation:     \tpolicy/authz.rego:12:1\nText:         \tisEmployee if regex.match(\"@acmecorp\\\\.com$\", input.user.email)\nDocumentation:\thttps://openpolicyagent.org/projects/regal/rules/style/prefer-snake-case\n\n1 file linted. 3 violations found.\n```\n\n\u003c!-- markdownlint-restore --\u003e\n\u003cbr /\u003e\n\n\u003e **Note**\n\u003e If you're running Regal on an existing policy library, you may want to disable the `style` category initially, as it\n\u003e will likely generate a lot of violations. You can do this by passing the `--disable-category style` flag to\n\u003e `regal lint`.\n\n### Using Regal in Your Editor\n\nLinting from the command line is a great way to get started with Regal, and even for some experienced developers\nthe preferred way to work with the linter. However, not only is Regal a linter, but a full-fledged development\ncompanion for Rego development!\n\nIntegrating Regal in your favorite editor means you'll get immediate feedback from the linter as you work on your\npolicies. More than that, it'll unlock a whole new set of features that leverage Regal's\n[language server](https://openpolicyagent.org/projects/regal/language-server),\nlike context-aware completion suggestions, informative tooltips on hover,\nor go-to-definition.\n\nElevate your policy development experience with Regal in VS Code, Neovim, Zed, Helix\nand more on our [Editor Support page](https://openpolicyagent.org/projects/regal/editor-support)!\n\nTo learn more about the features provided by the Regal language server, see the\n[Language Server](https://openpolicyagent.org/projects/regal/language-server) page.\n\n### Using Regal in Your Build Pipeline\n\nTo ensure Regal's rules are enforced consistently in your project or organization,\nwe've made it easy to run Regal as part of your builds.\nSee the docs on [Using Regal in your build pipeline](https://openpolicyagent.org/projects/regal/cicd) to learn more\nabout how to set up Regal to lint your policies on every commit or pull request.\n\n\n\u003c!-- markdownlint-disable MD041 --\u003e\n\n## Next Steps\n\nNow you're up and running with Regal, take a look around some of our documentation\nto get a feel for the different features and capabilities of Regal.\n\n- [Rules](https://openpolicyagent.org/projects/regal/rules)\n  - [Bugs](https://openpolicyagent.org/projects/regal/rules/bugs): Common mistakes, potential bugs and inefficiencies in Rego policies.\n  - [Idiomatic](https://openpolicyagent.org/projects/regal/rules/idiomatic): Suggestions for more idiomatic constructs.\n  - [Imports](https://openpolicyagent.org/projects/regal/rules/imports): Best practices for imports.\n  - [Performance](https://openpolicyagent.org/projects/regal/rules/performance): Rules for improving performance of policies.\n  - [Style](https://openpolicyagent.org/projects/regal/rules/style): Rego Style Guide rules.\n  - [Testing](https://openpolicyagent.org/projects/regal/rules/testing): Rules for testing and development.\n  - [Custom](https://openpolicyagent.org/projects/regal/rules/custom): Custom rules where enforcement can be adjusted to match your preferences.\n- [Configuration](https://openpolicyagent.org/projects/regal/configuration): Dig into some of the different configuration options available.\n- [Editor Support](https://openpolicyagent.org/projects/regal/editor-support): Get Regal integrated into your editor of choice.\n  - [Language Server](https://openpolicyagent.org/projects/regal/language-server): Learn more\n    about Regal's advanced editor capabilities.\n  - [DAP](https://openpolicyagent.org/projects/regal/debug-adapter): Live debug your Rego policies with Regal's DAP support.\n- [Fixing Issues](https://openpolicyagent.org/projects/regal/fixing): See Regal can help you fix issues in your Rego policies automatically.\n- [CI/CD](https://openpolicyagent.org/projects/regal/ci-cd): Run Regal as part of your automated checks.\n- [Custom Rules](https://openpolicyagent.org/projects/regal/custom-rules): Learn how to write your own rules for Regal.\n- [Adopters](https://openpolicyagent.org/projects/regal/adopters): See who else is using Regal.\n\n\n\u003c!-- If updating, please check resources-website.md too --\u003e\n\u003c!-- markdownlint-disable MD041 --\u003e\n\n## Learn More\n\n### Documentation\n\nPlease see [Regal's Documentation Site](https://openpolicyagent.org/projects/regal) for the\ncanonical documentation of Regal.\n\n[Contributing](https://github.com/open-policy-agent/regal/blob/main/docs/CONTRIBUTING.md)\ncontains information about how to hack on Regal itself.\n\n### Talks\n\n- [OPA Maintainer Track, featuring Regal](https://www.youtube.com/watch?v=XtA-NKoJDaI), KubeCon London, 2025\n- [Regal the Rego Linter](https://www.youtube.com/watch?v=Xx8npd2TQJ0\u0026t=2567s), CNCF London meetup, June 2023\n  [![Regal the Rego Linter](/docs/assets/regal_cncf_london.png)](https://www.youtube.com/watch?v=Xx8npd2TQJ0\u0026t=2567s)\n\n### Blogs and Articles\n\n- [Guarding the Guardrails - Introducing Regal the Rego Linter](https://www.styra.com/blog/guarding-the-guardrails-introducing-regal-the-rego-linter/)\n  by Anders Eknert ([@anderseknert](https://github.com/anderseknert))\n- [Scaling Open Source Community by Getting Closer to Users](https://thenewstack.io/scaling-open-source-community-by-getting-closer-to-users/)\n  by Charlie Egan ([@charlieegan3](https://github.com/charlieegan3))\n- [Renovating Rego](https://www.styra.com/blog/renovating-rego/) by Anders Eknert ([@anderseknert](https://github.com/anderseknert))\n- [Linting Rego with... Rego!](https://www.styra.com/blog/linting-rego-with-rego/) by Anders Eknert ([@anderseknert](https://github.com/anderseknert))\n- [Regal: Rego(OPA)用リンタの導入手順](https://zenn.dev/erueru_tech/articles/6cfb886d92858a) by Jun Fujita ([@erueru-tech](https://github.com/erueru-tech))\n- [Regal を使って Rego を Lint する](https://tech.dentsusoken.com/entry/2024/12/05/Regal_%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6_Rego_%E3%82%92_Lint_%E3%81%99%E3%82%8B)\n  by Shibata Takao ([@shibata.takao](https://shodo.ink/@shibata.takao/))\n\n\n\u003c!-- markdownlint-disable MD041 --\u003e\n\n## Status\n\nRegal is currently in beta. End-users should not expect any drastic changes, but any API may change without notice.\nIf you want to embed Regal in another project or product, please reach out!\n\n\n\u003c!-- markdownlint-disable MD041 --\u003e\n\n## Roadmap\n\nThe current Roadmap items are all related to the preparation for\n[Regal 1.0](https://github.com/open-policy-agent/regal/issues/979):\n\n- [ ] [Go API: Refactor the Location object in Violation (#1554)](https://github.com/open-policy-agent/regal/issues/1554)\n- [ ] [Rego API: Provide a stable and well-documented Rego API (#1555)](https://github.com/open-policy-agent/regal/issues/1555)\n- [ ] [Go API: Audit and reduce the public Go API surface (#1556)](https://github.com/open-policy-agent/regal/issues/1556)\n- [ ] [Custom Rules: Tighten up Authoring experience (#1559)](https://github.com/open-policy-agent/regal/issues/1559)\n- [x] [docs: Improve automated documentation generation (#1557)](https://github.com/open-policy-agent/regal/issues/1557)\n- [x] [docs: Break down README into smaller units (#1558)](https://github.com/open-policy-agent/regal/issues/1558)\n- [ ] [lsp: Support a JetBrains LSP client (#1560)](https://github.com/open-policy-agent/regal/issues/1560)\n\nIf there's something you'd like to have added to the roadmap, either open an issue, or reach out in the community Slack!\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopen-policy-agent%2Fregal","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopen-policy-agent%2Fregal","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopen-policy-agent%2Fregal/lists"}