summaryrefslogtreecommitdiff
path: root/lib/gitlab/gitorious_import/client.rb
blob: 1fa89dba448727912843b0adeb3badcdb3325f06 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
module Gitlab
  module GitoriousImport
    GITORIOUS_HOST = "https://gitorious.org"

    class Client
      attr_reader :repo_list

      def initialize(repo_list)
        @repo_list = repo_list
      end

      def authorize_url(redirect_uri)
        "#{GITORIOUS_HOST}/gitlab-import?callback_url=#{redirect_uri}"
      end

      def repos
        @repos ||= repo_names.map { |full_name| GitoriousImport::Repository.new(full_name) }
      end

      def repo(id)
        repos.find { |repo| repo.id == id }
      end

      private

      def repo_names
        repo_list.to_s.split(',').map(&:strip).reject(&:blank?)
      end
    end
  end
end