-
Notifications
You must be signed in to change notification settings - Fork 38
Description
I'm using External Hooks version 13.1.1 on Bitbucket Data Center, running in a container based on the atlassian/bitbucket:7.21.4
Docker image.
I upgraded Bitbucket, recreating the container based on the atlassian/bitbucket:8.9.4
image. After the upgrade, my external hooks stopped working.
I investigated and noticed that the external hook scripts are being invoked in an environment in which the command git config -l
does not find the repository's configuration.
I made the hook script output its environment variables and current directory both before the upgrade and after it.
Before the upgrade, the hook script is invoked in the /var/atlassian/application-data/bitbucket/shared/data/repositories/2295
directory with the following environment variables (I replaced some sensitive parts with xxxxxxxx
):
APPLICATION_MODE=default
APP_NAME=bitbucket
BB_BASE_URL=https://bitbucket.xxxxxxxx.br
BB_HOOK_TRIGGER_ID=push
BB_HOOK_TYPE=PRE
BB_IS_DRY_RUN=false
BB_PROJECT_KEY=GTIC
BB_REPO_CLONE_HTTP=https://bitbucket.xxxxxxxx.br/scm/gtic/cds.git
BB_REPO_CLONE_SSH=ssh://git\@bitbucket.xxxxxxxx.br:7999/gtic/cds.git
BB_REPO_IS_FORK=false
BB_REPO_IS_PUBLIC=false
BB_REPO_SLUG=cds
BB_USER_DISPLAY_NAME=Gustavo xxxxxxxx
BB_USER_EMAIL=gustavo\@xxxxxxxx.br
BB_USER_NAME=gustavo
BB_USER_PERMISSION=SYS_ADMIN
BIN_DIR=/opt/atlassian/bitbucket/bin
BITBUCKET_HOME=/var/atlassian/application-data/bitbucket
BITBUCKET_INSTALL_DIR=/opt/atlassian/bitbucket
BITBUCKET_USER=
FEATURE_PUBLIC_ACCESS=false
GIT_ALTERNATE_OBJECT_DIRECTORIES=/var/atlassian/application-data/bitbucket/shared/data/repositories/2295/./objects
GIT_OBJECT_DIRECTORY=/var/atlassian/application-data/bitbucket/shared/data/repositories/2295/./objects/incoming-m0PJSe
GIT_QUARANTINE_PATH=/var/atlassian/application-data/bitbucket/shared/data/repositories/2295/./objects/incoming-m0PJSe
HOME=/var/atlassian/application-data/bitbucket
HOSTNAME=9ca50b5dcc0a
INST_DIR=/opt/atlassian/bitbucket
JAVA_BINARY=/opt/java/openjdk/bin/java
JAVA_HOME=/opt/java/openjdk
JAVA_VERSION=11.0.20
JDBC_DRIVER=org.postgresql.Driver
JDBC_PASSWORD=xxxxxxxx
JDBC_URL=jdbc:postgresql://postgres:5432/bitbucket?targetServerType=master
JDBC_USER=bitbucket
JMX_ENABLED=false
JRE_HOME=/opt/java/openjdk
JVM_MAXIMUM_MEMORY=2G
LANG=en_US.UTF-8
LANGUAGE=en_US:en
LC_ALL=en_US.UTF-8
LOGNAME=bitbucket
OLDPWD=/opt/atlassian/bitbucket/bin
PATH=/opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PLUGIN_SEARCH_CONFIG_BASEURL=http://opensearch:9200
PWD=/var/atlassian/application-data/bitbucket/shared/data/repositories/2295
REMOTE_USER=gustavo
RUN_GID=2003
RUN_GROUP=bitbucket
RUN_UID=2003
RUN_USER=bitbucket
SEARCH_ENABLED=false
SHELL=/bin/bash
SHLVL=1
STASH_BASE_URL=https://bitbucket.xxxxxxxx.br
STASH_IS_ADMIN=false
STASH_IS_DIRECT_ADMIN=
STASH_IS_DIRECT_WRITE=
STASH_PROJECT_KEY=GTIC
STASH_PROJECT_NAME=
STASH_REPO_CLONE_HTTP=https://bitbucket.xxxxxxxx.br/scm/gtic/cds.git
STASH_REPO_CLONE_SSH=ssh://git\@bitbucket.xxxxxxxx.br:7999/gtic/cds.git
STASH_REPO_IS_FORK=false
STASH_REPO_NAME=cds
STASH_USER_DISPLAY_NAME=Gustavo xxxxxxxx
STASH_USER_EMAIL=gustavo\@xxxxxxxx.br
STASH_USER_NAME=gustavo
TMPDIR=/var/atlassian/application-data/bitbucket/tmp
TZ=America/Sao_Paulo
USER=bitbucket
_=/var/atlassian/application-data/bitbucket/shared/external-hooks/pre-receive
After the upgrade, the pre-receive
script is invoked in the /var/atlassian/application-data/bitbucket/mesh/tmp/script-sandbox7711861015479551760
directory with the following environment variables:
APPLICATION_MODE=default
APP_NAME=bitbucket
BB_BASE_URL=https://bitbucket.xxxxxxxx.br
BB_HOOK_TRIGGER_ID=push
BB_HOOK_TYPE=PRE
BB_IS_DRY_RUN=false
BB_PROJECT_KEY=GTIC
BB_REPO_CLONE_HTTP=https://bitbucket.xxxxxxxx.br/scm/gtic/cds.git
BB_REPO_CLONE_SSH=ssh://git\@bitbucket.xxxxxxxx.br:7999/gtic/cds.git
BB_REPO_IS_FORK=false
BB_REPO_IS_PUBLIC=false
BB_REPO_SLUG=cds
BB_USER_DISPLAY_NAME=Gustavo xxxxxxxx
BB_USER_EMAIL=gustavo\@xxxxxxxx.br
BB_USER_NAME=gustavo
BB_USER_PERMISSION=SYS_ADMIN
BIN_DIR=/opt/atlassian/bitbucket/bin
BITBUCKET_HOME=/var/atlassian/application-data/bitbucket
BITBUCKET_INSTALL_DIR=/opt/atlassian/bitbucket
BITBUCKET_USER=
FEATURE_PUBLIC_ACCESS=false
GIT_ALTERNATE_OBJECT_DIRECTORIES=/var/atlassian/application-data/bitbucket/shared/data/repositories/2295/./objects/incoming-vezKfG
HOME=/var/atlassian/application-data/bitbucket
HOSTNAME=868e01573c1f
INST_DIR=/opt/atlassian/bitbucket
JAVA_BINARY=/opt/java/openjdk/bin/java
JAVA_HOME=/opt/java/openjdk
JAVA_VERSION=11.0.20
JDBC_DRIVER=org.postgresql.Driver
JDBC_PASSWORD=xxxxxxxx
JDBC_URL=jdbc:postgresql://postgres:5432/bitbucket?targetServerType=master
JDBC_USER=bitbucket
JMX_ENABLED=false
JRE_HOME=/opt/java/openjdk
JVM_MAXIMUM_MEMORY=2G
LANG=en_US.UTF-8
LANGUAGE=en_US:en
LC_ALL=en_US.UTF-8
LOGNAME=bitbucket
OLDPWD=/opt/atlassian/bitbucket/bin
PATH=/opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PLUGIN_SEARCH_CONFIG_BASEURL=http://opensearch:9200
PWD=/var/atlassian/application-data/bitbucket/mesh/tmp/script-sandbox7711861015479551760
RUN_GID=2003
RUN_GROUP=bitbucket
RUN_UID=2003
RUN_USER=bitbucket
SEARCH_ENABLED=false
SHELL=/bin/bash
SHLVL=1
STASH_BASE_URL=https://bitbucket.xxxxxxxx.br
STASH_IS_ADMIN=false
STASH_IS_DIRECT_ADMIN=
STASH_IS_DIRECT_WRITE=
STASH_PROJECT_KEY=GTIC
STASH_PROJECT_NAME=
STASH_REPO_CLONE_HTTP=https://bitbucket.xxxxxxxx.br/scm/gtic/cds.git
STASH_REPO_CLONE_SSH=ssh://git\@bitbucket.xxxxxxxx.br:7999/gtic/cds.git
STASH_REPO_IS_FORK=false
STASH_REPO_NAME=cds
STASH_USER_DISPLAY_NAME=Gustavo xxxxxxxx
STASH_USER_EMAIL=gustavo\@xxxxxxxx.br
STASH_USER_NAME=gustavo
TMPDIR=/var/atlassian/application-data/bitbucket/mesh/tmp
TZ=America/Sao_Paulo
USER=bitbucket
_=/var/atlassian/application-data/bitbucket/shared/external-hooks/pre-receive
The command git config -l
invoked by the external hook script returns just three lines:
core.repositoryformatversion=0
core.filemode=true
core.bare=true
Since the script is being invoked from a different directory, perhaps the GIT_OBJECT_DIRECTORY
is missing.
I read the documentation but couldn't find anything related to this problem.
Can you help me figure this out?
Thanks!