Skip to content

Commit

Permalink
Fix mirror - take 2
Browse files Browse the repository at this point in the history
  • Loading branch information
louischan-oursky committed Jan 24, 2025
1 parent 7ef4501 commit 5fb33b4
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 11 deletions.
18 changes: 7 additions & 11 deletions .github/workflows/mirror.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -24,18 +24,14 @@ jobs:
- name: Mirror
run: |
export GIT_SSH_COMMAND="ssh -v -i ~/.ssh/id_ed25519"
# The original command is
# git push --tags --force --prune "[email protected]:oursky/authgear-server.git" "refs/remotes/origin/*:refs/heads/*"
#
# It has been working so well, until 2025-01-23, git starts include refs/remotes/origin/HEAD in the expansion.
# That would include refs/remotes/origin/HEAD:refs/heads/HEAD.
# That means push a branch named HEAD in the mirror repository.
# HEAD has a special meaning in Git, and it is obviously not suitable for a branch name.
#
# So we use `git show-ref` plus some filtering with awk and perl to filter out refs/remotes/origin/HEAD.
# And build the `git push ...` command with xargs.
git show-ref | awk '{ print $2 }' | perl -n -e 'if (/(^refs\/remotes\/origin\/(.+)$)/ ) { if ($2 != "HEAD") { print "$1:refs/heads/$2\n" } }' | xargs -x git push --tags --force --prune "[email protected]:oursky/authgear-server.git"
# Print the git version for debugging purpose.
git --version
# Print the output of git show-ref for debugging purpose.
git show-ref
git remote add mirror [email protected]:oursky/authgear-server.git
git push --tags --force --prune mirror "refs/remotes/origin/*:refs/heads/*"
- name: Clean up
if: ${{ always() }}
run: |
rm -f ~/.ssh/id_ed25519
git remote remove mirror
1 change: 1 addition & 0 deletions .github/workflows/oursky.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ on:
push:
branches:
- '*'
- '!HEAD'
- '!gh-pages'
tags:
- '*'
Expand Down

0 comments on commit 5fb33b4

Please sign in to comment.