summaryrefslogtreecommitdiff
path: root/spec/lib
Commit message (Collapse)AuthorAgeFilesLines
* Merge remote-tracking branch 'upstream/master' into pipeline-emailspipeline-emailsLin Jen-Shin2016-10-183-6/+23
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * upstream/master: (58 commits) Update endpoint to username validator change border color to variable Add todo for deprecated user routes and more information about deprecation to changelog Provide better error message to the user Apply better hierarchy to markdown headers and issue/mr titles Swapped button text manipulation outcomes for the toggle query Fixed find file keyboard navigation Update CHANGELOG for 8.12.7 Added download-button class and applied button margin Enable activerecord_sane_schema_dumper for test Updated logo from @luke Fix broken specs on MySQL after https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/6896 Fix Test Env (proper error handling when gitlab-shell is not clonned) Fix randomly crashing spinach test for merge request [Great spinach fix] Replace gsub with delete Remove carriage returns from commit description as summary is on a newline and will always include carriage returns Convert due_date_select.js filetype to es6. Stop directly parsing due_date with Date.parse, prefer parsing implicitly. Improve spec for pipeline metrics worker Add Pipeline metrics worker ...
| * Merge branch 'master' into merge-conflicts-editor-2Alfredo Sumaran2016-10-172-6/+12
| |\
| | * Add RTL support to markdown rendererEbrahim Byagowi2016-10-162-6/+12
| | |
| * | Add blob_ace_mode to conflict content responseSean McGivern2016-10-131-0/+11
| |/
* | Merge remote-tracking branch 'upstream/master' into pipeline-emailsLin Jen-Shin2016-10-146-9/+177
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * upstream/master: (237 commits) Grapify boards API Add test, fix merge error Use local assigns to get the dropdown title Updated issuable dropdown titles Added safety check for formatted values Minor style improvement Fixed conflict and corrected teaspoon test Rename method in test Moved ci_status environments logic to new action ci_envrionments_status and set up frontend polling Refactor ci_status on MergeRequestController Fix indenting error in HAML Show what time ago a MR was deployed Fixed missing links Fixed missing links Refactor merge requests revisions Add link to update docs for source installations Grapify todos API Link to review apps example from docs fix grafana_configuration.md move link Do not run before_script, artifacts, cache in trigger_docs job ...
| * Merge branch '22591-Convert-UTF-8-Emoji-to-Gitlab-emoji' into 'master' Rémy Coutable2016-10-131-1/+84
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Convert unicode emojis to images. ## Why was this MR needed? For better cross platform interoperability with emojis. Closes #22591 See merge request !6829
| | * Convert UTF-8 Emoji to Gitlab emojiJohan H2016-10-131-0/+16
| | |
| | * Merge branch 'master' of https://gitlab.com/gitlab-org/gitlab-cehenrik2016-10-122-5/+90
| | |\
| | * | Convert unicode emojis to images.henrik2016-10-111-2/+69
| | | |
| * | | Merge branch 'feature/issues-board' into 'master' Sean McGivern2016-10-131-1/+1
| |\ \ \ | | |_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Refactoring Issues Board ## What does this MR do? This MR aims to minimize conflicts between the CE issues board feature with EE multiple boards feature. ## Are there points in the code the reviewer needs to double check? ## Why was this MR needed? To avoid a lot of conflicts with EE multiple boards feature. ## Screenshots (if relevant) ## Does this MR meet the acceptance criteria? - [ ] ~~[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)~~ - [x] API support added - Tests - [X] Added for this feature/bug - [ ] All builds are passing - [x] Conform by the [merge request performance guides](http://docs.gitlab.com/ce/development/merge_request_performance_guidelines.html) - [X] 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) ## What are the relevant issue numbers? https://gitlab.com/gitlab-org/gitlab-ee/issues/929 https://gitlab.com/gitlab-org/gitlab-ee/issues/1084 See merge request !6727
| | * | Add Project#boards to import/export configuration fileDouglas Barbosa Alexandre2016-10-111-1/+1
| | |/
| * | Merge branch '20708-new-branch-is-immediatelly-tagged-as-merged' into 'master' Douwe Maan2016-10-121-4/+4
| |\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Removes inconsistency regarding tagging immediately as merged once you create a … - [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 [merge request performance guides](http://docs.gitlab.com/ce/development/merge_request_performance_guidelines.html) - [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) ## What are the relevant issue numbers? Closes #20708 See merge request !6408
| | * | refactors tests because of gitlab-test repository changes20708-new-branch-is-immediatelly-tagged-as-mergedtiagonbotelho2016-10-111-4/+4
| | | |
| * | | Merge branch 'atom-routes' into 'master' Robert Speicher2016-10-111-1/+86
| |\ \ \ | | |_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Allow browsing branches that end with '.atom' ## What does this MR do? 1. Simplify the regex capture in the routing for the CommitsController to not exclude the '.atom' suffix. That's a perfectly valid git branch name, so we shouldn't blow up if we get it. 2. Because Rails now can't automatically detect the request format, add some code to do so in `ExtractPath` when there is no path. This means that, given branches 'foo' and 'foo.atom', the Atom feed for the former is unroutable. To fix this: don't do that! Give the branches different names! ## Why was this MR needed? Creating a branch or tag name ending in '.atom' would cause some 500s on that repo. ## What are the relevant issue numbers? Closes #21955. Related to !5994. See merge request !6750
| | * | Allow browsing branches that end with '.atom'Sean McGivern2016-10-111-1/+86
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We need to do two things to support this: 1. Simplify the regex capture in the routing for the CommitsController to not exclude the '.atom' suffix. That's a perfectly valid git branch name, so we shouldn't blow up if we get it. 2. Because Rails now can't automatically detect the request format, add some code to do so in `ExtractPath` when there is no path. This means that, given branches 'foo' and 'foo.atom', the Atom feed for the former is unroutable. To fix this: don't do that! Give the branches different names!
| * | | HTMLEntityFilter -> HtmlEntityFilterNick Thomas2016-10-101-1/+1
| | |/ | |/|
| * | Use Hash rocket syntax to maintain Ruby 2.1 compatibility in specStan Hu2016-10-081-1/+1
| |/
* | Merge remote-tracking branch 'upstream/master' into pipeline-emailsLin Jen-Shin2016-10-0818-52/+566
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * upstream/master: (292 commits) Deletes extra empty line breaking the build Optimize the `award_user_list` helper spec Fix typo and add he MWBS accronym for "Merge When Build Succeeds" Added missing content and improved layout ExpireBuildArtifactsWorker query builds table without ordering enqueuing one job per build to cleanup Improve the contribution and MR review guide Updates test in order to look for link Make projects API docs match parameter style Fix Event#reset_project_activity updates Update user whitelist reject message Call ensure_secret_token! in secret token test's before block since it would be called in an initializer. Add a CHANGELOG for CacheMarkdownField Enable CacheMarkdownField for the remaining models Make search results use the markdown cache columns, treating them consistently Use CacheMarkdownField for notes Add markdown cache columns to the database, but don't use them yet Update issue board spec Link to Registry docs from project settings Truncate long labels with ellipsis in labels page Improve issue load time performance by avoiding ORDER BY in find_by call ...
| * Merge branch 'memoize_shell_secret_token' into 'master' Rémy Coutable2016-10-071-3/+6
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Memoize Github::Shell's secret token ## What does this MR do? `API::Helpers#secret_token` was reading the secret file on every invocation. This MR reads the file in the `gitlab_shell_secret_token.rb` initializer and saves it as a class variable at `Gitlab::Shell.secret_token` ## Are there points in the code the reviewer needs to double check? - I'm not sure if the use of `cattr_accessor` is the best approach, or if should be moved into the `class << self` block? - Should `API::Helpers#secret_token` be removed in favor of using `Gitlab::Shell.secret_token`? ## Why was this MR needed? Performance optimization. Fixes https://gitlab.com/gitlab-org/gitlab-ce/issues/22510 See merge request !6599
| | * Call ensure_secret_token! in secret token test's before block since it would ↵Justin DiPierro2016-10-061-0/+1
| | | | | | | | | | | | be called in an initializer.
| | * Load Github::Shell's secret token from file on initialization instead of ↵Justin DiPierro2016-10-061-3/+5
| | | | | | | | | | | | every request.
| * | Enable CacheMarkdownField for the remaining modelsNick Thomas2016-10-071-0/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit alters views for the following models to use the markdown cache if present: * AbuseReport * Appearance * ApplicationSetting * BroadcastMessage * Group * Issue * Label * MergeRequest * Milestone * Project At the same time, calls to `escape_once` have been moved into the `single_line` Banzai pipeline, so they can't be missed out by accident and the work is done at save, rather than render, time.
| * | Use CacheMarkdownField for notesNick Thomas2016-10-072-41/+24
| | |
| * | Add markdown cache columns to the database, but don't use them yetNick Thomas2016-10-072-1/+76
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit adds a number of _html columns and, with the exception of Note, starts updating them whenever the content of their partner fields changes. Note has a collision with the note_html attr_accessor; that will be fixed later A background worker for clearing these cache columns is also introduced - use `rake cache:clear` to set it off. You can clear the database or Redis caches separately by running `rake cache:clear:db` or `rake cache:clear:redis`, respectively.
| * | Merge branch 'fix-already-selected-activity-link' into 'master' Fatih Acet2016-10-061-0/+49
| |\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix inconsistent highlighting of already selected activity nav-links ## What does this MR do? * Remove edge case where user could deselect an activity nav-link (which seems to be returning all the events) * Explicitly add an `All` tab to return all the events ## Are there points in the code the reviewer needs to double check? Shouldn't be ## Why was this MR needed? Resolves existing UI inconsistency ## Screenshots (if relevant) Before: ![4OzkoQVJYc](/uploads/fd2a7fdbde2159e875482ec7b828fe60/4OzkoQVJYc.gif) After: ![E0lj8UhEUU](/uploads/7eb5155861eb79d72957de04c9f172c9/E0lj8UhEUU.gif) ## 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) ## What are the relevant issue numbers? * Closes #21631 * Closes #21452 See merge request !6091
| | * | Fix inconsistent highlighting of already selected activity nav-linksClement Ho2016-10-051-0/+49
| | | |
| * | | Make user constrainer lookup same as controller and add more constrainer testsDmitriy Zaporozhets2016-10-063-1/+20
| | | | | | | | | | | | | | | | Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
| * | | Change user & group landing page routing from /u/:name & /groups/:name to /:nameDmitriy Zaporozhets2016-10-061-0/+26
| | |/ | |/| | | | | | | Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
| * | Use higher size on Gitlab::Redis connection pool on Sidekiq serversPaco Guzman2016-10-061-0/+34
| | |
| * | Merge branch 'feature/improve-async-pipeline-processing' into 'master' Kamil Trzciński2016-10-061-1/+1
| |\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Improve asynchronous pipeline processing ## What does this MR do? This MR improves asynchronous processing of pipeline. ## Why was this MR needed? It eliminates some race conditions and improves performance. ## Does this MR meet the acceptance criteria? - [x] [CHANGELOG](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CHANGELOG) entry added - Tests - [x] Added for this feature/bug - [x] All builds are passing ## What are the relevant issue / merge request numbers? Related merge request: !6410 Extracted from !6411 See merge request !6650
| | * | Fix pipeline fixtures and calls to removed methodGrzegorz Bizon2016-10-041-1/+1
| | | |
| * | | Merge remote-tracking branch 'dev/master'Rémy Coutable2016-10-062-0/+159
| |\ \ \ | | |_|/ | |/| |
| | * | Merge branch 'fix/id-claim-import-issue' into 'master' Douwe Maan2016-09-302-0/+159
| | |\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Prevent claiming associated model IDs via import On the import side, we should be careful not to use any IDs as part of the JSON file that could have been manipulated. Part of https://gitlab.com/gitlab-org/gitlab-ce/issues/20821 Things we already do (__before__ this fix): 1. Remove all primary keys 1. **Always** reassign some of the foreign keys, such as ALL project IDs and user IDs (so it would be difficult to impersonate or try to gain access to another project) 1. Ignore/reject attributes that do not exist in the model 1. If someone reassigns a foreign key `submodel_id`, and that object has another json as the submodel, the new submodel will reassign the `submodel_id` to the newly created submodel ID. Things we should do: 1. Remove/nullify any other foreign keys that we don't reassign (checked this, and there aren't many, fortunately. In fact, I don't think much harm can be done at all - at the moment). See merge request !1985
| | | * | Prevent claiming associated model IDs via import and added relevant specsJames Lopez2016-09-272-0/+159
| | | | |
| * | | | Merge branch 'kradydal/gitlab-ce-20989-disable-all-for-non-project-members'Rémy Coutable2016-10-051-0/+9
| |\ \ \ \ | | | | | | | | | | | | | | | | | | See !6474.
| | * | | | Imrove grammarKatarzyna Kobierska2016-10-031-1/+1
| | | | | |
| | * | | | Fix test, add author attribute to all testsKatarzyna Kobierska2016-10-031-0/+9
| | | |_|/ | | |/| |
| * | | | Merge branch 'test-improve-gitlab-identifier' into 'master' Rémy Coutable2016-10-051-0/+123
| |\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Refactor Gitlab::Identifier ## What does this MR do? This refactors `Gitlab::Identifier` so that it: 1. Has tests 2. Caches output in an instance variable to reduce queries 3. Uses only a single query to find a user by an SSH key, instead of 2 ## Why was this MR needed? This code was untested and would execute more SQL queries than needed. See merge request !6680
| | * | | | Refactor Gitlab::IdentifierYorick Peterse2016-10-051-0/+123
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This refactors Gitlab::Identifier so it uses fewer queries and is actually tested. Queries are reduced by caching the output as well as using 1 query (instead of 2) to find a user using an SSH key.
| * | | | | Merge branch 'fix/22225' into 'master' Sean McGivern2016-10-041-2/+22
| |\ \ \ \ \ | | |/ / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Skip wiki creation when GitHub project has wiki enabled ## What does this MR do? When importing a repository from if the repository has wiki, we should not create the default wiki. Otherwise the GitHub importer will fail because the wiki repository already exist. This bug was introduced here https://gitlab.com/gitlab-org/gitlab-ce/commit/892dea67717c0efbd6a28f7639f34535ec0a8747 ## Are there points in the code the reviewer needs to double check? No. ## Why was this MR needed? GitLab fails to import GitHub Wiki. ## Screenshots (if relevant) ## Does this MR meet the acceptance criteria? - [X] [CHANGELOG](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CHANGELOG) entry added - Tests - [X] Added for this feature/bug - [ ] All builds are passing - [X] Conform by the [merge request performance guides](http://docs.gitlab.com/ce/development/merge_request_performance_guidelines.html) - [X] 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) ## What are the relevant issue numbers? Fixes #22225 See merge request !6665
| | * | | | Skip wiki creation when GitHub project has wiki enabledDouglas Barbosa Alexandre2016-10-041-2/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the GitHub project repository has wiki, we should not create the default wiki. Otherwise the GitHub importer will fail because the wiki repository already exist. This bug was introduced here https://gitlab.com/gitlab-org/gitlab-ce/commit/892dea67717c0efbd6a28f763 9f34535ec0a8747
| * | | | | Fixed banzai test failuresPhil Hughes2016-10-041-4/+4
| |/ / / /
* | | | | Add pipeline_email_service. Fixes:Lin Jen-Shin2016-10-041-1/+2
| | | | | | | | | | | | | | | | | | | | https://gitlab.com/gitlab-org/gitlab-ce/builds/4710913
* | | | | Merge remote-tracking branch 'upstream/master' into pipeline-emailsLin Jen-Shin2016-10-0420-52/+878
|\ \ \ \ \ | |/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * upstream/master: (372 commits) Enable Lint/StringConversionInInterpolation cop and autocorrect offenses resolve duplicated changelog entry credit myself :smile: change determine conditions override subject method in devise mailer follow the styleguide: Don't use parentheses around a literal wrap subject with method subject move spec back into shared example `an email sent from GitLab` stub config settings in spec remove empty line at block body end remove extra entry create new test in `spec/mailers/notify_spec.rb` move changelog to 8.13 add configurable email subject suffix Fixes sidebar navigation. Convert "SSH Keys" Spinach features to RSpec Enable import/export back for non-admins Update gitlab-shell to 3.6.3 Updated artwork of empty group state. Better empty state for Groups view. ...
| * | | | Merge branch 'rs-string-conversion-in-interpolation' into 'master' Rémy Coutable2016-10-031-1/+1
| |\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Enable Lint/StringConversionInInterpolation cop and autocorrect offenses See merge request !6654
| | * | | | Enable Lint/StringConversionInInterpolation cop and autocorrect offensesrs-string-conversion-in-interpolationRobert Speicher2016-10-031-1/+1
| | |/ / /
| * | | | Merge branch '22466-task-list-fork' into 'master' Rémy Coutable2016-10-031-16/+0
| |\ \ \ \ | | |/ / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Resolve "Task List Checkbox Alignment" ## What does this MR do? Replace the unmaintained `task_list` gem with the `deckar01-task_list` fork ## Are there points in the code the reviewer needs to double check? - I had to pin some dependencies in the fork to support `ruby < 2.2`, which added new version restrictions for 2 existing modules. - I triggered a build after I removed the patch to show the test passed with the new gem, then I removed the test, because this behavior is tested in the gem's repo now. ## Why was this MR needed? - The `task_list` patch was added with a comment that said it should be removed when merged upstream, but the repo got archived, so an upstream patch requires a fork. - #22470 can't be patched without warnings due to the way `task_list` uses Ruby constants. - There are additional outstanding `task_list` bugs that can be fixed once we switch to a fork. ## What are the relevant issue numbers? - #22466 - #22470 - !6487 See merge request !6625
| | * | | Remove the task_list test since it is patched upstreamJared Deckard2016-09-301-16/+0
| | |/ /
| * | | Merge branch ↵Robert Speicher2016-10-022-6/+6
| |\ \ \ | | |/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | '21983-member-add_user-doesn-t-detect-existing-members-that-have-requested-access' into 'master' Resolve "`Member.add_user`doesn't detect existing members that have requested access" ## What does this MR do? This merge request handle the case when an access requester is added to a group or project (via the members page or the API). In `Member.add_user`, if an access requester already exists, we simply accept their request (and set the `created_by`, `access_level` and `expires_at` attributes if given). ## Are there points in the code the reviewer needs to double check? I've taken the opportunity to cleanup the whole `{Group,Project}Member.add_user*` methods since it was quite a mess. ## What are the relevant issue numbers? Closes #21983 See merge request !6393
| | * | Allow Member.add_user to handle access requestersRémy Coutable2016-09-282-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Changes include: - Ensure Member.add_user is not called directly when not necessary - New GroupMember.add_users_to_group to have the same abstraction level as for Project - Refactor Member.add_user to take a source instead of an array of members - Fix Rubocop offenses - Always use Project#add_user instead of project.team.add_user - Factorize users addition as members in Member.add_users_to_source - Make access_level a keyword argument in GroupMember.add_users_to_group and ProjectMember.add_users_to_projects - Destroy any requester before adding them as a member - Improve the way we handle access requesters in Member.add_user Instead of removing the requester and creating a new member, we now simply accepts their access request. This way, they will receive a "access request granted" email. - Fix error that was previously silently ignored - Stop raising when access level is invalid in Member, let Rails validation do their work Signed-off-by: Rémy Coutable <remy@rymai.me>