Oore CI
ReferenceAPICategories

Pipelines

Pipeline configuration — build platforms, commands, triggers, concurrency. Code signing configuration — Android keystores, iOS certificates/profiles.

POST
/v1/pipelines/validate

Validates a pipeline configuration without persisting it.

Authorization

bearer_auth
AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/v1/pipelines/validate" \  -H "Content-Type: application/json" \  -d '{}'
{  "errors": [    "string"  ],  "valid": true}
GET
/v1/pipelines/{pipeline_id}

Authorization

bearer_auth
AuthorizationBearer <token>

In: header

Path Parameters

pipeline_id*string

Pipeline ID

Response Body

application/json

application/json

curl -X GET "https://example.com/v1/pipelines/string"
{  "build_count": 0,  "pipeline": {    "concurrency": {      "cancel_previous": true,      "max_concurrent": 0    },    "config_path": "string",    "config_path_explicit": true,    "created_at": 0,    "enabled": true,    "execution_config": {      "artifact_patterns": [        "string"      ],      "commands": {        "build": [          "string"        ],        "post_build": [          "string"        ],        "pre_build": [          "string"        ]      },      "env": [        {          "key": "string",          "value": "string"        }      ],      "flutter_version": "string",      "platform_build_args": {        "android": [          "string"        ],        "ios": [          "string"        ],        "macos": [          "string"        ]      },      "platform_commands": {        "android": "string",        "ios": "string",        "macos": "string"      },      "platforms": [        "android"      ]    },    "id": "string",    "name": "string",    "project_id": "string",    "trigger_config": {      "branches": [        "string"      ],      "events": [        "string"      ]    },    "updated_at": 0  }}
PATCH
/v1/pipelines/{pipeline_id}

Authorization

bearer_auth
AuthorizationBearer <token>

In: header

Path Parameters

pipeline_id*string

Pipeline ID

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

curl -X PATCH "https://example.com/v1/pipelines/string" \  -H "Content-Type: application/json" \  -d '{}'
{  "pipeline": {    "concurrency": {      "cancel_previous": true,      "max_concurrent": 0    },    "config_path": "string",    "config_path_explicit": true,    "created_at": 0,    "enabled": true,    "execution_config": {      "artifact_patterns": [        "string"      ],      "commands": {        "build": [          "string"        ],        "post_build": [          "string"        ],        "pre_build": [          "string"        ]      },      "env": [        {          "key": "string",          "value": "string"        }      ],      "flutter_version": "string",      "platform_build_args": {        "android": [          "string"        ],        "ios": [          "string"        ],        "macos": [          "string"        ]      },      "platform_commands": {        "android": "string",        "ios": "string",        "macos": "string"      },      "platforms": [        "android"      ]    },    "id": "string",    "name": "string",    "project_id": "string",    "trigger_config": {      "branches": [        "string"      ],      "events": [        "string"      ]    },    "updated_at": 0  }}
DELETE
/v1/pipelines/{pipeline_id}

Authorization

bearer_auth
AuthorizationBearer <token>

In: header

Path Parameters

pipeline_id*string

Pipeline ID

Response Body

application/json

application/json

application/json

curl -X DELETE "https://example.com/v1/pipelines/string"
{  "ok": true}
GET
/v1/pipelines/{pipeline_id}/android-signing

Authorization

bearer_auth
AuthorizationBearer <token>

In: header

Path Parameters

pipeline_id*string

Pipeline ID

Response Body

application/json

curl -X GET "https://example.com/v1/pipelines/string/android-signing"
{  "debug": {    "build_type": "debug",    "enabled": true,    "has_key_password": true,    "has_keystore": true,    "has_store_password": true,    "key_alias": "string",    "keystore_checksum": "string",    "keystore_filename": "string",    "updated_at": 0  },  "pipeline_id": "string",  "release": {    "build_type": "debug",    "enabled": true,    "has_key_password": true,    "has_keystore": true,    "has_store_password": true,    "key_alias": "string",    "keystore_checksum": "string",    "keystore_filename": "string",    "updated_at": 0  }}
PUT
/v1/pipelines/{pipeline_id}/android-signing

Upload keystores and configure debug/release signing profiles.

Authorization

bearer_auth
AuthorizationBearer <token>

In: header

Path Parameters

pipeline_id*string

