ghgem 1.1.0 → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/ghgem.rb +17 -109
- data/lib/issues.rb +32 -0
- data/lib/repositories.rb +49 -0
- data/lib/responser.rb +11 -0
- metadata +4 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3fa1ecc1cd24f42220e55dbaee59dd6dc7481c1587c5d86b416ceb85ef9fdcfe
|
4
|
+
data.tar.gz: c7ad71494714d036096b6b0614b88b73208ff85c32d20d9cbb58730560451abe
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2fd25b45bfef228b5c30cfd5cbd3707c2d369f339a14ace055761164c6567453b61987bee22aadfa430abf7c1a0385c8b01291a93ea92a2f508c614aa2301a0e
|
7
|
+
data.tar.gz: 9254ec57d92b8450a41f733ec0223c37d54d00417c3511e6ea50cac062bd1877c734dbea02318f03c6501a49d710c8841167bcb0015979ecbb0c9b3890bbdb18
|
data/lib/ghgem.rb
CHANGED
@@ -2,126 +2,34 @@ require "net/http"
|
|
2
2
|
require "uri"
|
3
3
|
require "json"
|
4
4
|
require "awesome_print"
|
5
|
+
require_relative "repositories.rb"
|
6
|
+
require_relative "issues.rb"
|
7
|
+
require_relative "responser.rb"
|
5
8
|
|
6
9
|
class GHGem
|
7
10
|
attr_accessor :token, :nickname
|
8
11
|
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
#
|
12
|
+
extend Repositories
|
13
|
+
extend Issues
|
14
|
+
|
13
15
|
def self.add_access_token(token)
|
14
|
-
|
16
|
+
if token.class == String
|
17
|
+
@token = token
|
18
|
+
else
|
19
|
+
ap("Invalid token! Token must be a string.")
|
20
|
+
end
|
15
21
|
end
|
16
22
|
|
17
|
-
##
|
18
|
-
# -
|
19
|
-
# Get info about user. ***Requires*** nickname and password.
|
20
|
-
#
|
21
23
|
def self.get_info_about_user(name, password)
|
22
24
|
uri = URI.parse("https://api.github.com/users/#{name}")
|
23
25
|
request = Net::HTTP::Get.new(uri)
|
24
26
|
request.basic_auth(name, password)
|
25
27
|
|
26
|
-
|
27
|
-
use_ssl: uri.scheme == "https",
|
28
|
-
}
|
29
|
-
|
30
|
-
response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
|
31
|
-
http.request(request)
|
32
|
-
end
|
33
|
-
|
34
|
-
ap(JSON.parse(response.body))
|
35
|
-
end
|
36
|
-
|
37
|
-
##
|
38
|
-
# -
|
39
|
-
# List all private repoistories for **authenticated user**
|
40
|
-
#
|
41
|
-
def self.get_all_private_repositories(name, password)
|
42
|
-
uri = URI.parse("https://api.github.com/user/repos?visibility=private")
|
43
|
-
request = Net::HTTP::Get.new(uri)
|
44
|
-
request.basic_auth(name, password)
|
45
|
-
|
46
|
-
req_options = {
|
47
|
-
use_ssl: uri.scheme == "https",
|
48
|
-
}
|
49
|
-
|
50
|
-
response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
|
51
|
-
http.request(request)
|
52
|
-
end
|
53
|
-
|
54
|
-
ap(JSON.parse(response.body))
|
55
|
-
end
|
56
|
-
|
57
|
-
##
|
58
|
-
# -
|
59
|
-
# List public repositories for a **user**.
|
60
|
-
#
|
61
|
-
def self.get_public_repositories(nickname)
|
62
|
-
@nickname = nickname
|
63
|
-
|
64
|
-
uri = URI.parse("https://api.github.com/users/#{@nickname}/repos")
|
65
|
-
request = Net::HTTP::Get.new(uri)
|
66
|
-
request.basic_auth("#{@nickname}", "#{@token}")
|
67
|
-
|
68
|
-
req_options = {
|
69
|
-
use_ssl: uri.scheme == "https",
|
70
|
-
}
|
71
|
-
|
72
|
-
response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
|
73
|
-
http.request(request)
|
74
|
-
end
|
75
|
-
|
76
|
-
ap(JSON.parse(response.body))
|
77
|
-
end
|
78
|
-
|
79
|
-
##
|
80
|
-
#
|
81
|
-
# -
|
82
|
-
#
|
83
|
-
# Create a repository for the **authenticated** user.
|
84
|
-
#
|
85
|
-
# **Params**:
|
86
|
-
#
|
87
|
-
# **Name**: The way that your repoistory will be called. That parameter is ***required***.
|
88
|
-
#
|
89
|
-
# **Description**: Description of your repository. Default: ***empty***.
|
90
|
-
#
|
91
|
-
# **Homepage**: Homepage of your repository. Default: ***empty***.
|
92
|
-
#
|
93
|
-
# **Private**: *Boolean* value. Default: ***false***. || ***false***: public || ***true***: private ||
|
94
|
-
#
|
95
|
-
# **Auto init**: Pass ***true*** to create an initial commit with empty README. Default: ***false***.
|
96
|
-
#
|
97
|
-
# **Has issues**: Either ***true*** to enable issues for this repository or ***false*** to disable them. Default: ***true***.
|
98
|
-
#
|
99
|
-
# **Has Projects**: Either ***true*** to enable projects for this repository or ***false*** to disable them. Default: ***true***.
|
100
|
-
#
|
101
|
-
# **Has Wiki**: Either ***true*** to enable the wiki for this repository or ***false*** to disable it. Default: ***true***.
|
102
|
-
#
|
103
|
-
def self.create_repository(repository_name, repository_description = "", homepage = "", private_repository = false, auto_init = false, has_issues = false, has_projects = false, has_wiki = false)
|
104
|
-
uri = URI.parse("https://api.github.com/user/repos")
|
105
|
-
request = Net::HTTP::Post.new(uri)
|
106
|
-
request.basic_auth(@nickname, @token)
|
107
|
-
request.body = JSON.dump({
|
108
|
-
"name" => repository_name,
|
109
|
-
"description" => repository_name,
|
110
|
-
"homepage" => homepage,
|
111
|
-
"private" => private_repository,
|
112
|
-
"has_issues" => has_issues,
|
113
|
-
"has_projects" => has_projects,
|
114
|
-
"has_wiki" => has_wiki,
|
115
|
-
})
|
116
|
-
|
117
|
-
req_options = {
|
118
|
-
use_ssl: uri.scheme == "https",
|
119
|
-
}
|
120
|
-
|
121
|
-
response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
|
122
|
-
http.request(request)
|
123
|
-
end
|
124
|
-
|
125
|
-
ap(JSON.parse(response.body))
|
28
|
+
ap(JSON.parse(responser(uri, request).body))
|
126
29
|
end
|
127
30
|
end
|
31
|
+
|
32
|
+
GHGem.add_access_token("979caf5f63eea264c50a37192f3313db78f39021")
|
33
|
+
GHGem.get_public_repositories("klautu")
|
34
|
+
GHGem.get_info_about_user("klautu", "sosiloh88")
|
35
|
+
GHGem.get_issues
|
data/lib/issues.rb
ADDED
@@ -0,0 +1,32 @@
|
|
1
|
+
require_relative "responser.rb"
|
2
|
+
|
3
|
+
module Issues
|
4
|
+
def get_issues
|
5
|
+
uri = URI.parse("https://api.github.com/issues")
|
6
|
+
request = Net::HTTP::Get.new(uri)
|
7
|
+
request["Authorization"] = "token #{@token}"
|
8
|
+
|
9
|
+
ap(JSON.parse(responser(uri, request).body))
|
10
|
+
end
|
11
|
+
|
12
|
+
def get_organization_issues(organization)
|
13
|
+
uri = URI.parse("https://api.github.com/orgs/#{organization}/issues")
|
14
|
+
request = Net::HTTP::Get.new(uri)
|
15
|
+
request["Authorization"] = "token #{@token}"
|
16
|
+
|
17
|
+
ap(JSON.parse(responser(uri, request).body))
|
18
|
+
end
|
19
|
+
|
20
|
+
def create_issue(owner, repository_name, title, body, labels)
|
21
|
+
uri = URI.parse("https://api.github.com/repos/#{owner}/#{repository_name}/issues")
|
22
|
+
request = Net::HTTP::Post.new(uri)
|
23
|
+
request["Authorization"] = "token #{@token}"
|
24
|
+
request.body = "{
|
25
|
+
\"title\": #{title},
|
26
|
+
\"body\": #{body},
|
27
|
+
\"labels\": #{labels}
|
28
|
+
}"
|
29
|
+
|
30
|
+
ap(JSON.parse(responser(uri, request).body))
|
31
|
+
end
|
32
|
+
end
|
data/lib/repositories.rb
ADDED
@@ -0,0 +1,49 @@
|
|
1
|
+
require_relative "responser.rb"
|
2
|
+
|
3
|
+
module Repositories
|
4
|
+
def get_organization_repositories(organization)
|
5
|
+
uri = URI.parse("https://api.github.com/orgs/#{organization}/repos")
|
6
|
+
response = Net::HTTP.get_response(uri)
|
7
|
+
|
8
|
+
ap(JSON.parse(responser(uri, request).body))
|
9
|
+
end
|
10
|
+
|
11
|
+
def get_all_private_repositories(name, password)
|
12
|
+
uri = URI.parse("https://api.github.com/user/repos?visibility=private")
|
13
|
+
request = Net::HTTP::Get.new(uri)
|
14
|
+
request.basic_auth(name, password)
|
15
|
+
|
16
|
+
ap(JSON.parse(responser(uri, request).body))
|
17
|
+
end
|
18
|
+
|
19
|
+
def get_public_repositories(nickname)
|
20
|
+
@nickname = nickname
|
21
|
+
|
22
|
+
uri = URI.parse("https://api.github.com/users/#{@nickname}/repos")
|
23
|
+
request = Net::HTTP::Get.new(uri)
|
24
|
+
request.basic_auth("#{@nickname}", "#{@token}")
|
25
|
+
|
26
|
+
if responser(uri, request).body.include?("Bad credentials")
|
27
|
+
ap("Invalid token!")
|
28
|
+
else
|
29
|
+
ap(JSON.parse(responser(uri, request).body))
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
def create_repository(repository_name, repository_description = "", homepage = "", private_repository = false, auto_init = false, has_issues = false, has_projects = false, has_wiki = false)
|
34
|
+
uri = URI.parse("https://api.github.com/user/repos")
|
35
|
+
request = Net::HTTP::Post.new(uri)
|
36
|
+
request.basic_auth(@nickname, @token)
|
37
|
+
request.body = JSON.dump({
|
38
|
+
"name" => repository_name,
|
39
|
+
"description" => repository_name,
|
40
|
+
"homepage" => homepage,
|
41
|
+
"private" => private_repository,
|
42
|
+
"has_issues" => has_issues,
|
43
|
+
"has_projects" => has_projects,
|
44
|
+
"has_wiki" => has_wiki,
|
45
|
+
})
|
46
|
+
|
47
|
+
ap(JSON.parse(responser(uri, request).body))
|
48
|
+
end
|
49
|
+
end
|
data/lib/responser.rb
ADDED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ghgem
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ismail Chukmaev
|
@@ -17,6 +17,9 @@ extensions: []
|
|
17
17
|
extra_rdoc_files: []
|
18
18
|
files:
|
19
19
|
- lib/ghgem.rb
|
20
|
+
- lib/issues.rb
|
21
|
+
- lib/repositories.rb
|
22
|
+
- lib/responser.rb
|
20
23
|
homepage:
|
21
24
|
licenses: []
|
22
25
|
metadata: {}
|