Module: Pod::GitHub

Defined in:
lib/cocoapods-core/github.rb

Overview

Allows to access information about the GitHub repos.

This class is stored in Core because it might be used by web services.

Class Method Summary collapse

Class Method Details

.branches(url) ⇒ Array

Returns the branches of a repo.



49
50
51
52
53
# File 'lib/cocoapods-core/github.rb', line 49

def self.branches(url)
  if repo_id = normalized_repo_id(url)
    peform_request("https://api.github.com/repos/#{repo_id}/branches")
  end
end

.contents(url, path = nil, branch = nil) ⇒ Array, Hash

Returns the contents of a file or directory in a repository.



70
71
72
73
74
75
76
77
# File 'lib/cocoapods-core/github.rb', line 70

def self.contents(url, path = nil, branch = nil)
  if repo_id = normalized_repo_id(url)
    request_url = "https://api.github.com/repos/#{repo_id}/contents"
    request_url << "/#{path}" if path
    request_url << "?ref=#{branch}" if branch
    peform_request(request_url)
  end
end

.modified_since_commit(url, commit) ⇒ Bool

Returns whether the repository has been updated since a given commit. If the request fails, the response will be true as the API is still in beta and likely to change.



90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
# File 'lib/cocoapods-core/github.rb', line 90

def self.modified_since_commit(url, commit)
  return true unless repo_id = normalized_repo_id(url)
  require 'rest'
  request_url = "https://api.github.com/repos/#{repo_id}/commits/master"
  headers = {
    'User-Agent' => 'CocoaPods',
    'Accept' => 'application/vnd.github.chitauri-preview+sha',
    'If-None-Match' => %("#{commit}"),
  }

  begin
    response = REST.get(request_url, headers)
    code = response.status_code
    code != 304
  rescue
    raise Informative, "Failed to connect to GitHub to update the #{repo_id} specs repo - Please check if you are offline, or that GitHub is down"
  end
end

.repo(url) ⇒ Hash

Returns the information of a repo.



25
26
27
28
29
# File 'lib/cocoapods-core/github.rb', line 25

def self.repo(url)
  if repo_id = normalized_repo_id(url)
    peform_request("https://api.github.com/repos/#{repo_id}")
  end
end

.tags(url) ⇒ Array

Returns the tags of a repo.



37
38
39
40
41
# File 'lib/cocoapods-core/github.rb', line 37

def self.tags(url)
  if repo_id = normalized_repo_id(url)
    peform_request("https://api.github.com/repos/#{repo_id}/tags")
  end
end

.user(login) ⇒ Hash

Returns the information of a user.



14
15
16
# File 'lib/cocoapods-core/github.rb', line 14

def self.user()
  peform_request("https://api.github.com/users/#{}")
end