Module: KitchenInspector::Inspector::BaseManager

Includes:
Utils
Included in:
GitHubManager, GitLabManager
Defined in:
lib/kitchen-inspector/inspector/repository_managers/base.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Utils

#config_msg, #eval_metadata, #fix_version_name, #get_latest_version, #read_config, #satisfy

Instance Attribute Details

#typeObject (readonly)

Returns the value of attribute type.



31
32
33
# File 'lib/kitchen-inspector/inspector/repository_managers/base.rb', line 31

def type
  @type
end

Instance Method Details

#changelog(project_url, revId, otherRevId) ⇒ Object

Return a shortened url to the commits between two revisions



99
100
101
102
103
104
105
106
107
# File 'lib/kitchen-inspector/inspector/repository_managers/base.rb', line 99

def changelog(project_url, revId, otherRevId)
  return unless project_url && revId && otherRevId
  cache_key = "#{project_url}-#{revId}-#{otherRevId}"

  @changelogs_cache[cache_key] ||=
    begin
      NetUtils.shorten_url("#{project_url}/compare/#{revId}...#{otherRevId}").gsub(/^http:\/\//, '')
    end
end

#initializeObject



33
34
35
36
37
38
39
# File 'lib/kitchen-inspector/inspector/repository_managers/base.rb', line 33

def initialize
  # Cache metadata and tags to reduce calls against the Repository Manager
  @metadata_cache = {}
  @tags_cache = {}
  @changelogs_cache = {}
  @type = "BaseManager"
end

#project_dependencies(project, revId) ⇒ Object

Given a project and a revision retrieve its dependencies from metadata.rb



62
63
64
65
66
67
68
69
70
# File 'lib/kitchen-inspector/inspector/repository_managers/base.rb', line 62

def project_dependencies(project, revId)
  return nil unless project && revId

   = (project, revId)

  if 
    .dependencies.collect{|dep, constraint| Models::Dependency.new(dep, constraint)}
  end
end

#project_metadata(project, revId) ⇒ Object

Given a project and a revision retrieve its metadata



84
85
86
87
88
89
90
# File 'lib/kitchen-inspector/inspector/repository_managers/base.rb', line 84

def (project, revId)
  cache_key = "#{project.id}-#{revId}"
  @metadata_cache[cache_key] ||=
    begin
      (project, revId)
    end
end

#project_metadata_version(project, revId) ⇒ Object

Given a project and a revision retrieve its metadata’s version



73
74
75
76
77
78
79
80
81
# File 'lib/kitchen-inspector/inspector/repository_managers/base.rb', line 73

def (project, revId)
  return nil unless project && revId

   = (project, revId)

  if 
    fix_version_name(.version)
  end
end

#projects_by_name(name) ⇒ Object

Retrieve projects by name

Raises:

  • (NotImplementedError)


47
48
49
# File 'lib/kitchen-inspector/inspector/repository_managers/base.rb', line 47

def projects_by_name(name)
  raise NotImplementedError
end

#retrieve_metadata(project) ⇒ Object

Retrieve project’s metadata

Raises:

  • (NotImplementedError)


52
53
54
# File 'lib/kitchen-inspector/inspector/repository_managers/base.rb', line 52

def (project)
  raise NotImplementedError
end

#retrieve_tags(project) ⇒ Object

Given a project return its tags

Raises:

  • (NotImplementedError)


57
58
59
# File 'lib/kitchen-inspector/inspector/repository_managers/base.rb', line 57

def retrieve_tags(project)
  raise NotImplementedError
end

#source_url(project) ⇒ Object

Return the full URL for a given project

Raises:

  • (NotImplementedError)


42
43
44
# File 'lib/kitchen-inspector/inspector/repository_managers/base.rb', line 42

def source_url(project)
  raise NotImplementedError
end

#tags(project) ⇒ Object

Given a project return the tags on the Repository Manager



93
94
95
96
# File 'lib/kitchen-inspector/inspector/repository_managers/base.rb', line 93

def tags(project)
  cache_key = project.id
  @tags_cache[cache_key] ||= retrieve_tags(project)
end