gitlab-org--gitlab-foss/spec/services
Douwe Maan 4e63411daa Merge branch 'adam-build-missing-services-when-necessary' into 'master'
Defer saving project services to the database if there are no user changes

## What does this MR do?

It defers saving project services to the database as long as it is possible. It creates a project service when creating a project only if this project service has an active template. After that project services are saved on the first edit.

## Are there points in the code the reviewer needs to double check?

- tests that used `build_missing_services` before the change
- number of queries executed

## Why was this MR needed?

Motivation in #22281

## 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
- [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 it does - 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 #22281

See merge request !6958
2016-11-16 16:27:54 +00:00
..
auth Allow owners to fetch source code in CI builds 2016-11-01 09:37:20 +01:00
boards Allow user to create a board list based on a group label 2016-10-19 14:58:24 -02:00
ci Merge remote-tracking branch 'upstream/master' into pipeline-notifications 2016-11-02 16:18:21 +08:00
files multi-file commit 2016-10-05 17:42:52 +00:00
groups Update tests for the current_application_settings request store changes 2016-05-27 19:05:52 -07:00
issuable Add bulk update support for merge requests list 2016-09-08 11:52:20 +03:00
issues Process commits in a separate worker 2016-11-07 13:11:44 +01:00
labels Pass user instance to Labels::FindOrCreateService or skip_authorization: true 2016-10-28 11:31:45 +02:00
members Make access request specs explicitly enable or disable access requests as required 2016-11-11 15:45:47 +00:00
merge_requests Do not create a MergeRequestDiff record when source branch is deleted 2016-11-16 11:33:20 +01:00
milestones Optimize Event queries by removing default order 2016-10-27 20:07:11 -03:00
notes Does not raise error when Note not found when processing NewNoteWorker 2016-11-11 22:54:11 -02:00
projects Defer saving project services to the database if there are no user changes 2016-11-16 12:46:07 +01:00
protected_branches Add missing spec for ProtectedBranches::CreateService 2016-09-18 13:44:34 -07:00
search Fix visibility of private project snippets for members when searching 2016-06-22 20:09:19 -03:00
slash_commands allow multiple labels commands 2016-10-11 16:38:20 +01:00
compare_service_spec.rb Refactor straight compare diff code 2016-10-12 16:32:57 +03:00
create_deployment_service_spec.rb Merge remote-tracking branch 'origin/master' into 22191-delete-dynamic-envs-mr 2016-10-18 17:48:27 +02:00
create_release_service_spec.rb Tag service specs 2015-12-09 11:55:49 +01:00
create_snippet_service_spec.rb adds second batch of tests changed to active tense 2016-08-09 15:11:39 +01:00
create_tag_service_spec.rb Better message for git hooks and file locks 2016-07-04 15:31:49 +03:00
delete_merged_branches_service_spec.rb Add button to delete all merged branches 2016-11-09 21:04:03 +01:00
delete_tag_service_spec.rb Delete tags via rugged 2016-04-15 16:05:04 +02:00
delete_user_service_spec.rb Fix bug where destroying a namespace would not always destroy projects 2016-08-11 15:36:35 -07:00
destroy_group_service_spec.rb Fix bug where destroying a namespace would not always destroy projects 2016-08-11 15:36:35 -07:00
event_create_service_spec.rb Differentiate the expire from leave event 2016-10-20 00:26:45 +00:00
git_hooks_service_spec.rb adds second batch of tests changed to active tense 2016-08-09 15:11:39 +01:00
git_push_service_spec.rb Process commits in a separate worker 2016-11-07 13:11:44 +01:00
git_tag_push_service_spec.rb Fix lightweight tags not processed correctly by GitTagPushService 2016-10-28 13:53:18 -03:00
import_export_clean_up_service_spec.rb fix spec 2016-08-04 13:39:38 +02:00
notification_service_spec.rb should_email_no_one -> should_not_email_anyone, feedback: 2016-10-17 18:05:19 +08:00
repair_ldap_blocked_user_service_spec.rb adds second batch of tests changed to active tense 2016-08-09 15:11:39 +01:00
repository_archive_clean_up_service_spec.rb Extract helper methods to clean up RepositoryArchiveCleanUpService spec 2016-07-21 11:47:28 -03:00
search_service_spec.rb adds second batch of tests changed to active tense 2016-08-09 15:11:39 +01:00
system_hooks_service_spec.rb Merge branch 'add_username_to_user_system_hooks' of https://github.com/tbeadle/gitlabhq 2016-01-13 10:12:30 +01:00
system_note_service_spec.rb Finish updates to use JIRA gem 2016-10-26 15:02:16 -02:00
test_hook_service_spec.rb adds second batch of tests changed to active tense 2016-08-09 15:11:39 +01:00
todo_service_spec.rb Make guests unable to view MRs 2016-10-11 16:51:26 +03:00
update_release_service_spec.rb Tag service specs 2015-12-09 11:55:49 +01:00
update_snippet_service_spec.rb Fix more specs 2016-03-20 23:09:33 +01:00