- 11 Aug, 2016 1 commit
-
-
Rémy Coutable authored
Signed-off-by: Rémy Coutable <remy@rymai.me>
-
- 10 Aug, 2016 26 commits
-
-
Rémy Coutable authored
The performance was greatly improved by removing two N+1 queries issues for each endpoint. For comparison: 1. `GET /projects/:id/members` With two N+1 queries issues (one was already fxed in the following snippet): ``` ProjectMember Load (0.2ms) SELECT "members".* FROM "members" WHERE "members"."source_type" = $1 AND "members"."type" IN ('ProjectMember') AND "members"."source_id" = $2 AND "members"."source_type" = $3 AND "members"."type" IN ('ProjectMember') AND "members"."requested_at" IS NULL ORDER BY "members"."id" DESC [["source_type", "Project"], ["source_id", 1], ["source_type", "Project"]] User Load (0.5ms) SELECT "users".* FROM "users" WHERE "users"."id" IN (5, 22, 16, 13) ORDER BY "users"."id" DESC ActiveRecord::SchemaMigration Load (0.2ms) SELECT "schema_migrations".* FROM "schema_migrations" ProjectMember Load (0.3ms) SELECT "members".* FROM "members" WHERE "members"."source_type" = $1 AND "members"."type" IN ('ProjectMember') AND "members"."source_id" = $2 AND "members"."source_type" = $3 AND "members"."type" IN ('ProjectMember') AND "members"."requested_at" IS NULL AND "members"."user_id" = $4 ORDER BY "members"."id" DESC LIMIT 1 [["source_type", "Project"], ["source_id", 1], ["source_type", "Project"], ["user_id", 5]] ProjectMember Load (0.3ms) SELECT "members".* FROM "members" WHERE "members"."source_type" = $1 AND "members"."type" IN ('ProjectMember') AND "members"."source_id" = $2 AND "members"."source_type" = $3 AND "members"."type" IN ('ProjectMember') AND "members"."requested_at" IS NULL AND "members"."user_id" = $4 ORDER BY "members"."id" DESC LIMIT 1 [["source_type", "Project"], ["source_id", 1], ["source_type", "Project"], ["user_id", 22]] ProjectMember Load (0.3ms) SELECT "members".* FROM "members" WHERE "members"."source_type" = $1 AND "members"."type" IN ('ProjectMember') AND "members"."source_id" = $2 AND "members"."source_type" = $3 AND "members"."type" IN ('ProjectMember') AND "members"."requested_at" IS NULL AND "members"."user_id" = $4 ORDER BY "members"."id" DESC LIMIT 1 [["source_type", "Project"], ["source_id", 1], ["source_type", "Project"], ["user_id", 16]] ProjectMember Load (0.3ms) SELECT "members".* FROM "members" WHERE "members"."source_type" = $1 AND "members"."type" IN ('ProjectMember') AND "members"."source_id" = $2 AND "members"."source_type" = $3 AND "members"."type" IN ('ProjectMember') AND "members"."requested_at" IS NULL AND "members"."user_id" = $4 ORDER BY "members"."id" DESC LIMIT 1 [["source_type", "Project"], ["source_id", 1], ["source_type", "Project"], ["user_id", 13]] ``` Without the N+1 queries issues: ``` ProjectMember Load (0.3ms) SELECT "members".* FROM "members" WHERE "members"."source_type" = $1 AND "members"."type" IN ('ProjectMember') AND "members"."source_id" = $2 AND "members"."source_type" = $3 AND "members"."type" IN ('ProjectMember') AND "members"."requested_at" IS NULL ORDER BY "members"."id" DESC LIMIT 20 OFFSET 0 [["source_type", "Project"], ["source_id", 1], ["source_type", "Project"]] User Load (0.5ms) SELECT "users".* FROM "users" WHERE "users"."id" IN (5, 22, 16, 13) ORDER BY "users"."id" DESC ``` 2. `GET /projects/:id/access_requests` With two N+1 queries issues: ``` ProjectMember Load (0.3ms) SELECT "members".* FROM "members" WHERE "members"."source_type" = $1 AND "members"."type" IN ('ProjectMember') AND "members"."source_id" = $2 AND "members"."source_type" = $3 AND "members"."type" IN ('ProjectMember') AND ("members"."requested_at" IS NOT NULL) ORDER BY "members"."id" DESC [["source_type", "Project"], ["source_id", 8], ["source_type", "Project"]] User Load (0.1ms) SELECT "users".* FROM "users" WHERE "users"."id" = $1 ORDER BY "users"."id" DESC LIMIT 1 [["id", 24]] User Load (0.1ms) SELECT "users".* FROM "users" WHERE "users"."id" = $1 ORDER BY "users"."id" DESC LIMIT 1 [["id", 23]] ActiveRecord::SchemaMigration Load (0.2ms) SELECT "schema_migrations".* FROM "schema_migrations" ProjectMember Load (0.1ms) SELECT "members".* FROM "members" WHERE "members"."source_type" = $1 AND "members"."type" IN ('ProjectMember') AND "members"."source_id" = $2 AND "members"."source_type" = $3 AND "members"."type" IN ('ProjectMember') AND ("members"."requested_at" IS NOT NULL) AND "members"."user_id" = $4 ORDER BY "members"."id" DESC LIMIT 1 [["source_type", "Project"], ["source_id", 8], ["source_type", "Project"], ["user_id", 24]] ProjectMember Load (0.2ms) SELECT "members".* FROM "members" WHERE "members"."source_type" = $1 AND "members"."type" IN ('ProjectMember') AND "members"."source_id" = $2 AND "members"."source_type" = $3 AND "members"."type" IN ('ProjectMember') AND ("members"."requested_at" IS NOT NULL) AND "members"."user_id" = $4 ORDER BY "members"."id" DESC LIMIT 1 [["source_type", "Project"], ["source_id", 8], ["source_type", "Project"], ["user_id", 23]] ``` Without the N+1 queries issues: ``` ProjectMember Load (0.3ms) SELECT "members".* FROM "members" WHERE "members"."source_type" = $1 AND "members"."type" IN ('ProjectMember') AND "members"."source_id" = $2 AND "members"."source_type" = $3 AND "members"."type" IN ('ProjectMember') AND ("members"."requested_at" IS NOT NULL) ORDER BY "members"."id" DESC LIMIT 20 OFFSET 0 [["source_type", "Project"], ["source_id", 8], ["source_type", "Project"]] User Load (0.5ms) SELECT "users".* FROM "users" WHERE "users"."id" IN (24, 23) ORDER BY "users"."id" DESC ``` Signed-off-by: Rémy Coutable <remy@rymai.me>
-
Rémy Coutable authored
Signed-off-by: Rémy Coutable <remy@rymai.me>
-
Rémy Coutable authored
Also, mutualize AccessRequests and Members endpoints for Group & Project. New API documentation for the AccessRequests endpoints. Signed-off-by: Rémy Coutable <remy@rymai.me>
-
Douwe Maan authored
Store OTP secret key in secrets.yml ## What does this MR do? Migrate the value of `.secret` to `config/secrets.yml` if present, so that `.secret` can be rotated without preventing all users with 2FA from logging in. (On a clean setup, generate different keys for each.) ## Are there points in the code the reviewer needs to double check? I'm not sure we actually need `.secret` at all after this, but it seems safer not to touch it. ## Why was this MR needed? We have some DB encryption keys in `config/secrets.yml`, and one in `.secret`. They should all be in the same place. ## What are the relevant issue numbers? #3963, which isn't closed until I make the relevant changes in Omnibus too. ## Does this MR meet the acceptance criteria? - [x] [CHANGELOG](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CHANGELOG) entry added - [x] [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 - [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) - [x] [Squashed related commits together](https://git-scm.com/book/en/Git-Tools-Rewriting-History#Squashing-Commits) See merge request !5274
-
Robert Speicher authored
Clean up project destruction 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. See merge request !5695
-
Douwe Maan authored
Use badge image template instead of using separate images ## What does this MR do? Makes it possible to use template for badge instead of having multiple files. ## Are there points in the code the reviewer needs to double check? We also have a deprecated badge in `controllers/ci/projects_controller.rb`. We decided to leave it until 9.0, so we still have images in `public/ci/` until 9.0. ## Why was this MR needed? We are going to implement build coverage badge, and we do not want to store 101 SVG images for each percentage value. ## What are the relevant issue numbers? #3714 ## Screenshots (if relevant) ![new_build_badge](/uploads/f1d4ed5e34278eb01f48994b5b0579f1/new_build_badge.png) ## Does this MR meet the acceptance criteria? - [ ] ~~[CHANGELOG](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CHANGELOG) entry added~~ (refactoring) - [ ] ~~[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 - [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) - [ ] ~~[Squashed related commits together](https://git-scm.com/book/en/Git-Tools-Rewriting-History#Squashing-Commits)~~ (refactoring) See merge request !5520
-
Rémy Coutable authored
Signed-off-by: Rémy Coutable <remy@rymai.me>
-
Stan Hu authored
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.
-
Achilleas Pipinellis authored
Mention add_column_with_default in downtime guide ## What does this MR do? This extends the "What causes downtime" guide with a mention of the `add_column_with_default` migration helper. ## Are there points in the code the reviewer needs to double check? Spelling, grammar, etc. ## Why was this MR needed? Currently the guide may lead one to believe it's not possible at all to add a column with a default value. ## Does this MR meet the acceptance criteria? - [x] ~~[CHANGELOG](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CHANGELOG) entry added~~ - [x] [Documentation created/updated](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/development/doc_styleguide.md) - Tests - [ ] All builds are passing - [ ] Conform by the [style guides](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md#style-guides) - [ ] 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 !5719
-
Achilleas Pipinellis authored
Fix escaped angle bracket's in integration documentation. There are several escaped angle brackets in our integration docs. While these render fine within GitLab, they are broken when rendered on doc.gitlab.com because pandoc does not escape them correctly. You can see the problem here: http://doc.gitlab.com/ce/integration/github.html Note that the strings `<Organization>` and `<Your Name>` are being interpreted as html tags. It looks like doc.gitlab.com is using pandoc: https://gitlab.com/gitlab-com/doc-gitlab-com/blob/master/generate.rb#L64 You can verify these changes by running something like this and then inspecting `test.html`: pandoc --from markdown_github-hard_line_breaks -o test.html doc/integration/twitter.md You can also verify that GitLab continues to render the docs correctly by checking, for example, http://localhost:3000/help/integration/twitter.md See merge request !4128
-
Fatih Acet authored
Fix filter label tooltip HTML rendering ## What does this MR do? Tooltips on labels used in a filter are now rendered as HTML ## Are there points in the code the reviewer needs to double check? Shouldn't be ## Why was this MR needed? Fix existing bug (See screenshot below for reference) ## What are the relevant issue numbers? Closes #20592 ## Screenshots (if relevant) Before: ![Screen_Shot_2016-08-04_at_10.27.59_AM__2_](/uploads/7ca37d4116f15a2d22ad16fbbe682f1f/Screen_Shot_2016-08-04_at_10.27.59_AM__2_.png) After: ![Screen_Shot_2016-08-04_at_10.24.37_AM__2_](/uploads/7fce6c8a93d293767dacbcd682831f86/Screen_Shot_2016-08-04_at_10.24.37_AM__2_.png) ## Does this MR meet the acceptance criteria? - [x] [CHANGELOG](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CHANGELOG) entry added - Tests - [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) - [x] [Squashed related commits together](https://git-scm.com/book/en/Git-Tools-Rewriting-History#Squashing-Commits) See merge request !5671
-
Rémy Coutable authored
Used cached value of project count to reduce DB load Following !5746, backport a change from https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/637/diffs#diff-2. ## Does this MR meet the acceptance criteria? - [x] [CHANGELOG](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CHANGELOG) entry added - Tests - [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) - [x] [Squashed related commits together](https://git-scm.com/book/en/Git-Tools-Rewriting-History#Squashing-Commits) See merge request !5754
-
Dmitriy Zaporozhets authored
Update UI Guide with SVG guidelines This addition to the guide is to provide some guidelines to UX designers when exporting SVGs. Please let me know if anything is unclear or if you any improvements so we can document it clearly for everyone. cc / @hazelyang @cperessini @dimitrieh @connorshea @annabeldunstone @dzaporozhets ## What are the relevant issue numbers? https://gitlab.com/gitlab-org/gitlab-ee/issues/872 See merge request !5748
-
Achilleas Pipinellis authored
Small refactor of doc/development/README.md See merge request !5757
-
Rémy Coutable authored
Add an initial .mailmap ## What does this MR do? Add an intiail ".mailmap" file to better map users names and email adresses for `git shortlog` and `git check-mailmap` to work better. ## Are there points in the code the reviewer needs to double check? The reviewer can try `git shortlog -nse` with and without the ".mailmap" to see the difference. ## Why was this MR needed? It starts to make `git shortlog` and `git check-mailmap` useful. ## What are the relevant issue numbers? I don't know of any. I searched for "mailmap" and found nothing. ## Screenshots (if relevant) ## Does this MR meet the acceptance criteria? I can add an entry into the CHANGELOG but this is for developers only so I am not sure it is really needed. - [ ] [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 - [ ] Added for this feature/bug - [ ] All builds are passing - [ ] Conform by the [style guides](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md#style-guides) - [ ] Branch has no merge conflicts with `master` (if you do - rebase it please) - [ ] [Squashed related commits together](https://git-scm.com/book/en/Git-Tools-Rewriting-History#Squashing-Commits) See merge request !5583
-
Achilleas Pipinellis authored
- Fix wrong doc_styleguide URL - Clarify migrations refer to SQL - Capitalize CSS
-
Yorick Peterse authored
-
Rémy Coutable authored
Signed-off-by: Rémy Coutable <remy@rymai.me>
-
Rémy Coutable authored
Use FA GitLab Icon for import project button Before: ![Screen_Shot_2016-08-08_at_09.43.47](/uploads/e419dc0d229ff848294cf277ffbb02f9/Screen_Shot_2016-08-08_at_09.43.47.png) After: ![Screen_Shot_2016-08-08_at_09.43.09](/uploads/3a77c5e98385bbc1c7139300eeca5866/Screen_Shot_2016-08-08_at_09.43.09.png) See merge request !5702
-
Z.J. van de Weg authored
-
Yorick Peterse authored
[ci skip]
-
Grzegorz Bizon authored
-
Achilleas Pipinellis authored
Link to doc root, not readme of GDK I hope this makes navigation between gitlab-ce developer docs and GDK docs more smooth. See merge request !5716
-
Achilleas Pipinellis authored
Use long options for curl examples in documentation ## What does this MR do? Use long options (e.g. `--header` instead of `-H`) for curl examples in documentation. ## Why was this MR needed? Short options are less readable. ## What are the relevant issue numbers? https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/5465#note_13603730 See merge request !5703
-
Achilleas Pipinellis authored
Clarify the features for generating default label sets ## What does this MR do? * Split out the information regarding the label set that GitLab can generate * Add information for the labels view in the Admin panel ## Are there points in the code the reviewer needs to double check? * Please ensure that the newly added section relating to the Admin area seems relevant * Please verify adherence to the documentation styleguide ## Why was this MR needed? Documentation regarding default label sets was missing ## What are the relevant issue numbers? Closes #1865 See merge request !5736
-
Douwe Maan authored
Rename `run` task helper method to prevent conflict with StateMachine This prevents the following message from appearing whenever running a Rake task: Instance method "run" is already defined in Object, use generic helper instead or set StateMachines::Machine.ignore_method_conflicts = true. See merge request !5750
-
- 09 Aug, 2016 13 commits
-
-
Robert Speicher authored
Add a method in Project to return a cached value of total count of projects This is in preparation to address the DB load caused by the counting in gitlab-com/infrastructure#303. See merge request !5746
-
Douwe Maan authored
-
Robert Speicher authored
This prevents the following message from appearing whenever running a Rake task: Instance method "run" is already defined in Object, use generic helper instead or set StateMachines::Machine.ignore_method_conflicts = true.
-
Douwe Maan authored
Check out GH pull requests locally where the source/target branch had been deleted ## What does this MR do? Check out GitHub pull requests where source/target branches that had been deleted locally rather than temporarily restoring them on GitHub using their References API. This helps us to not get rate limited, and allow us to import cross-repository pull requests (those from forks). ## What are the relevant issue numbers? Fixes #15528 Fixes #17766 Fixes #19310 Fixes #19439 Fixes #19998 Fixes #20153 Fixes #20552 Fixes https://gitlab.com/gitlab-com/support-forum/issues/801 #20385 ## Screenshots (if relevant) ## Does this MR meet the acceptance criteria? - [x] [CHANGELOG](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CHANGELOG) entry added - [x] [Documentation created/updated](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/development/doc_styleguide.md) - [X] ~~API support added~~ - 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) - [x] [Squashed related commits together](https://git-scm.com/book/en/Git-Tools-Rewriting-History#Squashing-Commits) See merge request !5630
-
Douwe Maan authored
# Conflicts: # lib/gitlab/redis.rb
-
Stan Hu authored
This is in preparation to address the DB load caused by the counting in gitlab-com/infrastructure#303.
-
Taurie Davis authored
-
Taurie Davis authored
-
Robert Speicher authored
Do not look up commit again when it is passed to RelativeLinkFilter ## What does this MR do? Use `context[:commit]` in RelativeLinkFilter instead of looking up commit using `context[:ref]`. ## Why was this MR needed? Even though the commit object was already passed, unnecessary I/O is done to retrieve the commit object. ## What are the relevant issue numbers? Fixes #20026 See merge request !5455
-
Jacob Schatz authored
Align visibility icons on group page ## What does this MR do? Aligns visibility icons on group page ## Why was this MR needed? Because the icons looked like this: ![Screen_Shot_2016-07-25_at_3.03.31_PM](/uploads/94205a609f803a36a7ba678332564c48/Screen_Shot_2016-07-25_at_3.03.31_PM.png) Now it looks like this: ![Screen_Shot_2016-07-25_at_3.06.29_PM](/uploads/efbf40105d91d05c8cf81761aa27c618/Screen_Shot_2016-07-25_at_3.06.29_PM.png) See merge request !5482
-
Robert Speicher authored
Add JavaScript coverage analysis ## What does this MR do? - configure teaspoon to calculate test coverage of JavaScript files - publish result as GitLab pages ## Why was this MR needed? - test coverage was not calculated for JavaScript files - JavaScript wants to be under cover
🕶 ## What are the relevant issue numbers? #19412 See merge request !5052 -
Robert Speicher authored
Fix importing with an invalid MR source project Source project shouldn't be -1 when both source and target are the same in the original export. Fixes https://gitlab.com/gitlab-org/gitlab-ce/issues/20611 See merge request !5679
-
Robert Speicher authored
TST: Use more accurate time windows so tests do not fail This MR sets the Datetime attributes of the of the broadcast messages factory more precisely. This MR is necessary to ensure that all specs which use the broadcast message factory will pass when run anywhere at any time. Currently, the way the 'starts_at' and 'ends_at' attributes are set,if the specs are run at one second to midnight, the broadcast message will expire in one second. I have changed it so that we are guaranteed a period of one day until expiration. I believe this is the desired behaviour and it's also consistent with the rest of the factory. See merge request !5674
-