1. 07 Sep, 2016 9 commits
  2. 02 Sep, 2016 3 commits
    • Timothy Andrew's avatar
      Refactor cycle analytics specs. · 98c9d120
      Timothy Andrew authored
      1. Generalise the specs that will be common across all cycle analytics
         phases.
      
      2. Rewrite specs `issue` and `plan` to use this abstracted testing
         strategy.
      
      3. Specs that are specific to a given phase, or unwieldy to test in an
         abstracted manner, are added to each phase's spec.
      98c9d120
    • Timothy Andrew's avatar
      Add tests for the `plan` cycle analytics phase. · 0f748605
      Timothy Andrew authored
      Clean up the `issue` tests as well
      0f748605
    • Timothy Andrew's avatar
      Tweak cycle analytics query to match the current requirements. · 0910868d
      Timothy Andrew authored
      - The `review` phase ends when a MR is merged, not "merged OR closed".
      - The `code` phase starts when a MR is first mentioned in a commit, and
        ends when a merge request closing the issue is created.
      - The `plan` phase ends when the issue first mentioned in a commit.
      
      ---
      
      - Fix the `median` function so it sorts the incoming data points.
      - A data point where `end_time` is prior to `start_time` is invalid.
      0910868d
  3. 26 Aug, 2016 18 commits
    • Timothy Andrew's avatar
      Authorize access to cycle analytics. · 2f57eee7
      Timothy Andrew authored
      All users with "Reporter" access (and above) to a project can see the
      Cycle Analytics page.
      2f57eee7
    • Timothy Andrew's avatar
      Fetch cycle analytics data for a specific date range. · 331080bc
      Timothy Andrew authored
      1. Supported date ranges are 30 / 90 days ago. The default is 90 days
         ago.
      
      2. All issues created before "x days ago" are filtered out, even if they
         have other related data (test runs, merge requests) within the filter
         range.
      331080bc
    • Timothy Andrew's avatar
      Fix minor error in 'CycleAnalytics#show' · ce6bcdd0
      Timothy Andrew authored
      - <Not enough data> wasn't being displayed in the 'Issue' and 'Plan'
        sections.
      ce6bcdd0
    • Timothy Andrew's avatar
      df6c9c33
    • Timothy Andrew's avatar
      a81de9ab
    • Timothy Andrew's avatar
      Allow multiple queries for each cycle analytics section. · ebc03833
      Timothy Andrew authored
      1. Pass in an array of queries - the first to return a value will be
         used. This makes it easier to add more heuristics later.
      
      2. Convert all queries with 'or' in the title to two separate queries.
      
      3. Rename all `mr_` methods to `merge_request_`
      ebc03833
    • Timothy Andrew's avatar
      Add the "Test" cycle analytics section. · fc92d066
      Timothy Andrew authored
      fc92d066
    • Timothy Andrew's avatar
      Add the "Production" cycle analytics section. · 3d5729a7
      Timothy Andrew authored
      1. Rewrite the `Queries` module to work off a `data_point` hash, with
         `issue` and `merge_request` as keys. The "production" query needs
         both an issue and a merge request to make it's calculation, so it
         makes sense to keep things consistent and provide the same
         data (issue + merge request) for all queries.
      3d5729a7
    • Timothy Andrew's avatar
      d3fef0fb
    • Timothy Andrew's avatar
      Add the "Review" cycle analytics section. · 14d6317e
      Timothy Andrew authored
      14d6317e
    • Timothy Andrew's avatar
      Add the "Code" Cycle Analytics section. · 487906b3
      Timothy Andrew authored
      1. Record the `wip_flag_first_removed_at` and
         `first_assigned_to_user_other_than_author` metrics for a merge
         request. Use a `merge_request_metrics` table, similar to the one for
         `issues`. Metrics are recorded `after_save`.
      
      2. Move larger queries to a `CycleAnalytics::Queries` module.
      487906b3
    • Timothy Andrew's avatar
      Add the "Plan" Cycle Analytics query. · f932bb8e
      Timothy Andrew authored
      1. Move from raw SQL to ActiveRecord.
      2. Add a non-persisted `CycleAnalytics` model to store all the queries.
      f932bb8e
    • Timothy Andrew's avatar
      Display numbers for the "Issue (Tracker)" cycle analytics metric. · 8ccea81c
      Timothy Andrew authored
      1. Code is messy and untested, but it is a start.
      8ccea81c
    • Timothy Andrew's avatar
      Add an `Issue::Metrics` model. · 516c838a
      Timothy Andrew authored
      - And store the `first_associated_with_milestone_at` and
        `first_added_to_board_at` times, when an issue is saved.
      516c838a
    • Jacob Schatz's avatar
      Merge branch 'reduce-contributions-calendar-payload' into 'master' · 1bf2fe27
      Jacob Schatz authored
      Reduce contributions calendar data payload
      
      ## What does this MR do?
      Reduces the contributions calendar data payload by only passing contribution dates and counts
      
      ## Are there points in the code the reviewer needs to double check?
      Please double check my javascript code 😃 
      
      ## Why was this MR needed?
      
      Reduce user's bandwidth and decrease website loading time
      
      ## What are the relevant issue numbers?
      Closes #20862 
      
      ## Screenshots (if relevant)
      Before:
      ![Screen_Shot_2016-08-11_at_3.55.55_PM](/uploads/382842b3c889978bb302bd9057701ec3/Screen_Shot_2016-08-11_at_3.55.55_PM.png)
      ```
      new Calendar(
        {"1439269200":0,"1439355600":0,"1439442000":0,"1439528400":0,"1439614800":0,"1439701200":0,"1439787600":0,"1439874000":0,"1439960400":0,"1440046800":0,"1440133200":0,"1440219600":0,"1440306000":0,"1440392400":0,"1440478800":0,"1440565200":0,"1440651600":0,"1440738000":0,"1440824400":0,"1440910800":0,"1440997200":0,"1441083600":0,"1441170000":0,"1441256400":0,"1441342800":0,"1441429200":0,"1441515600":0,"1441602000":0,"1441688400":0,"1441774800":0,"1441861200":0,"1441947600":0,"1442034000":0,"1442120400":0,"1442206800":0,"1442293200":0,"1442379600":0,"1442466000":0,"1442552400":0,"1442638800":0,"1442725200":0,"1442811600":0,"1442898000":0,"1442984400":0,"1443070800":0,"1443157200":0,"1443243600":0,"1443330000":0,"1443416400":0,"1443502800":0,"1443589200":0,"1443675600":0,"1443762000":0,"1443848400":0,"1443934800":0,"1444021200":0,"1444107600":0,"1444194000":0,"1444280400":0,"1444366800":0,"1444453200":0,"1444539600":0,"1444626000":0,"1444712400":0,"1444798800":0,"1444885200":0,"1444971600":0,"1445058000":0,"1445144400":0,"1445230800":0,"1445317200":0,"1445403600":0,"1445490000":0,"1445576400":0,"1445662800":0,"1445749200":0,"1445835600":0,"1445922000":0,"1446008400":0,"1446094800":0,"1446181200":0,"1446267600":0,"1446354000":0,"1446444000":0,"1446530400":0,"1446616800":0,"1446703200":0,"1446789600":0,"1446876000":0,"1446962400":0,"1447048800":0,"1447135200":0,"1447221600":0,"1447308000":0,"1447394400":0,"1447480800":0,"1447567200":0,"1447653600":0,"1447740000":0,"1447826400":0,"1447912800":0,"1447999200":0,"1448085600":0,"1448172000":0,"1448258400":0,"1448344800":0,"1448431200":0,"1448517600":0,"1448604000":0,"1448690400":0,"1448776800":0,"1448863200":0,"1448949600":0,"1449036000":0,"1449122400":0,"1449208800":0,"1449295200":0,"1449381600":0,"1449468000":0,"1449554400":0,"1449640800":0,"1449727200":0,"1449813600":0,"1449900000":0,"1449986400":0,"1450072800":0,"1450159200":0,"1450245600":0,"1450332000":0,"1450418400":0,"1450504800":0,"1450591200":0,"1450677600":0,"1450764000":0,"1450850400":0,"1450936800":0,"1451023200":0,"1451109600":0,"1451196000":0,"1451282400":0,"1451368800":0,"1451455200":0,"1451541600":0,"1451628000":0,"1451714400":0,"1451800800":0,"1451887200":0,"1451973600":0,"1452060000":0,"1452146400":0,"1452232800":0,"1452319200":0,"1452405600":0,"1452492000":0,"1452578400":0,"1452664800":0,"1452751200":0,"1452837600":0,"1452924000":0,"1453010400":0,"1453096800":0,"1453183200":0,"1453269600":0,"1453356000":0,"1453442400":0,"1453528800":0,"1453615200":0,"1453701600":0,"1453788000":0,"1453874400":0,"1453960800":0,"1454047200":0,"1454133600":0,"1454220000":0,"1454306400":0,"1454392800":0,"1454479200":0,"1454565600":0,"1454652000":0,"1454738400":0,"1454824800":0,"1454911200":0,"1454997600":0,"1455084000":0,"1455170400":0,"1455256800":0,"1455343200":0,"1455429600":0,"1455516000":0,"1455602400":0,"1455688800":0,"1455775200":0,"1455861600":0,"1455948000":0,"1456034400":0,"1456120800":0,"1456207200":0,"1456293600":0,"1456380000":0,"1456466400":0,"1456552800":0,"1456639200":0,"1456725600":0,"1456812000":0,"1456898400":0,"1456984800":0,"1457071200":0,"1457157600":0,"1457244000":0,"1457330400":0,"1457416800":0,"1457503200":0,"1457589600":0,"1457676000":0,"1457762400":0,"1457848800":0,"1457931600":0,"1458018000":0,"1458104400":0,"1458190800":0,"1458277200":0,"1458363600":0,"1458450000":0,"1458536400":0,"1458622800":0,"1458709200":0,"1458795600":0,"1458882000":0,"1458968400":0,"1459054800":0,"1459141200":0,"1459227600":0,"1459314000":0,"1459400400":0,"1459486800":0,"1459573200":0,"1459659600":0,"1459746000":0,"1459832400":0,"1459918800":0,"1460005200":0,"1460091600":0,"1460178000":0,"1460264400":0,"1460350800":0,"1460437200":0,"1460523600":0,"1460610000":0,"1460696400":0,"1460782800":0,"1460869200":0,"1460955600":0,"1461042000":0,"1461128400":0,"1461214800":0,"1461301200":0,"1461387600":0,"1461474000":0,"1461560400":0,"1461646800":0,"1461733200":0,"1461819600":0,"1461906000":0,"1461992400":0,"1462078800":0,"1462165200":0,"1462251600":0,"1462338000":0,"1462424400":0,"1462510800":0,"1462597200":0,"1462683600":0,"1462770000":0,"1462856400":0,"1462942800":0,"1463029200":0,"1463115600":0,"1463202000":0,"1463288400":0,"1463374800":0,"1463461200":0,"1463547600":0,"1463634000":0,"1463720400":0,"1463806800":0,"1463893200":0,"1463979600":0,"1464066000":0,"1464152400":0,"1464238800":0,"1464325200":0,"1464411600":0,"1464498000":0,"1464584400":0,"1464670800":0,"1464757200":0,"1464843600":0,"1464930000":0,"1465016400":0,"1465102800":0,"1465189200":0,"1465275600":0,"1465362000":0,"1465448400":0,"1465534800":0,"1465621200":0,"1465707600":0,"1465794000":0,"1465880400":0,"1465966800":0,"1466053200":0,"1466139600":0,"1466226000":0,"1466312400":0,"1466398800":0,"1466485200":0,"1466571600":0,"1466658000":0,"1466744400":0,"1466830800":0,"1466917200":0,"1467003600":0,"1467090000":0,"1467176400":0,"1467262800":0,"1467349200":0,"1467435600":0,"1467522000":0,"1467608400":0,"1467694800":0,"1467781200":0,"1467867600":0,"1467954000":0,"1468040400":0,"1468126800":0,"1468213200":0,"1468299600":0,"1468386000":0,"1468472400":0,"1468558800":0,"1468645200":0,"1468731600":0,"1468818000":0,"1468904400":0,"1468990800":0,"1469077200":0,"1469163600":17,"1469250000":0,"1469336400":0,"1469422800":3,"1469509200":14,"1469595600":54,"1469682000":0,"1469768400":4,"1469854800":1,"1469941200":0,"1470027600":0,"1470114000":0,"1470200400":1,"1470286800":0,"1470373200":1,"1470459600":0,"1470546000":0,"1470632400":0,"1470718800":0,"1470805200":0,"1470891600":2},
        '/u/root/calendar_activities'
      );
      ```
      
      
      After:
      ![Screen_Shot_2016-08-11_at_3.56.36_PM](/uploads/9325cdb8c0271075abee2a838c1a0787/Screen_Shot_2016-08-11_at_3.56.36_PM.png)
      
      ```
      new Calendar(
        {"1469163600":17,"1469422800":3,"1469509200":14,"1469595600":54,"1469768400":4,"1469854800":1,"1470200400":1,"1470373200":1,"1470891600":2},
        '/u/root/calendar_activities'
      );
      ```
      ## Does this MR meet the acceptance criteria?
      
      - [x] [CHANGELOG](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CHANGELOG) entry added
      - Tests
        - [x] All builds are passing
      - [x] Conform by the [style guides](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md#style-guides)
      - [x] Branch has no merge conflicts with `master` (if you do - rebase it please)
      - [x] [Squashed related commits together](https://git-scm.com/book/en/Git-Tools-Rewriting-History#Squashing-Commits)
      
      See merge request !5784
      1bf2fe27
    • Douwe Maan's avatar
      Merge branch 'capitalize-mentioned-issue-notes' into 'master' · f2df4c68
      Douwe Maan authored
      Capitalize mentioned issue timeline notes
      
      ## What does this MR do?
      Renames `mentioned in` to `Mentioned in` for issue timeline notes
      
      ## Are there points in the code the reviewer needs to double check?
      Shouldn't be any 😄 
      
      ## Why was this MR needed?
      Resolves existing UI inconsistency as all the other issue timeline notes have their first letter capitalized.
      
      ## What are the relevant issue numbers?
      Closes #21416 
      
      ## Screenshots (if relevant)
      Before:
      ![Screen_Shot_2016-08-25_at_10.52.47_AM](/uploads/61de0a7d65fd739a6e565f6e63d2f52d/Screen_Shot_2016-08-25_at_10.52.47_AM.png)
      
      After:
      ![Screen_Shot_2016-08-25_at_10.52.05_AM](/uploads/f67f353c285453306d6b80578b11e587/Screen_Shot_2016-08-25_at_10.52.05_AM.png)
      
      ## Does this MR meet the acceptance criteria?
      
      - [x] [CHANGELOG](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CHANGELOG) entry added
      - Tests
        - [x] All builds are passing
      - [x] Conform by the [style guides](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md#style-guides)
      - [x] Branch has no merge conflicts with `master` (if you do - rebase it please)
      - [x] [Squashed related commits together](https://git-scm.com/book/en/Git-Tools-Rewriting-History#Squashing-Commits)
      
      See merge request !6028
      f2df4c68
    • Jacob Schatz's avatar
      Merge branch 'add-hover-color-emoji-icon' into 'master' · 9704fa22
      Jacob Schatz authored
      Add hover color to emoji icon
      
      ## What does this MR do?
      Adds hover color to emoji icon in discussions
      
      ## Are there points in the code the reviewer needs to double check?
      Shouldn't be
      
      ## Why was this MR needed?
      Keep consistency of color highlighting to indicate action icon
      
      ## What are the relevant issue numbers?
      Closes #20629 
      
      ## Screenshots (if relevant)
      Before:
      ![Gcy0V4Cjp9](/uploads/96a7a683fe2d526b74a05d7cc91c9fa0/Gcy0V4Cjp9.gif)
      After:
      ![TAmusA6o1z](/uploads/1baf20390d2f1442b5fae84ae42914ce/TAmusA6o1z.gif)
      
      ## Does this MR meet the acceptance criteria?
      
      - [x] [CHANGELOG](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CHANGELOG) entry added
      - Tests
        - [x] All builds are passing
      - [x] Conform by the [style guides](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md#style-guides)
      - [x] Branch has no merge conflicts with `master` (if you do - rebase it please)
      - [x] [Squashed related commits together](https://git-scm.com/book/en/Git-Tools-Rewriting-History#Squashing-Commits)
      
      See merge request !5673
      9704fa22
    • Robert Speicher's avatar
      Merge branch 'fix-external-issue-tracker-link' into 'master' · e4336ba0
      Robert Speicher authored
      Fix external issue tracker "Issues" link leading to 404s
      
      ## What does this MR do?
      
      This MR fixes the redirection to the wrong URL when using an external issue tracker, such as JIRA or Redmine.  a70431f8 modified the behavior to link to the external issue tracker
      issues URL instead of the project path URL. This restores the previous behavior.
      
      ## Why was this MR needed?
      
      The issues URL often has `:id` associated with it for linking mentioned issues.
      For external issue trackers, the project page is the intended target.
      
      ## What are the relevant issue numbers?
      
      Closes #21252
      
      Related to #21402
      
      See merge request !6006
      e4336ba0
  4. 25 Aug, 2016 10 commits