1db08b1e9b
Mirror to GitHub (Archive Method) / mirror (push) Failing after 15s
Mirror to GitHub (Rsync Method) / mirror (push) Failing after 15s
Mirror to GitHub / mirror (push) Failing after 14s
Test and Lint / backend-test (push) Successful in 1m3s
continuous-integration/drone/push Build is passing
Test and Lint / frontend-test (push) Successful in 2m15s
Version and Release / version-bump (push) Successful in 35s
Version and Release / trigger-drone (push) Successful in 3s
- Add three different approaches for mirroring to GitHub - Approach 1: Filter out sensitive files on a separate branch - Approach 2: Use git archive with .gitattributes exclusions - Approach 3: Use rsync for flexible file filtering - Add exclusion lists for sensitive files and directories - Protect production configs, environment files, and private data This allows maintaining a public GitHub mirror while keeping sensitive configuration and data private on the Gitea instance. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
48 lines
1.5 KiB
YAML
48 lines
1.5 KiB
YAML
name: Mirror to GitHub
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- main
|
|
|
|
jobs:
|
|
mirror:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v3
|
|
with:
|
|
fetch-depth: 0 # Full history needed for mirroring
|
|
|
|
- name: Setup Git
|
|
run: |
|
|
git config --global user.name "Gitea Mirror Bot"
|
|
git config --global user.email "bot@noreply.gitea.local"
|
|
|
|
- name: Create filtered branch
|
|
run: |
|
|
# Create a new branch for GitHub
|
|
git checkout -b github-mirror
|
|
|
|
# Remove sensitive files/directories
|
|
# Example: Remove .env files, private configs, etc.
|
|
git rm -r --cached .env* || true
|
|
git rm -r --cached backend/.env* || true
|
|
git rm -r --cached frontend/.env* || true
|
|
git rm -r --cached docker-compose.prod.yml || true
|
|
git rm -r --cached .claudedocs/ || true
|
|
git rm -r --cached backend/data/ || true
|
|
git rm -r --cached backend/storage/ || true
|
|
|
|
# Commit the changes
|
|
git commit -m "Remove sensitive files for GitHub mirror" || true
|
|
|
|
- name: Push to GitHub
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
run: |
|
|
# Add GitHub remote
|
|
git remote add github https://x-access-token:${GITHUB_TOKEN}@github.com/YOUR_GITHUB_USERNAME/YOUR_REPO_NAME.git
|
|
|
|
# Force push the filtered branch to GitHub main
|
|
git push github github-mirror:main --force |