Module: QCloudHive::CodeOA

Defined in:
lib/qcloudhive/gitlab.rb

Class Method Summary collapse

Class Method Details

.branch(project, name) ⇒ Object



22
23
24
25
26
27
28
# File 'lib/qcloudhive/gitlab.rb', line 22

def CodeOA.branch(project, name)
  begin
     Gitlab.branch(project, name)
  rescue Gitlab::Error::NotFound
    return nil
  end
end

.branchs(project) ⇒ Object



57
58
59
# File 'lib/qcloudhive/gitlab.rb', line 57

def CodeOA.branchs(project)
  Gitlab.branches(project.id)
end

.createProject(projectName) ⇒ Object



43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/qcloudhive/gitlab.rb', line 43

def CodeOA.createProject(projectName)
  project = CodeOA.existProjectByName?(projectName)
  if project != nil
    puts ("#{name}已经在CodeOA上存在,将不会在git.code.oa.com上再次新建改项目")
    return project
  else
    Gitlab.create_project(projectName, {
      :description => "#{projectName}的仓库",
      :namespace_id => Config.namespaceID
      })
    CodeOA.existProjectByName?(projectName)
  end
end

.empty?(project) ⇒ Boolean

Returns:

  • (Boolean)


61
62
63
64
65
66
67
# File 'lib/qcloudhive/gitlab.rb', line 61

def CodeOA.empty?(project)
  if Gitlab.branches(project.id).count == 0
    true
  else
    false
  end
end

.exist?(projectName) ⇒ Boolean

Returns:

  • (Boolean)


12
13
14
15
16
17
18
19
20
# File 'lib/qcloudhive/gitlab.rb', line 12

def CodeOA.exist?(projectName)
  project = existProjectByName?(projectName)
  L.debug "project #{project}"
    if  project != nil
      return true
    else
      return false
    end
end

.existProjectByName?(projectName) ⇒ Boolean

Returns:

  • (Boolean)


29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/qcloudhive/gitlab.rb', line 29

def CodeOA.existProjectByName?(projectName)
  projects = Gitlab.project_search(projectName)
  L.info "所有项目 #{projects.count}"
  aimProjects = projects.select{ |p|
    L.debug "#{projectName} #{p.name} #{p.namespace.path} #{Config.team}"
    p.name == projectName && p.namespace.path == Config.team
  }
  if aimProjects.count > 0
    return aimProjects.first
  else
    return nil
  end
end

.setup(token) ⇒ Object



8
9
10
11
# File 'lib/qcloudhive/gitlab.rb', line 8

def CodeOA.setup(token)
  Gitlab.endpoint = "http://git.code.oa.com/api/v3"
  Gitlab.private_token = token
end