summaryrefslogtreecommitdiff
path: root/app/models/concerns/integration.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/models/concerns/integration.rb')
-rw-r--r--app/models/concerns/integration.rb19
1 files changed, 19 insertions, 0 deletions
diff --git a/app/models/concerns/integration.rb b/app/models/concerns/integration.rb
new file mode 100644
index 00000000000..644a0ba1b5e
--- /dev/null
+++ b/app/models/concerns/integration.rb
@@ -0,0 +1,19 @@
+# frozen_string_literal: true
+
+module Integration
+ extend ActiveSupport::Concern
+
+ class_methods do
+ def with_custom_integration_for(integration, page = nil, per = nil)
+ custom_integration_project_ids = Service
+ .where(type: integration.type)
+ .where(inherit_from_id: nil)
+ .distinct # Required until https://gitlab.com/gitlab-org/gitlab/-/issues/207385
+ .page(page)
+ .per(per)
+ .pluck(:project_id)
+
+ Project.where(id: custom_integration_project_ids)
+ end
+ end
+end