73 lines
2.4 KiB
YAML
73 lines
2.4 KiB
YAML
name: Simple Mirror to GitHub
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- master
|
|
|
|
jobs:
|
|
mirror:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 0 # Fetch full history for complete mirror
|
|
# token: ${{ secrets.GITEA_TOKEN }}
|
|
|
|
- name: Push to GitHub
|
|
run: |
|
|
# Configure git
|
|
git config --global user.name "Gitea Mirror Bot"
|
|
git config --global user.email "noreply@gitea.local"
|
|
|
|
# Create mirror README
|
|
cat > README.md << 'EOF'
|
|
|
|
# 🪞 GitHub Mirror
|
|
|
|
This is an automated mirror of the repository hosted on [GitGud.foo/xbazzi/nixos-config](https://gitgud.foo/xbazzi/nixos-config).
|
|
|
|
**⚠️ This is a read-only mirror - do not create issues or pull requests here.**
|
|
|
|
## 🏠 Original Repository
|
|
|
|
Please visit the [original](https://gitgud.foo/xbazzi/nixos-config) repository for:
|
|
- 📝 Issues and bug reports
|
|
- 🔄 Pull requests and contributions
|
|
- 📋 Project documentation
|
|
- 💬 Discussions
|
|
|
|
---
|
|
|
|
*This mirror is automatically updated when changes are pushed to the master branch.*
|
|
EOF
|
|
|
|
# Stage and commit the new README
|
|
git add README.md
|
|
if git diff --staged --quiet; then
|
|
echo "No changes to README, skipping commit"
|
|
else
|
|
git commit -m "Update README for GitHub mirror"
|
|
fi
|
|
|
|
# Add remote
|
|
git remote add github https://${{ secrets.GH_TOKEN }}@github.com/xbazzi/nixos-config.git
|
|
|
|
# Check if GitHub repo is empty
|
|
if git ls-remote --heads github | grep -q refs/heads/; then
|
|
echo "GitHub repo has branches, doing full mirror"
|
|
git push github --all --force
|
|
git push github --tags --force
|
|
else
|
|
echo "GitHub repo is empty, pushing master branch first"
|
|
git push github master
|
|
# After master is established, push other branches and tags
|
|
git push github --all --force || echo "No additional branches to push"
|
|
git push github --tags --force || echo "No tags to push"
|
|
fi
|
|
- name: Debug git state
|
|
run: |
|
|
git log --oneline -5
|
|
git branch -a
|
|
git remote -v |