/usr/share/gitolite3/triggers/upstream is in gitolite3 3.6.4-1.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72  | #!/bin/sh
# manage local, gitolite-controlled, copies of read-only upstream repos.
repo=$2
url=$(gitolite git-config $repo gitolite-options.upstream.url)
[ -z "$url" ] && exit 0     # exit if no url was specified
cd $GL_REPO_BASE/$repo.git || exit 1
[ "$1" != "fetch" ] && {
    nice=$(gitolite git-config $repo gitolite-options.upstream.nice)
    [ -n "$nice" ] && find FETCH_HEAD -mmin -$nice 2>/dev/null | grep . >/dev/null && exit 0
}
git fetch -q "$url" '+refs/*:refs/*'
# ----------------------------------------------------------------------
# FEATURES:
# * invokes upstream fetch on each local fetch
#   (unless the optional 'nice' setting is enabled)
# * can force a fetch (ignoring 'nice' value) from server CLI
# INSTRUCTIONS:
#
# * uncomment 'upstream' in the ENABLE list in the rc file.
# * add option lines to conf file.  For example:
#
#       repo git
#           R                       =   @all
#           RW+ my-company/         =   @developers
#
#           option  upstream.url    =   git://git.kernel.org/pub/scm/git/git.git
#           option  upstream.nice   =   120
#
# * to force a fetch on the server shell (or via cron), run this command:
#       gitolite ../triggers/upstream fetch reponame
# ADDITIONAL NOTES:
# * restrict local pushes to a namespace that the upstream won't use
#   (otherwise the next fetch will wipe them out)
# * if the upstream URL changes, just change the conf and push admin repo
# * the 'nice' setting is in minutes and is optional; it is the minimum
#   elapsed time between 2 upstream fetches.
# USAGE EXAMPLE:
#
# Let's say you want to keep a read-only local mirror of all your github repos
# on your local gitolite installation.  Assuming your github usernames are the
# same as your local usernames, and you have updated GIT_CONFIG_KEYS in the rc
# file to allow 'config' lines, you can do this:
#
#   repo github/CREATOR/..*
#       C   = @all
#       R   = @all
#       option upstream.url                     =   git://github.com/%GL_REPO.git
#       option upstream.nice                    =   120
#       config url.git://github.com/.insteadOf  =   git://github.com/github/
#
# Now you can make local, read-only, clones of all your github repos with
#
#   git ls-remote gitolite:github/sitaramc/gitolite
#   git ls-remote gitolite:github/sitaramc/hap
#   (etc)
#
# and if milki were also a user on this gitolite instance, then
#
#   git ls-remote gitolite:github/milki/xclip
#   git ls-remote gitolite:github/milki/ircblogger
#   (etc)
 |