{"id":14957997,"url":"https://github.com/nirovision/mimiron","last_synced_at":"2026-01-21T01:02:02.065Z","repository":{"id":57441679,"uuid":"80687010","full_name":"Nirovision/mimiron","owner":"Nirovision","description":":robot: Easily manage your tfvars config via Mimiron","archived":false,"fork":false,"pushed_at":"2019-10-22T23:51:38.000Z","size":170,"stargazers_count":3,"open_issues_count":1,"forks_count":1,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-03-16T21:05:18.707Z","etag":null,"topics":["deployment","git","terraform"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":false,"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/Nirovision.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":"2017-02-02T02:42:18.000Z","updated_at":"2017-08-28T05:58:45.000Z","dependencies_parsed_at":"2022-09-26T17:20:50.504Z","dependency_job_id":null,"html_url":"https://github.com/Nirovision/mimiron","commit_stats":null,"previous_names":["imageintelligence/mimiron"],"tags_count":26,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nirovision%2Fmimiron","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nirovision%2Fmimiron/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nirovision%2Fmimiron/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nirovision%2Fmimiron/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Nirovision","download_url":"https://codeload.github.com/Nirovision/mimiron/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247666021,"owners_count":20975790,"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":["deployment","git","terraform"],"created_at":"2024-09-24T13:15:57.371Z","updated_at":"2026-01-21T01:02:02.006Z","avatar_url":"https://github.com/Nirovision.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Mimiron\n\n[![Build Status](https://travis-ci.org/ImageIntelligence/mimiron.svg?branch=master)](https://travis-ci.org/ImageIntelligence/mimiron)\n[![PyPI version](https://badge.fury.io/py/mimiron.svg)](https://badge.fury.io/py/mimiron)\n\n**Welcome to mimiron!**\n\n\u003e [Mimiron](http://www.wowhead.com/npc=33350/mimiron) is one of the Titanic Watchers. He once resided at the Temple of Invention, but is absent during the time of Loken's rebellion.\n\nMimiron is a CLI tool that aims provide a better workflow when manging Terraform variables.\n\nWhen all of your Terraform config is completely modular, the only sane way to manage variables is to store them inside a `variables.json` file and pass that along when you run `terraform apply -var-file=variables.json`... but where do you store `variables.json` and how can you easily make changes?\n\nOur approach is to store non-sensitive variables inside the same repository as our Terraform config. Sensitive variables like your AWS secret and master db password are stored elsewhere then accessed later whether it be via AWS KMS or Hashicorp Vault. The purpose of this project is to manage non-sensitive variables.\n\nWe want to make simple tasks such as bumping an image version simple and Mimiron is a small CLI tool that does that. Mimiron provides a few commands to help automate the cumbersome tasks away.\n\n## Installation\n\n```bash\nsudo pip install --upgrade mimiron\n```\n\n... or if you're using a Mac (see [here](https://github.com/pypa/pip/issues/3165) why):\n\n```bash\nsudo pip install --upgrade --ignore-installed six mimiron\n```\n\n`mim` requires a configuration file at `~/.mimiron.json` before it can work. Take a look at [./data/example_config.json](./data/example_config.json) for an example.\n\n| Root Key | Sub Key | Description\n|-|-|-|\n| terraformRepositories(array\u003cobject\u003e) | | |\n| | path(string) | The path to a Terraform repository (cannot be relative but may contain ~). |\n| | defaultEnvironment(string) | Projects representing multiple environments have a default (e.g. staging, production). |\n| | defaultGitBranch(string) | Some `mim` commands will check if the current branch is this before running. |\n| dockerhub(object) | | |\n| | username(string) | The username to your DockerHub account. |\n| | password(string) | The password to your DockerHub account. |\n| | organization(string) | The organization your DockerHub belongs to (username if none). |\n\n## Assumptions\n\n* `mim` requires that you store your Docker image aritfacts on DockerHub. No support for other registries exist at this time.\n* Terraform configuration is expected to exist at `/project/terraform/`.\n* Terraform variables (tfvars) are stored in JSON files inside a directory named `/project/terraform/tfvars/`.\n* Docker image artifacts are named `service_name_image` e.g. `web_marketing_image`.\n\n## Usage\n\n```\n\u003e\u003e\u003e mim --help\nmimiron.py\n\nusage:\n    mim (bump|b) \u003cservice\u003e [--env=\u003cenv\u003e] [--no-push]\n    mim (status|s) [--env=\u003cenv\u003e]\n    mim (deploy|d) [--env=\u003cenv\u003e] [--no-push] [--empty-commit]\n\ncommands:\n    (bump|b)        bumps the \u003cservice\u003e with an image \u003cartifact\u003e\n    (status|s)      shows the currently used artifact id for \u003cenv\u003e\n    (deploy|d)      triggers a deploy a chosen deployment repository\n\narguments:\n    \u003cartifact\u003e      the deployment artifact (Docker image) we are pushing\n    \u003cservice\u003e       the application we're targeting\n    --env=\u003cenv\u003e     overrides the default repo environment\n    --empty-commit  creates an empty commit on the chosen repository\n\noptions:\n    --no-push       make local changes without pushing to remote\n    -h --help       shows this\n    -v --version    shows version\n```\n\n## Development\n\n```bash\ngit clone git@github.com:ImageIntelligence/mimiron.git \u0026\u0026 cd mimiron/\nmkvirtualenv mimiron \u0026\u0026 workon mimiron\n\npython setup.py develop \u0026\u0026 pip install -r requirements.txt\n\npython mimiron/command_line.py --help\n```\n\n## Testing\n\n```bash\npython -m pytest test/\n```\n\n## Deployment\n\n```bash\npip install twine\npython setup.py sdist\ntwine upload dist/mimiron-0.4.0.tar.gz\n```\n\n**NOTE:** You might get warnings around having a misconfigured `~/.pypirc` file. Create one if you haven't and make sure it contains:\n\n```\n[pypi]\nusername = \u003cusername\u003e\npassword = \u003cpassword\u003e\n```\n\nAsk another developer for the username and password.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnirovision%2Fmimiron","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnirovision%2Fmimiron","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnirovision%2Fmimiron/lists"}