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 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: {}