diff options
author | Douglas Barbosa Alexandre <dbalexandre@gmail.com> | 2016-08-22 15:53:46 -0300 |
---|---|---|
committer | Stan Hu <stanhu@gmail.com> | 2016-11-21 16:47:25 -0800 |
commit | 6418c6f88efe9015c8bc2ebd4f7db1a7277a4dc9 (patch) | |
tree | 8481da24ef8418130a68fc2d9f82b7ed1ad0f8a5 /lib/bitbucket/representation | |
parent | e2f7f32a60a7663d12b5dae0320f640150f354e7 (diff) | |
download | gitlab-ce-6418c6f88efe9015c8bc2ebd4f7db1a7277a4dc9.tar.gz |
Add an endpoint to get the user's repositories
Diffstat (limited to 'lib/bitbucket/representation')
-rw-r--r-- | lib/bitbucket/representation/repo.rb | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/lib/bitbucket/representation/repo.rb b/lib/bitbucket/representation/repo.rb new file mode 100644 index 00000000000..fe5cda66ab9 --- /dev/null +++ b/lib/bitbucket/representation/repo.rb @@ -0,0 +1,57 @@ +module Bitbucket + module Representation + class Repo < Representation::Base + attr_reader :owner, :slug + + def initialize(raw) + super(raw) + + if full_name && full_name.split('/').size == 2 + @owner, @slug = full_name.split('/') + end + end + + def clone_url(token = nil) + url = raw['links']['clone'].find { |link| link['name'] == 'https' }.fetch('href') + + if token.present? + url.sub(/^[^\@]*/, "https://x-token-auth:#{token}") + else + url + end + end + + def description + raw['description'] + end + + def full_name + raw['full_name'] + end + + def has_issues? + raw['has_issues'] + end + + def name + raw['name'] + end + + def valid? + raw['scm'] == 'git' + end + + def visibility_level + if raw['is_private'] + Gitlab::VisibilityLevel::PRIVATE + else + Gitlab::VisibilityLevel::PUBLIC + end + end + + def to_s + full_name + end + end + end +end |