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.

https://github.com/copyleftdev/zpush

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

github rust secrets
Last synced: 5 months ago · JSON representation

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
  • Host: GitHub
  • Owner: copyleftdev
  • License: mit
  • Language: Rust
  • Default Branch: master
  • Homepage:
  • Size: 27.3 KB
Statistics
  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Topics
github rust secrets
Created about 1 year ago · Last pushed about 1 year ago
Metadata Files
Readme License

Readme.md

zpush 🚀

Rust

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 .git folder and extracting the remote “origin” info.

  • Flexible Environment Loading
    Loads your environment variables from a default .env file or a user-specified file via the --env-file option.

  • Secret File Parsing
    Reads your secrets file (each line formatted as KEY=VALUE), ignoring empty lines and comments.

  • GitHub Integration
    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.

  • 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 ⚙️

  1. Set Up Your GitHub Token
    Export your GitHub token (with the required scopes such as repo, admin:repo_hook, and secrets):

bash export GITHUB_TOKEN="your_token_here"

  1. 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

  1. Run zpush
    Navigate to your Git repository root (ensure the .git folder 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

GitHub Events

Total
  • Push event: 5
  • Create event: 2
Last Year
  • Push event: 5
  • Create event: 2

Committers

Last synced: about 1 year ago

All Time
  • Total Commits: 8
  • Total Committers: 1
  • Avg Commits per committer: 8.0
  • Development Distribution Score (DDS): 0.0
Past Year
  • Commits: 8
  • Committers: 1
  • Avg Commits per committer: 8.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email 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

.github/workflows/rust.yml actions
  • actions/checkout v4 composite
Cargo.lock cargo
  • 202 dependencies
Cargo.toml cargo
  • 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