- 12 8月, 2016 4 次提交
-
-
由 Kamil Trzcinski 提交于
-
由 Stan Hu 提交于
There is a race condition in DestroyGroupService now that projects are deleted asynchronously: 1. User attempts to delete group 2. DestroyGroupService iterates through all projects and schedules a Sidekiq job to delete each Project 3. DestroyGroupService destroys the Group, leaving all its projects without a namespace 4. Projects::DestroyService runs later but the can?(current_user, :remove_project) is `false` because the user no longer has permission to destroy projects with no namespace. 5. This leaves the project in pending_delete state with no namespace/group. Projects without a namespace or group also adds another problem: it's not possible to destroy the container registry tags, since container_registry_path_with_namespace is the wrong value. The fix is to destroy the group asynchronously and to run execute directly on Projects::DestroyService. Closes #17893
-
由 Kamil Trzcinski 提交于
-
由 Scott Le 提交于
DRY code + fix rubocop Add more test cases Append to changelog DRY changes list find_url service for merge_requests use GET for getting merge request links remove files rename to get_url_service reduce loop add test case for cross project refactor tiny thing update changelog
-
- 11 8月, 2016 3 次提交
-
-
由 Kamil Trzcinski 提交于
This change simplifies a Pipeline processing by introducing a special new status: created. This status is used for all builds that are created for a pipeline. We are then processing next stages and queueing some of the builds (created -> pending) or skipping them (created -> skipped). This makes it possible to simplify and solve a few ordering problems with how previously builds were scheduled. This also allows us to visualise a full pipeline (with created builds). This also removes an after_touch used for updating a pipeline state parameters. Right now in various places we explicitly call a reload_status! on pipeline to force it to be updated and saved.
-
由 Rémy Coutable 提交于
Also, mutualize AccessRequests and Members endpoints for Group & Project. New API documentation for the AccessRequests endpoints. Signed-off-by: NRémy Coutable <remy@rymai.me>
-
由 Stan Hu 提交于
Instead of redirecting from the project service to the service and back to the model, put all destruction code in the service. Also removes a possible source of failure where run_after_commit may not destroy the project.
-
- 09 8月, 2016 1 次提交
-
-
由 Z.J. van de Weg 提交于
-
- 05 8月, 2016 1 次提交
-
-
由 Z.J. van de Weg 提交于
-
- 04 8月, 2016 1 次提交
-
-
由 James Lopez 提交于
-
- 03 8月, 2016 4 次提交
-
-
由 Paco Guzman 提交于
So we have raw_diffs too
-
由 Paco Guzman 提交于
This object will manage Gitlab::Git::Compare instances
-
由 Paco Guzman 提交于
Instead calling diff_collection.count use diff_collection.size which is cache on the diff_collection
-
由 Paco Guzman 提交于
Introducing the concept of SafeDiffs which relates diffs with UI highlighting.
-
- 01 8月, 2016 1 次提交
-
-
由 Ben Boeckel 提交于
-
- 30 7月, 2016 1 次提交
-
-
由 Stan Hu 提交于
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
-
- 29 7月, 2016 9 次提交
-
-
由 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.
-
由 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.
-
由 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.
-
由 Timothy Andrew 提交于
1. The new data model moves from `developers_can_{push,merge}` to `allowed_to_{push,merge}`. 2. The API interface has not been changed. It still accepts `developers_can_push` and `developers_can_merge` as options. These attributes are inferred from the new data model. 3. Modify the protected branch create/update services to translate from the API interface to our current data model.
-
由 Timothy Andrew 提交于
1. Remove `master_or_greater?` and `developer_or_greater?` in favor of `max_member_access`, which is a lot nicer. 2. Remove a number of instances of `include Gitlab::Database::MigrationHelpers` in migrations that don't need this module. Also remove comments where not necessary. 3. Remove duplicate entry in CHANGELOG. 4. Move `ProtectedBranchAccessSelect` from Coffeescript to ES6. 5. Split the `set_access_levels!` method in two - one each for `merge` and `push` access levels.
-
由 Timothy Andrew 提交于
1. So it works with the new data model for protected branch access levels.
-
由 Timothy Andrew 提交于
1. Move to dropdowns instead of checkboxes. One each for "Allowed to Push" and "Allowed to Merge" 2. Refactor the `ProtectedBranches` coffeescript class into `ProtectedBranchesAccessSelect`. 3. Modify the backend to accept the new parameters.
-
由 Timothy Andrew 提交于
1. Improve error handling while creating protected branches. 2. Modify coffeescript code so that the "Developers can *" checkboxes send a '1' or '0' even when using AJAX. This lets us keep the backend code simpler. 3. Use services for both creating and updating protected branches. Destruction is taken care of with `dependent: :destroy`
-
由 Alejandro Rodríguez 提交于
-
- 28 7月, 2016 2 次提交
-
-
- 27 7月, 2016 3 次提交
-
-
由 Patricio Cano 提交于
Refactor spam validation to a concern that can be easily reused and improve legibility in `SpamCheckService`
-
由 Patricio Cano 提交于
-
由 Patricio Cano 提交于
-
- 25 7月, 2016 1 次提交
-
-
由 Alejandro Rodríguez 提交于
This reverts merge request !5375
-
- 22 7月, 2016 1 次提交
-
-
由 Alejandro Rodríguez 提交于
-
- 21 7月, 2016 2 次提交
-
-
-
Replace invocation of `find` with Ruby code that matches old cached files in a better, and safe way to avoid data-integrity issues.
-
- 20 7月, 2016 2 次提交
-
-
由 Kamil Trzcinski 提交于
-
由 Kamil Trzcinski 提交于
-
- 19 7月, 2016 4 次提交
-
-
由 Grzegorz Bizon 提交于
-
由 Grzegorz Bizon 提交于
-
由 James Lopez 提交于
added spec for avatar saver avatar saver! added avatar restorer spec fix spec added avatar restorer class fix export service fix warnings, added changelog fix spec some refactoring based on feedback fixed a few issues after testing i/e avatar
-
由 Valery Sizov 提交于
-