1. 22 Jun, 2016 9 commits
    • Robert Speicher's avatar
      Revert "Merge branch '388-option-to-disallow-author-to-approve-merge-request' into 'master' · 8c938b97
      Robert Speicher authored
      This reverts commit 09ab819e, reversing
      changes made to 041f3c27.
      8c938b97
    • Achilleas Pipinellis's avatar
      Merge branch 'doc/geo-89' into 'master' · 642b5485
      Achilleas Pipinellis authored
      Geo documentations improvement for 8.9
      
      Important changes:
      
      * Added note that we don't support MySQL (I don't know if we should add to the limitations or not)
      * Added related files to the TOC
      * Added disaster recovery instructions (we don't support this, but there are manual steps if anyone need)
      * Added troubleshooting instructions
      
      From recent feedback:
      
      We need to improve the SSH keys part of setup instructions, as it's unclear which ssh key you have to add at geo nodes screen and that you have to pre-authorize the connection once (add to known_hosts), so clones can actually work.
      
      Fixes gitlab-org/gitlab-ee#344
      
      See merge request !431
      642b5485
    • Douwe Maan's avatar
      Merge branch '372-approvals-are-lost-after-a-rebase-merge-action-fails' into 'master' · 6a09693d
      Douwe Maan authored
      Don't reset approvals after rebase from UI
      
      Rebasing from the UI should be considered a 'safe' action, so this
      should ignore the 'reset approvals on push' project
      setting.
      
      Unfortunately, as rebase is implemented by working directly on
      a copy of the repository and pushing (as it's not supported fully by
      libgit2), we can't detect this purely with information available to the
      PostReceive job. If we used commit metadata, the MR author could also
      add the same metadata and push without resetting approvals.
      
      To work around this, add a new column to the MergeRequest model to store
      the SHA from the rebase action. (Ensure that this is set before pushing,
      to avoid a race condition!) Then, in PostReceive, don't reset approvals
      if the pushed SHA matches the SHA stored in the database.
      
      ![Approval_reset](/uploads/cc3ae5f417d403b271aa25884af8f54b/Approval_reset.gif)
      
      Closes #372.
      
      @DouweM this was marked as 8.9 but I think it's a bit close to be adding ~"Pick into Stable" - what's the procedure for this? I'm open to changing this implementation; @vsizov and I discussed it this morning and this was the simplest solution we came up with.
      
      See merge request !489
      6a09693d
    • Achilleas Pipinellis's avatar
      de24f3fd
    • Gabriel Mazetto's avatar
      Spelling mistakes · 3443e2fe
      Gabriel Mazetto authored
      3443e2fe
    • Achilleas Pipinellis's avatar
      Merge branch 'mrchrisw/fix-permissions-link' into 'master' · 4ad74185
      Achilleas Pipinellis authored
      Fix link to permissions
      
      
      
      See merge request !495
      4ad74185
    • Sean McGivern's avatar
      Don't reset approvals after rebase from UI · 864870c6
      Sean McGivern authored
      Rebasing from the UI should be considered a 'safe' action, so this
      should ignore the 'reset approvals on push' project
      setting.
      
      Unfortunately, as rebase is implemented by working directly on
      a copy of the repository and pushing (as it's not supported fully by
      libgit2), we can't detect this purely with information available to the
      PostReceive job. If we used commit metadata, the MR author could also
      add the same metadata and push without resetting approvals.
      
      To work around this, add a new column to the MergeRequest model to store
      the SHA from the rebase action. (Ensure that this is set before pushing,
      to avoid a race condition!) Then, in PostReceive, don't reset approvals
      if the pushed SHA matches the SHA stored in the database.
      864870c6
    • Gabriel Mazetto's avatar
    • Chris Wilson's avatar
      Fix link to permissions · 9996fe84
      Chris Wilson authored
      9996fe84
  2. 21 Jun, 2016 20 commits
  3. 20 Jun, 2016 5 commits
  4. 19 Jun, 2016 1 commit
  5. 18 Jun, 2016 2 commits
  6. 17 Jun, 2016 3 commits
    • Stan Hu's avatar
      Fix Error 500 when attempting to sort merge requests by weight · 6ac89382
      Stan Hu authored
      Fixes #673
      6ac89382
    • Stan Hu's avatar
      Merge branch 'fix-jenkins-service-test-button' into 'master' · 23520789
      Stan Hu authored
      Fix JenkinsService test button
      
      When clicking the "Test" button on the JenkinsCI Service, the following error occurs:
      
      ```
      We tried to send a request to the provided URL but an error occurred: undefined method `message' for [200, ""]:Array 
      ```
      
      !374 changed the implementation to call the `WebHook`, which returns [status, message], instead of the return value of `HTTParty#post`.
      
      Closes #637
      
      See merge request !476
      23520789
    • Douwe Maan's avatar
      Merge branch 'file_locks' into 'master' · cda8de63
      Douwe Maan authored
      File Lock
      
      Fixes https://gitlab.com/gitlab-org/gitlab-ee/issues/497
      
      - [x] Data layer(tables, models, migrations)
      - [x] Checks on git push
      - [x] Author should be able to push if one owns the lock
      - [x] Path matcher with tokenizer and memoization
      - [x] Show lock status icons by files and folders
      - [x] UI: mockup buttons for locking files, folders
      - [x] UI: Locking files
      - [x] UI: Locking folders
      - [x] Permissions check everywhere
      - [x] Add page to list all locked files/dirs to get overview in case people forget to unlock
      - [x] Refactor `lock_file_button` and `lock_file_link`
      - [x] Testing Git LFS
      - [x] Get rid of code duplication in pre-receive hook
      - [x] Test case: I want to unlock file if I'm a developer and I'm not an author of lock
      - [x] Make it EE option
      - [x] Specs and spinach
      - [x] TODOs in the code
      
      Can be moved to the next iteration:
      - [ ] Duplicate lock checks in the service since pre-receive hook does not work for UI (according to Douwe)
      - [ ] timeago in the lock icon tooltip. It's not working out of the box.
      - [ ] Ajax load bar on click "Lock/Unlock" in the file tree
      - [ ] Nested locking UI. If we look at file and it's locked because of parent we should show it in tooltip. 
      
      
      **Screenshots**
      
      ![joxi_screenshot_1466188707474](/uploads/623e65c9a246b07c9786fd8babdb2dd8/joxi_screenshot_1466188707474.png)![joxi_screenshot_1466188735083](/uploads/4588eff352ee544de5bb5727d501a2cc/joxi_screenshot_1466188735083.png)![joxi_screenshot_1466188758950](/uploads/dee7b342c7825a79ed1629535eced5ed/joxi_screenshot_1466188758950.png)
      
      
      Related info:
      Douwe wrote:
      ```For a next iteration, we need to think about nested locking more. If user A has locked lib/, user B shouldn't be able to lock lib/foo.rb since that falls under lib/. Similarly, if user A has locked lib/foo.rb, user B shouldn't be able to lock lib/, because part of that directory is locked by someone else already.```
      
      See merge request !440
      cda8de63