---
title: Unified CI/CD API — Truto Unified API
slug: ci-cd
canonical: "https://truto.one/unified-apis/ci-cd/"
---

# Continuous Integration & Deployment Unified API

Integrate Continuous Integration & Deployment data across 9 providers with one API. 11 normalized resources, real-time pass-through, fully customizable.

**Base URL:** `https://api.truto.one/unified/ci-cd`  
**Resources:** 11  
**Integrations:** 9

## Resources

### Artifacts

The artifact represent an artifact in the CI/CD. (10 fields)

- `id` (string) — The unique identifier for the artifact
- `name` (string) — The name of the artifact
- `workflow` (string) — The workflow that the artifact belongs to
- `build` (string) — The build that the artifact belongs to
- `size_in_bytes` (integer) — The size of the artifact in bytes
- `download_url` (string) — The URL to download the artifact
- `created_at` (string) — The date and time when the artifact was created
- `updated_at` (string) — The date and time when the artifact was last updated
- `expires_at` (string) — The date and time when the artifact will expire
- `expired` (boolean) — Whether the artifact is available for download

### Branch-protection-rules

The branch protection rule represents protection settings
applied to branches in a repository (13 fields)

- `id` (string) — The unique identifier for the protection rule
- `name` (string) — The name or description of the protection rule
- `repos` (array) — The repositories this rule applies to
- `pattern` (string) — The branch/ref pattern this rule applies to
- `is_active` (boolean) — Whether this protection rule is currently active
- `require_owner_approval` (boolean) — Require approval from designated owners
- `required_checks` (array) — List of required validations/checks
- `access_restrictions` (object) — Restrictions on who can write to the branch
- `integration_restrictions` (object) — Restrictions on who can integrate/merge changes
- `allow_branch_deletion` (boolean) — Allow the branch to be deleted
- `created_by` (object) — User who created this protection rule
- `created_at` (string) — When the rule was created
- `updated_at` (string) — When the rule was last updated

### Branches

The branch represent a branch in the CI/CD. (9 fields)

- `id` (string) — The unique identifier for the branch
- `name` (string) — Name of the branch
- `repo` (string) — The repository of the branch
- `last_commit` (string) — The last commit of the branch
- `last_commit_by` (string) — The last commit author of the branch
- `last_commit_message` (string) — The last commit message of the branch
- `last_commit_at` (string) — The date and time when the last commit was made
- `created_at` (string) — The date and time when the branch was created
- `updated_at` (string) — The date and time when the branch was last updated

### Builds

The build represent a build in the CI/CD. (18 fields)

- `id` (string) — The unique identifier for the build
- `name` (string) — The name of the build
- `repo` (string) — The repository of the build
- `branch` (string) — The head branch of the build
- `commit` (string) — The head commit of the build
- `trigger` (string) — The trigger for the build - push, merge_request, api, cron, web or the raw response from the API
- `triggered_by` (string) — The actor who triggered the build
- `triggered_by_type` (string) — The type of the actor who triggered the build - user, bot or raw response from the API
- `conclusion` (string) — The conclusion of the build - passed, failed, cancelled, timeout, skipped, retried, partial or the raw response from the API
- `workflow` (string) — The workflow's unique identifier in the CI/CD
- `build` (string) — The build's unique identifier in the CI/CD
- `status` (string) — The status of the build - queued, in_progress, completed or the raw response from the API
- `created_at` (string) — The date and time when the build was created
- `updated_at` (string) — The date and time when the build was last updated
- `started_at` (string) — The date and time when the build started
- `completed_at` (string) — The date and time when the build finished
- `attempts` (integer) — The number of attempts for the build
- `number` (integer) — The run number of the build

### Caches

The cache represent a cache in the CI/CD. (8 fields)

- `id` (string) — The unique identifier for the cache
- `branch` (string) — The branch for the cache
- `key` (string) — The key for the cache
- `version` (string) — The version of the cache
- `created_at` (string) — The date and time when the cache was created
- `updated_at` (string) — The date and time when the cache was last updated
- `last_used_at` (string) — The date and time when the cache was last used
- `size_in_bytes` (integer) — The size of the cache in bytes

