diff --git a/tools/newtag.sh b/tools/newtag.sh
index 249c277..50f9df9 100755
--- a/tools/newtag.sh
+++ b/tools/newtag.sh
@@ -15,47 +15,98 @@
 #   limitations under the License.
 #
 
-if [ $# -ne 5 ]; then
-    echo "Usage $0 <repo> <branch> <tag> <user> <release_name>"
-    echo "Example: $0 all master v4.0.2 garciadeblas FOUR"
-    echo "Example: $0 devops v5.0 v5.0.3 marchettim FIVE"
+if [ "$#" -lt 2 ] || [ "$#" -gt 3 ]; then
+    echo "Usage $0 <TAG> <GIT_USER> [<GIT_PASSWORD>]"
+    echo "Example: $0 v18.0.1 garciadeblas"
+    echo "When <GIT_PASSWORD> is provided, it will be used for git https authentication. Otherwise, ssh authentication will be used."
     exit 1
 fi
 
-BRANCH="$2"
-TAG="$3"
-USER="$4"
-RELEASE_NAME="$5"
+TAG="$1"
+GIT_USER="$2"
+GIT_PASSWORD="${3:-}"
+
+BRANCH_NAME="v$(echo $TAG | grep -oE '[0-9]+\.[0-9]+')"
+
+declare -A branch_release_map=(
+    ["v14.0"]="FOURTEEN"
+    ["v15.0"]="FIFTEEN"
+    ["v16.0"]="SIXTEEN"
+    ["v17.0"]="SEVENTEEN"
+    ["v18.0"]="EIGHTEEN"
+    ["v19.0"]="NINETEEN"
+    ["v20.0"]="TWENTY"
+    ["v21.0"]="TWENTYONE"
+    ["v22.0"]="TWENTYTWO"
+    ["v23.0"]="TWENTYTHREE"
+)
+
+RELEASE_NAME="${branch_release_map[$BRANCH_NAME]}"
+if [ -z "$RELEASE_NAME" ]; then
+    echo "Unknown branch name: $BRANCH_NAME"
+    exit 1
+fi
 tag_header="OSM Release $RELEASE_NAME:"
 tag_message="$tag_header version $TAG"
 
-modules="common devops IM LCM MON N2VC NBI NG-UI NG-SA osmclient RO PLA POL SOL003 SOL005 tests"
-list=""
-for i in $modules; do
-    if [ "$1" == "$i" -o "$1" == "all" ]; then
-        list="$1"
-        break
-    fi
-done
-
-[ "$1" == "all" ] && list=$modules
-
-if [ -z "$list" ]; then
-    echo "Repo must be one of these: $modules all"
+declare -A branch_module_map=(
+    ["v14.0"]="common devops IM LCM MON N2VC NBI NG-UI NG-SA osmclient RO PLA POL SOL003 SOL005 tests"
+    ["v15.0"]="common devops IM LCM MON N2VC NBI NG-UI NG-SA osmclient RO PLA POL SOL003 SOL005 tests"
+    ["v16.0"]="common devops IM LCM MON N2VC NBI NG-UI NG-SA osmclient RO PLA POL SOL003 SOL005 tests"
+    ["v17.0"]="common devops IM LCM MON N2VC NBI NG-UI NG-SA osmclient RO PLA POL SOL003 SOL005 tests"
+    ["v18.0"]="common devops IM LCM MON NBI NG-UI NG-SA osmclient RO SOL003 SOL005 tests"
+    ["v19.0"]="common devops IM LCM MON NBI NG-UI NG-SA osmclient RO SOL003 SOL005 tests"
+    ["v20.0"]="common devops IM LCM MON NBI NG-UI NG-SA osmclient RO SOL003 SOL005 tests"
+    ["v21.0"]="common devops IM LCM MON NBI NG-UI NG-SA osmclient RO SOL003 SOL005 tests"
+    ["v22.0"]="common devops IM LCM MON NBI NG-UI NG-SA osmclient RO SOL003 SOL005 tests"
+    ["v23.0"]="common devops IM LCM MON NBI NG-UI NG-SA osmclient RO SOL003 SOL005 tests"
+)
+MODULE_LIST="${branch_module_map[$BRANCH_NAME]}"
+if [ -z "$MODULE_LIST" ]; then
+    echo "Unknown branch name: $BRANCH_NAME"
     exit 1
 fi
 
-for i in $list; do
-    echo $i
-    if [ ! -d $i ]; then
-        git clone ssh://$USER@osm.etsi.org:29418/osm/$i
+
+BASE_FOLDER=$(mktemp -d --tmpdir change-chart-version.XXXXXX)
+pushd $BASE_FOLDER
+
+if [ -n "$GIT_PASSWORD" ]; then
+    REPO_BASE_URL="https://${GIT_USER}@osm.etsi.org/gerrit/a/osm"
+    # Follow recommendation for user auth with git using a script git-creds.sh
+    cat << "EOF" > "${HOME}/git-creds.sh"
+#!/bin/sh
+if echo "$1" | grep -q '^Password'; then
+  echo "${GIT_PASSWORD}"
+else
+  echo "${GIT_USER}"
+fi
+exit 0
+EOF
+    chmod +x "${HOME}/git-creds.sh"
+else
+    REPO_BASE_URL="ssh://${GIT_USER}@osm.etsi.org:29418/osm"
+fi
+
+for i in ${MODULE_LIST}; do
+    echo "Cloning $i repo"
+    REPO_URL="${REPO_BASE_URL}/${i}"
+    if [ -n "$GIT_PASSWORD" ]; then
+        echo "Using https authentication"
+        GIT_USERNAME="${GIT_USER}" GIT_ASKPASS=~/git-creds.sh git clone "${REPO_URL}"
+    else
+        echo "Using ssh authentication"
+        git clone "${REPO_URL}"
     fi
-    git -C $i checkout $BRANCH || ! echo "$BRANCH was not found in $i repo" || continue
+    git -C $i checkout $BRANCH_NAME || ! echo "$BRANCH_NAME was not found in $i repo" || continue
     git -C $i pull --rebase
-    echo "Creating new tag $TAG in repo $i associated to branch $BRANCH"
+    echo "Creating new tag $TAG in repo $i associated to branch $BRANCH_NAME"
     git -C $i tag -a $TAG -m"$tag_message"
+    echo "Pushing changes to $i repo"
     git -C $i push origin $TAG --follow-tags
     sleep 2
 done
 
+popd
+
 exit 0
