def commentPullRequest(String repo, String issueId, String comment, Integer commentIndex = 0) { comment = comment.replaceAll('"', '\\"') withCredentials([ string(credentialsId: 'GITEA_JENKINS_PERSONAL_TOKEN', variable: 'GITEA_TOKEN'), ]) { writeFile(file: ".prComment", text: comment) sh """#!/bin/bash set -xeo pipefail # Récupération si il existe du commentaire existant previous_comment_id=\$(curl -v --fail \ -H "Authorization: token ${GITEA_TOKEN}" \ -H "Content-Type: application/json" \ https://forge.cadoles.com/api/v1/repos/${repo}/issues/${issueId}/comments \ | jq -c '[ .[] | select(.user.login=="jenkins") ] | .[${commentIndex}] | .id' \ ) # Génération du payload pour l'API Gitea echo '{}' | jq -c --rawfile body .prComment '.body = \$body' > payload.json if [[ "\$previous_comment_id" == "null" ]]; then # Création du commentaire via l'API Gitea curl -v --fail \ -XPOST \ -H "Authorization: token ${GITEA_TOKEN}" \ -H "Content-Type: application/json" \ -d @payload.json \ https://forge.cadoles.com/api/v1/repos/${repo}/issues/${issueId}/comments else # Modification du commentaire existant curl -v --fail \ -XPATCH \ -H "Authorization: token ${GITEA_TOKEN}" \ -H "Content-Type: application/json" \ -d @payload.json \ https://forge.cadoles.com/api/v1/repos/${repo}/issues/comments/\$previous_comment_id fi """ } }