Class: GitHub_Gem::GitHubber

Inherits:
Object
  • Object
show all
Defined in:
lib/github_api.rb

Overview

- **GitHub Gem** main class that provides ***self*** methods.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Attribute Details

#nicknameObject

Returns the value of attribute nickname.



15
16
17
# File 'lib/github_api.rb', line 15

def nickname
  @nickname
end

#tokenObject

Returns the value of attribute token.



15
16
17
# File 'lib/github_api.rb', line 15

def token
  @token
end

Class Method Details

.add_access_token(token) ⇒ Object

- Add your **github token** to access GitHub API.



21
22
23
# File 'lib/github_api.rb', line 21

def self.add_access_token(token)
  @token = token
end

.create_repository(repository_name, repository_description = "", homepage = "", private_repository = false, auto_init = false, has_issues = false, has_projects = false, has_wiki = false) ⇒ Object

-

Create a repository for the authenticated user.

Params:

Name: The way that your repoistory will be called. That parameter is ***required***.

Description: Description of your repository. Default: ***empty***.

Homepage: Homepage of your repository. Default: ***empty***.

Private: Boolean value. Default: ***false***. || ***false***: public || ***true***: private ||

**Auto init**: Pass ***true*** to create an initial commit with empty README. Default: ***false***.

**Has issues**: Either ***true*** to enable issues for this repository or ***false*** to disable them. Default: ***true***.

**Has Projects**: Either ***true*** to enable projects for this repository or ***false*** to disable them. Default: ***true***.

**Has Wiki**: Either ***true*** to enable the wiki for this repository or ***false*** to disable it. Default: ***true***.



111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
# File 'lib/github_api.rb', line 111

def self.create_repository(repository_name, repository_description = "", homepage = "", private_repository = false, auto_init = false, has_issues = false, has_projects = false, has_wiki = false)
  uri = URI.parse("https://api.github.com/user/repos")
  request = Net::HTTP::Post.new(uri)
  request.basic_auth(@nickname, @token)
  request.body = JSON.dump({
    "name" => repository_name,
    "description" => repository_name,
    "homepage" => homepage,
    "private" => private_repository,
    "has_issues" => has_issues,
    "has_projects" => has_projects,
    "has_wiki" => has_wiki,
  })

  req_options = {
    use_ssl: uri.scheme == "https",
  }

  response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
    http.request(request)
  end

  ap(JSON.parse(response.body))
end

.get_all_private_repositories(name, password) ⇒ Object

- List all private repoistories for **authenticated user**



49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/github_api.rb', line 49

def self.get_all_private_repositories(name, password)
  uri = URI.parse("https://api.github.com/user/repos?visibility=private")
  request = Net::HTTP::Get.new(uri)
  request.basic_auth(name, password)

  req_options = {
    use_ssl: uri.scheme == "https",
  }

  response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
    http.request(request)
  end

  ap(JSON.parse(response.body))
end

.get_info_about_user(name, password) ⇒ Object

- Get info about user. ***Requires*** nickname and password.



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

def self.get_info_about_user(name, password)
  uri = URI.parse("https://api.github.com/users/#{name}")
  request = Net::HTTP::Get.new(uri)
  request.basic_auth(name, password)

  req_options = {
    use_ssl: uri.scheme == "https",
  }

  response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
    http.request(request)
  end

  ap(JSON.parse(response.body))
end

.get_public_repositories(nickname) ⇒ Object

- List public repositories for a user.



69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
# File 'lib/github_api.rb', line 69

def self.get_public_repositories(nickname)
  @nickname = nickname

  uri = URI.parse("https://api.github.com/users/#{@nickname}/repos")
  request = Net::HTTP::Get.new(uri)
  request.basic_auth("#{@nickname}", "#{@token}")

  req_options = {
    use_ssl: uri.scheme == "https",
  }

  response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
    http.request(request)
  end

  ap(JSON.parse(response.body))
end