| # π€ Hugging Face Repository Protection Guide |
|
|
| ## π Overview |
|
|
| Hugging Face repositories have different protection mechanisms than GitHub. This guide shows how to implement protection for your algorithmic trading repositories on Hugging Face. |
|
|
| ## π‘οΈ Available Protection Methods |
|
|
| ### **1. Repository Settings (Web Interface)** |
|
|
| #### **Access Control:** |
| 1. Go to your repository: `https://huggingface.co/ParallelLLC/algorithmic_trading` |
| 2. Click **"Settings"** tab |
| 3. Configure these settings: |
|
|
| **Repository Visibility:** |
| - [x] **Private** (recommended for trading systems) |
| - [ ] Public (if you want to share) |
|
|
| **Collaboration:** |
| - [x] **Require approval for new collaborators** |
| - [x] **Restrict push access to maintainers only** |
|
|
| **Model Card:** |
| - [x] **Require model card for uploads** |
| - [x] **Validate model card format** |
|
|
| ### **2. Git Hooks (Local Protection)** |
|
|
| #### **Pre-commit Hook:** |
| The pre-commit hook I created will: |
| - β
Warn about direct commits to main |
| - β
Run tests before commit |
| - β
Check code formatting |
| - β
Scan for secrets |
| - β
Prevent commits if checks fail |
|
|
| #### **Install the Hook:** |
| ```bash |
| # The hook is already installed in .git/hooks/pre-commit |
| # It will run automatically on every commit |
| ``` |
|
|
| ### **3. CI/CD Protection** |
|
|
| #### **GitHub Actions (Recommended):** |
| Since Hugging Face integrates with GitHub: |
| 1. **Keep GitHub as primary** with full protection |
| 2. **Sync to Hugging Face** after GitHub validation |
| 3. **Use GitHub's branch protection** rules |
|
|
| #### **Workflow:** |
| ```bash |
| # 1. Develop on GitHub (with protection) |
| git push origin feature/new-strategy |
| |
| # 2. Create PR on GitHub |
| # 3. All checks pass |
| # 4. Merge to main |
| # 5. Sync to Hugging Face |
| git push hf main |
| git push esalguero_hf main |
| ``` |
|
|
| ### **4. Manual Protection Practices** |
|
|
| #### **Development Workflow:** |
| ```bash |
| # Always use feature branches |
| git checkout -b feature/new-strategy |
| # Make changes |
| git commit -m "feat: add new strategy" |
| git push origin feature/new-strategy |
| |
| # Create PR on GitHub (not Hugging Face) |
| # Get reviews and approvals |
| # Merge on GitHub |
| # Then sync to Hugging Face |
| ``` |
|
|
| #### **Code Review Process:** |
| 1. **Never commit directly to main** |
| 2. **Always create feature branches** |
| 3. **Use GitHub for PRs and reviews** |
| 4. **Sync to Hugging Face after approval** |
|
|
| ## π§ Implementation Steps |
|
|
| ### **Step 1: Configure Repository Settings** |
| 1. Go to: `https://huggingface.co/ParallelLLC/algorithmic_trading/settings` |
| 2. Set repository to **Private** |
| 3. Enable **Require approval for collaborators** |
|
|
| ### **Step 2: Use GitHub as Primary** |
| 1. **Develop on GitHub** with full protection |
| 2. **Use GitHub's branch protection** rules |
| 3. **Sync to Hugging Face** after validation |
|
|
| ### **Step 3: Enable Pre-commit Hook** |
| ```bash |
| # The hook is already installed and executable |
| # It will run automatically on commits |
| ``` |
|
|
| ### **Step 4: Team Guidelines** |
| ```markdown |
| ## Development Guidelines for Hugging Face Repos |
| |
| ### β
Do: |
| - Use GitHub for development and PRs |
| - Create feature branches for all changes |
| - Get code review before merging |
| - Run tests locally before pushing |
| - Sync to Hugging Face after GitHub approval |
| |
| ### β Don't: |
| - Commit directly to main branch |
| - Push untested code |
| - Skip code review process |
| - Use Hugging Face for development workflow |
| ``` |
|
|
| ## π¨ Emergency Procedures |
|
|
| ### **If Direct Commit to Main is Needed:** |
| ```bash |
| # 1. Create emergency branch |
| git checkout -b hotfix/emergency-fix |
| |
| # 2. Make minimal fix |
| git commit -m "hotfix: emergency fix for critical issue" |
| |
| # 3. Test thoroughly |
| python -m pytest tests/ |
| python demo.py |
| |
| # 4. Push to GitHub first |
| git push origin hotfix/emergency-fix |
| |
| # 5. Create emergency PR |
| # 6. Get expedited review |
| # 7. Merge and sync to Hugging Face |
| ``` |
|
|
| ## π Protection Summary |
|
|
| ### **GitHub (Primary Development):** |
| - β
Full branch protection |
| - β
Required reviews |
| - β
CI/CD checks |
| - β
Code owner reviews |
| - β
Automated testing |
|
|
| ### **Hugging Face (Distribution):** |
| - β
Private repository |
| - β
Pre-commit hooks |
| - β
Manual review process |
| - β
Sync after GitHub validation |
|
|
| ## π― Best Practices |
|
|
| ### **1. Use GitHub as Source of Truth** |
| - All development happens on GitHub |
| - Hugging Face is for distribution |
| - Sync after GitHub validation |
|
|
| ### **2. Never Skip Protection** |
| - Always use feature branches |
| - Always get code review |
| - Always run tests |
| - Always validate on GitHub first |
|
|
| ### **3. Monitor Both Repositories** |
| - Check GitHub for development status |
| - Check Hugging Face for distribution status |
| - Ensure both are in sync |
|
|
| ## π Useful Links |
|
|
| - **GitHub Repository**: https://github.com/EAName/algorithmic_trading |
| - **Hugging Face ParallelLLC**: https://huggingface.co/ParallelLLC/algorithmic_trading |
| - **Hugging Face esalguero**: https://huggingface.co/esalguero/algorithmic_trading |
| - **GitHub Settings**: https://github.com/EAName/algorithmic_trading/settings/branches |
| - **Hugging Face Settings**: https://huggingface.co/ParallelLLC/algorithmic_trading/settings |
| |
| --- |
| |
| **Note**: Hugging Face repositories are best used for model distribution and sharing, while GitHub provides the robust development and protection features needed for algorithmic trading systems. |