{"id":15090218,"url":"https://github.com/tyktechnologies/gromit","last_synced_at":"2025-04-11T20:31:50.004Z","repository":{"id":37855522,"uuid":"282177793","full_name":"TykTechnologies/gromit","owner":"TykTechnologies","description":"The glue that bonds AWS, terraform and Github Actions.","archived":false,"fork":false,"pushed_at":"2025-01-16T09:56:14.000Z","size":1370,"stargazers_count":29,"open_issues_count":6,"forks_count":0,"subscribers_count":24,"default_branch":"master","last_synced_at":"2025-01-29T19:24:02.644Z","etag":null,"topics":["aws","cobra","github-actions","terraform-aws"],"latest_commit_sha":null,"homepage":"https://gromit.dev.tyk.technology","language":"Go","has_issues":false,"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/TykTechnologies.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":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-07-24T09:27:01.000Z","updated_at":"2025-01-16T09:51:07.000Z","dependencies_parsed_at":"2023-12-31T18:26:53.359Z","dependency_job_id":"6b5329ab-3c08-42af-8cd2-4b6cb552ffcd","html_url":"https://github.com/TykTechnologies/gromit","commit_stats":{"total_commits":374,"total_committers":16,"mean_commits":23.375,"dds":0.7058823529411764,"last_synced_commit":"01c8c0dd98a9ec4cde1f08b485bdd2713e70a87e"},"previous_names":[],"tags_count":81,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TykTechnologies%2Fgromit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TykTechnologies%2Fgromit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TykTechnologies%2Fgromit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TykTechnologies%2Fgromit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TykTechnologies","download_url":"https://codeload.github.com/TykTechnologies/gromit/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248476337,"owners_count":21110260,"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":["aws","cobra","github-actions","terraform-aws"],"created_at":"2024-09-25T09:23:32.284Z","updated_at":"2025-04-11T20:31:44.986Z","avatar_url":"https://github.com/TykTechnologies.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Release](https://github.com/TykTechnologies/gromit/workflows/Release/badge.svg?branch=master)\n\n# Gromit\n\n## Installation\nInstall from the [releases](releases) page. To keep up with releases using [zinit](https://github.com/zdharma/zinit) in turbo mode, \n\n``` shell\nzinit wait lucid from\"gh-r\" nocompile for \\\n      bpick\"*Linux_x86_64.tar.gz\" TykTechnologies/gromit\n```\n\n## Configuration\nThis is ostensibly a [cobra](https://github.com/spf13/cobra \"cobra cli\") app and can be configured with a config file to save a bunch of typing. The embedded [config.yaml](config/config.yaml) contains the configuration that drives the templates.\n\nAll parameters can also be set by environment variables with the `GROMIT_` prefix. So the environment variable for the config parameter `cluster.domain` would be `GROMIT_CLUSTER_DOMAIN`.\n\n## Features\nTo various degrees of competence, gromit can,\n- manage templated files that can be rendered into any repo under management\n  * releng\n  * gpac (github policy as code)\n- fetch developer licenses for dashboard and mdcb\n- generate config files from a `text/template`\n- dump redis and mongo data for a classic cloud org to local disk (broken)\n- restore redis and mongo data for a classic cloud org from local disk (broken)\n\n### Policy Engine for release engineering\nPolicies are implemented by rendering template bundles, which are usually embedded into the binary. The rendering is mere text substitution and is agnostic to the language used in the template. It is best to use declarative or some sort of well-understood configuration language like YAML in the templates though.\n\n#### releng\nThis bundle contains all of the code required to build and test all the artefacts that are created when a release is made. Releases are made by pushing a tag to github. \n\n#### gpac\nThis bundle implements terraform manifests that model the state of the repos under management in github. This is used to [keep track of release branches](https://tyktech.atlassian.net/wiki/spaces/EN/pages/1907228677/Release+branches) as they are created.\n\n\n### Usage\n``` shellsession\n% gromit help\nIt also has a grab bag of various ops automation.\nEach gromit command has its own config section. For instance, the policy command uses the policy key in the config file. Config values can be overridden by environment variables. For instance, policy.prefix can be overridden using the variable $GROMIT_POLICY_PREFIX.\n\nUsage:\n  gromit [command]\n\nAvailable Commands:\n  bundle      Operate on bundles\n  completion  Generate completion script\n  git         Top-level git command, use a sub-command to perform an operation\n  help        Help about any command\n  licenser    Get a trial license and writes it to path, overwriting it\n  orgs        Dump/restore org keys and mongodb\n  passwd      Returns the password hash of the given plaintext\n  policy      Templatised policies that are driven by the config file\n  version     Print version\n\nFlags:\n  -f, --conf string       YAML config file. If not supplied, embedded defaults will be used\n  -h, --help              help for gromit\n      --loglevel string   Log verbosity: trace, debug, info, warn, error/fatal (default \"info\")\n      --textlogs          Logs in plain text (default true)\n\nUse \"gromit [command] --help\" for more information about a command.\n```\n\n## Testing\nAll tests in the `cmd` directory are system tests. Tests in other directories are unit tests. `make test` runs the tests and requires access to the [Engg PoC](https://046805072452/signing/aws/amazon.com/console/) AWS account.\n\nIf your AWS account does not have the power to run the tests, please find us on Slack.\n\n## CI\nThe [Release](https://github.com/TykTechnologies/gromit/actions?query=workflow%3ARelease) action builds a new docker image.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftyktechnologies%2Fgromit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftyktechnologies%2Fgromit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftyktechnologies%2Fgromit/lists"}