https://github.com/copyleftdev/zpush
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.
Science Score: 13.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
○.zenodo.json file
-
○DOI references
-
○Academic publication links
-
○Committers with academic emails
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (13.1%) to scientific vocabulary
Keywords
Repository
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.
Basic Info
Statistics
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
- Releases: 0
Topics
Metadata Files
Readme.md
zpush 🚀
Welcome 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.
Overview 🎨
zpush 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.
Features ✨
Automatic Repository Detection
Ensures you’re executing from the root of your Git repository by checking for a.gitfolder and extracting the remote “origin” info.Flexible Environment Loading
Loads your environment variables from a default.envfile or a user-specified file via the--env-fileoption.Secret File Parsing
Reads your secrets file (each line formatted asKEY=VALUE), ignoring empty lines and comments.GitHub Integration
Authenticates with GitHub using a token (make sure to set theGITHUB_TOKENenvironment variable with proper scopes) and verifies it by calling GitHub’s API.Asynchronous & Responsive
Built on Rust’s async ecosystem (using Tokio and reqwest) for a snappy, non-blocking experience.Vibrant, Emoji-Fueled UI
Enjoy colorful progress bars (courtesy of indicatif) and status messages loaded with fun emojis 😎🎉.Robust Testing & Installation
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.
Installation 🔧
Make sure you have Rust installed, then clone this repository:
bash
git clone https://github.com/copyleftdev/zpush.git
cd zpush
Build & Install Locally
Use the provided Makefile to build and install zpush to your local binary directory:
bash
make install
This 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!
Usage ⚙️
- Set Up Your GitHub Token
Export your GitHub token (with the required scopes such asrepo,admin:repo_hook, andsecrets):
bash
export GITHUB_TOKEN="your_token_here"
- Prepare Your Secrets File
Create a secrets file (e.g.,secrets.txt) with each secret in the format:
plaintext
API_KEY=your_api_key
DB_PASSWORD=your_db_password
- Run zpush
Navigate to your Git repository root (ensure the.gitfolder is present) and run:
bash
zpush --secrets-file secrets.txt
To load a custom environment file instead of the default .env, use:
bash
zpush --secrets-file secrets.txt --env-file custom.env
Watch the colorful progress bar and fun emojis as your secrets are pushed!
Development & Testing 🧪
Run the full test suite with:
bash
cargo test
The repository includes unit tests for secret parsing, token verification, and other core functions. You can also use the Makefile’s test target:
bash
make test
Contributing 🤝
Contributions are welcome! If you have ideas, improvements, or bug fixes:
- Fork this repository.
- Create a feature branch.
- Open a pull request with a clear description of your changes.
For more details, please review our CONTRIBUTING guidelines (if provided).
License 📄
zpush is released under the MIT License. See the LICENSE file for more details.
Acknowledgements 💖
Built with passion by the copyleftdev community. Enjoy a vibrant, efficient, and fun secret management experience – and happy coding! 😎✨
Owner
- Name: Donald Johnson
- Login: copyleftdev
- Kind: user
- Location: Los Angeles
- Repositories: 39
- Profile: https://github.com/copyleftdev
GitHub Events
Total
- Push event: 5
- Create event: 2
Last Year
- Push event: 5
- Create event: 2
Committers
Last synced: about 1 year ago
Top Committers
| Name | Commits | |
|---|---|---|
| Don Johnson | d****n@c****o | 8 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 11 months ago
All Time
- Total issues: 0
- Total pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Total issue authors: 0
- Total pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 0
- Pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Issue authors: 0
- Pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- actions/checkout v4 composite
- 202 dependencies
- assert_cmd 2.0 development
- tempfile 3.3 development
- clap 4.1
- colored 2.0
- dialoguer 0.10
- dotenv 0.15
- git2 0.17
- indicatif 0.17
- reqwest 0.11
- serde 1.0
- serde_json 1.0
- thiserror 1.0
- tokio 1.29