Create a runner
curl --request POST \
--url https://guidinghand.ai/v1/runners \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "lenovo-lab-1"
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({name: 'lenovo-lab-1'})
};
fetch('https://guidinghand.ai/v1/runners', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://guidinghand.ai/v1/runners"
payload = { "name": "lenovo-lab-1" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"object": "runner",
"runner_id": "rn_T2Lc0aQ3Vb7s",
"name": "lenovo-lab-1",
"scope": "org",
"status": "online",
"provider": "qemu",
"labels": [
"vm"
],
"slots": 123,
"busy": 123,
"images": [
"win10-22h2"
],
"version": "<string>",
"last_seen_at": "2023-11-07T05:31:56Z",
"created_at": "2023-11-07T05:31:56Z",
"token": "<string>"
}{
"error": {
"type": "invalid_request",
"message": "<string>",
"code": "<string>",
"answered_by": "customer",
"test_case_ids": [
"<string>"
]
}
}{
"error": {
"type": "invalid_request",
"message": "<string>",
"code": "<string>",
"answered_by": "customer",
"test_case_ids": [
"<string>"
]
}
}{
"error": {
"type": "invalid_request",
"message": "<string>",
"code": "<string>",
"answered_by": "customer",
"test_case_ids": [
"<string>"
]
}
}Runners
Create a runner
Registers a runner of your own and returns its token, once. Start the runner with it; it connects out to GuidingHand and serves only your org. Needs the admin role or an API key.
POST
/
v1
/
runners
Create a runner
curl --request POST \
--url https://guidinghand.ai/v1/runners \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "lenovo-lab-1"
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({name: 'lenovo-lab-1'})
};
fetch('https://guidinghand.ai/v1/runners', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://guidinghand.ai/v1/runners"
payload = { "name": "lenovo-lab-1" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"object": "runner",
"runner_id": "rn_T2Lc0aQ3Vb7s",
"name": "lenovo-lab-1",
"scope": "org",
"status": "online",
"provider": "qemu",
"labels": [
"vm"
],
"slots": 123,
"busy": 123,
"images": [
"win10-22h2"
],
"version": "<string>",
"last_seen_at": "2023-11-07T05:31:56Z",
"created_at": "2023-11-07T05:31:56Z",
"token": "<string>"
}{
"error": {
"type": "invalid_request",
"message": "<string>",
"code": "<string>",
"answered_by": "customer",
"test_case_ids": [
"<string>"
]
}
}{
"error": {
"type": "invalid_request",
"message": "<string>",
"code": "<string>",
"answered_by": "customer",
"test_case_ids": [
"<string>"
]
}
}{
"error": {
"type": "invalid_request",
"message": "<string>",
"code": "<string>",
"answered_by": "customer",
"test_case_ids": [
"<string>"
]
}
}Authorizations
An org API key (gh_live_…) from Settings → API keys in the console.
Body
application/json
Required string length:
1 - 80Example:
"lenovo-lab-1"
Response
OK
A process next to a hypervisor that makes, runs and saves test machines. It connects out to GuidingHand.
Example:
"rn_T2Lc0aQ3Vb7s"
Example:
"lenovo-lab-1"
org: your own, serving only your org. cloud: GuidingHand’s, serving every org. Attempts go to your own runners first.
Available options:
org, cloud Available options:
online, offline Example:
"qemu"
Example:
["vm"]
Machines it runs at once.
Example:
["win10-22h2"]
The runner’s token (gh_rn_…). Shown once.