BigW Consortium Gitlab

  1. 17 Jun, 2016 40 commits
    • Merge branch 'repo-check-require-push-events' into 'master' · 1db4fd3a
      Robert Speicher authored
      Do not check repos without push events
      
      Reduce false positives from automatic repository checks by skipping
      projects without push events.
      
      See merge request !4684
    • Merge branch '18034-cache-todo-counter' into 'master' · bb4a1ef6
      Yorick Peterse authored
      Cache todo counters (pending/done)
      
      See merge request !4438
    • Merge branch 'assignee-dropdown-selected' into 'master' · 39a3ab7f
      Jacob Schatz authored
      Fixed issue with assignee dropdown not selecting correctly
      
      ## What does this MR do?
      
      Fixes an issue with assignee dropdown not selecting correctly.
      
      See merge request !4762
    • Merge branch 'clipboard-buttons-fix' into 'master' · 6c37e0f6
      Robert Speicher authored
      Fix clipboard buttons on "Check out branch" modal.
      
      Closes #18794 
      
      See merge request !4760
    • Merge branch 'clipboard-button-styling' into 'master' · 04f72a3b
      Robert Speicher authored
      Fixed styling of clipboard button
      
      Closes #18773 
      
      See merge request !4728
    • Merge branch '18745-fix' into 'master' · 022dfd8e
      Stan Hu authored
      Fix a 'wrong number of arguments' error
      
      ## What does this MR do?
      
      Fixes #18745.
      
      ## Are there points in the code the reviewer needs to double check?
      
      No.
      
      ## Why was this MR needed?
      
      To fix #18745.
      
      ## What are the relevant issue numbers?
      
      Fixes #18745.
      
      ## Does this MR meet the acceptance criteria?
      
      - [ ] Tests
        - [ ] 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 !4757
    • Merge branch 'track-total-method-call-time' into 'master' · a6e8ff21
      Robert Speicher authored
      Track method call times/counts as a single metric
      
      This changes method call tracking so only a single metric is emitted regardless of the number of calls. This allows us to more accurately measure the total execution time of a method as well as the number of times a method is called. See 851e3ff7578973c2206628424eac3b951a3c656d for more details.
      
      Method call tracking tracked calls individually meaning the end statistics may not always be accurate enough to get a good understanding of where time is spent.
      
      See merge request !4754
    • Merge branch 'sidekiq-api-metrics' into 'master' · 4d916160
      Achilleas Pipinellis authored
      Added API endpoint for Sidekiq Metrics.
      
      ## What does this MR do?
      
      It adds an API endpoint to gather metrics about Sidekiq, it's jobs, queues, and processes.
      
      ## Why was this MR needed?
      
      There was no API endpoint for Sidekiq information.
      
      ## What are the relevant issue numbers?
      
      Fixes #7171
      
      ## Does this MR meet the acceptance criteria?
      
      - [x] [CHANGELOG](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CHANGELOG) entry added
      - [x] [Documentation created/updated](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/development/doc_styleguide.md)
      - [x] API support added
      - [x] Tests
        - [x] Added for this feature/bug
        - [x] All builds are passing
      
      See merge request !4653
    • Fix clibpoard buttons on "Check out branch" modal. · 12b39524
      Connor Shea authored
      Also document the clipboard_button_with_class method.
      
      Fixes #18794.
    • Track method call times/counts as a single metric · be3b8784
      Yorick Peterse authored
      Previously we'd create a separate Metric instance for every method call
      that would exceed the method call threshold. This is problematic because
      it doesn't provide us with information to accurately get the _total_
      execution time of a particular method. For example, if the method
      "Foo#bar" was called 4 times with a runtime of ~10 milliseconds we'd end
      up with 4 different Metric instances. If we were to then get the
      average/95th percentile/etc of the timings this would be roughly 10
      milliseconds. However, the _actual_ total time spent in this method
      would be around 40 milliseconds.
      
      To solve this problem we now create a single Metric instance per method.
      This Metric instance contains the _total_ real/CPU time and the call
      count for every instrumented method.
    • Merge branch 'registry-500-fix' into 'master' · 1ca1ebc0
      Rémy Coutable authored
      Properly support application/json in Container Registry
      
      ## What does this MR do?
      When requesting tags a `application/json` is used by `docker/distribution`.
      
      ## Why was this MR needed?
      Fixes regression introduced by https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/4669
      
      ## What are the relevant issue numbers?
      Fixes https://gitlab.com/gitlab-org/gitlab-ce/issues/18736
      
      
      See merge request !4742
    • Cache todo counters (pending/done) · f6bfa46d
      Paco Guzman authored
      - As todos are created/updated inside the TodoService
      we repopulate the cache just there for both pending/done todos
      - Todos as mark as done from the TodosController we update cache
      there too
      - All the added methods are kept in the User class for cohesion
    • Fix a 'wrong number of arguments' error · 266fd116
      Rémy Coutable authored
      Signed-off-by: 's avatarRémy Coutable <remy@rymai.me>
    • Merge branch 'fix-toggling-task-should-not-generate-todo' into 'master' · fcd9f906
      Robert Speicher authored
      Fix error when editing an issuable with a task list
      
      Closes #18712
      
      See merge request !4751
    • Merge branch 'secure-request-uris' into 'master' · ed5f17cc
      Yorick Peterse authored
      Filter out sensitive parameters of metrics data
      
      See merge request !4748
    • Merge branch 'update-column-in-batches-where' into 'master' · 8dccfb4a
      Robert Speicher authored
      Allow customising of queries used for `update_column_in_batches`
      
      This MR makes two changes to `add_column_with_default` and `update_column_in_batches`:
      
      1. `add_column_with_default` no longer wraps the entire set of updates in a single transaction, preventing any locks from sticking around for the duration of the entire transaction
      2. `update_column_in_batches` now takes a block which can be used to customise the queries. This uses Arel as messing with raw SQL strings is a total pain
      
      In !4381 there's a need for updating existing rows/columns in a table in batches using a custom `WHERE` condition. Without the changes in this MR this would not be possible.
      
      See merge request !4680
    • Merge branch 'upgrade-ruby-tests-to-23' into 'master' · 3764f118
      Douwe Maan authored
      Upgrade Ruby 2.2 tests to 2.3
      
      This changes the GitLab CI Tests that test compatibility with Ruby 2.2
      to instead test compat with Ruby 2.3.
      
      We’ve discussed skipping straight to 2.3.0 when next upgrading the
      required Ruby version.
      
      Since Rails 5 requires 2.2.2, and we have to upgrade anyway, may as
      well do it now and not risk having to upgrade again come Rails 5.1 or
      5.2.
      
      Test failures on Ruby 2.3 do not fail the build.
      
      Related: #12507, #12835 
      
      See merge request !3807
    • Correct Sidekiq Metrics Docs · 33b66f9c
      Patricio Cano authored
    • Fixed Rubocop error · 8ad18845
      Patricio Cano authored
    • Added CHANGELOG item. · 9c87eeb3
      Patricio Cano authored
    • Merge branch 'contrib-calendar-colors' into 'master' · 7b944e01
      Jacob Schatz authored
      Fixed issue with user calendar colors
      
      ## What does this MR do?
      
      Fixes an issue with the colors added onto the user contrib calendar. The calendar was change recently to remove a library which affected how the colors where generated.
      
      ## What are the relevant issue numbers?
      
      Closes #18505 
      
      ## Screenshots (if relevant)
      
      ![Screen_Shot_2016-06-13_at_09.33.10](/uploads/f17451d2eb805e9d75d859cd1691e0bc/Screen_Shot_2016-06-13_at_09.33.10.png)
      
      See merge request !4614
    • Merge branch 'make-spring-optional' into 'master' · 6c292e90
      Douwe Maan authored
      Make spring optional
      
      Require to `ENABLE_SPRING=1` to use spring. This assumes that you use binstubs from `bin/` which is true in most cases.
      
      cc @jacobvosmaer-gitlab 
      
      See merge request !4752
    • Fix update_column_in_batches to update all rows · c1e756c2
      Yorick Peterse authored
      This changes update_column_in_batches to ensure it always updates all
      rows now. These changes also allow for an extra SELECT query to be
      removed, nor does it use the row count for determining offsets and the
      likes; instead it's only used to determine the batch size.
    • Add master-only limitation. · b8a8f848
      Connor Shea authored
    • Merge branch '18724-dont-show-leave-project-to-group-member' into 'master' · 8c2697ea
      Douwe Maan authored
      Don't show 'Leave Project' to group members
      
      ## What does this MR do?
      
      It hides the 'Leave Project' button to group members that are not explicitly a member of the project.
      
      ## Are there points in the code the reviewer needs to double check?
      
      No.
      
      ## Why was this MR needed?
      
      Because there was an issue opened!
      
      ## What are the relevant issue numbers?
      
      Fixes #18724.
      
      ## Does this MR meet the acceptance criteria?
      
      - [x] [CHANGELOG](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CHANGELOG) entry added
      - [x] Tests
        - [x] Added for this feature/bug
        - [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 !4739
    • Merge branch '14918-add-filter-dropdown-to-tag-page' into 'master' · 80240957
      Rémy Coutable authored
      Add sorting dropdown to tag page
      
      ## What does this MR do?
      
      Adds a sorting dropdown to the tags page just like the one on the branches page.
      
      ## Are there points in the code the reviewer needs to double check?
      
      No
      
      ## Why was this MR needed?
      
      Clients were asking for this
      
      ## What are the relevant issue numbers?
      
      Closes #14918
      
      ## Screenshots (if relevant)
      
      ![Captura_de_pantalla_2016-06-01_a_las_4.07.58_p.m.](/uploads/4530683ddd91d3bdbdce77748fe63f87/Captura_de_pantalla_2016-06-01_a_las_4.07.58_p.m..png)
      
      See merge request !4423
    • Merge branch 'feature/project-export' into 'master' · 9b7fd748
      Douwe Maan authored
      Export project functionality
      
      This is a MR for the export functionality of https://gitlab.com/gitlab-org/gitlab-ce/issues/3050, which adds the ability to export single projects.
      
      - [x] members
      - DB data
        - [x] issues
        - [x] issue comments
        - [x] merge requests
        - [x] merge request diff
        - [x] merge request comments
        - [x] labels
        - [x] milestones
        - [x] snippets
        - [x] releases
        - [x] events
        - [x] commit statuses
        - [x] CI builds
      - File system data
        - [x] Git repository
        - [x] wiki
        - [x] uploads
        - [ ] ~~CI build traces~~
        - [ ] ~~CI build artifacts~~
        - [ ] ~~LFS objects~~
      - DB configuration
        - [x] services
        - [x] web hooks
        - [x] protected branches
        - [x] deploy keys
        - [x] CI variables
        - [x] CI triggers
      
      See merge request !3114
    • Use response_body · 35319aa4
      Kamil Trzcinski authored
    • Merge branch 'fix/error-when-job-variables-not-defined-but-specified' into 'master' · ae4491b4
      Rémy Coutable authored
      Fix error when CI job variables key used but not specified
      
      ## What does this MR do?
      
      This MR fixes a an error when CI job variables specified, but not defined:
      
      ```yaml
      image: ruby:2.2
      
      test:
        variables:
        script:
           - rspec
      ```
      
      ## What are the relevant issue numbers?
      
      Closes #18764  
      Follow up discussion in: #18775 
      
      ## Does this MR meet the acceptance criteria?
      
      - [x] [CHANGELOG](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CHANGELOG) entry added
      - [x] Tests
        - [x] Added for this feature/bug
        - [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] [Squashed related commits together](https://git-scm.com/book/en/Git-Tools-Rewriting-History#Squashing-Commits)
      
      See merge request !4745
    • Merge branch 'make-sure-that-artifacts-file-is-saved' into 'master' · 439e154c
      Rémy Coutable authored
      Make sure that artifacts_file is nullified after removing artifacts
      
      ## What does this MR do?
      Fixes a problem that `ExpireBuildArtifactsWorker` is executed for all previously removed artifacts.
      
      ## Why was this MR needed?
      Currently the `Ci::Build::erase_artifacts!` doesn't ensure that data are saved to database.
      The bang at end of this method lets you believe that it should do so.
      This adds a missing `save` to this method.
      
      ## What are the relevant issue numbers?
      None, yet.
      
      ## CHANGELOG
      Since this is regression in feature introduce in RC4 no CHANGELOG entry is needed.
      
      cc @grzesiek 
      
      
      See merge request !4741
    • Merge branch 'validate-only-except-regexp' into 'master' · 2d622d44
      Rémy Coutable authored
      Validate only and except regexp
      
      ## What does this MR do?
      Adds a better validation for only and except which can contain regexps.
      
      ## Why was this MR needed?
      Currently the RegexpError can be raised when processing next stage which leads to 500 in different places of code base.
      This adds early check that regexps used in only and except are valid.
      
      cc @grzesiek 
      
      - [x] [CHANGELOG](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CHANGELOG) entry added
      - [x] Tests
        - [x] Added for this feature/bug
        - [ ] All builds are passing
      - [ ] 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 !4736
    • Merge branch 'feature/project-import' into 'feature/project-export' · 8891bef2
      Douwe Maan authored
      Project import functionality
      
      This is a MR for the import functionality of https://gitlab.com/gitlab-org/gitlab-ce/issues/3050, which adds the ability to import single projects.
      
      Branched off https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/3114
      
      - [x] members
      - DB data
        - [x] issues
        - [x] issue comments
        - [x] merge requests
        - [x] merge request diff
        - [x] merge request comments
        - [x] labels
        - [x] milestones
        - [x] snippets
        - [x] releases
        - [x] events
        - [x] commit statuses
        - [x] CI builds
      - File system data
        - [x] Git repository
        - [x] wiki
        - [x] uploads
        - [ ] ~~CI build traces~~
        - [ ] ~~CI build artifacts~~
        - [ ] ~~LFS objects~~
      - DB configuration
        - [x] services
        - [x] web hooks
        - [x] protected branches
        - [x] deploy keys
        - [x] CI variables
        - [x] CI triggers
      
      See merge request !3142
    • Use ENABLE_SPRING to use it by default · 7b523eb1
      Kamil Trzcinski authored
    • Merge branch '2979-personal-access-tokens' into 'master' · a2ce5188
      Douwe Maan authored
      Allow creating Personal Access Tokens through the website
      
      Related to #2979 
      
      - Allow a user to create personal access tokens, and use them to authenticate
      - Refactor `API::Helpers` into `API::Helpers::Core` and `API::Helpers::Authentication`
      
      # Tasks
      
      - [ ]  #2979 (!3749)  - Personal Access Tokens
          - [x]  Basic Implementation
              - [x]  Add UI to add "Personal Access Tokens"
              - [x]  Reload `lib/api` on every request
              - [x]  Respect these tokens for API requests
              - [x]  Just a param or a header too?
              - [x]  Allow revoking tokens
              - [x]  Expire tokens
              - [x]  Left bar should have a "PAT" icon
              - [x]  Scopes?
              - [x]  Copy to Clipboard
              - [x]  Show active/inactive tokens separately
                  - [x]  No need to check for expired/revoked in the appropriate places
              - [x]  Why does regular ApplicationController check for private token?
              - [x]  Support non-API requests
              - [x]  Revert (or work on) `lib/api` eager loading
          - [x]  Create MR
          - [x]  Refactoring
          - [x]  Fix tests
          - [x]  Write more tests
          - [x]  Add screenshots to MR
          - [x]  Add description of query performance to MR
          - [x]  Limit the number of queries in the `personal_access_tokens` page
          - [x]  Wait for CI to pass
          - [x]  Fix merge issues in schema.rb
          - [x]  Assign MR to endboss
          - [x]  Wait for feedback
          - [x]  Fix feedback
              - [x]  Wait for CI to pass
          - [x]  Assign to @rspeicher
          - [x]  Fix @rspeicher's comments
          - [x]  Wait for CI to pass
          - [x]  Assign back to @rspeicher
          - [x]  Write documentation and ping @axil
          - [x]  Wait for Axil to respond
          - [x]  Assign to endboss
          - [x]  Address Douwe's feedback
              - [x]  Use the `private_token` or `authentication_token` param instead of `personal_access_token`
              - [x]  Ditto for the header
          - [x]  Assign to endboss
          - [x]  Make sure CI is green
          - [x]  Address Douwe's feedback
              - [x]  Don't go through the `authenticate_user_from_private_token!` method, if a private token is supplied (or combine them)
              - [x]  In `authenticate_user_from_personal_access_token!` don't hit DB if `token_string` is `nil`
              - [x]  Use `current_user.personal_access_tokens.build` in the controller
              - [x]  Remove the "We aren't using `personal_access_token` as the root param" comment
              - [x]  `No need for = "...", we can just have the Inactive ... #{...} on the next line` in the view
              - [x]  Render dates in a (more) human format
              - [x]  CSS issue with table
              - [x]  Don't show the tokens in the UI indefinitely
              - [x]  How to implement scopes? Add-on to current impl? Doorkeeper?
          - [x]  Wait for @DouweM's comments about scopes
          - [x]  Address @DouweM's second review 
              - [x]  Try not using `native['innerHTML']`
              - [x]  use contexts for all "when ..."
              - [x]  Ensure consistency (styling) with other pages for "You don't have any tokens" message
              - [x]  "Actions" table column doesn't need a label
              - [x]  %td can be moved outside of the if/else statement
              - [x]  The header title should be "Profile Settings"
              - [x]  Can this be a `before_create`, so we don't need to use `generate`?
              - [x]  If it couldn't be revoked, will we show an error?
              - [x]  If it couldn't be saved, will we show an error?
          - [x]  Merge master
          - [x]  Update CHANGELOG entry
          - [x]  Add tests for form errors?
          - [x]  Post screenshots
          - [x]  Tag @jschatz1 for review
          - [x]  Wait for [build](https://gitlab.com/gitlab-org/gitlab-ce/commit/0dff6fd/builds) to pass
          - [x]  Respond to @jschatz1's comments
              - [x]  Hardcoded colors should be variables
              - [x]  Should not be allowed to chose a date in the past
              - [x]  Use the same table as in the Applications tab
              - [x]  button should say "Create Personal Access Token"
              - [x]  Float the revoke to the right on the `a`
              - [x]  Change revocation message. "Are you sure you want to revoke this certificate? This action cannot be undone."
              - [x]  Date stays selected and looks selected even though date is set as "never".
              - [x]  ~~hover on the calendar button shifts~~ (not caused by this MR - happens on `milestones#new` as well)
              - [x]  Don't use the panel for the created token
                  - [x]  Use a normal flash for "Your new personal access token has been created"
                  - [x]  Show the input (with the token) below it full width.
                  - [x]  Put the "Make sure you save it - you won't be able to access it again." message near the input
              - [x]  Have the input highlight all on single click
          - [x]  Update screenshots
          - [x]  Merge master in + conflicts
          - [x]  Assign to @jschatz1 again
          - [x]  Respond to @jschatz1's comments
              - [x]  No button for clipboard, only link
              - [x]  text-danger
              - [x]  highlight fade on that area where the token was created
          - [x]  Make sure [build](https://gitlab.com/gitlab-org/gitlab-ce/commit/d754d99179f1ffe846fcc1d8e858163b39efc5dc/builds) is green
          - [x]  Assign to @jschatz1
          - [x]  Wait for [build](https://gitlab.com/gitlab-org/gitlab-ce/commit/faa0e3f7580bc38d4d12916b4589c64d6c2678a7/builds) to pass
          - [x]  Respond to @DouweM's feedback
              - [x]  move the redirect_to out of the if/else
              - [x]  certificate -> token
              - [x]  datepicker back to text field
              - [x]  combine the get_user_from_private_token and get_user_from_personal_access_token methods in ApplicationController
              - [x]  combine the get_user_from_private_token and get_user_from_personal_access_token methods in `lib/api/helpers`
              - [x]  don't need the new constants
          - [x]  Wait for [build](https://gitlab.com/gitlab-org/gitlab-ce/commit/9d7cda3ddce52baad9618466a5d00319b333be57/builds) to pass
          - [ ]  Wait for merge
      
      # Screenshots
      ![Screen_Shot_2016-06-16_at_8.30.33_AM](/uploads/30a168964b7c5e0eb322705747829fb6/Screen_Shot_2016-06-16_at_8.30.33_AM.png)
      ![Screen_Shot_2016-06-16_at_8.30.44_AM](/uploads/7a8202885df6120071bbe81b215aaead/Screen_Shot_2016-06-16_at_8.30.44_AM.png)
      ![Screen_Shot_2016-06-16_at_8.31.02_AM](/uploads/6905c0848864e390138b771389c7a1b2/Screen_Shot_2016-06-16_at_8.31.02_AM.png)
      ![Screen_Shot_2016-06-16_at_8.31.29_AM](/uploads/0bc92369fb2f9bc335773f6abec421c3/Screen_Shot_2016-06-16_at_8.31.29_AM.png)
      
      See merge request !3749
    • Merge branch 'feature/project-export-ui-experimental' into 'feature/project-import' · 402b651a
      Douwe Maan authored
      Experimental UI for exporting and importing a project
      
      
      Part of https://gitlab.com/gitlab-org/gitlab-ce/issues/3050
      
      Screenshots of both the export and import processes:
      
      ## Export
      1 -  Project settings
      
       ![Screen_Shot_2016-06-16_at_15.29.27](/uploads/ec59113dae9132e594b79289e3598f5c/Screen_Shot_2016-06-16_at_15.29.27.png)
      
      2 -  Flash after clicking on export
      
      ![Screen_Shot_2016-06-16_at_15.29.47](/uploads/02f20d1500de4e0c9693218f9fb2c414/Screen_Shot_2016-06-16_at_15.29.47.png)
      
      3 - Email received with download link
      
      ![Screen_Shot_2016-06-16_at_15.36.19](/uploads/0f7e0a74125d9f1fa067eb52104397a5/Screen_Shot_2016-06-16_at_15.36.19.png)
      
      4 - The project settings export screen changes so we can either delete the file or download it again (it won't generate a new export, unless we delete it first)
      
      ![Screen_Shot_2016-06-16_at_15.28.43](/uploads/073f87cc751a857eac94e55d1d0c4ef9/Screen_Shot_2016-06-16_at_15.28.43.png)
      
      5 - After delete flash
      
      ![Screen_Shot_2016-06-16_at_15.29.10](/uploads/e80341aebcaed8f7713868793fda2b92/Screen_Shot_2016-06-16_at_15.29.10.png)
      
      ## Import
      1 - New project page with new gitlab export option
      
      ![Screen_Shot_2016-06-16_at_15.31.25](/uploads/246e823a52c5b0216354c4f5321f846b/Screen_Shot_2016-06-16_at_15.31.25.png)
      
      2 - Next step importing - choosing a file
      
      ![Screen_Shot_2016-06-16_at_15.32.23](/uploads/f91e72f68cc844577a0fc1935e3936d3/Screen_Shot_2016-06-16_at_15.32.23.png)
      
      3 - Import in progress
      
      ![Screen_Shot_2016-06-16_at_15.32.48](/uploads/41c774c0c03a91b60cd220ce77cab8e6/Screen_Shot_2016-06-16_at_15.32.48.png)
      
      4 - Import successful 
      
      ![Screen_Shot_2016-06-16_at_15.32.54](/uploads/337f9a07779999d00232f7ac61ed362b/Screen_Shot_2016-06-16_at_15.32.54.png)
      
      
      
      See merge request !4012
    • Make spring optional · d1157238
      Kamil Trzcinski authored