{"id":25063705,"url":"https://github.com/copyleftdev/zpush","last_synced_at":"2026-05-01T15:32:07.068Z","repository":{"id":275891020,"uuid":"927516999","full_name":"copyleftdev/zpush","owner":"copyleftdev","description":" Rust-powered CLI tool that makes pushing your environment secrets to GitHub as fun as it is functional! With a colorful UI, clever progress bars, and playful emojis, zpush turns mundane secret management into an enjoyable experience.","archived":false,"fork":false,"pushed_at":"2025-02-05T15:40:49.000Z","size":28,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-02-21T05:19:33.230Z","etag":null,"topics":["github","rust","secrets"],"latest_commit_sha":null,"homepage":"","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/copyleftdev.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-02-05T04:49:22.000Z","updated_at":"2025-02-05T15:40:52.000Z","dependencies_parsed_at":"2025-02-05T06:18:36.364Z","dependency_job_id":"7bedd926-6485-418e-a670-f08fb57485d4","html_url":"https://github.com/copyleftdev/zpush","commit_stats":null,"previous_names":["copyleftdev/zpush"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/copyleftdev/zpush","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/copyleftdev%2Fzpush","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/copyleftdev%2Fzpush/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/copyleftdev%2Fzpush/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/copyleftdev%2Fzpush/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/copyleftdev","download_url":"https://codeload.github.com/copyleftdev/zpush/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/copyleftdev%2Fzpush/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32503032,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-30T13:12:12.517Z","status":"online","status_checked_at":"2026-05-01T02:00:05.856Z","response_time":64,"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":["github","rust","secrets"],"created_at":"2025-02-06T18:44:55.313Z","updated_at":"2026-05-01T15:32:07.050Z","avatar_url":"https://github.com/copyleftdev.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# zpush 🚀\n[![Rust](https://github.com/copyleftdev/zpush/actions/workflows/rust.yml/badge.svg)](https://github.com/copyleftdev/zpush/actions/workflows/rust.yml)\n\nWelcome to **zpush** – a Rust-powered CLI tool that makes pushing your environment secrets to GitHub as fun as it is functional! With a colorful UI, clever progress bars, and playful emojis, zpush turns mundane secret management into an enjoyable experience.\n\n---\n\n## Overview 🎨\n\nzpush is designed for developers who need to securely push local environment secrets to a GitHub repository. It automatically detects if you’re in a Git repository root, loads environment variables (from a default or user-specified `.env` file), verifies your GitHub token, and then uses GitHub’s API to upload your secrets. All while keeping you entertained with vibrant progress bars and witty status messages.\n\n---\n\n## Features ✨\n\n- **Automatic Repository Detection**  \n  Ensures you’re executing from the root of your Git repository by checking for a `.git` folder and extracting the remote “origin” info.\n\n- **Flexible Environment Loading**  \n  Loads your environment variables from a default `.env` file or a user-specified file via the `--env-file` option.\n\n- **Secret File Parsing**  \n  Reads your secrets file (each line formatted as `KEY=VALUE`), ignoring empty lines and comments.\n\n- **GitHub Integration**  \n  Authenticates with GitHub using a token (make sure to set the `GITHUB_TOKEN` environment variable with proper scopes) and verifies it by calling GitHub’s API.\n\n- **Asynchronous \u0026 Responsive**  \n  Built on Rust’s async ecosystem (using Tokio and reqwest) for a snappy, non-blocking experience.\n\n- **Vibrant, Emoji-Fueled UI**  \n  Enjoy colorful progress bars (courtesy of indicatif) and status messages loaded with fun emojis 😎🎉.\n\n- **Robust Testing \u0026 Installation**  \n  Comes with a comprehensive test suite and a Makefile that supports building, running, testing, cleaning, and even a user-local install to `$(HOME)/.local/bin`.\n\n---\n\n## Installation 🔧\n\nMake sure you have [Rust](https://www.rust-lang.org/) installed, then clone this repository:\n\n```bash\ngit clone https://github.com/copyleftdev/zpush.git\ncd zpush\n```\n\n### Build \u0026 Install Locally\n\nUse the provided Makefile to build and install zpush to your local binary directory:\n\n```bash\nmake install\n```\n\nThis command will compile the project in release mode and copy the `zpush` binary to `$(HOME)/.local/bin`. Be sure that `$(HOME)/.local/bin` is in your PATH!\n\n---\n\n## Usage ⚙️\n\n1. **Set Up Your GitHub Token**  \n   Export your GitHub token (with the required scopes such as `repo`, `admin:repo_hook`, and `secrets`):\n\n   ```bash\n   export GITHUB_TOKEN=\"your_token_here\"\n   ```\n\n2. **Prepare Your Secrets File**  \n   Create a secrets file (e.g., `secrets.txt`) with each secret in the format:\n\n   ```plaintext\n   API_KEY=your_api_key\n   DB_PASSWORD=your_db_password\n   ```\n\n3. **Run zpush**  \n   Navigate to your Git repository root (ensure the `.git` folder is present) and run:\n\n   ```bash\n   zpush --secrets-file secrets.txt\n   ```\n\n   To load a custom environment file instead of the default `.env`, use:\n\n   ```bash\n   zpush --secrets-file secrets.txt --env-file custom.env\n   ```\n\nWatch the colorful progress bar and fun emojis as your secrets are pushed!\n\n---\n\n## Development \u0026 Testing 🧪\n\nRun the full test suite with:\n\n```bash\ncargo test\n```\n\nThe repository includes unit tests for secret parsing, token verification, and other core functions. You can also use the Makefile’s `test` target:\n\n```bash\nmake test\n```\n\n---\n\n## Contributing 🤝\n\nContributions are welcome! If you have ideas, improvements, or bug fixes:\n\n- Fork this repository.\n- Create a feature branch.\n- Open a pull request with a clear description of your changes.\n\nFor more details, please review our [CONTRIBUTING guidelines](CONTRIBUTING.md) (if provided).\n\n---\n\n## License 📄\n\nzpush is released under the **MIT License**. See the [LICENSE](LICENSE) file for more details.\n\n---\n\n## Acknowledgements 💖\n\nBuilt with passion by the copyleftdev community. Enjoy a vibrant, efficient, and fun secret management experience – and happy coding! 😎✨\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcopyleftdev%2Fzpush","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcopyleftdev%2Fzpush","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcopyleftdev%2Fzpush/lists"}