1. 15 11月, 2016 1 次提交
  2. 02 11月, 2016 1 次提交
    • K
      Don't execute git hooks if you create branch as part of other change · a431ca0f
      Kamil Trzcinski 提交于
      Currently, our procedure for adding a commit requires us to execute `CreateBranchService` before file creation.
      It's OK, but also we do execute `git hooks` (the `PostReceive` sidekiq job) as part of this process.
      However, this hook is execute before the file is actually committed, so the ref is updated.
      
      Secondly, we do execute a `git hooks` after committing file and updating ref.
      This results in duplicate `PostReceive` jobs, where the first one is completely invalid.
      
      This change makes the branch creation, something that is intermediate step of bigger process (file creation or update, commit cherry pick or revert) to not execute git hooks.
      a431ca0f
  3. 15 9月, 2016 1 次提交
  4. 18 7月, 2016 1 次提交
  5. 14 7月, 2016 1 次提交
  6. 13 7月, 2016 1 次提交
    • T
      Refactor `Gitlab::GitAccess` · 60245bbe
      Timothy Andrew 提交于
      1. Don't use case statements for dispatch anymore. This leads to a lot
         of duplication, and makes the logic harder to follow.
      
      2. Remove duplicated logic.
      
          - For example, the `can_push_to_branch?` exists, but we also have a
            different way of checking the same condition within `change_access_check`.
      
          - This kind of duplication is removed, and the `can_push_to_branch?`
            method is used in both places.
      
      3. Move checks returning true/false to `UserAccess`.
      
          - All public methods in `GitAccess` now return an instance of
            `GitAccessStatus`. Previously, some methods would return
            true/false as well, which was confusing.
      
          - It makes sense for these kinds of checks to be at the level of a
            user, so the `UserAccess` class was repurposed for this. The prior
            `UserAccess.allowed?` classmethod is converted into an instance
            method.
      
          - All external uses of these checks have been migrated to use the
            `UserAccess` class
      
      4. Move the "change_access_check" into a separate class.
      
          - Create the `GitAccess::ChangeAccessCheck` class to run these
            checks, which are quite substantial.
      
          - `ChangeAccessCheck` returns an instance of `GitAccessStatus` as
            well.
      
      5. Break out the boolean logic in `ChangeAccessCheck` into `if/else`
         chains - this seems more readable.
      
      6. I can understand that this might look like overkill for !4892, but I
         think this is a good opportunity to clean it up.
      
          - http://martinfowler.com/bliki/OpportunisticRefactoring.html
      60245bbe
  7. 06 7月, 2016 3 次提交
  8. 18 4月, 2016 1 次提交
  9. 18 3月, 2016 1 次提交
  10. 02 3月, 2016 1 次提交
  11. 20 2月, 2016 10 次提交