This is an automated email from the ASF dual-hosted git repository.

rantunes pushed a commit to branch main
in repository 
https://gitbox.apache.org/repos/asf/incubator-kie-kogito-pipelines.git


The following commit(s) were added to refs/heads/main by this push:
     new 1ece2d5a kie-issues#768 - Use Github CLI instead of hub CLI in jenkins 
shared libraries (#1158)
1ece2d5a is described below

commit 1ece2d5a508f89779ce756869e6d5dc6ec2fe462
Author: Rodrigo Antunes <[email protected]>
AuthorDate: Tue Jan 23 09:06:14 2024 -0300

    kie-issues#768 - Use Github CLI instead of hub CLI in jenkins shared 
libraries (#1158)
    
    * Replace hub cli with Github CLI
    
    * Fix log messages
    
    * Update tests
    
    * Update Jenkins Jira plugin version
    
    * Fix tests
    
    * Fix tests
---
 jenkins-pipeline-shared-libraries/pom.xml          |  2 +-
 .../test/vars/GithubScmSpec.groovy                 | 87 ++++++++++++----------
 .../vars/githubscm.groovy                          | 36 +++++----
 3 files changed, 67 insertions(+), 58 deletions(-)

diff --git a/jenkins-pipeline-shared-libraries/pom.xml 
b/jenkins-pipeline-shared-libraries/pom.xml
index 55d6b413..e5e0ef31 100644
--- a/jenkins-pipeline-shared-libraries/pom.xml
+++ b/jenkins-pipeline-shared-libraries/pom.xml
@@ -624,7 +624,7 @@
         <dependency>
             <groupId>org.jenkins-ci.plugins</groupId>
             <artifactId>jira</artifactId>
-            <version>3.0.8</version>
+            <version>3.12</version>
             <scope>test</scope>
         </dependency>
         <dependency>
diff --git a/jenkins-pipeline-shared-libraries/test/vars/GithubScmSpec.groovy 
b/jenkins-pipeline-shared-libraries/test/vars/GithubScmSpec.groovy
index c42207ba..96163d6f 100644
--- a/jenkins-pipeline-shared-libraries/test/vars/GithubScmSpec.groovy
+++ b/jenkins-pipeline-shared-libraries/test/vars/GithubScmSpec.groovy
@@ -364,14 +364,12 @@ class GithubScmSpec extends JenkinsPipelineSpecification {
         when:
         groovyScript.forkRepo()
         then:
-        1 * getPipelineMock("sh")("rm -rf ~/.config/hub")
         1 * getPipelineMock('usernamePassword.call')([credentialsId: 'kie-ci', 
usernameVariable: 'GITHUB_USER', passwordVariable: 'GITHUB_TOKEN']) >> 
'userNamePassword'
         1 * getPipelineMock("withCredentials")(['userNamePassword'], _ as 
Closure)
 
         1 * getPipelineMock("sh")('git config user.email 
[email protected]')
         1 * getPipelineMock("sh")('git config user.name user')
-        1 * getPipelineMock("sh")('git config hub.protocol https')
-        1 * getPipelineMock("sh")('hub fork --remote-name=origin')
+        1 * getPipelineMock("sh")('gh repo fork --remote-name=origin')
         1 * getPipelineMock("sh")('git remote -v')
     }
 
@@ -382,14 +380,12 @@ class GithubScmSpec extends JenkinsPipelineSpecification {
         when:
         groovyScript.forkRepo('credentialsId')
         then:
-        1 * getPipelineMock("sh")("rm -rf ~/.config/hub")
         1 * getPipelineMock('usernamePassword.call')([credentialsId: 
'credentialsId', usernameVariable: 'GITHUB_USER', passwordVariable: 
'GITHUB_TOKEN']) >> 'userNamePassword'
         1 * getPipelineMock("withCredentials")(['userNamePassword'], _ as 
Closure)
 
         1 * getPipelineMock("sh")('git config user.email 
[email protected]')
         1 * getPipelineMock("sh")('git config user.name user')
-        1 * getPipelineMock("sh")('git config hub.protocol https')
-        1 * getPipelineMock("sh")('hub fork --remote-name=origin')
+        1 * getPipelineMock("sh")('gh repo fork --remote-name=origin')
         1 * getPipelineMock("sh")('git remote -v')
     }
 
@@ -400,12 +396,11 @@ class GithubScmSpec extends JenkinsPipelineSpecification {
         when:
         def result = groovyScript.createPR('PR Title')
         then:
-        1 * getPipelineMock("sh")("rm -rf ~/.config/hub")
         1 * getPipelineMock('usernamePassword.call')([credentialsId: 'kie-ci', 
usernameVariable: 'GITHUB_USER', passwordVariable: 'GITHUB_TOKEN']) >> 
'userNamePassword'
         1 * getPipelineMock("withCredentials")(['userNamePassword'], _ as 
Closure)
         1 * getPipelineMock("sh")('git config user.email 
[email protected]')
         1 * getPipelineMock("sh")('git config user.name user')
-        1 * getPipelineMock("sh")(['returnStdout': true, 'script': "hub 
pull-request -m 'PR Title' -m '' -b 'main'"]) >> 'shResult'
+        1 * getPipelineMock("sh")(['returnStdout': true, 'script': "gh pr 
create -t 'PR Title' -b '' -B 'main'"]) >> 'shResult'
     }
 
     def "[githubscm.groovy] createPR without Credentials and target branch"() {
@@ -415,12 +410,11 @@ class GithubScmSpec extends JenkinsPipelineSpecification {
         when:
         def result = groovyScript.createPR('PR Title', 'PR body.')
         then:
-        1 * getPipelineMock("sh")("rm -rf ~/.config/hub")
         1 * getPipelineMock('usernamePassword.call')([credentialsId: 'kie-ci', 
usernameVariable: 'GITHUB_USER', passwordVariable: 'GITHUB_TOKEN']) >> 
'userNamePassword'
         1 * getPipelineMock("withCredentials")(['userNamePassword'], _ as 
Closure)
         1 * getPipelineMock("sh")('git config user.email 
[email protected]')
         1 * getPipelineMock("sh")('git config user.name user')
-        1 * getPipelineMock("sh")(['returnStdout': true, 'script': "hub 
pull-request -m 'PR Title' -m 'PR body.' -b 'main'"]) >> 'shResult'
+        1 * getPipelineMock("sh")(['returnStdout': true, 'script': "gh pr 
create -t 'PR Title' -b 'PR body.' -B 'main'"]) >> 'shResult'
     }
 
     def "[githubscm.groovy] createPR without Credentials and target branch 
throwing exception"() {
@@ -430,12 +424,11 @@ class GithubScmSpec extends JenkinsPipelineSpecification {
         when:
         def result = groovyScript.createPR('PR Title')
         then:
-        1 * getPipelineMock("sh")("rm -rf ~/.config/hub")
         1 * getPipelineMock('usernamePassword.call')([credentialsId: 'kie-ci', 
usernameVariable: 'GITHUB_USER', passwordVariable: 'GITHUB_TOKEN']) >> 
'userNamePassword'
         1 * getPipelineMock("withCredentials")(['userNamePassword'], _ as 
Closure)
         1 * getPipelineMock("sh")('git config user.email 
[email protected]')
         1 * getPipelineMock("sh")('git config user.name user')
-        1 * getPipelineMock("sh")(['returnStdout': true, 'script': "hub 
pull-request -m 'PR Title' -m '' -b 'main'"]) >> { throw new Exception('error') 
}
+        1 * getPipelineMock("sh")(['returnStdout': true, 'script': "gh pr 
create -t 'PR Title' -b '' -B 'main'"]) >> { throw new Exception('error') }
         thrown(Exception)
     }
 
@@ -446,12 +439,11 @@ class GithubScmSpec extends JenkinsPipelineSpecification {
         when:
         def result = groovyScript.createPR('PR Title', 'PR body.', 
'targetBranch', 'credentialsId')
         then:
-        1 * getPipelineMock("sh")("rm -rf ~/.config/hub")
         1 * getPipelineMock('usernamePassword.call')([credentialsId: 
'credentialsId', usernameVariable: 'GITHUB_USER', passwordVariable: 
'GITHUB_TOKEN']) >> 'userNamePassword'
         1 * getPipelineMock("withCredentials")(['userNamePassword'], _ as 
Closure)
         1 * getPipelineMock("sh")('git config user.email 
[email protected]')
         1 * getPipelineMock("sh")('git config user.name user')
-        1 * getPipelineMock("sh")(['returnStdout': true, 'script': "hub 
pull-request -m 'PR Title' -m 'PR body.' -b 'targetBranch'"]) >> 'shResult'
+        1 * getPipelineMock("sh")(['returnStdout': true, 'script': "gh pr 
create -t 'PR Title' -b 'PR body.' -B 'targetBranch'"]) >> 'shResult'
     }
 
     def "[githubscm.groovy] createPrAsDraft without body, Credentials and 
target branch"() {
@@ -461,12 +453,11 @@ class GithubScmSpec extends JenkinsPipelineSpecification {
         when:
         def result = groovyScript.createPrAsDraft('PR Title')
         then:
-        1 * getPipelineMock("sh")("rm -rf ~/.config/hub")
         1 * getPipelineMock('usernamePassword.call')([credentialsId: 'kie-ci', 
usernameVariable: 'GITHUB_USER', passwordVariable: 'GITHUB_TOKEN']) >> 
'userNamePassword'
         1 * getPipelineMock("withCredentials")(['userNamePassword'], _ as 
Closure)
         1 * getPipelineMock("sh")('git config user.email 
[email protected]')
         1 * getPipelineMock("sh")('git config user.name user')
-        1 * getPipelineMock("sh")(['returnStdout': true, 'script': "hub 
pull-request -d -m 'PR Title' -m '' -b 'main'"]) >> 'shResult'
+        1 * getPipelineMock("sh")(['returnStdout': true, 'script': "gh pr 
create -d -t 'PR Title' -b '' -B 'main'"]) >> 'shResult'
     }
 
     def "[githubscm.groovy] createPrAsDraft without Credentials and target 
branch"() {
@@ -476,12 +467,11 @@ class GithubScmSpec extends JenkinsPipelineSpecification {
         when:
         def result = groovyScript.createPrAsDraft('PR Title', 'PR body.')
         then:
-        1 * getPipelineMock("sh")("rm -rf ~/.config/hub")
         1 * getPipelineMock('usernamePassword.call')([credentialsId: 'kie-ci', 
usernameVariable: 'GITHUB_USER', passwordVariable: 'GITHUB_TOKEN']) >> 
'userNamePassword'
         1 * getPipelineMock("withCredentials")(['userNamePassword'], _ as 
Closure)
         1 * getPipelineMock("sh")('git config user.email 
[email protected]')
         1 * getPipelineMock("sh")('git config user.name user')
-        1 * getPipelineMock("sh")(['returnStdout': true, 'script': "hub 
pull-request -d -m 'PR Title' -m 'PR body.' -b 'main'"]) >> 'shResult'
+        1 * getPipelineMock("sh")(['returnStdout': true, 'script': "gh pr 
create -d -t 'PR Title' -b 'PR body.' -B 'main'"]) >> 'shResult'
     }
 
     def "[githubscm.groovy] createPrAsDraft without Credentials and target 
branch throwing exception"() {
@@ -491,12 +481,11 @@ class GithubScmSpec extends JenkinsPipelineSpecification {
         when:
         def result = groovyScript.createPrAsDraft('PR Title')
         then:
-        1 * getPipelineMock("sh")("rm -rf ~/.config/hub")
         1 * getPipelineMock('usernamePassword.call')([credentialsId: 'kie-ci', 
usernameVariable: 'GITHUB_USER', passwordVariable: 'GITHUB_TOKEN']) >> 
'userNamePassword'
         1 * getPipelineMock("withCredentials")(['userNamePassword'], _ as 
Closure)
         1 * getPipelineMock("sh")('git config user.email 
[email protected]')
         1 * getPipelineMock("sh")('git config user.name user')
-        1 * getPipelineMock("sh")(['returnStdout': true, 'script': "hub 
pull-request -d -m 'PR Title' -m '' -b 'main'"]) >> { throw new 
Exception('draft error') }
+        1 * getPipelineMock("sh")(['returnStdout': true, 'script': "gh pr 
create -d -t 'PR Title' -b '' -B 'main'"]) >> { throw new Exception('draft 
error') }
         thrown(Exception)
     }
 
@@ -507,12 +496,11 @@ class GithubScmSpec extends JenkinsPipelineSpecification {
         when:
         def result = groovyScript.createPrAsDraft('PR Title', 'PR body.', 
'targetBranch', 'credentialsId')
         then:
-        1 * getPipelineMock("sh")("rm -rf ~/.config/hub")
         1 * getPipelineMock('usernamePassword.call')([credentialsId: 
'credentialsId', usernameVariable: 'GITHUB_USER', passwordVariable: 
'GITHUB_TOKEN']) >> 'userNamePassword'
         1 * getPipelineMock("withCredentials")(['userNamePassword'], _ as 
Closure)
         1 * getPipelineMock("sh")('git config user.email 
[email protected]')
         1 * getPipelineMock("sh")('git config user.name user')
-        1 * getPipelineMock("sh")(['returnStdout': true, 'script': "hub 
pull-request -d -m 'PR Title' -m 'PR body.' -b 'targetBranch'"]) >> 'shResult'
+        1 * getPipelineMock("sh")(['returnStdout': true, 'script': "gh pr 
create -d -t 'PR Title' -b 'PR body.' -B 'targetBranch'"]) >> 'shResult'
     }
 
     def "[githubscm.groovy] createPRWithLabels with body, Credentials and 
target branch"() {
@@ -522,27 +510,25 @@ class GithubScmSpec extends JenkinsPipelineSpecification {
         when:
         def result = groovyScript.createPRWithLabels('PR Title', 'PR body.', 
'targetBranch', ['label1', 'label2'] as String[], 'credentialsId')
         then:
-        1 * getPipelineMock("sh")("rm -rf ~/.config/hub")
         1 * getPipelineMock('usernamePassword.call')([credentialsId: 
'credentialsId', usernameVariable: 'GITHUB_USER', passwordVariable: 
'GITHUB_TOKEN']) >> 'userNamePassword'
         1 * getPipelineMock("withCredentials")(['userNamePassword'], _ as 
Closure)
         1 * getPipelineMock("sh")('git config user.email 
[email protected]')
         1 * getPipelineMock("sh")('git config user.name user')
-        1 * getPipelineMock("sh")(['returnStdout': true, 'script': "hub 
pull-request -m 'PR Title' -m 'PR body.' -b 'targetBranch' -l 
'label1','label2'"]) >> 'shResult'
+        1 * getPipelineMock("sh")(['returnStdout': true, 'script': "gh pr 
create -t 'PR Title' -b 'PR body.' -B 'targetBranch' -l 'label1','label2'"]) >> 
'shResult'
     }
 
-    def "[githubscm.groovy] executeHub with credentials"() {
+    def "[githubscm.groovy] executeGHCli with credentials"() {
         setup:
         groovyScript.getBinding().setVariable("GITHUB_USER", 'user')
         groovyScript.getBinding().setVariable("GITHUB_TOKEN", 'password')
         when:
-        def result = groovyScript.executeHub('hubCommand', 'credentialsId')
+        def result = groovyScript.executeGHCli('command', 'credentialsId')
         then:
-        1 * getPipelineMock("sh")("rm -rf ~/.config/hub")
         1 * getPipelineMock('usernamePassword.call')([credentialsId: 
'credentialsId', usernameVariable: 'GITHUB_USER', passwordVariable: 
'GITHUB_TOKEN']) >> 'userNamePassword'
         1 * getPipelineMock("withCredentials")(['userNamePassword'], _ as 
Closure)
         1 * getPipelineMock("sh")('git config user.email 
[email protected]')
         1 * getPipelineMock("sh")('git config user.name user')
-        1 * getPipelineMock("sh")(['returnStdout': true, 'script': 
"hubCommand"]) >> 'shResult'
+        1 * getPipelineMock("sh")(['returnStdout': true, 'script': "command"]) 
>> 'shResult'
     }
 
     def "[githubscm.groovy] mergePR without Credentials"() {
@@ -552,12 +538,11 @@ class GithubScmSpec extends JenkinsPipelineSpecification {
         when:
         groovyScript.mergePR('pullRequestLink')
         then:
-        1 * getPipelineMock("sh")("rm -rf ~/.config/hub")
         1 * getPipelineMock('usernamePassword.call')([credentialsId: 'kie-ci', 
usernameVariable: 'GITHUB_USER', passwordVariable: 'GITHUB_TOKEN']) >> 
'userNamePassword'
         1 * getPipelineMock("withCredentials")(['userNamePassword'], _ as 
Closure)
         1 * getPipelineMock("sh")('git config user.email 
[email protected]')
         1 * getPipelineMock("sh")('git config user.name user')
-        1 * getPipelineMock("sh")('hub merge pullRequestLink')
+        1 * getPipelineMock("sh")('gh pr merge --admin --rebase 
--delete-branch pullRequestLink')
     }
 
     def "[githubscm.groovy] mergePR without Credentials throwing exception"() {
@@ -567,12 +552,11 @@ class GithubScmSpec extends JenkinsPipelineSpecification {
         when:
         groovyScript.mergePR('pullRequestLink')
         then:
-        1 * getPipelineMock("sh")("rm -rf ~/.config/hub")
         1 * getPipelineMock('usernamePassword.call')([credentialsId: 'kie-ci', 
usernameVariable: 'GITHUB_USER', passwordVariable: 'GITHUB_TOKEN']) >> 
'userNamePassword'
         1 * getPipelineMock("withCredentials")(['userNamePassword'], _ as 
Closure)
         1 * getPipelineMock("sh")('git config user.email 
[email protected]')
         1 * getPipelineMock("sh")('git config user.name user')
-        1 * getPipelineMock("sh")('hub merge pullRequestLink') >> { throw new 
Exception('hub error') }
+        1 * getPipelineMock("sh")('gh pr merge --admin --rebase 
--delete-branch pullRequestLink') >> { throw new Exception('merge error') }
         thrown(Exception)
     }
 
@@ -583,12 +567,40 @@ class GithubScmSpec extends JenkinsPipelineSpecification {
         when:
         groovyScript.mergePR('pullRequestLink', 'credentialsId')
         then:
-        1 * getPipelineMock("sh")("rm -rf ~/.config/hub")
         1 * getPipelineMock('usernamePassword.call')([credentialsId: 
'credentialsId', usernameVariable: 'GITHUB_USER', passwordVariable: 
'GITHUB_TOKEN']) >> 'userNamePassword'
         1 * getPipelineMock("withCredentials")(['userNamePassword'], _ as 
Closure)
         1 * getPipelineMock("sh")('git config user.email 
[email protected]')
         1 * getPipelineMock("sh")('git config user.name user')
-        1 * getPipelineMock("sh")('hub merge pullRequestLink')
+        1 * getPipelineMock("sh")('gh pr merge --admin --rebase 
--delete-branch pullRequestLink')
+    }
+
+    def "[githubscm.groovy] approvePR without Credentials throwing 
exception"() {
+        setup:
+        groovyScript.getBinding().setVariable("GITHUB_USER", 'user')
+        groovyScript.getBinding().setVariable("GITHUB_TOKEN", 'password')
+        when:
+        groovyScript.approvePR('pullRequestLink')
+        then:
+        1 * getPipelineMock('usernamePassword.call')([credentialsId: 'kie-ci', 
usernameVariable: 'GITHUB_USER', passwordVariable: 'GITHUB_TOKEN']) >> 
'userNamePassword'
+        1 * getPipelineMock("withCredentials")(['userNamePassword'], _ as 
Closure)
+        1 * getPipelineMock("sh")('git config user.email 
[email protected]')
+        1 * getPipelineMock("sh")('git config user.name user')
+        1 * getPipelineMock("sh")('gh pr review pullRequestLink --approve') >> 
{ throw new Exception('approve error') }
+        thrown(Exception)
+    }
+
+    def "[githubscm.groovy] approvePR with Credentials"() {
+        setup:
+        groovyScript.getBinding().setVariable("GITHUB_USER", 'user')
+        groovyScript.getBinding().setVariable("GITHUB_TOKEN", 'password')
+        when:
+        groovyScript.approvePR('pullRequestLink', 'credentialsId')
+        then:
+        1 * getPipelineMock('usernamePassword.call')([credentialsId: 
'credentialsId', usernameVariable: 'GITHUB_USER', passwordVariable: 
'GITHUB_TOKEN']) >> 'userNamePassword'
+        1 * getPipelineMock("withCredentials")(['userNamePassword'], _ as 
Closure)
+        1 * getPipelineMock("sh")('git config user.email 
[email protected]')
+        1 * getPipelineMock("sh")('git config user.name user')
+        1 * getPipelineMock("sh")('gh pr review pullRequestLink --approve')
     }
 
     def "[githubscm.groovy] tagRepository with buildTag"() {
@@ -1023,13 +1035,6 @@ class GithubScmSpec extends JenkinsPipelineSpecification 
{
         result == '* BXMSPROD-819'
     }
 
-    def "[githubscm.groovy] cleanHubAuth"() {
-        when:
-        groovyScript.cleanHubAuth()
-        then:
-        1 * getPipelineMock("sh")("rm -rf ~/.config/hub")
-    }
-
     def "[githubscm.groovy] cleanWorkingTree"() {
         when:
         groovyScript.cleanWorkingTree()
diff --git a/jenkins-pipeline-shared-libraries/vars/githubscm.groovy 
b/jenkins-pipeline-shared-libraries/vars/githubscm.groovy
index e2874a78..de67480b 100644
--- a/jenkins-pipeline-shared-libraries/vars/githubscm.groovy
+++ b/jenkins-pipeline-shared-libraries/vars/githubscm.groovy
@@ -142,11 +142,9 @@ def squashCommits(String baseBranch, String newCommitMsg) {
 }
 
 def forkRepo(String credentialID = 'kie-ci') {
-    cleanHubAuth()
     withCredentials([usernamePassword(credentialsId: credentialID, 
usernameVariable: 'GITHUB_USER', passwordVariable: 'GITHUB_TOKEN')]) {
         setUserConfig("${GITHUB_USER}")
-        sh 'git config hub.protocol https'
-        sh 'hub fork --remote-name=origin'
+        sh 'gh repo fork --remote-name=origin'
         sh 'git remote -v'
     }
 }
@@ -154,7 +152,7 @@ def forkRepo(String credentialID = 'kie-ci') {
 def createPR(String pullRequestTitle, String pullRequestBody = '', String 
targetBranch = 'main', String credentialID = 'kie-ci') {
     def pullRequestLink
     try {
-        pullRequestLink = executeHub("hub pull-request -m 
'${pullRequestTitle}' -m '${pullRequestBody}' -b '${targetBranch}'", 
credentialID)
+        pullRequestLink = executeGHCli("gh pr create -t '${pullRequestTitle}' 
-b '${pullRequestBody}' -B '${targetBranch}'", credentialID)
     } catch (Exception e) {
         println "[ERROR] Unable to create PR. Please make sure the 
targetBranch ${targetBranch} is correct."
         throw e
@@ -166,7 +164,7 @@ def createPR(String pullRequestTitle, String 
pullRequestBody = '', String target
 def createPrAsDraft(String pullRequestTitle, String pullRequestBody = '', 
String targetBranch = 'main', String credentialID = 'kie-ci') {
     def pullRequestLink
     try {
-        pullRequestLink = executeHub("hub pull-request -d -m 
'${pullRequestTitle}' -m '${pullRequestBody}' -b '${targetBranch}'", 
credentialID)
+        pullRequestLink = executeGHCli("gh pr create -d -t 
'${pullRequestTitle}' -b '${pullRequestBody}' -B '${targetBranch}'", 
credentialID)
     } catch (Exception e) {
         println "[ERROR] Unable to create Draft PR. Please make sure the 
targetBranch ${targetBranch} is correct."
         throw e
@@ -178,7 +176,7 @@ def createPrAsDraft(String pullRequestTitle, String 
pullRequestBody = '', String
 def createPRWithLabels(String pullRequestTitle, String pullRequestBody = '', 
String targetBranch = 'main', String[] labels, String credentialID = 'kie-ci') {
     def pullRequestLink
     try {
-        pullRequestLink = executeHub("hub pull-request -m '${pullRequestTitle 
}' -m '${pullRequestBody }' -b '${targetBranch }' -l ${labels.collect { it -> 
"'${it }'" }.join(',')}", credentialID)
+        pullRequestLink = executeGHCli("gh pr create -t '${pullRequestTitle }' 
-b '${pullRequestBody }' -B '${targetBranch }' -l ${labels.collect { it -> 
"'${it }'" }.join(',')}", credentialID)
     } catch (Exception e) {
         println "[ERROR] Unable to create PR. Please make sure the 
targetBranch ${targetBranch} is correct."
         throw e
@@ -187,20 +185,31 @@ def createPRWithLabels(String pullRequestTitle, String 
pullRequestBody = '', Str
     return pullRequestLink
 }
 
-def executeHub(String hubCommand, String credentialID = 'kie-ci') {
-    cleanHubAuth()
+def executeGHCli(String command, String credentialID = 'kie-ci') {
     withCredentials([usernamePassword(credentialsId: credentialID, 
usernameVariable: 'GITHUB_USER', passwordVariable: 'GITHUB_TOKEN')]) {
         setUserConfig("${GITHUB_USER}")
-        return sh(returnStdout: true, script: hubCommand).trim()
+        return sh(returnStdout: true, script: command).trim()
+    }
+}
+
+def approvePR(String pullRequestLink, String credentialID = 'kie-ci') {
+    withCredentials([usernamePassword(credentialsId: credentialID, 
usernameVariable: 'GITHUB_USER', passwordVariable: 'GITHUB_TOKEN')]) {
+        try {
+            setUserConfig("${GITHUB_USER}")
+            sh "gh pr review ${pullRequestLink} --approve"
+        } catch (Exception e) {
+            println "[ERROR] Can't approve PR ${pullRequestLink} on repo."
+            throw e
+        }
+        println "[INFO] Approved PR '${pullRequestLink}' on repo."
     }
 }
 
 def mergePR(String pullRequestLink, String credentialID = 'kie-ci') {
-    cleanHubAuth()
     withCredentials([usernamePassword(credentialsId: credentialID, 
usernameVariable: 'GITHUB_USER', passwordVariable: 'GITHUB_TOKEN')]) {
         try {
             setUserConfig("${GITHUB_USER}")
-            sh "hub merge ${pullRequestLink}"
+            sh "gh pr merge --admin --rebase --delete-branch 
${pullRequestLink}"
         } catch (Exception e) {
             println "[ERROR] Can't merge PR ${pullRequestLink} on repo."
             throw e
@@ -445,10 +454,6 @@ def getForkedProjectName(String group, String repository, 
String owner, String c
     return result
 }
 
-def cleanHubAuth() {
-    sh 'rm -rf ~/.config/hub'
-}
-
 def cleanWorkingTree() {
     sh 'git clean -xdf'
 }
@@ -497,7 +502,6 @@ def updateReleaseBody(String tagName, String credsId = 
'kie-ci') {
 *
 * Should use `getLatestTag` method instead which is more flexible
 */
-@Deprecated
 def getPreviousTag(String ignoreTag) {
     String latestTag = sh(returnStdout: true, script: 'git tag 
--sort=-taggerdate | head -n 1').trim()
     if (latestTag == ignoreTag) {


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to