PR Cycle Time is the sum of PR Coding Time, PR Time-to-Merge and PR Deploy Time. It is the total time from the first commit to when the PR is deployed.
The reason why we use PR Time-to-Merge rather than PR Pickup Time + PR Review Time is that a merged PR may not have any review. In this case, PR Pickup Time and PR Review Time will be NULL, while PR Time-to-Merge is not.
PR Cycle Time indicates the overall velocity of the delivery progress in terms of PR.
You can define deployment
based on your actual practice. For a full list of deployment
's definitions that DevLake support, please refer to Deployment Frequency.
Data Sources Required
This metric relies on PRs/MRs collected from GitHub, GitLab, BitBucket, Gitee or other code review tools.
Data Transformation Required
N/A
SQL Queries
The following SQL shows how to find the cycle time
of a specific PR. DevLake pre-calculates the metric and stores it in table.project_pr_metrics.
SELECT pr_cycle_time/60 as 'PR Cycle Time(h)' FROM project_pr_metrics
If you want to measure the monthly trend of PR cycle time
in the screenshot below, please run the following SQL in Grafana.
SELECT DATE_ADD(date(pr.created_date), INTERVAL -DAY(date(pr.created_date))+1 DAY) as time, avg(ppm.pr_cycle_time)/60 as 'PR Cycle Time(h)' FROM pull_requests pr JOIN project_pr_metrics ppm ON pr.id = ppm.id GROUP BY 1 ORDER BY 1