gitlab/app/finders
Paul Gascou-Vaillancourt dfb26b6a88 Add IaC scanning to Security Configuration page
This adds the IaC Scanning configuration card to the Security
Configuration page.
2021-11-08 20:15:34 +01:00
..
admin
alert_management Add escalation status for incident issues 2021-08-18 04:07:12 +00:00
analytics/cycle_analytics
autocomplete Exclude project namespaces from routes 2021-11-02 07:53:04 +01:00
boards
bulk_imports
ci Allowlist a finder method 2021-10-26 17:44:31 +13:00
clusters Add License checks to AgentAuthorizationsFinder 2021-11-02 20:06:43 +00:00
concerns Add an exact_name param to the GroupPackagesFinder 2021-10-08 17:53:52 -07:00
deploy_tokens
design_management
environments Speed up searching environments by ref deployed 2021-11-01 14:05:50 +03:00
error_tracking Add pagination to integrated error tracking 2021-09-28 16:58:13 +00:00
groups Add groups field to UserType in GraphQL 2021-08-20 13:41:25 -05:00
issuable_finder Remove optimized_issuable_label_filter flag 2021-09-16 22:12:15 +08:00
issuables Omit WHERE clause for NOT labels filter when empty 2021-10-28 10:44:04 +08:00
issues_finder Sidebar open issues count should not include hidden issues for non-admins 2021-09-16 19:58:52 +00:00
merge_request
merge_requests
merge_requests_finder
metrics
namespaces
packages Remove package/ci table cross joins 2021-10-27 14:31:36 -06:00
projects Project topics: Add management in admin area 2021-10-13 07:06:32 +00:00
releases
repositories Gitaly repository tree keyset pagination 2021-09-14 15:41:15 +00:00
security Add IaC scanning to Security Configuration page 2021-11-08 20:15:34 +01:00
terraform
abuse_reports_finder.rb
access_requests_finder.rb
applications_finder.rb
award_emojis_finder.rb Extract emoji validation rules to a custom validator 2021-10-14 02:52:38 +02:00
branches_finder.rb Gitaly repository tree keyset pagination 2021-09-14 15:41:15 +00:00
cluster_ancestors_finder.rb
clusters_finder.rb
container_repositories_finder.rb
context_commits_finder.rb
contributed_projects_finder.rb
deployments_finder.rb
events_finder.rb
feature_flags_finder.rb
feature_flags_user_lists_finder.rb
fork_projects_finder.rb
fork_targets_finder.rb
freeze_periods_finder.rb
git_refs_finder.rb
group_descendants_finder.rb
group_finder.rb
group_members_finder.rb
group_projects_finder.rb
groups_finder.rb
issuable_finder.rb Fix issue search optimization in GraphQL 2021-09-29 21:19:32 +08:00
issues_finder.rb Merge branch '328240-add-negated-issue-type-filter' into 'master' 2021-09-20 04:14:17 +00:00
joined_groups_finder.rb
keys_finder.rb
labels_finder.rb
lfs_pointers_finder.rb
license_template_finder.rb
members_finder.rb Enable linear MembersFinder ancestors queries 2021-10-29 08:18:30 +02:00
merge_request_target_project_finder.rb
merge_requests_finder.rb
milestones_finder.rb
notes_finder.rb
pending_todos_finder.rb
personal_access_tokens_finder.rb
personal_projects_finder.rb
projects_finder.rb Eliminate acts_as_taggable gem for project topics 2021-09-28 08:20:42 +00:00
prometheus_metrics_finder.rb
protected_branches_finder.rb
README.md
releases_finder.rb
resource_milestone_event_finder.rb
resource_state_event_finder.rb
sentry_issue_finder.rb
serverless_domain_finder.rb
snippets_finder.rb
starred_projects_finder.rb
tags_finder.rb Render gitaly-unavailable error for Tags page 2021-10-06 13:09:21 +03:00
template_finder.rb
todos_finder.rb
union_finder.rb
uploader_finder.rb
user_finder.rb
user_group_notification_settings_finder.rb
user_groups_counter.rb
user_recent_events_finder.rb
users_finder.rb
users_star_projects_finder.rb

Finders

These types of classes are responsible for retrieving collection items based on different conditions. They prevent lookup methods in models like this:

class Project < ApplicationRecord
  def issues_for_user_filtered_by(user, filter)
    # A lot of logic not related to project model itself
  end
end

issues = project.issues_for_user_filtered_by(user, params)

The GitLab approach is to use a Finder:

issues = IssuesFinder.new(project, user, filter).execute

It will help keep models thinner.