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
groups
issuable
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
search
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
create_snippet_service_spec.rb
create_tag_service_spec.rb
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_user_service_spec.rb
destroy_group_service_spec.rb
event_create_service_spec.rb Differentiate the expire from leave event 2016-10-20 00:26:45 +00:00
git_hooks_service_spec.rb
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
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
repository_archive_clean_up_service_spec.rb
search_service_spec.rb
system_hooks_service_spec.rb
system_note_service_spec.rb Finish updates to use JIRA gem 2016-10-26 15:02:16 -02:00
test_hook_service_spec.rb
todo_service_spec.rb
update_release_service_spec.rb
update_snippet_service_spec.rb