DevOps Research and Assessment (DORA) key metrics API (ULTIMATE)

Introduced in GitLab Ultimate 13.10.

All methods require reporter permissions and above.

Get project-level DORA metrics

Get project-level DORA metrics.

GET /projects/:id/dora/metrics
Attribute Type Required Description
id integer/string yes The ID or URL-encoded path of the project can be accessed by the authenticated user.
metric string yes The metric name. One of deployment_frequency or lead_time_for_changes.
start_date string no Date range to start from. ISO 8601 Date format, for example 2021-03-01. Default is 3 months ago.
end_date string no Date range to end at. ISO 8601 Date format, for example 2021-03-01. Default is the current date.
interval string no The bucketing interval. One of all, monthly or daily. Default is daily.
environment_tier string no The tier of the environment. Default is production.

Example request:

curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/1/dora/metrics?metric=deployment_frequency"

Example response:

[
  { "2021-03-01": 3, "date": "2021-03-01", "value": 3 },
  { "2021-03-02": 6, "date": "2021-03-02", "value": 6 },
  { "2021-03-03": 0, "date": "2021-03-03", "value": 0 },
  { "2021-03-04": 0, "date": "2021-03-04", "value": 0 },
  { "2021-03-05": 0, "date": "2021-03-05", "value": 0 },
  { "2021-03-06": 0, "date": "2021-03-06", "value": 0 },
  { "2021-03-07": 0, "date": "2021-03-07", "value": 0 },
  { "2021-03-08": 4, "date": "2021-03-08", "value": 4 }
]

Get group-level DORA metrics

Introduced in GitLab Ultimate 13.10.

Get group-level DORA metrics.

GET /groups/:id/dora/metrics
Attribute Type Required Description
id integer/string yes The ID or URL-encoded path of the project can be accessed by the authenticated user.
metric string yes The metric name. One of deployment_frequency or lead_time_for_changes.
start_date string no Date range to start from. ISO 8601 Date format, for example 2021-03-01. Default is 3 months ago.
end_date string no Date range to end at. ISO 8601 Date format, for example 2021-03-01. Default is the current date.
interval string no The bucketing interval. One of all, monthly or daily. Default is daily.
environment_tier string no The tier of the environment. Default is production.

Example request:

curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/1/dora/metrics?metric=deployment_frequency"

Example response:

[
  { "2021-03-01": 3, "date": "2021-03-01", "value": 3 },
  { "2021-03-02": 6, "date": "2021-03-02", "value": 6 },
  { "2021-03-03": 0, "date": "2021-03-03", "value": 0 },
  { "2021-03-04": 0, "date": "2021-03-04", "value": 0 },
  { "2021-03-05": 0, "date": "2021-03-05", "value": 0 },
  { "2021-03-06": 0, "date": "2021-03-06", "value": 0 },
  { "2021-03-07": 0, "date": "2021-03-07", "value": 0 },
  { "2021-03-08": 4, "date": "2021-03-08", "value": 4 }
]

The value field

For both the project and group-level endpoints above, the value field in the API response has a different meaning depending on the provided metric query parameter:

metric query parameter Description of value in response
deployment_frequency The number of successful deployments during the time period.
lead_time_for_changes The median number of seconds between the merge of the merge request (MR) and the deployment of the MR's commits for all MRs deployed during the time period.