Add auto-default-branch

This commit is contained in:
Jesus E 2023-07-03 16:23:00 -04:00
parent 0dab6b6f05
commit 1e6f82e10d
No known key found for this signature in database
GPG Key ID: E607CE7149F4D71C
3 changed files with 36 additions and 0 deletions

View File

@ -34,11 +34,13 @@ WORKDIR /var/lib/git
COPY cgit.css /usr/share/webapps/cgit/cgit.css
COPY md2html /usr/lib/cgit/filters/html-converters/md2html
COPY syntax-highlighting.py /usr/lib/cgit/filters/syntax-highlighting.py
COPY auto-default-branch.sh /usr/lib/gitolite/triggers/auto-default-branch
COPY gitolite.rc /var/lib/git/.gitolite.rc
COPY entrypoint.sh /
RUN chmod u+x /usr/lib/cgit/filters/html-converters/md2html
RUN chmod u+x /usr/lib/cgit/filters/syntax-highlighting.py
RUN chmod a+x /usr/lib/gitolite/triggers/auto-default-branch
RUN chmod u+x /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"]

View File

@ -0,0 +1,29 @@
#!/bin/sh
info() { printf >&2 %s\\n "$*" ; }
die() { info "$*" ; exit 1 ; }
ensure_HEAD() {
[ "$1" = 'POST_GIT' ] || die "unsupported trigger '$1'"
cd "$GL_REPO_BASE/$2.git"
# everything OK if the default in HEAD points to a real branch
git show-ref --quiet --verify "$(git symbolic-ref HEAD)" && return 0
# there *might* be a mismatch, so let's find out a real branch
local head
head="$(git show-ref --heads | head -1 | sed -e 's/^.* //')"
# the repo might still be empty
[ -n "$head" ] || return 0
# we have a default branch that we can set here
info "setting HEAD to <$head>"
git symbolic-ref HEAD "$head" -m "Default HEAD to branch <$head>"
}
set -eu
ensure_HEAD "$@"

View File

@ -95,6 +95,7 @@
'info',
'perms',
'writable',
'symbolic-ref',
# Uncomment or add new commands here.
'create',
@ -190,6 +191,10 @@
# 'Kindergarten',
],
POST_GIT => [
'auto-default-branch',
],
);
# ------------------------------------------------------------------------------