summaryrefslogtreecommitdiff
path: root/lib/gitlab/phabricator_import/conduit/user.rb
diff options
context:
space:
mode:
authorJames Lopez <james@gitlab.com>2019-07-11 06:51:31 +0000
committerJames Lopez <james@gitlab.com>2019-07-11 06:51:31 +0000
commit3a55ba7de49a1e3ce54bbf7b10640d66ed5af0bc (patch)
tree04d4c0211348e0c3d4684bc24c0a5d7d417fd8d2 /lib/gitlab/phabricator_import/conduit/user.rb
parent43eeba0488b4133f5c55b81e833a73233107aba0 (diff)
parent32184839c3983babe53ea93fc16b7cde5ada95f6 (diff)
downloadgitlab-ce-3a55ba7de49a1e3ce54bbf7b10640d66ed5af0bc.tar.gz
Merge branch 'bvl-link-phab-users' into 'master'
Fetch users from Phabricator + link to issues Closes #60565 See merge request gitlab-org/gitlab-ce!30321
Diffstat (limited to 'lib/gitlab/phabricator_import/conduit/user.rb')
-rw-r--r--lib/gitlab/phabricator_import/conduit/user.rb31
1 files changed, 31 insertions, 0 deletions
diff --git a/lib/gitlab/phabricator_import/conduit/user.rb b/lib/gitlab/phabricator_import/conduit/user.rb
new file mode 100644
index 00000000000..fc8c3f7cde9
--- /dev/null
+++ b/lib/gitlab/phabricator_import/conduit/user.rb
@@ -0,0 +1,31 @@
+# frozen_string_literal: true
+module Gitlab
+ module PhabricatorImport
+ module Conduit
+ class User
+ MAX_PAGE_SIZE = 100
+
+ def initialize(phabricator_url:, api_token:)
+ @client = Client.new(phabricator_url, api_token)
+ end
+
+ def users(phids)
+ phids.each_slice(MAX_PAGE_SIZE).map { |limited_phids| get_page(limited_phids) }
+ end
+
+ private
+
+ def get_page(phids)
+ UsersResponse.new(get_users(phids))
+ end
+
+ def get_users(phids)
+ client.get('user.search',
+ params: { constraints: { phids: phids } })
+ end
+
+ attr_reader :client
+ end
+ end
+ end
+end