{"id":15509836,"url":"https://github.com/smortex/puppet-data-types-consistency-checker","last_synced_at":"2026-02-11T00:02:35.020Z","repository":{"id":145501998,"uuid":"143332470","full_name":"smortex/puppet-data-types-consistency-checker","owner":"smortex","description":"Report data-types inconsistencies of variables in Puppet modules.","archived":false,"fork":false,"pushed_at":"2024-06-18T18:15:10.000Z","size":3,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-08-21T14:56:06.400Z","etag":null,"topics":["hacktoberfest"],"latest_commit_sha":null,"homepage":null,"language":"Yacc","has_issues":false,"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/smortex.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-08-02T18:41:51.000Z","updated_at":"2020-10-06T18:55:11.000Z","dependencies_parsed_at":"2024-11-08T14:42:13.151Z","dependency_job_id":"5f03b1a6-11ed-4541-90a4-e1a56fa0aaf8","html_url":"https://github.com/smortex/puppet-data-types-consistency-checker","commit_stats":{"total_commits":1,"total_committers":1,"mean_commits":1.0,"dds":0.0,"last_synced_commit":"1a17e81fcf4464c49019df02c9cc4bf4c4aa5f26"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/smortex/puppet-data-types-consistency-checker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smortex%2Fpuppet-data-types-consistency-checker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smortex%2Fpuppet-data-types-consistency-checker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smortex%2Fpuppet-data-types-consistency-checker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smortex%2Fpuppet-data-types-consistency-checker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/smortex","download_url":"https://codeload.github.com/smortex/puppet-data-types-consistency-checker/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smortex%2Fpuppet-data-types-consistency-checker/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29322733,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-10T20:44:44.282Z","status":"ssl_error","status_checked_at":"2026-02-10T20:44:43.393Z","response_time":65,"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":["hacktoberfest"],"created_at":"2024-10-02T09:44:18.849Z","updated_at":"2026-02-11T00:02:34.998Z","avatar_url":"https://github.com/smortex.png","language":"Yacc","funding_links":[],"categories":[],"sub_categories":[],"readme":"# puppet-data-types-consistency-checker\n\nThis project analyze a Puppet module\n[manifests](https://puppet.com/docs/puppet/4.10/lang_visual_index.html)\n(`manifests/**/*.pp`) and [epp\ntemplates](https://puppet.com/docs/puppet/latest/lang_template_epp.html)\n(`templates/**/*.epp`) and report data-types inconsistencies of variables.\n\nIt is intended to make it easy to find inconsistencies if the same variable\nname is used with different data types.  This can happen if a parameter is\npassed between classes, or to a template using [parameter\ntags](https://puppet.com/docs/puppet/latest/lang_template_epp.html#parameter-tags).\n\n## Usage\n\n```\n% ./puppet-data-types-consistency-checker.rb ~/Projects/puppet/modules/bacula\nInconsistencies found for $files:\n  - Array                          manifests/director/fileset.pp\n  - Optional[Array]                manifests/job.pp\n  - Array[String]                  templates/fileset.conf.epp\n\nInconsistencies found for $excludes:\n  - Optional[Array]                manifests/director/fileset.pp\n  - Optional[Array]                manifests/job.pp\n  - Array[String]                  templates/fileset.conf.epp\n\nInconsistencies found for $maxvoljobs:\n  - Optional[Variant[String,Integer]] manifests/director/pool.pp\n  - Optional[Integer]              templates/bacula-dir-pool.epp\n\nInconsistencies found for $maxvols:\n  - Optional[Variant[String,Integer]] manifests/director/pool.pp\n  - Optional[Integer]              templates/bacula-dir-pool.epp\n\n[...]\n```\n\nOf course, if unrelated variable have the same name but different data-types,\nthey will be reported.  Filtering these false-positive is out of the scope of\nthis tool, so be ready to see this kind of output if you are concerned by this\ncase:\n\n```\n% ./puppet-data-types-consistency-checker.rb ~/Projects/puppet/modules/bacula\nInconsistencies found for $sched:\n  - String                         manifests/jobdefs.pp\n  - Optional[String]               manifests/job.pp\n  - Optional[String]               templates/job.conf.epp\n  - String                         templates/jobdefs.conf.epp\n\nInconsistencies found for $priority:\n  - Integer                        manifests/jobdefs.pp\n  - Optional[Integer]              manifests/job.pp\n  - Optional[Integer]              templates/job.conf.epp\n  - Integer                        templates/jobdefs.conf.epp\n\nInconsistencies found for $pool:\n  - String                         manifests/jobdefs.pp\n  - Optional[String]               manifests/job.pp\n  - Optional[String]               templates/job.conf.epp\n  - String                         templates/jobdefs.conf.epp\n\n[...]\n```\n\nIn the above example, both manifests use the same variable names, but\n`manifests/job.pp` use the `templates/job.conf.epp` template and\n`manifests/jobdefs.pp` use the `templates/jobdefs.conf.epp` template, so\neverything is fine.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsmortex%2Fpuppet-data-types-consistency-checker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsmortex%2Fpuppet-data-types-consistency-checker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsmortex%2Fpuppet-data-types-consistency-checker/lists"}