2014-12-29 5 views
1

У меня есть работа в jenkins с конфигурацией, а затем, с jenkins API в /cli я могу get-job (метод API) с xml структуры моей работы, а затем я могу create-job (метод API) в jenkins с последующим xml.Создание работы динамически в Дженкинс

?xml version='1.0' encoding='UTF-8'?> 
<project> 
<actions/> 
    <description></description> 
    <keepDependencies>false</keepDependencies> 
    <properties/> 
<scm class="hudson.plugins.git.GitSCM" plugin="[email protected]"> 
<configVersion>2</configVersion> 
<userRemoteConfigs> 
    <hudson.plugins.git.UserRemoteConfig> 
    <url>https://username:[email protected]/repoowner/project.git</url> 
    <credentialsId>550e8400-e29b-41d4-a716-446655440000</credentialsId> 
    </hudson.plugins.git.UserRemoteConfig> 
</userRemoteConfigs> 
.... 

Даже если я даю этот url тег «https://username:[email protected]/repoowner/project.git» Jenkins требует аутентификации для работы, так и в credentialsId теги Дженкинс дают UUID.

Я хочу, чтобы динамическое создание задания внешним приложением с заданным URL в этом формате «https://username:[email protected]/repoowner/project.git».

Как это сделать?

Спасибо.

ответ

0

На самом деле я решить эту проблему просто создание общего пользователя в bitbucket, то UUID его всегда то же самое, и я просто не могу скопировать и вставить этот UUID в других project.xml файлов.

2

Вы можете получить учетные данные с помощью API и плагина учетных данных.

например. учетных данных в глобальной области

$ {ваш-Дженкинса-домена}/учетных данных магазина/домен/_/API/XML

<domainWrapper> 
<credentials> 
    <_XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/> 
</credentials> 
<description></description> 
<displayName></displayName> 
<fullDisplayName></fullDisplayName> 
<fullName>credential-store/_</fullName> 
<global>true</global> 
<urlName>_</urlName> 
</domainWrapper> 

Но на какой-то момент это немного сложнее:
при доступе к xml api для глобального домена идентификатор уже имеет префикс '_'. При использовании других доменов префикс отсутствует (но в задании добавлен префикс ... не удалось определить, где можно найти префикс)

например. Я хранятся данные для доступа GitHub в отделенной области является credentialsId тег был:

<XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/> 

но используется в идентификатор задания был:

0XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX 
+0

@Seemann: Вы имеете в виду полномочия плагин? Я не могу найти учетную запись - хранить плагин. – user2434741

+0

Получить список можно на странице http://stackoverflow.com/questions/43318727/how-to-get-the-list-of-credentialsid-of-jenkins-by-by-api/43319933#43319933 – user2434741

Смежные вопросы