diff options
Diffstat (limited to 'lib/gitlab/git/user.rb')
-rw-r--r-- | lib/gitlab/git/user.rb | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/lib/gitlab/git/user.rb b/lib/gitlab/git/user.rb new file mode 100644 index 00000000000..e573cd0e143 --- /dev/null +++ b/lib/gitlab/git/user.rb @@ -0,0 +1,35 @@ +module Gitlab + module Git + class User + attr_reader :username, :name, :email, :gl_id + + def self.from_gitlab(gitlab_user) + new(gitlab_user.username, gitlab_user.name, gitlab_user.email, Gitlab::GlId.gl_id(gitlab_user)) + end + + def self.from_gitaly(gitaly_user) + new( + gitaly_user.gl_username, + Gitlab::EncodingHelper.encode!(gitaly_user.name), + Gitlab::EncodingHelper.encode!(gitaly_user.email), + gitaly_user.gl_id + ) + end + + def initialize(username, name, email, gl_id) + @username = username + @name = name + @email = email + @gl_id = gl_id + end + + def ==(other) + [username, name, email, gl_id] == [other.username, other.name, other.email, other.gl_id] + end + + def to_gitaly + Gitaly::User.new(gl_username: username, gl_id: gl_id, name: name.b, email: email.b) + end + end + end +end |