diff --git a/deploy/jenkins/jobs/Deploy/jobs/dev/jobs/Summary/jobs/DeployedVersions/config.xml b/deploy/jenkins/jobs/Deploy/jobs/dev/jobs/Summary/jobs/DeployedVersions/config.xml
index dcbd83390e948c886a821324fcb8ccc9d466043d..8420da8b0b2050ee2d0378b4517a710b72a84dbe 100644
--- a/deploy/jenkins/jobs/Deploy/jobs/dev/jobs/Summary/jobs/DeployedVersions/config.xml
+++ b/deploy/jenkins/jobs/Deploy/jobs/dev/jobs/Summary/jobs/DeployedVersions/config.xml
@@ -51,7 +51,7 @@
       </userRemoteConfigs>
       <branches>
         <hudson.plugins.git.BranchSpec>
-          <name>final-variable-refac</name>
+          <name>${public_repo_branch}</name>
         </hudson.plugins.git.BranchSpec>
       </branches>
       <doGenerateSubmoduleConfigurations>false</doGenerateSubmoduleConfigurations>
@@ -71,4 +71,4 @@
   </definition>
   <triggers/>
   <disabled>false</disabled>
-</flow-definition>
\ No newline at end of file
+</flow-definition>
diff --git a/pipelines/release/Jenkinsfile.public.tag b/pipelines/release/Jenkinsfile.public.tag
index 443bb0d3d92025140a2de37c9998d3c7be2fb961..5f5a7f4ec12aad954f4c43c3c530be3367e53a50 100644
--- a/pipelines/release/Jenkinsfile.public.tag
+++ b/pipelines/release/Jenkinsfile.public.tag
@@ -29,6 +29,8 @@ node {
             String ANSI_NORMAL = "\u001B[0m"
             String ANSI_BOLD = "\u001B[1m"
             String ANSI_RED = "\u001B[31m"
+            String ANSI_YELLOW = "\u001B[33m"
+
 
             if (params.size() == 0) {
                 repoList = "['" + repositories.join("','") + "']"
@@ -42,33 +44,85 @@ node {
                 error 'Error: Release branch name format error'
             }
 
-            if(params.repositories == '')
-            {
+            if (params.repositories == '') {
                 print(ANSI_BOLD + ANSI_RED + "Uh oh! No repositories are selected!" + ANSI_NORMAL)
                 error 'No repositories selected'
             }
 
             stage('Create tag') {
                 sh """
-                        mkdir -p ${JENKINS_HOME}/tags
-                        touch -a ${JENKINS_HOME}/tags/tags.txt
+                        mkdir -p ${JENKINS_HOME}/public_release_tags
+                        touch -a ${JENKINS_HOME}/public_release_tags/public_release_tags.txt
                     """
                 cleanWs()
+                releaseBranch = params.release_branch
+                releaseVar = releaseBranch.split('-')[0]
+                majorVar = releaseBranch.split('-')[1].split('\\.')[0]
+                minorVar = releaseBranch.split('-')[1].split('\\.')[1]
+                releaseBranch = releaseVar + "-" + majorVar + "." + minorVar
+
                 params.repositories.split(',').each { repo ->
                     dir("$WORKSPACE") {
                         repo_name = repo.split('/')[1]
                         sh "git clone --depth 1 --no-single-branch https://github.com/$repo $repo_name"
                         dir("$repo_name") {
+                            latestBranch = sh(returnStdout: true, script: "git ls-remote --exit-code --heads origin $releaseBranch* | awk -F \"/\" '{print \$3}' | sort -V -r | head -1").trim()
+                            println latestBranch
+
+                            if (latestBranch == '') {
+                                println(ANSI_BOLD + ANSI_RED + params.release_branch + " branch and its patterns do not exists" + ANSI_NORMAL)
+                                error 'Error: Release branch does not exists'
+                            }
+
+                            withCredentials([usernamePassword(credentialsId: env.githubPassword, passwordVariable: 'gitpass', usernameVariable: 'gituser')]) {
+                                origin = "https://${gituser}:${gitpass}@" + sh(script: 'git config --get remote.origin.url', returnStdout: true).trim().split('https://')[1]
+                                echo "Git Hash: ${origin}"
+                                latestTag = sh(script: "git ls-remote --tags origin \"$releaseBranch*\" | grep -v \"RC\" | awk -F \"/\" '{print \$3}' | sort -V -r | grep ^release.*[0-9]\$ | head -1", returnStdout: true).trim()
+                                println latestTag
+
+                                if (latestTag == '') {
+                                    branchLength = latestBranch.split('-')[1].split('\\.').length
+                                    if (branchLength == 2) {
+                                        println ANSI_BOLD + ANSI_YELLOW + "Branch is not in major.minor.patch format. Appending patch.." + ANSI_NORMAL
+                                        latestAppendBranch = latestBranch + ".0"
+                                        println latestAppendBranch
+                                    }
+                                    sh("git push ${origin} refs/remotes/origin/$latestBranch:refs/tags/$latestAppendBranch")
+                                }
+                                else {
+                                    println(ANSI_BOLD + ANSI_GREEN + "Remote has same tag name. Incrementing and creating tag!" + ANSI_NORMAL)
+
+                                    tagLength = latestTag.split('-')[1].split('\\.').length
+                                    if (tagLength == 2) {
+                                        println ANSI_BOLD + ANSI_YELLOW + "Tag is not in major.minor.patch format. Appending patch.." + ANSI_NORMAL
+                                        latestTag = latestTag + ".0"
+                                        println latestTag
+                                    }
 
+                                    releaseVar = latestTag.split('-')[0]
+                                    majorVar = latestTag.split('-')[1].split('\\.')[0]
+                                    minorVar = latestTag.split('-')[1].split('\\.')[1]
+                                    patchVar = latestTag.split('-')[1].split('\\.')[2]
+                                    patchVar = patchVar.toInteger() + 1
+                                    tagToPush = releaseVar + "-" + majorVar + "." + minorVar + "." + patchVar
+                                    println tagToPush
+                                    sh("git push ${origin} refs/remotes/origin/$latestBranch:refs/tags/$tagToPush")
+                                    latestTag = tagToPush
+                                }
                             }
+                            sh """
+                                      sed -i "s/${repo_name}.*//g" ${JENKINS_HOME}/public_release_tags/public_release_tags.txt
+                                      sed -i "/^\\\$/d" ${JENKINS_HOME}/public_release_tags/public_release_tags.txt
+                                      echo "$repo_name : $latestTag" >> ${JENKINS_HOME}/public_release_tags/public_release_tags.txt
+                                 """
                         }
                     }
                 }
             }
             stage('Archive artifacts') {
-                sh "cp ${JENKINS_HOME}/tags/tags.txt ."
-                sh "sort tags.txt -o tags.txt && cat tags.txt"
-                archiveArtifacts artifacts: 'tags.txt', fingerprint: true
+                sh "cp ${JENKINS_HOME}/public_release_tags/public_release_tags.txt ."
+                sh "sort public_release_tags.txt -o public_release_tags.txt && cat public_release_tags.txt"
+                archiveArtifacts artifacts: 'public_release_tags.txt', fingerprint: true
             }
         }
     }