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

  • Introduced in GitLab 13.10.
  • The legacy key/value pair { "<date>" => "<value>" } was removed from the payload in GitLab 14.0.

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:

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

Get group-level DORA metrics

Introduced in GitLab 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:

[
  { "date": "2021-03-01", "value": 3 },
  { "date": "2021-03-02", "value": 6 },
  { "date": "2021-03-03", "value": 0 },
  { "date": "2021-03-04", "value": 0 },
  { "date": "2021-03-05", "value": 0 },
  { "date": "2021-03-06", "value": 0 },
  { "date": "2021-03-07", "value": 0 },
  { "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.