### Jobs

The job represent a job in the CI/CD. (12 fields)

- `id` (string) — The unique identifier for the job
- `name` (string) — The name of the job
- `build` (string) — The build of the job
- `status` (string) — The status of the job - queued, in_progress, completed or the raw response from the API
- `conclusion` (string) — The conclusion of the job - passed, failed, cancelled, timeout, skipped, retried, partial or the raw response from the API
- `commit` (string) — The commit of the job
- `branch` (string) — The head branch of the job
- `attempts` (integer) — The number of attempts for the job
- `created_at` (string) — The date and time when the job was created
- `updated_at` (string) — The date and time when the job was last updated
- `started_at` (string) — The date and time when the job started
- `completed_at` (string) — The date and time when the job completed

### Organizations

The Organization object is used to represent an organization. (4 fields)

- `id` (string) — The ID of the organization
- `name` (string) — The name of the organization
- `created_at` (string) — The date and time the organization was created
- `updated_at` (string) — The date and time the organization was last updated

### Pull-requests

 (12 fields)

- `id` (string) — The unique identifier for the pull request
- `title` (string) — The title of the pull request
- `number` (integer) — The number of the pull request
- `description` (object) — The description of the pull request
- `status` (string) — The status of the pull request
- `base_branch` (object) — The base branch of the pull request
- `head_branch` (object) — The head branch of the pull request
- `author` (object) — The author of the pull request
- `closed_at` (string) — The date and time when the pull request was closed
- `merged_at` (string) — The date and time when the pull request was merged
- `created_at` (string) — The date and time when the pull request was created
- `updated_at` (string) — The date and time when the pull request was last updated

### Repos

The repo represent a repository in the CI/CD. (11 fields)

- `id` (string) — The unique identifier for the repository
- `name` (string) — The name of the repository
- `description` (string) — The description of the repository
- `owner` (string) — The owner of the repository
- `owner_type` (string) — The type of the owner of the repository
- `visibility` (string) — The visibility of the repository
- `vcs_url` (string) — The VCS URL of the repository
- `status` (string) — The status of the repository
- `default_branch` (string) — The default branch of the repository
- `created_at` (string) — The date and time when the repository was created
- `updated_at` (string) — The date and time when the repository was last updated

### Workflow

The workflow represent a CI/CD workflow. (2 fields)

- `id` (string) — The unique identifier for the workflow
- `name` (string) — The name of the workflow

### Workspaces

The Workspace object is used to represent a workspace within a company. (4 fields)

- `id` (string) — The ID of the workspace
- `name` (string) — The name of the workspace
- `created_at` (string) — The date and time the workspace was created
- `updated_at` (string) — The date and time the workspace was last updated

## Supported integrations

- [Azure DevOps](https://truto.one/integrations/detail/azuredevops/)
- [Bitbucket](https://truto.one/integrations/detail/bitbucket/)
- [Buddy](https://truto.one/integrations/detail/buddy/)
- [CircleCI](https://truto.one/integrations/detail/circleci/)
- [Gerrit](https://truto.one/integrations/detail/gerrit/)
- [GitHub](https://truto.one/integrations/detail/github/)
- [GitLab](https://truto.one/integrations/detail/gitlab/)
- [Jenkins](https://truto.one/integrations/detail/jenkins/)
- [Travis CI](https://truto.one/integrations/detail/travisci/)

## Related reading

- [Automating SDLC Evidence: How GRC Platforms Can Stop Chasing Engineers for Screenshots](https://truto.one/blog/automating-sdlc-evidence-how-grc-platforms-can-stop-chasing-engineers-for-screenshots/) — SOC 2 audits are plagued by manual evidence gathering. Learn how to architect an automated 'Compliance Observer' using Unified APIs to link tickets, PRs, and builds.
- [Launching: Unified API for CI/CD and Version Control Systems](https://truto.one/blog/product-update-unified-api-for-ci-cd-tools/) — With our Unified API for CI/CD tools, you can easily integrate popular CI/CD tools like Jenkins, Travis CI, CircleCI, and GitHub CI/CD.
