{"id":13621601,"url":"https://github.com/babarot/stein","last_synced_at":"2025-10-07T04:32:26.518Z","repository":{"id":34695850,"uuid":"164405353","full_name":"babarot/stein","owner":"babarot","description":"A linter for config files with a customizable rule set","archived":true,"fork":false,"pushed_at":"2022-02-11T06:21:30.000Z","size":1248,"stargazers_count":97,"open_issues_count":0,"forks_count":15,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-10-01T16:18:08.668Z","etag":null,"topics":["go","hashicorp","hcl","infrastructure","infrastructure-as-code","json","kubernetes","linter","sentinel","terraform","yaml"],"latest_commit_sha":null,"homepage":"https://babarot.me/stein","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/babarot.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-01-07T09:01:46.000Z","updated_at":"2023-10-20T09:13:31.000Z","dependencies_parsed_at":"2022-08-08T01:16:19.107Z","dependency_job_id":null,"html_url":"https://github.com/babarot/stein","commit_stats":null,"previous_names":["babarot/stein","b4b4r07/stein"],"tags_count":18,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/babarot%2Fstein","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/babarot%2Fstein/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/babarot%2Fstein/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/babarot%2Fstein/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/babarot","download_url":"https://codeload.github.com/babarot/stein/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":235593342,"owners_count":19015137,"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","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":["go","hashicorp","hcl","infrastructure","infrastructure-as-code","json","kubernetes","linter","sentinel","terraform","yaml"],"created_at":"2024-08-01T21:01:08.546Z","updated_at":"2025-10-07T04:32:21.155Z","avatar_url":"https://github.com/babarot.png","language":"Go","funding_links":[],"categories":["Go"],"sub_categories":[],"readme":"stein\n=====\n\n***2021-02-24 Currently [opa](https://github.com/open-policy-agent/conftest) testing framework is better than this approach. Please do not use this project except for HCL lovers.***\n\n[![test](https://github.com/b4b4r07/stein/workflows/test/badge.svg)][test]\n[![release](https://github.com/b4b4r07/stein/workflows/release/badge.svg)][release]\n[![docs](https://github.com/b4b4r07/stein/workflows/docs/badge.svg)][docs]\n\n[test]: https://github.com/b4b4r07/stein/actions?query=workflow%3Atest\n[release]: https://github.com/b4b4r07/stein/actions?query=workflow%3Arelease\n[docs]: https://github.com/b4b4r07/stein/actions?query=workflow%3Adocs\n\n[![][release-badge]][release-link] [![][license-badge]][license-link] [![][report-badge]][report-link] [![][go-version-badge]][go-version-link] [![][website-badge]][website-link]\n\n[release-badge]: https://img.shields.io/github/release/b4b4r07/stein.svg?style=popout\n[release-link]:  https://github.com/b4b4r07/stein/releases\n\n[license-badge]: https://img.shields.io/github/license/b4b4r07/stein.svg?style=popout\n[license-link]:  https://b4b4r07.mit-license.org\n\n[report-badge]: https://goreportcard.com/badge/github.com/b4b4r07/stein\n[report-link]:  https://goreportcard.com/report/github.com/b4b4r07/stein\n\n[go-version-badge]: https://img.shields.io/github/go-mod/go-version/b4b4r07/stein\n[go-version-link]:  https://github.com/b4b4r07/stein/blob/master/go.mod\n\n[website-badge]: https://img.shields.io/website?down_color=lightgrey\u0026down_message=down\u0026up_color=green\u0026up_message=up\u0026url=https%3A%2F%2Fbabarot.me%2Fstein\n[website-link]:  https://babarot.me/stein\n\nStein is a linter for config files with a customizable rule set.\nSupported config file types are JSON, YAML and HCL for now.\n\nThe basic design of this tool are heavily inspired by [HashiCorp Sentinel](https://www.hashicorp.com/sentinel) and its lots of implementations come from [Terraform](https://www.terraform.io/).\n\n![](https://user-images.githubusercontent.com/4442708/66107167-8a83f800-e5fa-11e9-9719-f7f03624ee46.png)\n\n## Motivation\n\nAs the motivation of this tool, the factor which accounts for the most of them is the [Policy as Code](https://b4b4r07.github.io/stein/concepts/policy-as-code/).\n\nThanks to [Infrastructure as Code](https://en.wikipedia.org/wiki/Infrastructure_as_code), the number of cases that the configurations of its infrastructure are described as code is increasing day by day.\nThen, it became necessary to set the lint or policy for the config files.\nAs an example: the namespace of Kubernetes to be deployed, the number of replicas of Pods, the naming convention of a namespace, etc.\n\nThis tool makes it possible to describe those requests as code (called as the [rules](https://b4b4r07.github.io/stein/configuration/policy/rules/)).\n\n## Documentations\n\n[Stein Documentations][website-link]\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbabarot%2Fstein","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbabarot%2Fstein","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbabarot%2Fstein/lists"}