gitlab-плагин: openConnection между Jenkins Pipeline и Gitlab - PullRequest
0 голосов
/ 14 февраля 2019

Я хочу разработать конвейер Дженкинса в Groovy, у меня есть роль Stage для обновления статуса коммитов в Gitlab: .updateGitlabCommitStatus(name: 'someName', state: 'someState').Мой код передан на аутсорсинг в классе Groovy:

package ...

import com.dabsquared.gitlabjenkins.*

class GitlabSender {
    def steps
    openConnection() {

        steps.properties([steps.gitLabConnection("application_name"])

    }
    updateGitlabCommitStatus(String name, String state) {

        steps.updateGitlabCommitStatus(name: name, state: state)

    }
}

Я хочу проверить, открыто ли мое соединение, добавив условие if-else или блок catch catch, прежде чем вызывать updateGitlabCommitStatus как

if (gitLabConnection(" ") {
   steps.properties([connectionObject])
   call updateGitlabCommitStatus
} else {
   do nothin
}

1 Ответ

0 голосов
/ 20 февраля 2019

Этот статус фиксации, скорее всего, является статусом сборки коммита.

Это должно быть сделано с помощью функции API Gitlab Опубликовать статус сборки в коммите .

curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/17/statuses/18f3e63d05582537db6d183d9d557be09e1f90c8?state=success"

Пример ответа:

{
   "author" : {
      "web_url" : "https://gitlab.example.com/thedude",
      "name" : "Jeff Lebowski",
      "avatar_url" : "https://gitlab.example.com/uploads/user/avatar/28/The-Big-Lebowski-400-400.png",
      "username" : "thedude",
      "state" : "active",
      "id" : 28
   },
   "name" : "default",
   "sha" : "18f3e63d05582537db6d183d9d557be09e1f90c8",
   "status" : "success",
   "coverage": 100.0,
   "description" : null,
   "id" : 93,
   "target_url" : null,
   "ref" : null,
   "started_at" : null,
   "created_at" : "2016-01-19T09:05:50.355Z",
   "allow_failure" : false,
   "finished_at" : "2016-01-19T09:05:50.365Z"
}

Это решение требует, чтобы вы получили ключ gitlab api, а затем использовали его.

...