{"id":34584588,"url":"https://github.com/dhth/envee","last_synced_at":"2026-05-27T15:32:39.699Z","repository":{"id":323203222,"uuid":"1092434288","full_name":"dhth/envee","owner":"dhth","description":"compare application versions across environments","archived":false,"fork":false,"pushed_at":"2026-05-01T23:49:30.000Z","size":115,"stargazers_count":1,"open_issues_count":1,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-02T00:25:57.001Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","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/dhth.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,"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":"2025-11-08T16:13:22.000Z","updated_at":"2026-05-01T23:49:32.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/dhth/envee","commit_stats":null,"previous_names":["dhth/envee"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/dhth/envee","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dhth%2Fenvee","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dhth%2Fenvee/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dhth%2Fenvee/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dhth%2Fenvee/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dhth","download_url":"https://codeload.github.com/dhth/envee/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dhth%2Fenvee/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33573250,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-27T02:00:06.184Z","response_time":53,"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":[],"created_at":"2025-12-24T10:28:59.048Z","updated_at":"2026-05-27T15:32:39.676Z","avatar_url":"https://github.com/dhth.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003ch1 align=\"center\"\u003eenvee\u003c/h1\u003e\n  \u003cp align=\"center\"\u003e\n    \u003ca href=\"https://github.com/dhth/envee/actions/workflows/main.yml\"\u003e\u003cimg alt=\"GitHub release\" src=\"https://img.shields.io/github/actions/workflow/status/dhth/envee/main.yml?style=flat-square\"\u003e\u003c/a\u003e\n  \u003c/p\u003e\n\u003c/p\u003e\n\n`envee` lets you quickly compare application versions across environments and\nsee git commits between them.\n\n![stdout-report](https://tools.dhruvs.space/images/envee/v0-1-0/stdout-report.png)\n\n\u003e [!NOTE]\n\u003e envee is alpha software. Its interface and behaviour might change in the near\n\u003e future.\n\n🤔 Motivation\n---\n\nWhen you manage applications across multiple environments, it's easy to lose\ntrack of which versions are running where. Understanding the version differences\ntells you exactly what code will ship in the next deployment. Without\ncentralized visibility, you end up manually checking each environment and\nrepository. `envee` helps with this process by centralizing version differences\nand commit logs in one place.\n\n⚡️ Usage\n---\n\n`envee` requires a TOML file which holds data for the app versions. You will\nmost likely need to tap into your CICD system/GitOps repo to generate this file\n(we use a GitOps repo at work, so I pull the versions from it using a simple\nPython script).\n\n```toml\n# array of environments in the order you would like to see them in the results\n# (required)\nenvs = [\"dev\", \"prod\"]\n\n# github owner of the repositories\n# (needed if you want to see commit logs)\ngithub_org = \"org\"\n\n# if you want to transform the versions in the versions TOML file to git tags\n# eg. v{{version}} will convert 0.1.0 to v0.1.0\n# (optional)\ngit_tag_transform = \"v{{version}}\"\n\n[[versions]]\n# also the name of the github repository for the app\napp = \"app-a\"\nenv = \"dev\"\nversion = \"0.1.2\"\n\n[[versions]]\napp = \"app-a\"\nenv = \"prod\"\nversion = \"0.1.0\"\n\n[[versions]]\napp = \"app-b\"\nenv = \"dev\"\nversion = \"1.2.0\"\n\n[[versions]]\napp = \"app-b\"\nenv = \"prod\"\nversion = \"1.2.0\"\n```\n\n```text\n$ envee run -h\nShow results based on a versions file\n\nUsage: envee run [OPTIONS]\n\nOptions:\n  -V, --versions \u003cPATH\u003e              Path to the versions file [default: versions.toml]\n      --debug                        Output debug information without doing anything\n      --validate-only                Only validate versions file\n  -C, --no-commit-logs               Show commits between tags corresponding to different environments (requires ENVEE_GH_TOKEN to be set)\n  -o, --output-format \u003cFORMAT\u003e       Output format [default: stdout] [possible values: stdout, html]\n  -f, --filter \u003cREGEX\u003e               Regex to use for filtering apps\n      --stdout-table-style \u003cSTRING\u003e  Table style for stdout output [default: utf8] [possible values: ascii, markdown, none, utf8]\n      --stdout-plain                 Whether to use output text to stdout without color\n      --html-output \u003cPATH\u003e           Path for the HTML output file [default: envee-report.html]\n      --html-title \u003cSTRING\u003e          Title for HTML report [default: envee]\n      --html-template \u003cPATH\u003e         Path to custom HTML template file\n  -h, --help                         Print help\n```\n\n### stdout output\n\nBy default, `envee` prints its report to stdout.\n\n[![stdout output](https://asciinema.org/a/iNdyYpBfYPxAhwPliICxjLMAY.svg)](https://asciinema.org/a/iNdyYpBfYPxAhwPliICxjLMAY)\n\n### HTML output\n\n`envee` can also generate an HTML version of its report.\n\n```\nenvee run --output-format html\n```\n\n![html-report](https://tools.dhruvs.space/images/envee/v0-1-0/html-report.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdhth%2Fenvee","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdhth%2Fenvee","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdhth%2Fenvee/lists"}