有没有办法自动创建 TeamCity 项目?
Is there a way to automate TeamCity project creation?
我正在使用 TeamCity 9.x。
我要在一个主项目下创建400个子项目。
有没有办法自动创建这些项目?
注意:每个子项目都有一个唯一的 VCS URL。
TeamCity REST API 非常适合做这样的事情。
要创建新项目,您可以使用 curl
:
发送包含 XML 新项目描述的 POST 请求
curl -v -u USER:PASSWORD http://teamcity:8111/app/rest/projects --header "Content-Type: application/xml" --data-binary
"<newProjectDescription name='New Project Name' id='newProjectId'><parentProject locator='id:project1'/></newProjectDescription>"
其中 USER
和 PASSWORD
是有效 TeamCity 用户的凭据,
teamcity:8111
是 TeamCity 服务器 URL。
或者,可以使用 JSON。应该提供 "Content-Type: application/json" header 并且请求 body 可能类似于
{
"name":"New Project Name",
"id":"newProjectId0000",
"parentProject": {
"locator":"id:FooProject"
}
}
要创建一个新的 VCS root,您应该 POST VCS root XML 或 JSON(为 VCS root 详细信息的 GET 请求检索的那个)到 http://teamcity:8111/httpAuth/app/rest/vcs-roots
.一个例子 XML:
<vcs-root id="vcsRoot_id_whatever" name="auto-generated-1" vcsName="jetbrains.git">
<project id="FooProject"/>
<properties count="10">
<property name="agentCleanFilesPolicy" value="ALL_UNTRACKED"/>
<property name="agentCleanPolicy" value="ON_BRANCH_CHANGE"/>
<property name="branch" value="refs/heads/master"/>
<property name="teamcity:branchSpec" value="+:*"/>
<property name="url" value="https://github.com/JetBrains/teamcity-docker-agent.git"/>
<property name="usernameStyle" value="USERID"/>
</properties>
</vcs-root>
旧版本是使用 TeamCity REST Api。但是现在 jetbrains 引入了新的 Kotlin DSL。
您将项目设置设置为使用 Kotlin 类型的 Vcs 设置。
然后您只需使用您的编程技能创建一个代码,从 Kotlin dsl 创建您的所有项目。
文档中的更多信息:https://confluence.jetbrains.com/display/TCD10/Kotlin+DSL
我正在使用 TeamCity 9.x。
我要在一个主项目下创建400个子项目。 有没有办法自动创建这些项目?
注意:每个子项目都有一个唯一的 VCS URL。
TeamCity REST API 非常适合做这样的事情。
要创建新项目,您可以使用 curl
:
curl -v -u USER:PASSWORD http://teamcity:8111/app/rest/projects --header "Content-Type: application/xml" --data-binary
"<newProjectDescription name='New Project Name' id='newProjectId'><parentProject locator='id:project1'/></newProjectDescription>"
其中 USER
和 PASSWORD
是有效 TeamCity 用户的凭据,
teamcity:8111
是 TeamCity 服务器 URL。
或者,可以使用 JSON。应该提供 "Content-Type: application/json" header 并且请求 body 可能类似于
{
"name":"New Project Name",
"id":"newProjectId0000",
"parentProject": {
"locator":"id:FooProject"
}
}
要创建一个新的 VCS root,您应该 POST VCS root XML 或 JSON(为 VCS root 详细信息的 GET 请求检索的那个)到 http://teamcity:8111/httpAuth/app/rest/vcs-roots
.一个例子 XML:
<vcs-root id="vcsRoot_id_whatever" name="auto-generated-1" vcsName="jetbrains.git">
<project id="FooProject"/>
<properties count="10">
<property name="agentCleanFilesPolicy" value="ALL_UNTRACKED"/>
<property name="agentCleanPolicy" value="ON_BRANCH_CHANGE"/>
<property name="branch" value="refs/heads/master"/>
<property name="teamcity:branchSpec" value="+:*"/>
<property name="url" value="https://github.com/JetBrains/teamcity-docker-agent.git"/>
<property name="usernameStyle" value="USERID"/>
</properties>
</vcs-root>
旧版本是使用 TeamCity REST Api。但是现在 jetbrains 引入了新的 Kotlin DSL。
您将项目设置设置为使用 Kotlin 类型的 Vcs 设置。
然后您只需使用您的编程技能创建一个代码,从 Kotlin dsl 创建您的所有项目。
文档中的更多信息:https://confluence.jetbrains.com/display/TCD10/Kotlin+DSL