我正在使用TeamCity 9.x.
我必须在一个主项目下创建400个子项目。 有没有办法自动化这些项目创作?
注意:每个子项目都有一个唯一的VCS URL。
答案 0 :(得分:1)
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服务器网址。
或者,可以使用JSON。应提供“Content-Type:application / json”标题,请求正文可能类似于
{
"name":"New Project Name",
"id":"newProjectId0000",
"parentProject": {
"locator":"id:FooProject"
}
}
要创建新的VCS根目录,您应该将VCS根XML或JSON(如针对VCS根详细信息的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>
答案 1 :(得分:0)
旧版本是使用TeamCity REST Api。但是现在,捷特人推出了新的Kotlin DSL。
您将项目设置设置为使用Kotlin类型的Vcs设置。
然后,您只需要使用编程技能来创建代码,即可从Kotlin dsl创建所有项目。
文档中的更多信息:https://confluence.jetbrains.com/display/TCD10/Kotlin+DSL