Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2017-12-22Replace '.team << [user, role]' with 'add_role(user)' in specsblackst0ne
2017-12-09Merge branch 'rs-security-group-api' into 'security-10-2'Douwe Maan
[10.2] Ensure we expose group projects using GroupProjectsFinder See merge request gitlab/gitlabhq!2234 (cherry picked from commit 072f8f2fd6ec794645375a16ca4ddc1cbeb76d7a) a2240338 Ensure we expose group projects using GroupProjectsFinder
2017-12-01Optimize API /groups/:id/projects by preloading associationsStan Hu
Closes #40308
2017-11-09Add /groups/:id/subgroups endpoint to APIWinnie Hellmann
2017-11-06Support custom attributes on groupsMarkus Koller
2017-10-20Refactor `have_http_status` into `have_gitlab_http_status` in the specsJacopo
2017-09-19Fix the groups API endpoint to handle ?owned=true correctlyNick Thomas
2017-09-07Make Members with Owner and Master roles always able to create subgroupsRuben Davila
2017-08-30Merge branch '37198-api-doesn-t-respect-default-group-visibility' into 'master'Sean McGivern
Respect the default visibility level when creating a group via the API Closes #37198 See merge request !13903
2017-08-29Respect the default visibility level when creating a groupRobert Schilling
2017-08-28Add tests for the unmodified headerRobert Schilling
2017-08-24Fix group and project search for anonymous usersNick Thomas
2017-08-11Enable the RSpec/HookArgument cop and auto-correct offensesRobert Speicher
2017-08-03Change all `:empty_project` to `:project`Robert Speicher
2017-07-27Fix the /projects/:id/repository/branches endpoint to handle dots in the ↵Rémy Coutable
branch name when the project full patch contains a `/` Signed-off-by: Rémy Coutable <remy@rymai.me>
2017-06-21Enable Style/DotPosition Rubocop :cop:Grzegorz Bizon
2017-05-17Use CTEs for nested groups and authorizationsYorick Peterse
This commit introduces the usage of Common Table Expressions (CTEs) to efficiently retrieve nested group hierarchies, without having to rely on the "routes" table (which is an _incredibly_ inefficient way of getting the data). This requires a patch to ActiveRecord (found in the added initializer) to work properly as ActiveRecord doesn't support WITH statements properly out of the box. Unfortunately MySQL provides no efficient way of getting nested groups. For example, the old routes setup could easily take 5-10 seconds depending on the amount of "routes" in a database. Providing vastly different logic for both MySQL and PostgreSQL will negatively impact the development process. Because of this the various nested groups related methods return empty relations when used in combination with MySQL. For project authorizations the logic is split up into two classes: * Gitlab::ProjectAuthorizations::WithNestedGroups * Gitlab::ProjectAuthorizations::WithoutNestedGroups Both classes get the fresh project authorizations (= as they should be in the "project_authorizations" table), including nested groups if PostgreSQL is used. The logic of these two classes is quite different apart from their public interface. This complicates development a bit, but unfortunately there is no way around this. This commit also introduces Gitlab::GroupHierarchy. This class can be used to get the ancestors and descendants of a base relation, or both by using a UNION. This in turn is used by methods such as: * Namespace#ancestors * Namespace#descendants * User#all_expanded_groups Again this class relies on CTEs and thus only works on PostgreSQL. The Namespace methods will return an empty relation when MySQL is used, while User#all_expanded_groups will return only the groups a user is a direct member of. Performance wise the impact is quite large. For example, on GitLab.com Namespace#descendants used to take around 580 ms to retrieve data for a particular user. Using CTEs we are able to reduce this down to roughly 1 millisecond, returning the exact same data. == On The Fly Refreshing Refreshing of authorizations on the fly (= when users.authorized_projects_populated was not set) is removed with this commit. This simplifies the code, and ensures any queries used for authorizations are not mutated because they are executed in a Rails scope (e.g. Project.visible_to_user). This commit includes a migration to schedule refreshing authorizations for all users, ensuring all of them have their authorizations in place. Said migration schedules users in batches of 5000, with 5 minutes between every batch to smear the load around a bit. == Spec Changes This commit also introduces some changes to various specs. For example, some specs for ProjectTeam assumed that creating a personal project would _not_ lead to the owner having access, which is incorrect. Because we also no longer refresh authorizations on the fly for new users some code had to be added to the "empty_project" factory. This chunk of code ensures that the owner's permissions are refreshed after creating the project, something that is normally done in Projects::CreateService.
2017-05-10Enable the Style/TrailingCommaInLiteral copRémy Coutable
Use the EnforcedStyleForMultiline: no_comma option. Signed-off-by: Rémy Coutable <remy@rymai.me>
2017-05-10Use relative paths for group/project/user avatarsblackst0ne
2017-04-21Unnecessary "include WaitForAjax" and "include ApiHelpers"Jacopo
Removed all the unnecessary include of `WaitForAjax` and `ApiHelpers` in the specs. Removed unnecessary usage of `api:true`
2017-03-06Fix all testsToon Claes
This commit was about 6 commits before squashing, with the main goal to make all tests green. Now, after pushing this commit we'll see what the CI has to say about that.
2017-03-06Update entities, rename from builds to jobsZ.J. van de Weg
This commit only renames the commits, the cascading effects will be dealt with later.
2017-03-02Expose Group VisibilityLevel as StringToon Claes
Instead of exposing the VisibilityLevel as Integer, expose it as String `visibility`.
2017-02-28Return 204 for delete endpointsRobert Schilling
2017-02-24Merge branch 'dm-more-namespace-full-path' into 'master' Sean McGivern
Use Namespace#full_path instead of #path where appropriate See merge request !9495
2017-02-24API: Use parameter to get owned groups instead of dedicated endpointRobert Schilling
2017-02-24Use Namespace#full_path instead of #path where appropriateDouwe Maan
2017-02-23Revert "Enable Style/DotPosition"Douwe Maan
This reverts commit e00fb2bdc2090e9cabeb1eb35a2672a882cc96e9. # Conflicts: # .rubocop.yml # .rubocop_todo.yml # lib/gitlab/ci/config/entry/global.rb # lib/gitlab/ci/config/entry/jobs.rb # spec/lib/gitlab/ci/config/entry/factory_spec.rb # spec/lib/gitlab/ci/config/entry/global_spec.rb # spec/lib/gitlab/ci/config/entry/job_spec.rb # spec/lib/gitlab/ci/status/build/factory_spec.rb # spec/lib/gitlab/incoming_email_spec.rb
2017-02-23Revert "Prefer leading style for Style/DotPosition"Douwe Maan
This reverts commit cb10b725c8929b8b4460f89c9d96c773af39ba6b.
2017-02-23Prefer leading style for Style/DotPositionDouwe Maan
2017-02-23Enable Style/SpaceInsideBracketsDouwe Maan
2017-02-23Enable Style/DotPositionDouwe Maan
2017-02-16Add a custom pagination matcherRobert Schilling
2017-02-14API: Consolidate /projects endpointToon Claes
It consolidates these endpoints: - /projects - /projects/owned - /projects/visible - /projects/starred - /projects/all Into the /projects endpoint using query parameters.
2017-02-10Remove a transient failure from spec/requests/api/groups_spec.rbRobert Speicher
2017-02-08Add nested groups to the APIDmitriy Zaporozhets
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
2017-02-02Active tense test coverageValery Sizov
Ports changes from https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/642 back into CE
2017-01-30Update group api doc with full_name and full_path attributesDmitriy Zaporozhets
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
2017-01-17Replace many :project with :empty_projects in API specsRémy Coutable
Signed-off-by: Rémy Coutable <remy@rymai.me>
2017-01-03Fix groups API to accept path when transferring a projectMark Fletcher
* Use standard helpers for finding group and project
2016-12-21Add more storage statisticsMarkus Koller
This adds counters for build artifacts and LFS objects, and moves the preexisting repository_size and commit_count from the projects table into a new project_statistics table. The counters are displayed in the administration area for projects and groups, and also available through the API for admins (on */all) and normal users (on */owned) The statistics are updated through ProjectCacheWorker, which can now do more granular updates with the new :statistics argument.
2016-12-15Add Gitlab::Middleware::MultipartJacob Vosmaer
2016-12-13API: Ability to get group's project in simple representationRobert Schilling
2016-12-12API: Fix groups filterRobert Schilling
2016-11-28Changed API spec files to describe the correct classLivier
Restore changes for api spec files Fix error in rspec Users Delete extra space Repositories-spec
2016-11-17Allow sorting groups in APISean McGivern
Allow `order_by` and `sort` parameters to `/api/v3/groups.json`. At present, only ordering by name and path is supported, and the default sort is name ascending (alphabetical order).
2016-11-15Grapify the group APIRobert Schilling
2016-11-08Added API endpoint groups/ownedBorja Aparicio
2016-10-31Backport Group API code that was added in EE onlyRémy Coutable
Signed-off-by: Rémy Coutable <remy@rymai.me>
2016-10-05fix group links 404barthc