Build Group API
この機能は、Incredibuild のEnterprise Plan でのみ利用可能です。
すべてのAPIコールには、client-api-key という鍵と、API キー の値を持つヘッダーを含める必要があります。すべてのAPIは大文字と小文字を区別します。
以下で、APIコールに含まれる項目の説明をします:
-
Coordinator IP アドレス ホスト名 - Coordinator のIPアドレスまたはホスト名です。
-
Coordinator UI ポート - インストール時に定義したポート番号です。既定値では、8000となっています。
-
バージョン - APIのバージョンです。最新バージョンは1.3.0ですが、このAPIは1.2.0と1.0.0にも対応しています。APIコールでバージョンを指定しなかった場合、サポートされている中で最も低いバージョンが使用されます。
-
coordinator ID - IncredibuildがCoordinatorに割り当てるIDです。Coordinator マネージャー >設定 >API アクセス のエリアで確認できます。
新しいBuild Groupを作成します。リクエストの本文で、新しいBuild Groupの名前、および、クラウドエージェントが有効かどうかを指定します。
リクエストの構文
POST 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>}
]
}
リクエスト例:
POST 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"
}
]
}
1つまたは複数の既存のBuild Groupを削除します。
リクエストの構文
DELETE 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>"]
}
リクエスト例:
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"
}
]
}
既存のBuild Groupを編集し、名前やクラウドエージェントを有効にするかどうかを変更します。
リクエストの構文
PUT 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>
}
リクエスト例:
PUT 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 Groupのリストを返します。
リクエストの構文
GET https://{Coordinator IP Address/Hostname}:{Web Access Port}/api/build-groups?coordinatorId={coordinatorId}&version=1.3.0
リクエスト例:
GET 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のリストを返します。
リクエストの構文
GET https://{Coordinator IP Address/Hostname}:{Web Access Port}/api/build-groups/{build group name}/agents?coordinatorId={coordinatorId}&version=1.3.0
リクエスト例:
GET 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",
}
]
1つまたは複数のAgentの詳細を返します。これらのAgentの詳細の意味については、Agentの表示 を参照してください。
リクエストの構文
GET https://{Coordinator IP Address/Hostname}:{Web Access Port}/api/agents?coordinatorId={coordinatorId}&version=1.0.0&agents=[{agent name1},{agent name2}]
リクエスト例:
GET 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"
}
]
}
既存のBuild Groupに1つまたは複数のAgentを割り当てます。Agentの1つがビルドに参加している場合やオフラインの場合は、Agent の割り当てアクションを実行することができません。
Agentの例を含めたリクエスト構文
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からすべてのAgentを削除します。Agentは、デフォルト Build Groupにサイド割り当てられます。
Agentがオフラインの場合、「クリア」アクションは正常に完了したように見えるかもしれませんが、オフラインの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
}
指定されたAgentを、割り当てられたBuild Groupから削除します。Agentは、デフォルト Build Groupにサイド割り当てられます。
指定したBuild Group内の1つ以上のAgentが現在ビルドに参加しているか、オフラインの場合は、「クリア」アクションを実行することができません。Agentがオフラインの場合、「クリア」アクションは正常に完了したように見えるかもしれませんが、オフラインの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"
},
]