From 5b79fee7fc3de4b2568f04145e1a2541c440ff9b Mon Sep 17 00:00:00 2001 From: ikamii <98892946+ikamii@users.noreply.github.com> Date: Tue, 2 Jul 2024 15:02:06 +0200 Subject: [PATCH] [bitnami/gitea] Add new customizable environment variables - OAUTH2_CLIENT (#67791) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * [bitnami/gitea] Add new customizable environment variables [outh2_client] 1. ENABLE_AUTO_REGISTRATION (default: false) 2. USERNAME (default: nickname) Signed-off-by: Ismail Kutlay Acar * Rename env-var and add validations Signed-off-by: Andrés Bono --------- Signed-off-by: Ismail Kutlay Acar Signed-off-by: Andrés Bono Co-authored-by: Andrés Bono --- .../bitnami/gitea/custom/conf/app.ini.template | 6 +++++- .../rootfs/opt/bitnami/scripts/gitea-env.sh | 4 ++++ .../rootfs/opt/bitnami/scripts/libgitea.sh | 17 +++++++++++++++++ bitnami/gitea/README.md | 2 ++ 4 files changed, 28 insertions(+), 1 deletion(-) diff --git a/bitnami/gitea/1/debian-12/rootfs/opt/bitnami/gitea/custom/conf/app.ini.template b/bitnami/gitea/1/debian-12/rootfs/opt/bitnami/gitea/custom/conf/app.ini.template index 31100c04a51b..e528a951e611 100644 --- a/bitnami/gitea/1/debian-12/rootfs/opt/bitnami/gitea/custom/conf/app.ini.template +++ b/bitnami/gitea/1/debian-12/rootfs/opt/bitnami/gitea/custom/conf/app.ini.template @@ -55,4 +55,8 @@ REVERSE_PROXY_TRUSTED_PROXIES = * [openid] ENABLE_OPENID_SIGNIN = {{GITEA_ENABLE_OPENID_SIGNIN}} -ENABLE_OPENID_SIGNUP = {{GITEA_ENABLE_OPENID_SIGNUP}} \ No newline at end of file +ENABLE_OPENID_SIGNUP = {{GITEA_ENABLE_OPENID_SIGNUP}} + +[oauth2_client] +ENABLE_AUTO_REGISTRATION = {{GITEA_OAUTH2_CLIENT_AUTO_REGISTRATION_ENABLED}} +USERNAME = {{GITEA_OAUTH2_CLIENT_USERNAME}} diff --git a/bitnami/gitea/1/debian-12/rootfs/opt/bitnami/scripts/gitea-env.sh b/bitnami/gitea/1/debian-12/rootfs/opt/bitnami/scripts/gitea-env.sh index 6a18f5b14cb1..67ec6e3680d2 100644 --- a/bitnami/gitea/1/debian-12/rootfs/opt/bitnami/scripts/gitea-env.sh +++ b/bitnami/gitea/1/debian-12/rootfs/opt/bitnami/scripts/gitea-env.sh @@ -60,6 +60,8 @@ gitea_env_vars=( GITEA_SMTP_FROM GITEA_SMTP_USER GITEA_SMTP_PASSWORD + GITEA_OAUTH2_CLIENT_AUTO_REGISTRATION_ENABLED + GITEA_OAUTH2_CLIENT_USERNAME ) for env_var in "${gitea_env_vars[@]}"; do file_env_var="${env_var}_FILE" @@ -125,6 +127,8 @@ export GITEA_SMTP_PORT="${GITEA_SMTP_PORT:-}" export GITEA_SMTP_FROM="${GITEA_SMTP_FROM:-}" export GITEA_SMTP_USER="${GITEA_SMTP_USER:-}" export GITEA_SMTP_PASSWORD="${GITEA_SMTP_PASSWORD:-}" +export GITEA_OAUTH2_CLIENT_AUTO_REGISTRATION_ENABLED="${GITEA_OAUTH2_CLIENT_AUTO_REGISTRATION_ENABLED:-false}" +export GITEA_OAUTH2_CLIENT_USERNAME="${GITEA_OAUTH2_CLIENT_USERNAME:-nickname}" # Gitea system parameters export GITEA_DAEMON_USER="gitea" diff --git a/bitnami/gitea/1/debian-12/rootfs/opt/bitnami/scripts/libgitea.sh b/bitnami/gitea/1/debian-12/rootfs/opt/bitnami/scripts/libgitea.sh index 4a82ccbf5a9e..700150a2511d 100644 --- a/bitnami/gitea/1/debian-12/rootfs/opt/bitnami/scripts/libgitea.sh +++ b/bitnami/gitea/1/debian-12/rootfs/opt/bitnami/scripts/libgitea.sh @@ -47,6 +47,17 @@ gitea_validate() { fi } + check_true_false_value() { + if ! is_true_false_value "${!1}"; then + print_validation_error "The allowed values for $1 are [true, false]" + fi + } + check_multi_value() { + if [[ " ${2} " != *" ${!1} "* ]]; then + print_validation_error "The allowed values for ${1} are: ${2}" + fi + } + ! is_empty_value "$GITEA_HTTP_PORT" && check_valid_port "GITEA_HTTP_PORT" ! is_empty_value "$GITEA_SSH_PORT" && check_valid_port "GITEA_SSH_PORT" ! is_empty_value "$GITEA_SSH_LISTEN_PORT" && check_valid_port "GITEA_SSH_LISTEN_PORT" @@ -56,6 +67,9 @@ gitea_validate() { check_empty_value "GITEA_SMTP_FROM" fi + check_true_false_value 'GITEA_OAUTH2_CLIENT_AUTO_REGISTRATION_ENABLED' + check_multi_value 'GITEA_OAUTH2_CLIENT_USERNAME' 'userid nickname preferred_username email' + return "$error_code" } @@ -221,6 +235,9 @@ gitea_update_conf_file() { is_empty_value "$GITEA_SMTP_USER" || gitea_conf_set "mailer" "USER" "$GITEA_SMTP_USER" is_empty_value "$GITEA_SMTP_PASSWORD" || gitea_conf_set "mailer" "PASSWD" "$GITEA_SMTP_PASSWORD" is_empty_value "$GITEA_LFS_ROOT_PATH" || gitea_conf_set "lfs" "PATH" "$GITEA_LFS_ROOT_PATH" + + is_empty_value "$GITEA_OAUTH2_CLIENT_AUTO_REGISTRATION_ENABLED" || gitea_conf_set "oauth2_client" "ENABLE_AUTO_REGISTRATION" "$GITEA_OAUTH2_CLIENT_AUTO_REGISTRATION_ENABLED" + is_empty_value "$GITEA_OAUTH2_CLIENT_USERNAME" || gitea_conf_set "oauth2_client" "USERNAME" "$GITEA_OAUTH2_CLIENT_USERNAME" } ######################## diff --git a/bitnami/gitea/README.md b/bitnami/gitea/README.md index 684d456365e0..1742cb68dc68 100644 --- a/bitnami/gitea/README.md +++ b/bitnami/gitea/README.md @@ -201,6 +201,8 @@ Gitea can be configured via environment variables or using a configuration file | `GITEA_SMTP_FROM` | Mail from address, RFC 5322. This can be just an email address, or the "Name" email@example.com format. | `nil` | | `GITEA_SMTP_USER` | Username of mailing user (usually the senders e-mail address). | `nil` | | `GITEA_SMTP_PASSWORD` | Password of mailing user. Use "your password" for quoting if you use special characters in the password. | `nil` | +| `GITEA_OAUTH2_CLIENT_AUTO_REGISTRATION_ENABLED` | Enable OAuth2 auto registration. Automatically create user accounts for new oauth2 users. | `false` | +| `GITEA_OAUTH2_CLIENT_USERNAME` | The source of the username for new oauth2 accounts. [userid, nickname, preferred_username, email] | `nickname` | #### Read-only environment variables