-
- Downloads
There was an error fetching the commit references. Please try again later.
Merge branch '21170-cycle-analytics' into 'master'
Cycle Analytics: first iteration ## What does this MR do? - Implement the first iteration of the "Cycle Analytics" feature. ## What are the relevant issue numbers? - Closes #21170 ## Screenshots  ## Backend Tasks - [x] Implementation - [x] Phases - [x] Issue (Tracker) - [x] Plan (Board) - [x] Code (IDE) - [x] Test (CI) - [x] Review (MR) - [x] Staging (CD) - [x] Production (Total) - [x] Make heuristics more modular - [x] Scope to project - [x] Date range (30 days, 90 days) - [x] Access restriction - [x] Test - [x] Find a better way to test these phases - [x] Phases - [x] Issue (Tracker) - [x] Plan (Board) - [x] Code (IDE) - [x] Test (CI) - [x] Review (MR) - [x] Staging (CD) - [x] Production (Total) - [x] Test for "end case happens before start case" - [x] Consolidate helper - [x] Miniboss review - [x] Performance testing with mock data - [x] Improve performance - [x] Pre-calculate "merge requests closing issues - [x] Pre-calculate everything else - [x] Test performance against 10k issues - [x] Test all pre-calculation code - [x] Ci::Pipeline -> build start/finish - [x] Ci::Pipeline#merge_requests - [x] Issue -> record default metrics after save - [x] MergeRequest -> record default metrics after save - [x] Deployment -> Update "first_deployed_to_production_at" for MR metrics - [x] Git Push -> Update "first commit mention" for issue metrics - [x] Merge request create/update/refresh -> Update "merge requests closing issues" - [x] Remove `MergeRequestsClosingIssues` when necessary - [x] Changes to unblock Fatih - [x] Add summary data - [x] `stats` should be array - [x] Let `stats` be `null` if all `stats` are null - [x] Indexes for "merge requests closing issues" - [x] Test summary data - [x] Scope everything to project - [x] Find out why tests were passing - [x] Filter should include issues/MRs which have made it to production within the range - [x] Don't create duplicate `MergeRequestsClosingIssues` - [x] Fix tests - [x] MySQL median - [x] Assign to Douwe for review - [x] Fix conflicts - [x] Implement suggestions from Yorick's review - [x] Test on PG - [x] Test on MySQL - [x] Refactor - [x] Cleanup - [x] What happens if we have no data at all? - [x] Extract common queries to methods / scopes - [x] Remove unused queries - [x] Downtime for foreign key migrations - [x] Find a way around "if issue.metrics.present?" all over the place - [x] Find a way around "if merge_request.metrics.present?" all over the place - [x] Test migrations on a fresh database - [x] MySQL - [x] Pg - [x] Access issues - While the project is public and the visibility is set to "Everyone with access", you cannot visit the cycle analytics page when signed out. - [x] CHANGELOG - [x] Implement suggestions from Douwe's review - [x] First set of comments - [x] Second set of comments - [x] Third set of comments - [x] Fourth set of comments - [x] Make sure build is green - [ ] Make issue for "polish" - [ ] EE MR See merge request !5986
parent
84e6b80b
No related branches found
No related tags found
Showing
- CHANGELOG 1 addition, 0 deletionsCHANGELOG
- Gemfile 1 addition, 0 deletionsGemfile
- Gemfile.lock 1 addition, 0 deletionsGemfile.lock
- app/assets/javascripts/cycle-analytics.js.es6 92 additions, 0 deletionsapp/assets/javascripts/cycle-analytics.js.es6
- app/assets/javascripts/dispatcher.js 8 additions, 0 deletionsapp/assets/javascripts/dispatcher.js
- app/assets/stylesheets/pages/cycle_analytics.scss 121 additions, 0 deletionsapp/assets/stylesheets/pages/cycle_analytics.scss
- app/controllers/projects/cycle_analytics_controller.rb 67 additions, 0 deletionsapp/controllers/projects/cycle_analytics_controller.rb
- app/helpers/gitlab_routing_helper.rb 4 additions, 0 deletionsapp/helpers/gitlab_routing_helper.rb
- app/models/ci/pipeline.rb 20 additions, 0 deletionsapp/models/ci/pipeline.rb
- app/models/concerns/issuable.rb 9 additions, 0 deletionsapp/models/concerns/issuable.rb
- app/models/cycle_analytics.rb 97 additions, 0 deletionsapp/models/cycle_analytics.rb
- app/models/cycle_analytics/summary.rb 24 additions, 0 deletionsapp/models/cycle_analytics/summary.rb
- app/models/deployment.rb 34 additions, 0 deletionsapp/models/deployment.rb
- app/models/environment.rb 4 additions, 0 deletionsapp/models/environment.rb
- app/models/issue.rb 4 additions, 0 deletionsapp/models/issue.rb
- app/models/issue/metrics.rb 21 additions, 0 deletionsapp/models/issue/metrics.rb
- app/models/merge_request.rb 17 additions, 1 deletionapp/models/merge_request.rb
- app/models/merge_request/metrics.rb 11 additions, 0 deletionsapp/models/merge_request/metrics.rb
- app/models/merge_requests_closing_issues.rb 7 additions, 0 deletionsapp/models/merge_requests_closing_issues.rb
- app/policies/project_policy.rb 2 additions, 0 deletionsapp/policies/project_policy.rb
Loading
| Loading
| @@ -320,6 +320,7 @@ group :test do |
gem 'webmock', '~> 1.21.0' | ||
gem 'test_after_commit', '~> 0.4.2' | ||
gem 'sham_rack', '~> 1.3.6' | ||
gem 'timecop', '~> 0.8.0' | ||
end | ||
group :production do | ||
Loading
| Loading
|
app/models/cycle_analytics.rb
0 → 100644
app/models/cycle_analytics/summary.rb
0 → 100644
app/models/issue/metrics.rb
0 → 100644
app/models/merge_request/metrics.rb
0 → 100644
app/models/merge_requests_closing_issues.rb
0 → 100644
Please register or sign in to comment