Pipeline ID

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X PUT "https://example.com/v1/pipelines/string/android-signing" \  -H "Content-Type: application/json" \  -d '{}'
{  "debug": {    "build_type": "debug",    "enabled": true,    "has_key_password": true,    "has_keystore": true,    "has_store_password": true,    "key_alias": "string",    "keystore_checksum": "string",    "keystore_filename": "string",    "updated_at": 0  },  "pipeline_id": "string",  "release": {    "build_type": "debug",    "enabled": true,    "has_key_password": true,    "has_keystore": true,    "has_store_password": true,    "key_alias": "string",    "keystore_checksum": "string",    "keystore_filename": "string",    "updated_at": 0  }}
GET
/v1/pipelines/{pipeline_id}/ios-signing

Authorization

bearer_auth
AuthorizationBearer <token>

In: header

Path Parameters

pipeline_id*string

Pipeline ID

Response Body

application/json

curl -X GET "https://example.com/v1/pipelines/string/ios-signing"
{  "api_issuer_id": "string",  "api_key_id": "string",  "bundle_ids": [    "string"  ],  "enabled": true,  "export_method": "string",  "has_api_key": true,  "has_p12": true,  "has_p12_password": true,  "mode": "manual",  "p12_expires_at": 0,  "p12_filename": "string",  "p12_fingerprint": "string",  "pipeline_id": "string",  "provisioning_profiles": [    {      "bundle_id": "string",      "checksum": "string",      "expires_at": 0,      "has_profile": true,      "profile_filename": "string",      "profile_name": "string",      "profile_uuid": "string",      "team_id": "string"    }  ],  "team_id": "string",  "updated_at": 0}
PUT
/v1/pipelines/{pipeline_id}/ios-signing

Upload certificates, provisioning profiles, and API credentials. Request body limit: 10 MiB.

Authorization

bearer_auth
AuthorizationBearer <token>

In: header

Path Parameters

pipeline_id*string

Pipeline ID

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X PUT "https://example.com/v1/pipelines/string/ios-signing" \  -H "Content-Type: application/json" \  -d '{    "mode": "manual"  }'
{  "api_issuer_id": "string",  "api_key_id": "string",  "bundle_ids": [    "string"  ],  "enabled": true,  "export_method": "string",  "has_api_key": true,  "has_p12": true,  "has_p12_password": true,  "mode": "manual",  "p12_expires_at": 0,  "p12_filename": "string",  "p12_fingerprint": "string",  "pipeline_id": "string",  "provisioning_profiles": [    {      "bundle_id": "string",      "checksum": "string",      "expires_at": 0,      "has_profile": true,      "profile_filename": "string",      "profile_name": "string",      "profile_uuid": "string",      "team_id": "string"    }  ],  "team_id": "string",  "updated_at": 0}
GET
/v1/pipelines/{pipeline_id}/ios-signing/devices

Authorization

bearer_auth
AuthorizationBearer <token>

In: header

Path Parameters

pipeline_id*string

Pipeline ID

Response Body

application/json

curl -X GET "https://example.com/v1/pipelines/string/ios-signing/devices"
{  "devices": [    {      "added_at": 0,      "device_id": "string",      "id": "string",      "last_synced_at": 0,      "name": "string",      "platform": "string",      "status": "string",      "udid": "string"    }  ],  "pipeline_id": "string"}
POST
/v1/pipelines/{pipeline_id}/ios-signing/devices/register

Registers a device UDID and optionally triggers a provisioning profile sync.

Authorization

bearer_auth
AuthorizationBearer <token>

In: header

Path Parameters

pipeline_id*string

Pipeline ID

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/v1/pipelines/string/ios-signing/devices/register" \  -H "Content-Type: application/json" \  -d '{    "name": "string",    "udid": "string"  }'
{  "device": {    "added_at": 0,    "device_id": "string",    "id": "string",    "last_synced_at": 0,    "name": "string",    "platform": "string",    "status": "string",    "udid": "string"  },  "pipeline_id": "string",  "profile_sync_triggered": true}
POST
/v1/pipelines/{pipeline_id}/ios-signing/sync

Re-downloads provisioning profiles from Apple via App Store Connect API.

Authorization

bearer_auth
AuthorizationBearer <token>

In: header

Path Parameters

pipeline_id*string

Pipeline ID

Response Body

application/json

curl -X POST "https://example.com/v1/pipelines/string/ios-signing/sync"
{  "ok": true,  "pipeline_id": "string",  "synced_bundle_ids": [    "string"  ],  "updated_profiles": 0,  "warnings": [    "string"  ]}
GET
/v1/projects/{project_id}/pipelines

