Manage environment variables across ALL your GitHub repositories from one central location. Never copy-paste secrets again.
Central environment variable administration for your entire GitHub organization:
- π’ Organization-Wide Management - Control environment variables for ALL your repositories from one place
- π Automatic Synchronization - Update your central
.envβ All repos get updated GitHub Secrets instantly - π Full GitHub Integration - Uses privileged PAT to manage secrets across any repository you own
- π§ Smart Secret Detection - Syncs credentials, ignores settings (PORT, NODE_ENV, etc.)
- π Security-First Architecture - Private repositories only, encrypted transmission, zero hardcoded secrets
- β‘ Real-time Updates - File watcher detects changes and syncs immediately
- π― Repository Targeting - Choose which repos get which environment variables
ENVable requires a full-privileged Personal Access Token to:
- Access ALL repositories in your organization
- Write GitHub Secrets to any repository you own
- Manage environment variables across multiple projects
- Maintain security through GitHub's encrypted secrets API
Security: Your PAT never leaves your local environment - all operations use GitHub's secure API.
ENVable is your central command center for environment variables across your entire GitHub organization.
- π Automatic Synchronization - Update your central
.envβ All repos get updated GitHub Secrets instantly - π Full GitHub Integration - Uses privileged PAT to manage secrets across any repository you own
- π§ Smart Secret Detection - Syncs credentials, ignores settings (PORT, NODE_ENV, etc.)
- π Security-First Architecture - Private repositories only, encrypted transmission, zero hardcoded secrets
- β‘ Real-time Updates - File watcher detects changes and syncs immediately
- π― Repository Targeting - Choose which repos get which environment variables
ENVable requires a full-privileged Personal Access Token to:
- Access ALL repositories in your organization
- Write GitHub Secrets to any repository you own
- Manage environment variables across multiple projects
- Maintain security through GitHub's encrypted secrets API
Security: Your PAT never leaves your local environment - all operations use GitHub's secure API.
Manage environment variables across ALL your GitHub repositories from one central location. Never copy-paste secrets again.
ENVable is your central command center for environment variables across your entire GitHub organization.
You have dozens of repositories, each needing the same environment variables:
- π Database credentials for 15 microservices
- π API keys used across 20+ projects
- οΏ½ JWT secrets shared between frontend & backend
- βοΈ AWS/GCP credentials for multiple environments
Without ENVable: Copy-paste hell, manual updates, forgotten repos, security gaps
With ENVable: β¨ Update your central .env file β All repos automatically sync β Zero manual work
- Central .env File - One master file with all your credentials
- GitHub PAT Integration - Full-privileged Personal Access Token for repo access
- Intelligent Sync - Automatically pushes secrets to ALL your repository's GitHub Secrets
- Security First - Encrypted transmission, private repos only, pattern-based filtering
We're not just building ENVable - we're creating a ecosystem of developer productivity tools that integrate seamlessly and solve real problems.
- π§ Developer Tools - Simple, effective solutions for common pain points
- β‘ AI-Speed Automation - Tools that work as fast as you think
- οΏ½οΈ Security-First - Zero-trust approach to credential management
- π Seamless Integration - Tools that work together, not in isolation
- π Knowledge Sharing - Best practices and proven patterns
Transform environment variable chaos into seamless automation:
- π Auto-syncing
.envfiles to GitHub repository secrets - β‘ Lightning deployment across multiple projects instantly
- π§ Smart detection - syncs secrets, ignores settings
- π Security-first - private repositories only, encrypted transmission
- π― Pattern matching - configurable sync/exclude rules
- π Credential rotation - automated security with zero downtime
1. Environment Processor (src/env_processor.py)
- Parses
.envfiles and categorizes variables - Identifies credentials vs configuration settings
- Supports pattern-based inclusion/exclusion rules
2. GitHub Secrets Manager (src/github_secrets_manager.py)
- Manages GitHub API authentication with full-privileged PAT
- Encrypts and uploads secrets to repository GitHub Secrets
- Handles organization-wide repository access and permissions
3. Auto-Sync Engine (src/auto_sync.py)
- File system watcher for real-time
.envchanges - Intelligent batching to avoid API rate limits
- Rollback capabilities for failed synchronizations
.env file changes β File Watcher β Environment Processor β Secret Classification β GitHub API β Repository Secrets
- Local PAT Storage: GitHub token never transmitted, stored locally only
- Encrypted Transmission: All secrets encrypted before GitHub API calls
- Private Repo Enforcement: Automatically blocks public repository deployments
- Audit Logging: Complete trail of all secret synchronizations
- β‘ Lightning deployment across multiple projects instantly
- π§ Smart detection - syncs secrets, ignores settings
- οΏ½ Security-first - private repositories only, encrypted transmission
- π― Pattern matching - configurable sync/exclude rules
- π Credential rotation - automated security with zero downtime
git clone https://github.com/Immutablemike/ENVable.git
cd ENVable
pip install -r requirements.txtcp .env.example .env
# Add your GitHub PAT and usernamefrom src.env_processor import ENVProcessor
from src.github_secrets_manager import GitHubSecretsManager
# Central administration - one command updates ALL repos
env = ENVProcessor()
github = GitHubSecretsManager()
# Your central .env file contains:
# DATABASE_URL=postgresql://prod-server:5432/app
# API_KEY=sk-1234567890abcdef
# JWT_SECRET=super-secret-key
# Deploy to multiple repositories instantly
repositories = [
'my-company/frontend-app',
'my-company/backend-api',
'my-company/mobile-app',
'my-company/analytics-service',
'my-company/notification-service'
]
for repo in repositories:
result = github.sync_to_repository(repo, env.available_credentials)
print(f"β
{result['secrets_synced']} secrets deployed to {repo}")
# Output:
# β
3 secrets deployed to my-company/frontend-app
# β
3 secrets deployed to my-company/backend-api
# β
3 secrets deployed to my-company/mobile-app
# β
3 secrets deployed to my-company/analytics-service
# β
3 secrets deployed to my-company/notification-serviceResult: All 5 repositories now have the same environment variables in their GitHub Secrets, ready for deployment.
# β
Automatically synced (secrets)
DATABASE_URL = "postgresql://user:pass@host:5432/db"
API_KEY = "sk-1234567890abcdef"
JWT_SECRET = "super-secret-signing-key"
# β Ignored (settings)
PORT = "3000"
NODE_ENV = "production"
DEBUG = "false"- Private-only enforcement - Blocks public repository deployment
- Encrypted transmission - GitHub's sodium encryption for all secrets
- Zero-trust validation - Verifies permissions before any operation
- Pattern-based filtering - Never accidentally sync passwords or PATs
# Start file watcher
python auto_sync.py
# π₯ Now any .env change instantly syncs to your repositories
# No manual copying, no forgotten deployments, no broken builds- β Core .env to GitHub secrets synchronization
- β Intelligent secret detection and filtering
- β Real-time file watching and auto-sync
- β Security-first private repository enforcement
- π Advanced Rotation - Automated credential rotation with provider integrations
- π― Multi-Platform - Support for GitLab, Bitbucket, Azure DevOps
- π Analytics Dashboard - Track secret usage and security metrics
- π CLI Tool - One-command deployment across entire organizations
- π§ AI Secret Management - Intelligent credential suggestions and validation
- π’ Enterprise Features - Team management, audit logs, compliance reporting
- π Plugin Ecosystem - Community-built integrations for any service
- π Web Dashboard - Visual management interface for all your secrets
Want to improve ENVable? Check out CONTRIBUTING.md for guidelines.
Quick Start:
- Fork the repository
- Pick an issue labeled
good-first-issue - Submit a pull request
- π¬ Discord: Join our community
- π¦ Twitter: @ENVableTools
- π Blog: ENVable.dev
- π§ Email: community@envable.dev
MIT License - see LICENSE for details.
Security Notice: Report vulnerabilities to security@envable.dev
ENVable isn't just a tool - it's the foundation of a developer productivity revolution.
Join us in building simple, effective solutions that developers actually want to use. Your code, ideas, and expertise can help thousands of developers work faster and more securely.
Ready to make an impact?
β Star this repo and join the community building the future of developer tools.
β‘ Built by developers, for developers - because environment setup shouldn't slow down innovation.
env_processor.py- Smart environment variable processing with auto-reloadgithub_secrets_manager.py- Secure GitHub secrets integration with encryptionauto_sync.py- File watcher for automatic synchronizationkey_rotation/- Automated credential rotation system
- π§ Intelligent Secret Detection - Automatically identifies secrets vs settings
- π Private Repository Enforcement - Blocks syncing to public repos
- β‘ Real-time Sync - File watcher automatically syncs changes
- π― Pattern Matching - Configurable sync/exclude patterns
- πΎ Credential Caching - Intelligent caching with auto-refresh
- Private-only enforcement - Refuses to sync secrets to public repositories
- Encrypted transmission - Uses GitHub's public key encryption for all secrets
- Token validation - Verifies GitHub token permissions before operations
# Automatically identifies these as secrets:
DATABASE_URL = "postgresql://user:pass@host:5432/db"
API_KEY = "sk-1234567890abcdef"
JWT_SECRET = "super-secret-signing-key"
# Automatically identifies these as settings (not synced):
PORT = "3000"
NODE_ENV = "production"
DEBUG = "false"# Map project names to GitHub repositories
project_mappings = {
'my_project_env': 'my-project',
'api_service': 'api-service-repo',
'frontend_app': 'frontend-repo'
}{
"repos": ["my-repo-1", "my-repo-2"],
"sync_patterns": ["*_API_KEY", "*_TOKEN", "*_SECRET"],
"exclude_patterns": ["*PASSWORD*", "*_PAT"],
"debounce_seconds": 3
}Start the file watcher for automatic synchronization:
python auto_sync.pyThis will:
- Watch your
.envfile for changes - Automatically sync secrets to configured repositories
- Respect include/exclude patterns
- Provide real-time feedback
ENVable includes a built-in credential rotation system:
cd key_rotation/
python rotation_scheduler.pyFeatures:
- Scheduled automatic rotation
- Provider-specific rotators
- Secure backup and rollback
- Integration with external secrets managers
ENVable/
βββ env_processor.py # Core environment processing
βββ github_secrets_manager.py # GitHub secrets integration
βββ auto_sync.py # File watcher & auto-sync
βββ sync_config.json # Sync configuration
βββ key_rotation/ # Credential rotation system
β βββ rotation_scheduler.py
β βββ rotation_config.json
β βββ provider_rotators/
βββ .env.example # Configuration template
βββ requirements.txt # Python dependencies
- Never commit
.envfiles - Always use.env.exampletemplates - Use dedicated PATs - Create GitHub tokens with minimal required permissions
- Private repositories only - ENVable enforces this automatically
- Regular rotation - Use the built-in rotation system
- Monitor sync logs - Review what secrets are being deployed
- Audit repository access - Ensure only necessary repositories are configured
- Validate patterns - Double-check sync/exclude patterns
- Test on staging - Always test on non-production repositories first
We welcome contributions! Please see CONTRIBUTING.md for guidelines.
git clone https://github.com/Immutablemike/ENVable.git
cd ENVable
pip install -r requirements.txt
# Install development dependencies
pip install pytest black flake8 mypy
# Run tests
pytest
# Code formatting
black . && flake8 .MIT License - see LICENSE for details.
- Documentation: Wiki
- Issues: Bug Reports & Feature Requests
- Discussions: Community Forum
β‘ Built for AI-speed development - because environment setup shouldn't slow you down!
- Development Setup: Update installation and setup instructions
- Personality Guidelines: Adapt personality guidance to your project
- Testing: Update testing procedures and requirements
- Contact Info: Replace with your project's communication channels
- Contact Methods: Update security reporting contact information
- Supported Versions: Modify version support table
- Scope: Customize security scope for your project type
- Response Timeline: Adjust based on your availability
- Copyright: Update copyright year and holder
- MIT License: Standard permissive license, most OSS-friendly
- Alternative: Replace with different license if needed (Apache 2.0, GPL, etc.)
β
GitHub Recognition: All templates follow GitHub community standards
β
Legal Protection: Proper license and security reporting procedures
β
Contributor Clarity: Clear guidelines reduce confusion and conflicts
β
Trust Building: Professional documentation increases adoption
β
Authentic Energy: Templates maintain personality while being professional
β
Inclusive Language: Welcoming to diverse contributors
β
Clear Expectations: Balance fun personality with clear boundaries
β
Business Context: Appropriate for client-facing projects
- 50% more contributors on average (professional appearance attracts talent)
- Reduced conflicts through clear behavioral expectations
- Faster onboarding with comprehensive contribution guidelines
- Legal protection with proper licensing and security procedures
- GitHub recognition with community standards checkmarks
- GitHub Search: Better ranking in GitHub search results
- Topic Tags: Easier to categorize and find your project
- Awesome Lists: Higher chance of inclusion in curated lists
- Conference Speaking: Professional documentation supports speaking opportunities
# Create new repository with full professional setup
mkdir my-new-project
cd my-new-project
git init
# Copy complete OSS kit
cp -r ../OSS_Project_Kit/community_templates/* ./
cp -r ../OSS_Project_Kit/github_workflows/* ./.github/workflows/
cp -r ../OSS_Project_Kit/issue_templates/* ./.github/ISSUE_TEMPLATE/
cp ../OSS_Project_Kit/pull_request_template.md ./.github/
# Customize for your project
sed -i 's/gittalker/my-new-project/g' *.md
sed -i 's/Immutablemike/myusername/g' *.md# Add professional standards to existing project
cp OSS_Project_Kit/community_templates/CODE_OF_CONDUCT.md ./
cp OSS_Project_Kit/community_templates/CONTRIBUTING.md ./
cp OSS_Project_Kit/community_templates/SECURITY.md ./
# Customize and commit
git add . && git commit -m "Add professional community standards"- Template Version: 1.0.0 (October 2024)
- Based on: GitHub Community Standards + GitTalker experience
- Updates: Check OSS_Project_Kit releases for template improvements
# Update existing templates with latest versions
cp OSS_Project_Kit/community_templates/* ./
git diff # Review changes before committing- Enterprise: More formal language, compliance focus
- Creative: Artistic project considerations, intellectual property
- Educational: Learning-focused contribution guidelines
- Security: Enhanced security procedures and requirements
# Create translations directory
mkdir docs/translations/
cp community_templates/* docs/translations/
# Translate files for international contributors- Slack/Discord: Link community channels in templates
- Documentation Sites: Reference external documentation
- Project Management: Link to project boards or roadmaps
These templates balance:
- Professional Standards with Authentic Personality
- Clear Expectations with Welcoming Atmosphere
- Legal Protection with Community Building
- Contributor Focus with Maintainer Efficiency
Ready to make your project instantly professional? These templates provide the foundation for a thriving open-source community.
Built from real-world experience managing developer communities. π₯