Build Group API
此功能仅适用于 Incredibuild 的 Enterprise Plan。
每个 API 调用必须包含一个带有名为 client-api-key 密钥的标题和 API 密钥值。所有 API 需要区分大小写。
以下是 API 调用中的项目描述:
-
Coordinator IP Address/Hostname – Coordinator 的 IP 地址或主机名。
-
Coordinator UI Port – 您在安装过程中定义的端口号。默认情况下,该端口号为 8000。
-
版本 - API 版本。最新版本是 1.3.0,但此 API 也支持 1.2.0 和 1.0.0。如果在 API 调用中没有指定版本,则将使用支持的最低版本。
-
Coordinator ID - Incredibuild 分配给 Coordinator 的 ID。您可以在 Coordinator Manager > Settings > API Access 区域中查看此内容。
创建新的 Build Group。您可以指定新 Build Group 名称,以及是否在请求主体中启用 Cloud Agents。
请求语法
发布 https://{Coordinator IP Address/Hostname}:{Web Access Port}/api/build-groups/add?coordinatorId={coordinatorId}&version=1.3.0
主体语法
{
"buildGroups": [
{"buildGroup":"<build group name>","cloudEnabled":<true|false>}
]
}
请求示例:
发布 https://w_qa_1268_c_0:8000/api/build-groups/add?coordinatorId=0F0EA79D-3C8B-4DC5-9C2E-90D1DF0AD24E&version=1.3.0
主体示例
{
"buildGroups": [
{"buildGroup":"bg3","cloudEnabled":true}
]
}
响应示例
{
"totalRecords": 1,
"failed": 0,
"success": 1,
"buildGroups": [
{
"group": "bg3",
"status": "OK"
}
]
}
删除一个或多个现有 Build Groups。
请求语法
删除 https://{Coordinator IP Address/Hostname}:{Web Access Port}/api/build-groups/delete?coordinatorId={coordinatorId}&version=1.3.0
主体语法
{
"buildGroups": ["<name of first build group to delete>","<additional build gruops to delete>"]
}
请求示例:
删除 https://w_qa_1268_c_0:8000/api/build-groups/delete?coordinatorId=0F0EA79D-3C8B-4DC5-9C2E-90D1DF0AD24E&version=1.3.0
主体示例
{
"buildGroups": ["bg1","bg2","bg3"]
}
响应示例
{
"totalRecords": 3,
"failed": 2,
"success": 1,
"buildGroups": [
{
"group": "bg1",
"message": "That Build Group does not exist",
"status": "fail"
},
{
"group": "bg2",
"message": "That Build Group does not exist",
"status": "fail"
},
{
"group": "bg3",
"status": "OK"
}
]
}
通过更改名称和/或是否启用 Cloud Agents 来编辑现有 Build Group。
请求语法
输入 https://{Coordinator IP Address/Hostname}:{Web Access Port}/api/build-groups/{BG name to edit}/edit?coordinatorId={coordinatorId}&version=1.3.0
主体语法
{
"newBuildGroup":"<Build Group Name>",
"cloudEnabled":<true|false>
}
请求示例:
输入 https://w_qa_1268_c_0:8000/api/build-groups/BG4/edit?coordinatorId=0F0EA79D-3C8B-4DC5-9C2E-90D1DF0AD24E&version=1.3.0
主体示例
{
"newBuildGroup":"BG2",
"cloudEnabled":false
}
响应示例
{
"group": "BG2",
"status": "OK"
}
返回特定 Coordinator 中的所有 Build Groups 列表。
请求语法
访问 https://{Coordinator IP Address/Hostname}:{Web Access Port}/api/build-groups?coordinatorId={coordinatorId}&version=1.3.0
请求示例:
访问 https://coordinatorPc:8000/api/build-groups?coordinatorId=00000000-0000-0000-0000-000000000000&version=1.3.0
响应示例
[
{
"group": "Default",
"agentCount": 1
},
{
"group": "QA-2",
"agentCount": 6
},
{
"group": "QA-3",
"agentCount": 4
}
]
返回特定 Build Group 中的全部 Agent 列表。
请求语法
访问 https://{Coordinator IP Address/Hostname}:{Web Access Port}/api/build-groups/{build group name}/agents?coordinatorId={coordinatorId}&version=1.3.0
请求示例:
访问 https://coordinatorPc:8000/api/build-groups/dev-group/agents?coordinatorId=00000000-0000-0000-0000-000000000000&version=1.3.0
响应示例
[
{
"name": "AgentSmith",
"ip": "127.0.0.1"
},
{
"name": "AgentBill",
"ip": "127.0.0.2",
}
]
返回一个或多个 Agents 的详情。有关这些 Agents 详情含义的更多信息,请参阅 Viewing Agents。
请求语法
访问 https://{Coordinator IP Address/Hostname}:{Web Access Port}/api/agents?coordinatorId={coordinatorId}&version=1.0.0&agents=[{agent name1},{agent name2}]
请求示例:
访问 https://coordinatorPc:8000/api/agents?agents=[AgentSmith,NeoHelper,SpoonHelper]&coordinatorId=00000000-0000-0000-0000-000000000000&version=1.3.0
响应示例
{
"agentsInRequest": 3,
"agentsInResults": 2,
"agentsNotFound": 1,
"agentsDetails": [
{
"name": "AgentSmith",
"id": " AgentSmith ",
"buildGroup": "dev-group",
"ip": "127.0.0.1",
"status": "Ready"
},
{
"name": "NeoHelper”,
"id": " NeoHelper”,
"buildGroup": "devops",
"ip": "100.6.6.6",
"status": "Ready"
}
]
}
将一个或多个 Agent 分配至现有 Build Group。如果其中一个 Agent 正在参与构建或处于离线状态,则无法执行 Agent 分配操作。
请求语法(包括示例 Agents)
POST https://{Coordinator IP Address/Hostname}:{Web Access Port}/api/build-groups/{build group name}/agents/add?coordinatorId={coordinatorId}&version=1.0.0
{
"agents": ["YAIRMAYER8DBB", "test"]
}
请求示例:
POST https://coordinatorPc:8000/api/build-groups/cool-guys/agents?coordinatorId=00000000-0000-0000-0000-000000000000&version=1.0.0
{
"agents": ["AgentJay", "AgentBob","AgentDante"]
}
响应示例:
[
{
"agentName": "AgentJay",
"status": "OK"
},
{
"agentName": "AgentBob",
"status": "OK"
},
{
"agentName": "AgentDante",
"status": "fail",
"message": "Agent not found"
}
]
从指定的 Build Group 中删除所有 Agents。将 Agents 重新分配到 Default Build Group 中。
如果 Agent 处于离线状态,则 Clear 操作虽显示为成功完成,但实际上离线 Agent 仍保留在原始 Build Group 中。
请求语法
POST https://{Coordinator IP Address/Hostname}:{Web Access Port}/api/build-groups/{group}/clear?coordinatorId={coordinatorId}&version=1.0.0 { }
请求示例:
POST https://{Coordinator IP Address/Hostname}:{Web Access Port}/api/build-groups/Dev/clear?coordinatorId={coordinatorId}&version=1.0.0 {}
响应示例:
{
"clearedGroupName": "Dev",
"agentsAffected": 2
}
从分配的任何 Build Groups 中移除指定的 Agents。其会被重新分配到 Default Build Group 中。
如果指定 Build Group 中的一个或多个 Agent 当前正在参与构建或离线,您将无法执行 Clear 操作。如果Agent 处于离线状态,则 Clear 操作虽显示为成功完成,但实际上离线 Agent 仍保留在原始 Build Group 中。
请求语法
POST https://{Coordinator IP Address/Hostname}:{Web Access Port}/api/build-groups/agents/clear?coordinatorId={coordinatorId}&version=1.0.0
{
"agents": ["agentname1", "agentname2"]
}
请求示例:
POST https://{Coordinator IP Address/Hostname}:{Web Access Port}/api/build-groups/agents/clear?coordinatorId={coordinatorId}&version=1.0.0
{
"agents": ["desktop123", "desktop248"]
}
响应示例:
[
{
"agentName": "desktop123",
"status": "OK"
},
{
"agentName": "desktop248",
"status": "OK"
},
]