# CI Automations API

Manage CI automation workflows: scan repositories, list jobs, and open workflow PRs.

## Open a CI workflow PR (create / edit / delete)

`POST /api/v0/automations/ci/edit`

Creates, updates, or deletes a repository CI workflow and opens the resulting changes as a pull request.

```bash
curl -X POST 'https://api.factory.ai/api/v0/automations/ci/edit' \
  -H 'Authorization: Bearer $FACTORY_API_KEY'
```

**Response:** `200` - Response for status 200

## List CI automation jobs

`GET /api/v0/automations/ci/jobs`

Returns the CI automation jobs available to the authenticated organization.

```bash
curl 'https://api.factory.ai/api/v0/automations/ci/jobs' \
  -H 'Authorization: Bearer $FACTORY_API_KEY'
```

**Response:** `200` - Response for status 200

## List CI-eligible repositories

`GET /api/v0/automations/ci/repositories`

Returns repositories that are eligible for Factory CI automation.

```bash
curl 'https://api.factory.ai/api/v0/automations/ci/repositories' \
  -H 'Authorization: Bearer $FACTORY_API_KEY'
```

**Response:** `200` - Response for status 200

## List CI repository owners

`GET /api/v0/automations/ci/repository-owners`

Returns repository owners available when configuring Factory CI automation.

```bash
curl 'https://api.factory.ai/api/v0/automations/ci/repository-owners' \
  -H 'Authorization: Bearer $FACTORY_API_KEY'
```

**Response:** `200` - Response for status 200

## List GitHub Actions runs for CI automation workflows

`GET /api/v0/automations/ci/runs`

List GitHub Actions runs for CI automation workflows.

```bash
curl 'https://api.factory.ai/api/v0/automations/ci/runs' \
  -H 'Authorization: Bearer $FACTORY_API_KEY'
```

**Response:** `200` - Response for status 200

## Scan repositories for CI workflows

`GET /api/v0/automations/ci/scan`

Scans connected repositories and reports their Factory CI workflow configuration.

```bash
curl 'https://api.factory.ai/api/v0/automations/ci/scan' \
  -H 'Authorization: Bearer $FACTORY_API_KEY'
```

**Response:** `200` - Response for status 200
