1. 07 8月, 2016 3 次提交
  2. 05 8月, 2016 6 次提交
  3. 04 8月, 2016 7 次提交
  4. 03 8月, 2016 2 次提交
  5. 02 8月, 2016 1 次提交
  6. 31 7月, 2016 2 次提交
    • R
      Merge branch 'clarify-deletion-message' into 'master' · e299504b
      Robert Speicher 提交于
      Clarify which project is deleted to avoid alarm
      
      Some users were alarmed when navigating after deleting  a project. Add the project name to avoid cause for alarm.
      
      Closes #13654 
      
      See merge request !5574
      e299504b
    • R
      Merge branch 'reject-merge-conflicts' into 'master' · e12c1850
      Robert Speicher 提交于
      Properly abort a merge when merge conflicts occur
      
      If somehow a user attempted to accept a merge request that had conflicts (e.g. the "Accept Merge Request" button or the MR itself was not updated), `MergeService` did not properly detect that a conflict
      occurred. It would assume that the MR went through without any issues and close the MR as though everything was fine. This could cause data loss if the source branch were removed.
      
      Closes #20425
      
      See merge request !5569
      e12c1850
  7. 30 7月, 2016 6 次提交
  8. 29 7月, 2016 13 次提交
    • R
      Merge branch 'rubocop/enable-access-modifiers-cops' into 'master' · 34c083a1
      Robert Speicher 提交于
      Enable Rubocop cops that check access modifiers
      
      ## What does this MR do?
      
      This MR enables Rubocop cops that detect methods that should be restricted but are the part of public API because of access modifiers used improperly.
      
      This also fixes existing offenses.
      
      ## Why was this MR needed?
      
      Some method in our codebase are public instead of being private because it is sometimes difficult to get it right without static analysis.
      
      ## What are the relevant issue numbers?
      
      See #17478  
      Closes #17372 
      
      See merge request !5014
      34c083a1
    • R
      Merge branch 'refactor/ci-config-move-job-entries' into 'master' · 4284724d
      Rémy Coutable 提交于
      Move CI job config entries from legacy to new config
      
      ## What does this MR do?
      
      This MR extracts jobs configuration logic from legacy CI config processor to the new code.
      
      ## What are the relevant issue numbers?
      
      #15060
      
      ## Does this MR meet the acceptance criteria?
      
      - 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)
      
      See merge request !5087
      4284724d
    • R
      Merge branch '20371-artifacts_present_db_check' into 'master' · df60723e
      Rémy Coutable 提交于
      Check for Ci::Build artifacts at database level
      
      ## What does this MR do?
      
      Check for the presence of artifacts not expired at database level
      
      ## Are there points in the code the reviewer needs to double check?
      
      N/A
      
      ## Why was this MR needed?
      
      To try to improve a little the performance of the pipelines page
      
      ## What are the relevant issue numbers?
      
      Closes #20371
      
      ## Screenshots (if relevant)
      
      N/A
      
      ## Does this MR meet the acceptance criteria?
      
      - [x] [CHANGELOG](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CHANGELOG) entry added
      - ~~[ ] [Documentation created/updated](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/development/doc_styleguide.md)~~
      - ~~[ ] API support added~~
      - Tests
        - [x] Added for this feature/bug
        - [ ] 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 !5543
      df60723e
    • G
      a42cce1b
    • P
      Check for Ci::Build artifacts at database level · d05af7b7
      Paco Guzman 提交于
      d05af7b7
    • Y
      Merge branch '14775-diff-collection-iteration' into 'master' · 41057b85
      Yorick Peterse 提交于
      Bump gitlab_git to speedup DiffCollection iterations
      
      See merge request !5564
      41057b85
    • P
      Bump gitlab_git to speedup DiffCollection iterations · 6595d6aa
      Paco Guzman 提交于
      6595d6aa
    • Y
      Method for returning issues readable by a user · 002ad215
      Yorick Peterse 提交于
      The method Ability.issues_readable_by_user takes a list of users and an
      optional user and returns an Array of issues readable by said user. This
      method in turn is used by
      Banzai::ReferenceParser::IssueParser#nodes_visible_to_user so this
      method no longer needs to get all the available abilities just to check
      if a user has the "read_issue" ability.
      
      To test this I benchmarked an issue with 222 comments on my development
      environment. Using these changes the time spent in nodes_visible_to_user
      was reduced from around 120 ms to around 40 ms.
      002ad215
    • R
      Merge branch '18193-no-one-can-push' into 'master' · 242f8377
      Rémy Coutable 提交于
      Allow creating protected branches that can't be pushed to
      
      ## What does this MR do?
      
      - Add "No one can push" as a setting to protected branches.
      - This applies to Masters (as well as all other users)
      
      ## What are the relevant issue numbers?
      
      Closes #18193 
      
      ## Does this need an EE merge request?
      
      Yes. gitlab-org/gitlab-ee!569
      
      ## Screenshots
      
      ![Screen_Shot_2016-07-29_at_3.14.59_PM](/uploads/2e8774c311763bc6e570501a2e6cabf7/Screen_Shot_2016-07-29_at_3.14.59_PM.png)
      
      ## TODO
      
      - [ ]  #18193 !5081 No one can push to protected branches
          - [x]  Implementation
              - [x]  Model changes
                  - [x]  Remove "developers_can_merge" and "developers_can_push"
                  - [x]  Replace with `ProtectedBranchPushAccess` and `ProtectedBranchMergeAccess`
                      - [x]  Reversible migration
                      - [x]  Raise error on failure
                      - [x]  MySQL
              - [x]  Backend changes
                  - [x]  Creating a protected branch creates access rows
                  - [x]  Add `no_one` as an access level
                  - [x]  Enforce "no one can push" 
                  - [x]  Allow setting levels while creating protected branches?
              - [x]  Frontend
                  - [x]  Replace checkboxes with `select`s
          - [x]  Add tests
          - [x]  `GitPushService` -> new projects' default branch protection
          - [x]  Fix existing tests
          - [x]  Refactor
          - [x]  Test workflows by hand
              - [x]  from the Web UI
                  - [x]  When "Allowed to Push" is "No one"
                      - [x]  Developers can't push
                      - [x]  Masters can't push
                  - [x]  When "Allowed to Push" is "Developers + Masters"
                      - [x]  Developers can push
                      - [x]  Masters can push
                  - [x]  When "Allowed to Push" is "Masters"
                      - [x]  Developers can't push
                      - [x]  Masters can push
                  - [x]  When "Allowed to Merge" is "Masters" and "Allowed to Push" is "Masters"
                      - [x]  Developers can't push
                      - [x]  Developers can't merge
                      - [x]  Masters can merge
                      - [x]  Masters can push
                  - [x]  When "Allowed to Merge" is "Developers + Masters" and "Allowed to Push" is "Masters"
                      - [x]  Developers can't push
                      - [x]  Developers can merge
                      - [x]  Masters can merge
                      - [x]  Masters can push
                  - [x]  When "Allowed to Merge" is "Developers + Masters" and "Allowed to Push" is "No one"
                      - [x]  Developers can't push
                      - [x]  Developers can merge
                      - [x]  Masters can merge
                      - [x]  Masters can't push
                  - [x]  When "Allowed to Merge" is "Masters" and "Allowed to Push" is "No one"
                      - [x]  Developers can't push
                      - [x]  Developers can't merge
                      - [x]  Masters can merge
                      - [x]  Masters can't push
              - [x]  from CLI
                  - [x]  When "Allowed to Push" is "No one"
                      - [x]  Developers can't push
                      - [x]  Masters can't push
                  - [x]  When "Allowed to Push" is "Developers + Masters"
                      - [x]  Developers can push
                      - [x]  Masters can push
                  - [x]  When "Allowed to Push" is "Masters"
                      - [x]  Developers can't push
                      - [x]  Masters can push
                  - [x]  When "Allowed to Merge" is "Masters" and "Allowed to Push" is "Masters"
                      - [x]  Developers can't push
                      - [x]  Developers can't merge
                      - [x]  Masters can merge
                      - [x]  Masters can push
                  - [x]  When "Allowed to Merge" is "Developers + Masters" and "Allowed to Push" is "Masters"
                      - [x]  Developers can't push
                      - [x]  Developers can't merge
                      - [x]  Masters can merge
                      - [x]  Masters can push
                  - [x]  When "Allowed to Merge" is "Developers + Masters" and "Allowed to Push" is "No one"
                      - [x]  Developers can't push
                      - [x]  Developers can't merge
                      - [x]  Masters can't merge
                      - [x]  Masters can't push
                  - [x]  When "Allowed to Merge" is "Masters" and "Allowed to Push" is "No one"
                      - [x]  Developers can't push
                      - [x]  Developers can't merge
                      - [x]  Masters can't merge
                      - [x]  Masters can't push
          - [x]  Add tests for owners and admins
          - [x]  CHANGELOG
          - [x]  Screenshots
          - [x]  Documentation
          - [x]  Wait for ~~!4665~~ to be merged in
          - [x]  Wait for ~~gitlab-org/gitlab-ce#19872~~ and ~~gitlab-org/gitlab-ee!564~~ to be closed
          - [x]  Rebase against master instead of !4892
          - [x]  Make sure [build](https://gitlab.com/gitlab-org/gitlab-ce/commit/a4ca206fd1cc0332d1e385ddbc0f2e4065c3ae73/builds) is green
          - [x]  Create EE MR
              - [x]  Cherry pick commits
              - [x]  Make sure [build](https://gitlab.com/gitlab-org/gitlab-ee/commit/4e17190d7dc546c1f977edcafd1cbcea4bdb4043/builds) is green
          - [x]  Address @axil's comments
          - [x]  Assign to endboss
          - [x]  Wait for @dbalexandre's review
          - [x]  Address @dbalexandre's comments
          - [x]  Address @axil's comments
              - [x]  Align dropdowns
              - [x]  No flash when protected branch is updated
          - [x]  Resolve conflicts
          - [x]  Implement protect/unprotect API
          - [x]  Address @dbalexandre's comments
          - [x]  Update EE MR
          - [x]  Address @rymai's comments
              - [x]  Create/Update service should return a `ProtectedBranch`
              - [x]  Successfuly protected branch creation shouldn't `load_protected_branches`
              - [x]  Rename `allowed_to_merge` as #minimum_access_level_for_merge
              - [x]  Rename `allowed_to_push` as #minimum_access_level_for_push
              - [x]  Use `inclusion` and `Gitlab::Access` instead of an `enum`
              - [x]  Modify `check_access` to work with `Gitlab::Access`
              - [x]  Pass `@protected_branch` to `#execute` in `UpdateService`
              - [x]  simplify with a nested field `protected_branch[push_access_level][access_level]`
              - [x]  `developers_can_{merge,push}` should be handled in the API
              - [x]  Use `can?(current_user, ...)` instead of `current_user.can?(...)`
              - [x]  Instantiate `ProtectedBranchesAccessSelect` in `dispatcher.js`
              - [x]  constants regarding downtime migrations
              - [x]  Explicit `#down` for columns with default
          - [x]  Update EE MR
          - [ ]  Wait for CE merge
          - [ ]  Wait for EE merge
          - [ ]  Create issue for UI changes proposed by @zyv
      
      
      See merge request !5081
      242f8377
    • T
      Implement final review comments from @rymai. · cebcc417
      Timothy Andrew 提交于
      1. Instantiate `ProtectedBranchesAccessSelect` from `dispatcher`
      
      2. Use `can?(user, ...)` instead of `user.can?(...)`
      
      3. Add `DOWNTIME` notes to all migrations added in !5081.
      
      4. Add an explicit `down` method for migrations removing the
         `developers_can_push` and `developers_can_merge` columns, ensuring that
         the columns created (on rollback) have the appropriate defaults.
      
      5. Remove duplicate CHANGELOG entries.
      
      6. Blank lines after guard clauses.
      cebcc417
    • T
      Use `Gitlab::Access` to protected branch access levels. · 0a8aeb46
      Timothy Andrew 提交于
      1. It makes sense to reuse these constants since we had them duplicated
         in the previous enum implementation. This also simplifies our
         `check_access` implementation, because we can use
         `project.team.max_member_access` directly.
      
      2. Use `accepts_nested_attributes_for` to create push/merge access
         levels. This was a bit fiddly to set up, but this simplifies our code
         by quite a large amount. We can even get rid of
         `ProtectedBranches::BaseService`.
      
      3. Move API handling back into the API (previously in
         `ProtectedBranches::BaseService#translate_api_params`.
      
      4. The protected branch services now return a `ProtectedBranch` rather
         than `true/false`.
      
      5. Run `load_protected_branches` on-demand in the `create` action, to
         prevent it being called unneccessarily.
      
      6. "Masters" is pre-selected as the default option for "Allowed to Push"
         and "Allowed to Merge".
      
      7. These changes were based on a review from @rymai in !5081.
      0a8aeb46
    • T
      Fix `git_push_service_spec` · c93a895a
      Timothy Andrew 提交于
      1. Caused by incorrect test setup. The user wasn't added to the project,
         so protected branch creation failed authorization.
      
      2. Change setup for a different test (`Event.last` to
         `Event.find_by_action`) because our `project.team << ...` addition
         was causing a conflict.
      c93a895a
    • T
      Authorize user before creating/updating a protected branch. · 6d841eaa
      Timothy Andrew 提交于
      1. This is a third line of defence (first in the view, second in the
         controller).
      
      2. Duplicate the `API::Helpers.to_boolean` method in `BaseService`. The
         other alternative is to `include API::Helpers`, but this brings with it
         a number of other methods that might cause conflicts.
      
      3. Return a 403 if authorization fails.
      6d841eaa