diff --git a/gitlab/docs.sh b/gitlab/docs.sh
index a21203d86e7662c25c437ce247065508643937e7..8ecbaea8bb98573fa3aa20ccdf0c6a391e301506 100755
--- a/gitlab/docs.sh
+++ b/gitlab/docs.sh
@@ -15,4 +15,8 @@ echo "runner=${CI_RUNNER_DESCRIPTION}" >> ${info}
 file=${CI_PROJECT_NAME}-${CI_BUILD_REF}.tar.bz2
 run_cmd tar cfj ${file} sphinx
 
-dav_upload ${file} public-upload/docs/incoming
+if [ "${VISIBILITY}" == "public" ]; then
+  dav_upload ${file} public-upload/docs/incoming
+else
+  dav_upload ${file} private-upload/docs/incoming
+fi
diff --git a/gitlab/functions.sh b/gitlab/functions.sh
index 6f3f6260914a0a34e15b8c0e80b4fddcefa97668..69ecc8bca2d87b716699c556cbed57b1ed49f5df 100644
--- a/gitlab/functions.sh
+++ b/gitlab/functions.sh
@@ -10,6 +10,13 @@ osname() {
 }
 
 
+# Determines the visibility of the current package
+visibility() {
+  local code=$(curl --output /dev/null --silent --fail --write-out "%{http_code}" ${CI_PROJECT_URL})
+  [[ ${code} == *200 ]] && echo "public" || echo "private"
+}
+
+
 # Functions for coloring echo commands
 log_debug() {
   echo -e "(`date +%T`) \033[1;32m${@}\033[0m"
@@ -219,6 +226,7 @@ contains_element () {
 
 
 check_env PYTHON_VERSION
+check_env CI_PROJECT_URL
 check_env CI_PROJECT_DIR
 check_env CI_PROJECT_PATH
 check_env CI_PROJECT_NAME
@@ -231,6 +239,7 @@ check_pass DOCPASS
 
 # Sets up variables
 OSNAME=`osname`
+VISIBILITY=`visibility`
 
 if [ -z "${CONDA_FOLDER}" ]; then
   CONDA_FOLDER=/opt/conda
@@ -262,6 +271,7 @@ fi
 TESTSERVER=https://testpypi.python.org/pypi
 
 check_env OSNAME
+check_env VISIBILITY
 check_env PYVER
 check_env PREFIX
 export_env PREFIX