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>
39 lines
1.1 KiB
YAML
39 lines
1.1 KiB
YAML
name: Mirror to GitHub (Archive Method)
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- main
|
|
|
|
jobs:
|
|
mirror:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v3
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: Mirror using git archive
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
run: |
|
|
# Configure git
|
|
git config --global user.name "Gitea Mirror Bot"
|
|
git config --global user.email "bot@noreply.gitea.local"
|
|
|
|
# Copy gitattributes
|
|
cp .gitattributes-github .gitattributes
|
|
|
|
# Create archive excluding files
|
|
git archive --format=tar HEAD | tar -x -C /tmp/export
|
|
|
|
# Initialize new repo in export directory
|
|
cd /tmp/export
|
|
git init
|
|
git add .
|
|
git commit -m "Mirror from Gitea: $(date '+%Y-%m-%d %H:%M:%S')"
|
|
|
|
# Push to GitHub
|
|
git remote add origin https://x-access-token:${GITHUB_TOKEN}@github.com/YOUR_GITHUB_USERNAME/YOUR_REPO_NAME.git
|
|
git push -f origin main |