gitlab-org--gitlab-foss/spec/services
Zeger-Jan van de Weg 79a5d76801
Add repository languages for projects
Our friends at GitHub show the programming languages for a long time,
and inspired by that this commit means to create about the same
functionality.

Language detection is done through Linguist, as before, where the
difference is that we cache the result in the database. Also, Gitaly can
incrementaly scan a repository. This is done through a shell out, which
creates overhead of about 3s each run. For now this won't be improved.

Scans are triggered by pushed to the default branch, usually `master`.
However, one exception to this rule the charts page. If we're requesting
this expensive data anyway, we just cache it in the database.

Edge cases where there is no repository, or its empty are caught in the
Repository model. This makes use of Redis caching, which is probably
already loaded.

The added model is called RepositoryLanguage, which will make it harder
if/when GitLab supports multiple repositories per project. However, for
now I think this shouldn't be a concern. Also, Language could be
confused with the i18n languages and felt like the current name was
suiteable too.

Design of the Project#Show page is done with help from @dimitrieh. This
change is not visible to the end user unless detections are done.
2018-08-01 18:58:29 +02:00
..
application_settings Ensure ApplicationSetting#performance_bar_allowed_group_id is properly set when retrieved from cache 2018-05-29 10:38:59 +02:00
applications [Rails5] Fix spec/services/applications/create_service_spec.rb 2018-05-02 08:12:20 +00:00
auth Support multiple scopes when using authing container registry scopes 2018-08-01 13:03:16 +02:00
boards Fix more specs 2018-04-05 14:58:49 -03:00
chat_names
ci Fix spec failures 2018-08-01 14:03:12 +02:00
clusters Revert "Merge branch '48098-mutual-auth-cluster-applications' into 'master'" 2018-07-31 13:15:18 +00:00
deploy_keys
deploy_tokens Handle limit for datetime attributes on MySQL 2018-04-06 22:28:44 -05:00
discussions Resolve "Rename the `Master` role to `Maintainer`" Backend 2018-07-11 14:36:08 +00:00
emails
events Support Markdown rendering using multiple projects 2018-04-11 14:10:19 +02:00
files Resolve "Rename the `Master` role to `Maintainer`" Backend 2018-07-11 14:36:08 +00:00
gpg_keys
groups Replace 'Sidekiq::Testing.inline!' with 'perform_enqueued_jobs' 2018-07-23 15:34:54 +11:00
issuable Backport of 1481-changing-weight-values-should-trigger-system-notes 2018-05-03 11:18:51 -07:00
issues Delete todos when users loses target read permissions 2018-07-30 13:29:18 +02:00
keys Rails5 fix MySQL milliseconds problem in specs 2018-06-27 18:49:22 +02:00
labels Backport from EE !5954 2018-07-04 20:48:50 +08:00
lfs Resolve "Rename the `Master` role to `Maintainer`" Backend 2018-07-11 14:36:08 +00:00
members Delete todos when users loses target read permissions 2018-07-30 13:29:18 +02:00
merge_requests Resolve "Rename the `Master` role to `Maintainer`" Backend 2018-07-11 14:36:08 +00:00
milestones Resolve "Rename the `Master` role to `Maintainer`" Backend 2018-07-11 14:36:08 +00:00
notes Resolve "Rename the `Master` role to `Maintainer`" Backend 2018-07-11 14:36:08 +00:00
projects Add repository languages for projects 2018-08-01 18:58:29 +02:00
prometheus Implemente Prometheus:AdapterService 2018-03-05 19:34:59 +01:00
protected_branches Resolve "Rename the `Master` role to `Maintainer`" Backend 2018-07-11 14:36:08 +00:00
protected_tags Resolve "Rename the `Master` role to `Maintainer`" Backend 2018-07-11 14:36:08 +00:00
quick_actions Resolve "Add `/confidential` quick action for issues" 2018-06-13 12:42:36 +00:00
resource_events Resource event model 2018-08-01 08:58:49 +00:00
search Resolve "Rename the `Master` role to `Maintainer`" Backend 2018-07-11 14:36:08 +00:00
tags Don't use Gitlab::Utils.nlbr in Gitlab::Git 2018-06-11 10:42:09 +00:00
test_hooks Backport changes in app/services/test_hooks/project_service.rb 2018-06-02 18:44:31 -06:00
todos/destroy Remove todos when project feature visibility changes 2018-07-31 12:32:08 +02:00
users Allow users to set a status 2018-07-30 15:01:26 +02:00
wiki_pages Bump Gitaly to 0.98.0 2018-05-07 14:10:04 +02:00
access_token_validation_service_spec.rb
after_branch_delete_service_spec.rb
base_count_service_spec.rb
cohorts_service_spec.rb
compare_service_spec.rb
create_branch_service_spec.rb
create_deployment_service_spec.rb
create_release_service_spec.rb
create_snippet_service_spec.rb
delete_branch_service_spec.rb
delete_merged_branches_service_spec.rb
event_create_service_spec.rb Delete UserActivities and related workers 2018-07-18 15:44:10 +02:00
git_push_service_spec.rb Add repository languages for projects 2018-08-01 18:58:29 +02:00
git_tag_push_service_spec.rb Find and mark more Git disk access locations, part 2 2018-06-12 14:33:37 +02:00
gravatar_service_spec.rb
import_export_clean_up_service_spec.rb fix spec 2018-07-06 18:25:16 +02:00
note_summary_spec.rb
notification_recipient_service_spec.rb Remove Gitaly N+1 ignore from NotificationRecipientService spec 2018-07-04 16:12:37 +01:00
notification_service_spec.rb Resolve "Rename the `Master` role to `Maintainer`" Backend 2018-07-11 14:36:08 +00:00
preview_markdown_service_spec.rb Use proper markdown rendering for previews 2018-07-06 18:49:33 +00:00
push_event_payload_service_spec.rb
repair_ldap_blocked_user_service_spec.rb
repository_archive_clean_up_service_spec.rb Merge branch 'security-45689-fix-archive-cache-bug' into 'security-10-7' 2018-04-30 15:00:14 -05:00
reset_project_cache_service_spec.rb Updates from `rubocop -a` 2018-07-09 21:13:08 +08:00
search_service_spec.rb Resolve "Rename the `Master` role to `Maintainer`" Backend 2018-07-11 14:36:08 +00:00
spam_service_spec.rb
submit_usage_ping_service_spec.rb
system_hooks_service_spec.rb Updates from `rubocop -a` 2018-07-09 21:13:08 +08:00
system_note_service_spec.rb find assets in test for CI and local test 2018-06-06 11:28:13 +02:00
todo_service_spec.rb Create TODO when MR became unmergeable 2018-05-17 08:54:57 +08:00
update_merge_request_metrics_service_spec.rb Rails5 fix MySQL milliseconds problem in specs 2018-06-27 18:49:22 +02:00
update_release_service_spec.rb
update_snippet_service_spec.rb
upload_service_spec.rb Make all uses of `fixture_file_upload` use relative paths 2018-06-07 09:54:41 -05:00
user_project_access_changed_service_spec.rb
verify_pages_domain_service_spec.rb Allow pages domain verification to run on invalid domains 2018-03-26 15:07:01 +01:00
web_hook_service_spec.rb Resolve "WebHookService doesn't handle user info with nil passwords" 2018-06-25 14:44:29 +00:00