@@ -779,6 +779,22 @@ gitlab_configure_oauth_azure() {
779779 fi
780780}
781781
782+ gitlab_configure_oauth_azure_ad_v2 () {
783+ # we don't check if OAUTH_AZURE_ACTIVEDIRECTORY_V2_LABEL because it is optional
784+ if [[ -n ${OAUTH_AZURE_ACTIVEDIRECTORY_V2_CLIENT_ID} && \
785+ -n ${OAUTH_AZURE_ACTIVEDIRECTORY_V2_CLIENT_SECRET} && \
786+ -n ${OAUTH_AZURE_ACTIVEDIRECTORY_V2_TENANT_ID} ]]; then
787+ echo " Configuring gitlab::oauth::azure_activedirectory_v2..."
788+ update_template ${GITLAB_CONFIG} \
789+ OAUTH_AZURE_ACTIVEDIRECTORY_V2_LABEL \
790+ OAUTH_AZURE_ACTIVEDIRECTORY_V2_CLIENT_ID \
791+ OAUTH_AZURE_ACTIVEDIRECTORY_V2_CLIENT_SECRET \
792+ OAUTH_AZURE_ACTIVEDIRECTORY_V2_TENANT_ID
793+ else
794+ exec_as_git sed -i " /name: 'azure_activedirectory_v2'/,/{{OAUTH_AZURE_ACTIVEDIRECTORY_V2_TENANT_ID}}/d" ${GITLAB_CONFIG}
795+ fi
796+ }
797+
782798gitlab_configure_oauth2_generic_ustc () {
783799 if [[ -n ${OAUTH2_GENERIC_USTC_APP_ID} && \
784800 -n ${OAUTH2_GENERIC_USTC_APP_SECRET} ]]; then
@@ -858,6 +874,7 @@ gitlab_configure_oauth() {
858874 gitlab_configure_oauth_crowd
859875 gitlab_configure_oauth_auth0
860876 gitlab_configure_oauth_azure
877+ gitlab_configure_oauth_azure_ad_v2
861878 gitlab_configure_oauth2_generic_ustc
862879 gitlab_configure_oauth_oidc
863880 gitlab_configure_oauth_jwt
@@ -870,7 +887,8 @@ gitlab_configure_oauth() {
870887 OAUTH_AUTO_LINK_LDAP_USER \
871888 OAUTH_AUTO_LINK_SAML_USER \
872889 OAUTH_AUTO_LINK_USER \
873- OAUTH_EXTERNAL_PROVIDERS
890+ OAUTH_EXTERNAL_PROVIDERS \
891+ OAUTH_ALLOW_BYPASS_TWO_FACTOR
874892
875893 case ${OAUTH_AUTO_SIGN_IN_WITH_PROVIDER} in
876894 cas3|google_oauth2|facebook|twitter|github|gitlab|bitbucket|saml|crowd|azure_oauth2|azure_activedirectory_v2|oauth2_generic|$OAUTH2_GENERIC_NAME |oidc|jwt)
@@ -1125,6 +1143,24 @@ gitlab_configure_analytics() {
11251143
11261144gitlab_configure_rack_attack () {
11271145 echo " Configuring gitlab::rack_attack..."
1146+
1147+ # validity check : RACK_ATTACK_WHITELIST should be an array of valid IP Address string
1148+ echo " Validating RACK_ATTACK_WHITELIST..."
1149+ /usr/bin/env ruby << SCRIPT
1150+ require 'ipaddr'
1151+ ${RACK_ATTACK_WHITELIST} .each do |host|
1152+ begin
1153+ printf(" input=%s, to_range=%s\n", host, IPAddr.new(host).to_range)
1154+ rescue IPAddr::InvalidAddressError => e
1155+ p e
1156+ exit 1
1157+ rescue => e
1158+ put "Unexpected error", e
1159+ exit 1
1160+ end
1161+ end
1162+ SCRIPT
1163+
11281164 update_template ${GITLAB_CONFIG} \
11291165 RACK_ATTACK_ENABLED \
11301166 RACK_ATTACK_WHITELIST \
@@ -1418,7 +1454,8 @@ gitlab_configure_pages(){
14181454 GITLAB_PAGES_PORT \
14191455 GITLAB_PAGES_HTTPS \
14201456 GITLAB_PAGES_ARTIFACTS_SERVER \
1421- GITLAB_PAGES_ACCESS_CONTROL
1457+ GITLAB_PAGES_ACCESS_CONTROL \
1458+ GITLAB_PAGES_NAMESPACE_IN_PATH
14221459
14231460 if [[ -n ${GITLAB_PAGES_EXTERNAL_HTTP} ]]; then
14241461 update_template ${GITLAB_CONFIG} \
@@ -1700,7 +1737,12 @@ initialize_datadir() {
17001737 chmod u+rwX ${GITLAB_SHARED_DIR} /ci_secure_files
17011738 chown ${GITLAB_USER} : ${GITLAB_SHARED_DIR} /ci_secure_files
17021739
1703- # create attifacts dir
1740+ # create external-diffs dir
1741+ mkdir -p ${GITLAB_SHARED_DIR} /external-diffs
1742+ chmod u+rwX ${GITLAB_SHARED_DIR} /external-diffs
1743+ chown ${GITLAB_USER} : ${GITLAB_SHARED_DIR} /external-diffs
1744+
1745+ # create artifacts dir
17041746 mkdir -p ${GITLAB_ARTIFACTS_DIR}
17051747 chmod u+rwX ${GITLAB_ARTIFACTS_DIR}
17061748 chown ${GITLAB_USER} : ${GITLAB_ARTIFACTS_DIR}
@@ -1958,11 +2000,6 @@ install_configuration_templates() {
19582000 install_template ${GITLAB_USER} : gitaly/config.toml ${GITLAB_GITALY_CONFIG}
19592001}
19602002
1961- gitlab_configure_assets_access () {
1962- # https://github.com/ustclug/docker-gitlab/issues/4
1963- chmod 755 ${GITLAB_HOME}
1964- }
1965-
19662003configure_gitlab () {
19672004 echo " Configuring gitlab..."
19682005 update_template ${GITLAB_CONFIG} \
@@ -2023,12 +2060,12 @@ configure_gitlab() {
20232060 gitlab_configure_sentry
20242061 generate_healthcheck_script
20252062 gitlab_configure_content_security_policy
2026- gitlab_configure_assets_access
20272063
20282064 # remove stale gitlab.socket
20292065 rm -rf ${GITLAB_INSTALL_DIR} /tmp/sockets/gitlab.socket
20302066}
20312067
2068+ # feature flags are recorded to database (schema "application_settings") so requires DB is (at least) initialized
20322069gitlab_configure_feature_flags () {
20332070 echo " Configuring gitlab::feature_flags..."
20342071
@@ -2140,6 +2177,8 @@ if [[ ${GITLAB_PAGES_ACCESS_CONTROL} == true ]]; then
21402177 GITLAB_PAGES_ACCESS_REDIRECT_URI \
21412178 GITLAB_PAGES_ACCESS_SECRET \
21422179 GITLAB_PAGES_ACCESS_CONTROL_SERVER \
2180+ GITLAB_PAGES_NAMESPACE_IN_PATH \
2181+ GITLAB_PAGES_LOG_VERBOSE \
21432182 GITLAB_INSTALL_DIR
21442183
21452184 if [[ -n ${GITLAB_PAGES_ARTIFACTS_SERVER_URL} ]]; then
@@ -2149,6 +2188,9 @@ if [[ ${GITLAB_PAGES_ACCESS_CONTROL} == true ]]; then
21492188 fi
21502189else
21512190 update_template ${GITLAB_PAGES_CONFIG} \
2191+ GITLAB_RELATIVE_URL_ROOT \
2192+ GITLAB_PAGES_NAMESPACE_IN_PATH \
2193+ GITLAB_PAGES_LOG_VERBOSE \
21522194 GITLAB_INSTALL_DIR
21532195
21542196 exec_as_git sed -i " /{{GITLAB_PAGES_ACCESS_CLIENT_ID}}/d" ${GITLAB_PAGES_CONFIG}
0 commit comments