diff --git a/tools/newtag.sh b/tools/newtag.sh
index 7a19998..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 NBI NG-UI NG-SA osmclient RO 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
