ghgem 1.1.0 → 1.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 437caeeae10d1f0ad44d139b58c146a7e587de661c2f176f76b128155077d13c
4
- data.tar.gz: e91a47289db7eef1ce4c62e6ce63b559d25e4ae8debf1d5a3c33acc388244db3
3
+ metadata.gz: 3fa1ecc1cd24f42220e55dbaee59dd6dc7481c1587c5d86b416ceb85ef9fdcfe
4
+ data.tar.gz: c7ad71494714d036096b6b0614b88b73208ff85c32d20d9cbb58730560451abe
5
5
  SHA512:
6
- metadata.gz: f393a7bb732761610e8248cc97fd6ec0112e5b57041b6593c65d4cfe3e09eb72bd43a432e1eb7f7db168a735e26ed4000c3b3d1c663a580b5277c7cf9a50aa73
7
- data.tar.gz: 25ea5dc9a6e3191a8ed36c47bbaf8d7fae9dbe88b6bb0c2168a89229730ffd6667bf130903644a5b342288aa0c6eae76f69eee41220bb1fa123becd03a791baf
6
+ metadata.gz: 2fd25b45bfef228b5c30cfd5cbd3707c2d369f339a14ace055761164c6567453b61987bee22aadfa430abf7c1a0385c8b01291a93ea92a2f508c614aa2301a0e
7
+ data.tar.gz: 9254ec57d92b8450a41f733ec0223c37d54d00417c3511e6ea50cac062bd1877c734dbea02318f03c6501a49d710c8841167bcb0015979ecbb0c9b3890bbdb18
@@ -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
- # Add your **github token** to access GitHub API.
12
- #
12
+ extend Repositories
13
+ extend Issues
14
+
13
15
  def self.add_access_token(token)
14
- @token = token
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
- req_options = {
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
@@ -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
@@ -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
@@ -0,0 +1,11 @@
1
+ def responser(uri, request)
2
+ req_options = {
3
+ use_ssl: uri.scheme == "https",
4
+ }
5
+
6
+ response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
7
+ http.request(request)
8
+ end
9
+
10
+ return response
11
+ end
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.0
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: {}