Authorization

bearer_auth
AuthorizationBearer <token>

In: header

Path Parameters

project_id*string

Project ID

Query Parameters

search?string

Case-insensitive pipeline name search

sort?string

Sort by created_at or name

direction?string

Sort direction: asc or desc

limit?integer

Page size

Formatint64
offset?integer

Page offset

Formatint64

Response Body

application/json

application/json

curl -X GET "https://example.com/v1/projects/string/pipelines"
{  "pipelines": [    {      "concurrency": {        "cancel_previous": true,        "max_concurrent": 0      },      "config_path": "string",      "config_path_explicit": true,      "created_at": 0,      "enabled": true,      "execution_config": {        "artifact_patterns": [          "string"        ],        "commands": {          "build": [            "string"          ],          "post_build": [            "string"          ],          "pre_build": [            "string"          ]        },        "env": [          {            "key": "string",            "value": "string"          }        ],        "flutter_version": "string",        "platform_build_args": {          "android": [            "string"          ],          "ios": [            "string"          ],          "macos": [            "string"          ]        },        "platform_commands": {          "android": "string",          "ios": "string",          "macos": "string"        },        "platforms": [          "android"        ]      },      "id": "string",      "name": "string",      "project_id": "string",      "trigger_config": {        "branches": [          "string"        ],        "events": [          "string"        ]      },      "updated_at": 0    }  ],  "total": 0}
POST
/v1/projects/{project_id}/pipelines

Authorization

bearer_auth
AuthorizationBearer <token>

In: header

Path Parameters

project_id*string

Project ID

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

curl -X POST "https://example.com/v1/projects/string/pipelines" \  -H "Content-Type: application/json" \  -d '{    "name": "string"  }'
{  "pipeline": {    "concurrency": {      "cancel_previous": true,      "max_concurrent": 0    },    "config_path": "string",    "config_path_explicit": true,    "created_at": 0,    "enabled": true,    "execution_config": {      "artifact_patterns": [        "string"      ],      "commands": {        "build": [          "string"        ],        "post_build": [          "string"        ],        "pre_build": [          "string"        ]      },      "env": [        {          "key": "string",          "value": "string"        }      ],      "flutter_version": "string",      "platform_build_args": {        "android": [          "string"        ],        "ios": [          "string"        ],        "macos": [          "string"        ]      },      "platform_commands": {        "android": "string",        "ios": "string",        "macos": "string"      },      "platforms": [        "android"      ]    },    "id": "string",    "name": "string",    "project_id": "string",    "trigger_config": {      "branches": [        "string"      ],      "events": [        "string"      ]    },    "updated_at": 0  }}
GET
/v1/projects/{project_id}/repository-workflows

Reads supported Oore workflow files from the linked repository without modifying it. The response contains validated behavior but never raw YAML, environment values, or source credentials.

Authorization

bearer_auth
AuthorizationBearer <token>

In: header

Path Parameters

project_id*string

Project ID

Query Parameters

ref?string

Branch, tag, or commit; defaults to the project branch

path?string

Additional explicit repository-relative config path

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/v1/projects/string/repository-workflows"
{  "project_id": "string",  "provider": "github",  "reference": "string",  "truncated": true,  "workflows": [    {      "errors": [        "string"      ],      "execution": null,      "path": "string",      "valid": true    }  ]}
GET
/v1/runners/{runner_id}/jobs/{job_id}/android-signing

Returns Android signing profiles only to the assigned runner while the job is active. Both the runner bearer token and job-scoped signing grant are required.

Authorization

bearer_auth
AuthorizationBearer <token>

In: header

Path Parameters

runner_id*string

Runner ID

job_id*string

Build/Job ID

Header Parameters

x-oore-signing-token*string

Job-scoped signing grant

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/v1/runners/string/jobs/string/android-signing" \  -H "x-oore-signing-token: string"
{  "debug": null,  "release": null}
GET
/v1/runners/{runner_id}/jobs/{job_id}/ios-signing

Returns the iOS signing bundle only to the assigned runner while the job is active. Both the runner bearer token and job-scoped signing grant are required.

Authorization

bearer_auth
AuthorizationBearer <token>

In: header

Path Parameters

runner_id*string

Runner ID

job_id*string

Build/Job ID

Header Parameters

x-oore-signing-token*string

Job-scoped signing grant

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/v1/runners/string/jobs/string/ios-signing" \  -H "x-oore-signing-token: string"
{  "bundle": null}