gitget 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 13ff7969ced6822f8fe9f7fc3ffc7eb7d3d2014e
4
+ data.tar.gz: d7cc0b2246a1abdfd0a386508837acb1f972d31c
5
+ SHA512:
6
+ metadata.gz: 1057cbc488822fc8a68a4caa0902bb35534f3bb0a87e15cbaa6a117a7432e2294c5251ad358b55614a62a5a433cdb3766fde7db0c33ab04c9ecf25a24068d6ab
7
+ data.tar.gz: a1f4232617ef9d5a8f808709cd28850619fc54520020656ea155f3350454687466a0acf8ffcfea35844f9fef57b0e6f341d13efdd6c349250cf3ffd5dd219bb0
data/.gitignore ADDED
@@ -0,0 +1,7 @@
1
+ config/*.yml
2
+ spec/fixtures/*.yml
3
+ spec/fixtures/*/*.yml
4
+ results.yml
5
+ github_response.yml
6
+ coverage/
7
+ *.gem
data/.rubocop.yml ADDED
@@ -0,0 +1,3 @@
1
+ ---
2
+ AllCops:
3
+ TargetRubyVersion: 2.3
data/.travis.yml ADDED
@@ -0,0 +1,13 @@
1
+ language: ruby
2
+ rvm:
3
+ - 2.0.0
4
+ - 2.1.10
5
+ - 2.2.5
6
+ - 2.3.1
7
+ - ruby-head
8
+ branches:
9
+ only:
10
+ - master
11
+ script: bundle exec rake spec
12
+ gemfile:
13
+ - Gemfile
data/Gemfile ADDED
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ source 'https://rubygems.org'
4
+
5
+ gemspec
data/Gemfile.lock ADDED
@@ -0,0 +1,89 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ gitget (0.1.0)
5
+ http (~> 2.0)
6
+
7
+ GEM
8
+ remote: https://rubygems.org/
9
+ specs:
10
+ addressable (2.4.0)
11
+ ast (2.3.0)
12
+ crack (0.4.3)
13
+ safe_yaml (~> 1.0.0)
14
+ docile (1.1.5)
15
+ domain_name (0.5.20161021)
16
+ unf (>= 0.0.5, < 1.0.0)
17
+ erubis (2.7.0)
18
+ flay (2.8.1)
19
+ erubis (~> 2.7.0)
20
+ path_expander (~> 1.0)
21
+ ruby_parser (~> 3.0)
22
+ sexp_processor (~> 4.0)
23
+ flog (4.4.0)
24
+ path_expander (~> 1.0)
25
+ ruby_parser (~> 3.1, > 3.1.0)
26
+ sexp_processor (~> 4.4)
27
+ hashdiff (0.3.0)
28
+ http (2.0.3)
29
+ addressable (~> 2.3)
30
+ http-cookie (~> 1.0)
31
+ http-form_data (~> 1.0.1)
32
+ http_parser.rb (~> 0.6.0)
33
+ http-cookie (1.0.3)
34
+ domain_name (~> 0.5)
35
+ http-form_data (1.0.1)
36
+ http_parser.rb (0.6.0)
37
+ json (2.0.2)
38
+ minitest (5.9.1)
39
+ minitest-rg (5.2.0)
40
+ minitest (~> 5.0)
41
+ parser (2.3.1.4)
42
+ ast (~> 2.2)
43
+ path_expander (1.0.0)
44
+ powerpack (0.1.1)
45
+ rainbow (2.1.0)
46
+ rake (11.3.0)
47
+ rubocop (0.43.0)
48
+ parser (>= 2.3.1.1, < 3.0)
49
+ powerpack (~> 0.1)
50
+ rainbow (>= 1.99.1, < 3.0)
51
+ ruby-progressbar (~> 1.7)
52
+ unicode-display_width (~> 1.0, >= 1.0.1)
53
+ ruby-progressbar (1.8.1)
54
+ ruby_parser (3.8.3)
55
+ sexp_processor (~> 4.1)
56
+ safe_yaml (1.0.4)
57
+ sexp_processor (4.7.0)
58
+ simplecov (0.12.0)
59
+ docile (~> 1.1.0)
60
+ json (>= 1.8, < 3)
61
+ simplecov-html (~> 0.10.0)
62
+ simplecov-html (0.10.0)
63
+ unf (0.1.4)
64
+ unf_ext
65
+ unf_ext (0.0.7.2)
66
+ unicode-display_width (1.1.1)
67
+ vcr (3.0.3)
68
+ webmock (2.1.0)
69
+ addressable (>= 2.3.6)
70
+ crack (>= 0.3.2)
71
+ hashdiff
72
+
73
+ PLATFORMS
74
+ ruby
75
+
76
+ DEPENDENCIES
77
+ flay (~> 2.8)
78
+ flog (~> 4.4)
79
+ gitget!
80
+ minitest (~> 5.9)
81
+ minitest-rg (~> 5.2)
82
+ rake (~> 11.3)
83
+ rubocop (~> 0.42)
84
+ simplecov (~> 0.12)
85
+ vcr (~> 3.0)
86
+ webmock (~> 2.1)
87
+
88
+ BUNDLED WITH
89
+ 1.13.1
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT LICENSE
2
+
3
+ Copyright (c) Rubeasts <https://github.com/Rubeasts>
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,28 @@
1
+ # gitget gem
2
+
3
+ Gitget is a gem that specializes in getting developers and there repository data on Github.
4
+
5
+ ## Installation
6
+
7
+ If you are working on a project, add this to your Gemfile: `gem 'gitget'`
8
+
9
+ For ad hoc installation from command line:
10
+
11
+ ```$ gem install gitget```
12
+
13
+ ## Setup Github Credentials
14
+
15
+ Please setup your your github personal API token https://github.com/settings/tokens
16
+
17
+ ## Usage
18
+
19
+ Require Gitget gem in your code: `require 'gitget'`
20
+
21
+ Supply your Github credentials to our library in one of two ways:
22
+ - Setup environment variables: `ENV['GH_USERNAME']` and `ENV['GH_TOKEN']`
23
+ - or, provide them directly to Gitget:
24
+
25
+ ```ruby
26
+ Github::API.config = { username: ENV['GH_USERNAME'],
27
+ token: ENV['GH_TOKEN'] }
28
+ ```
data/Rakefile ADDED
@@ -0,0 +1,45 @@
1
+ # frozen_string_literal: true
2
+ require 'rake/testtask'
3
+
4
+ task default: :spec
5
+
6
+ namespace :credentials do
7
+ require 'yaml'
8
+
9
+ desc 'Export sample credentials from file to bash'
10
+ task :export do
11
+ credentials = YAML.load(File.read('config/github_credential.yml'))
12
+ puts 'Please run the following in bash:'
13
+ puts "export GH_USERNAME=#{credentials[:username]}"
14
+ puts "export GH_TOKEN=#{credentials[:token]}"
15
+ end
16
+ end
17
+
18
+ desc 'run tests'
19
+ task :spec do
20
+ sh 'ruby spec/github_spec.rb'
21
+ end
22
+
23
+ desc 'delete cassette fixtures'
24
+ task :wipe do
25
+ sh 'rm spec/fixtures/cassettes/*.yml' do |ok, _|
26
+ puts(ok ? 'Cassettes deleted' : 'No casseettes found')
27
+ end
28
+ end
29
+
30
+ namespace :quality do
31
+ desc 'run all quality checks'
32
+ task all: [:rubocop, :flog, :flay]
33
+
34
+ task :flog do
35
+ sh 'flog lib/'
36
+ end
37
+
38
+ task :flay do
39
+ sh 'flay lib/'
40
+ end
41
+
42
+ task :rubocop do
43
+ sh 'rubocop'
44
+ end
45
+ end
data/bin/gitget ADDED
@@ -0,0 +1,22 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ $LOAD_PATH.unshift File.join(File.dirname(__FILE__), %w(.. lib))
5
+ require 'gitget'
6
+
7
+ developer_name = ARGV[0] || ENV['USERNAME']
8
+ unless developer_name
9
+ puts 'USAGE: gitget [developer_username]'
10
+ exit(1)
11
+ end
12
+
13
+ developer = Github::Developer.find(username: developer_name)
14
+
15
+ puts developer.name
16
+ developer.repos.first(3).each.with_index do |repo, index|
17
+ print "#{index + 1}: "
18
+ puts 'Repo name: ' + repo.name.to_s
19
+ puts 'Repo ID: ' + repo.id.to_s
20
+ puts 'Number of watchers: ' + repo.watchers_count.to_s
21
+ puts 'Number of Issues: ' + repo.open_issues_count.to_s
22
+ end
@@ -0,0 +1,6 @@
1
+ # https://github.com/settings/tokens
2
+ # you can find authg in fixtures/cassettes/github_api.yml
3
+ ---
4
+ :username: 'XXX'
5
+ :token: 'XXX'
6
+ :auth: 'Basic xxxxxxxxx'
data/gitget.gemspec ADDED
@@ -0,0 +1,35 @@
1
+ # frozen_string_literal: true
2
+ $LOAD_PATH.push File.expand_path('../lib', __FILE__)
3
+ require 'gitget/version'
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = 'gitget'
7
+ s.version = Github::VERSION
8
+
9
+ s.summary = 'Gets public information about Github developers'
10
+ s.description = 'Extracts developer statistics'
11
+ s.authors = ['Renaud Jollet',
12
+ 'Nicholas Danks',
13
+ 'Sami Larrousi Tribek']
14
+ s.email = ['renaudjollet@neurow.org',
15
+ 'nicholasdanks@hotmail.com',
16
+ 'sami@slt.fr']
17
+
18
+ s.files = `git ls-files`.split("\n")
19
+ s.test_files = `git ls-files -- spec/*`.split("\n")
20
+ s.executables << 'gitget'
21
+
22
+ s.add_runtime_dependency 'http', '~> 2.0'
23
+
24
+ s.add_development_dependency 'minitest', '~> 5.9'
25
+ s.add_development_dependency 'minitest-rg', '~> 5.2'
26
+ s.add_development_dependency 'rake', '~> 11.3'
27
+ s.add_development_dependency 'vcr', '~> 3.0'
28
+ s.add_development_dependency 'webmock', '~> 2.1'
29
+ s.add_development_dependency 'simplecov', '~> 0.12'
30
+ s.add_development_dependency 'flog', '~> 4.4'
31
+ s.add_development_dependency 'flay', '~> 2.8'
32
+ s.add_development_dependency 'rubocop', '~> 0.42'
33
+ s.homepage = 'https://github.com/Rubeasts/gitget'
34
+ s.license = 'MIT'
35
+ end
data/lib/gitget.rb ADDED
@@ -0,0 +1,4 @@
1
+ # frozen_string_literal: true
2
+
3
+ files = Dir.glob(File.join(File.dirname(__FILE__), 'gitget/*.rb'))
4
+ files.each { |lib| require_relative lib }
@@ -0,0 +1,69 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'yaml'
4
+ require 'http'
5
+ require 'json'
6
+
7
+ module Github
8
+ # Service for all Github API call
9
+ class API
10
+ GITHUB_API_URL = 'https://api.github.com'
11
+
12
+ def self.config=(credentials)
13
+ @config&.update(credentials) || (@config = credentials)
14
+ end
15
+
16
+ def self.config
17
+ return @config if @config
18
+
19
+ @config = { username: ENV['GH_USERNAME'],
20
+ token: ENV['GH_TOKEN'] }
21
+ end
22
+
23
+ def self.user_info(username)
24
+ route = '/users/' + username
25
+ github_api_get(route)
26
+ end
27
+
28
+ def self.user_followers(username)
29
+ route = '/users/' + username + '/followers'
30
+ github_api_get(route)
31
+ end
32
+
33
+ def self.user_following(username)
34
+ route = '/users/' + username + '/following'
35
+ github_api_get(route)
36
+ end
37
+
38
+ def self.user_repos(username)
39
+ route = '/users/' + username + '/repos'
40
+ github_api_get(route)
41
+ end
42
+
43
+ def self.repo_stat(full_name, stat)
44
+ route = '/repos/' + full_name + '/stats/' + stat
45
+ github_api_get(route)
46
+ end
47
+
48
+ private_class_method
49
+
50
+ def self.github_api_get_http(url)
51
+ HTTP.basic_auth(user: config[:username], pass: config[:token]).get(url)
52
+ end
53
+
54
+ def self.github_api_wait_cache(url)
55
+ response = github_api_get_http(url)
56
+ while response.headers['Status'].split(' ').first == '202'
57
+ sleep(2)
58
+ response = github_api_get_http(url)
59
+ end
60
+ response
61
+ end
62
+
63
+ def self.github_api_get(route)
64
+ url = GITHUB_API_URL + route
65
+ response = github_api_wait_cache(url)
66
+ JSON.parse(response.to_s)
67
+ end
68
+ end
69
+ end
@@ -0,0 +1,39 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Github
4
+ # Main class to set up a Github User
5
+ class Developer
6
+ attr_reader :name, :id, :public_repos, :followers, :following
7
+
8
+ def initialize(data:)
9
+ @name = data['login']
10
+ @id = data['id']
11
+ @public_repos = data['public_repos']
12
+ end
13
+
14
+ def repos
15
+ return @repos if @repos
16
+
17
+ @repos = Github::API.user_repos(@name).map do |repo_data|
18
+ Github::Repository.new(data: repo_data)
19
+ end
20
+ end
21
+
22
+ def followers
23
+ return @followers if @followers
24
+
25
+ @followers = Github::API.user_followers @name
26
+ end
27
+
28
+ def following
29
+ return @following if @following
30
+
31
+ @following = Github::API.user_following @name
32
+ end
33
+
34
+ def self.find(username:)
35
+ user_data = Github::API.user_info(username)
36
+ new(data: user_data)
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,39 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Github
4
+ # Main class to set up a Github User
5
+ class Repository
6
+ attr_reader :id, :name, :full_name, :is_private, :is_fork, :created_at,
7
+ :updated_at, :pushed_at, :size, :stargazers_count,
8
+ :watchers_count, :has_issues, :has_downloads, :forks_count,
9
+ :open_issues_count, :forks, :open_issues, :watchers
10
+
11
+ def initialize(data: nil)
12
+ load_data(data)
13
+ end
14
+
15
+ def stats
16
+ return @stats if @stats
17
+
18
+ @stats = {}
19
+ %w(
20
+ contributors commit_activity code_frequency participation punch_card
21
+ ).each do |stat|
22
+ @stats[stat] = Github::API.repo_stat(@full_name, stat)
23
+ end
24
+ end
25
+
26
+ def load_data(repo_data)
27
+ @full_name = repo_data['full_name']
28
+ @is_private = repo_data['is_private']
29
+ @is_fork = repo_data['is_fork']
30
+ @created_at = repo_data['created_at']
31
+ @pushed_at = repo_data['pushed_at']
32
+ @size = repo_data['size']
33
+ @stargazers_count = repo_data['stargazers_count']
34
+ @watchers_count = repo_data['watchers_count']
35
+ @forks_count = repo_data['forks_count']
36
+ @open_issues_count = repo_data['open_issues_count']
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Github
4
+ VERSION = '0.1.0'
5
+ end
@@ -0,0 +1,3 @@
1
+ # Fixtures is use for testing
2
+
3
+ It contains http response and result
@@ -0,0 +1,53 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'spec_helper'
4
+
5
+ describe 'Github specifications' do
6
+ VCR.configure do |c|
7
+ c.cassette_library_dir = CASSETTES_FOLDER
8
+ c.hook_into :webmock
9
+
10
+ c.filter_sensitive_data('<AUTH>') { ENV['GH_AUTH'] }
11
+ end
12
+
13
+ before do
14
+ VCR.insert_cassette CASSETTE_FILE, record: :new_episodes
15
+ @developer = Github::Developer.find(username: USERNAME)
16
+ end
17
+
18
+ after do
19
+ VCR.eject_cassette
20
+ end
21
+
22
+ it 'should be able to open a new Github Developer' do
23
+ @developer.name.length.must_be :>, 0
24
+ end
25
+
26
+ it 'should get the user id' do
27
+ @developer.id.must_be :>, 0
28
+ end
29
+
30
+ it 'should get the number of public repos' do
31
+ @developer.public_repos.must_be :>, 0
32
+ end
33
+
34
+ it 'should get the followers' do
35
+ @developer.followers.length.must_be :>, 0
36
+ end
37
+
38
+ it 'should get the following' do
39
+ @developer.following.length.must_be :>=, 0
40
+ end
41
+
42
+ it 'should get the repos' do
43
+ @developer.repos.length.must_be :>, 0
44
+ end
45
+
46
+ it 'should get the repo should have a full name' do
47
+ @developer.repos.first.full_name.must_be_instance_of String
48
+ end
49
+
50
+ it 'should get the repo should have stats' do
51
+ @developer.repos.first.stats.wont_be_nil
52
+ end
53
+ end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'simplecov'
4
+ SimpleCov.start
5
+
6
+ require 'minitest/autorun'
7
+ require 'minitest/rg'
8
+ require 'yaml'
9
+ require 'vcr'
10
+ require 'webmock'
11
+
12
+ require_relative '../lib/gitget'
13
+
14
+ FIXTURES_FOLDER = 'spec/fixtures'
15
+ CASSETTES_FOLDER = "#{FIXTURES_FOLDER}/cassettes"
16
+ CASSETTE_FILE = 'github_api'
17
+
18
+ USERNAME = 'rjollet'
19
+
20
+ if File.file?('config/github_credential.yml')
21
+ credentials = YAML.load(File.read('config/github_credential.yml'))
22
+ ENV['GH_USERNAME'] = credentials[:username]
23
+ ENV['GH_TOKEN'] = credentials[:token]
24
+ ENV['GH_AUTH'] = credentials[:auth]
25
+ end
metadata ADDED
@@ -0,0 +1,211 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: gitget
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Renaud Jollet
8
+ - Nicholas Danks
9
+ - Sami Larrousi Tribek
10
+ autorequire:
11
+ bindir: bin
12
+ cert_chain: []
13
+ date: 2016-10-31 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: http
17
+ requirement: !ruby/object:Gem::Requirement
18
+ requirements:
19
+ - - "~>"
20
+ - !ruby/object:Gem::Version
21
+ version: '2.0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ requirements:
26
+ - - "~>"
27
+ - !ruby/object:Gem::Version
28
+ version: '2.0'
29
+ - !ruby/object:Gem::Dependency
30
+ name: minitest
31
+ requirement: !ruby/object:Gem::Requirement
32
+ requirements:
33
+ - - "~>"
34
+ - !ruby/object:Gem::Version
35
+ version: '5.9'
36
+ type: :development
37
+ prerelease: false
38
+ version_requirements: !ruby/object:Gem::Requirement
39
+ requirements:
40
+ - - "~>"
41
+ - !ruby/object:Gem::Version
42
+ version: '5.9'
43
+ - !ruby/object:Gem::Dependency
44
+ name: minitest-rg
45
+ requirement: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - "~>"
48
+ - !ruby/object:Gem::Version
49
+ version: '5.2'
50
+ type: :development
51
+ prerelease: false
52
+ version_requirements: !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - "~>"
55
+ - !ruby/object:Gem::Version
56
+ version: '5.2'
57
+ - !ruby/object:Gem::Dependency
58
+ name: rake
59
+ requirement: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - "~>"
62
+ - !ruby/object:Gem::Version
63
+ version: '11.3'
64
+ type: :development
65
+ prerelease: false
66
+ version_requirements: !ruby/object:Gem::Requirement
67
+ requirements:
68
+ - - "~>"
69
+ - !ruby/object:Gem::Version
70
+ version: '11.3'
71
+ - !ruby/object:Gem::Dependency
72
+ name: vcr
73
+ requirement: !ruby/object:Gem::Requirement
74
+ requirements:
75
+ - - "~>"
76
+ - !ruby/object:Gem::Version
77
+ version: '3.0'
78
+ type: :development
79
+ prerelease: false
80
+ version_requirements: !ruby/object:Gem::Requirement
81
+ requirements:
82
+ - - "~>"
83
+ - !ruby/object:Gem::Version
84
+ version: '3.0'
85
+ - !ruby/object:Gem::Dependency
86
+ name: webmock
87
+ requirement: !ruby/object:Gem::Requirement
88
+ requirements:
89
+ - - "~>"
90
+ - !ruby/object:Gem::Version
91
+ version: '2.1'
92
+ type: :development
93
+ prerelease: false
94
+ version_requirements: !ruby/object:Gem::Requirement
95
+ requirements:
96
+ - - "~>"
97
+ - !ruby/object:Gem::Version
98
+ version: '2.1'
99
+ - !ruby/object:Gem::Dependency
100
+ name: simplecov
101
+ requirement: !ruby/object:Gem::Requirement
102
+ requirements:
103
+ - - "~>"
104
+ - !ruby/object:Gem::Version
105
+ version: '0.12'
106
+ type: :development
107
+ prerelease: false
108
+ version_requirements: !ruby/object:Gem::Requirement
109
+ requirements:
110
+ - - "~>"
111
+ - !ruby/object:Gem::Version
112
+ version: '0.12'
113
+ - !ruby/object:Gem::Dependency
114
+ name: flog
115
+ requirement: !ruby/object:Gem::Requirement
116
+ requirements:
117
+ - - "~>"
118
+ - !ruby/object:Gem::Version
119
+ version: '4.4'
120
+ type: :development
121
+ prerelease: false
122
+ version_requirements: !ruby/object:Gem::Requirement
123
+ requirements:
124
+ - - "~>"
125
+ - !ruby/object:Gem::Version
126
+ version: '4.4'
127
+ - !ruby/object:Gem::Dependency
128
+ name: flay
129
+ requirement: !ruby/object:Gem::Requirement
130
+ requirements:
131
+ - - "~>"
132
+ - !ruby/object:Gem::Version
133
+ version: '2.8'
134
+ type: :development
135
+ prerelease: false
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ requirements:
138
+ - - "~>"
139
+ - !ruby/object:Gem::Version
140
+ version: '2.8'
141
+ - !ruby/object:Gem::Dependency
142
+ name: rubocop
143
+ requirement: !ruby/object:Gem::Requirement
144
+ requirements:
145
+ - - "~>"
146
+ - !ruby/object:Gem::Version
147
+ version: '0.42'
148
+ type: :development
149
+ prerelease: false
150
+ version_requirements: !ruby/object:Gem::Requirement
151
+ requirements:
152
+ - - "~>"
153
+ - !ruby/object:Gem::Version
154
+ version: '0.42'
155
+ description: Extracts developer statistics
156
+ email:
157
+ - renaudjollet@neurow.org
158
+ - nicholasdanks@hotmail.com
159
+ - sami@slt.fr
160
+ executables:
161
+ - gitget
162
+ extensions: []
163
+ extra_rdoc_files: []
164
+ files:
165
+ - ".gitignore"
166
+ - ".rubocop.yml"
167
+ - ".travis.yml"
168
+ - Gemfile
169
+ - Gemfile.lock
170
+ - LICENSE
171
+ - README.md
172
+ - Rakefile
173
+ - bin/gitget
174
+ - config/github_credential.yml.exemple
175
+ - gitget.gemspec
176
+ - lib/gitget.rb
177
+ - lib/gitget/github_api.rb
178
+ - lib/gitget/github_developer.rb
179
+ - lib/gitget/github_repository.rb
180
+ - lib/gitget/version.rb
181
+ - spec/fixtures/README.md
182
+ - spec/github_spec.rb
183
+ - spec/spec_helper.rb
184
+ homepage: https://github.com/Rubeasts/gitget
185
+ licenses:
186
+ - MIT
187
+ metadata: {}
188
+ post_install_message:
189
+ rdoc_options: []
190
+ require_paths:
191
+ - lib
192
+ required_ruby_version: !ruby/object:Gem::Requirement
193
+ requirements:
194
+ - - ">="
195
+ - !ruby/object:Gem::Version
196
+ version: '0'
197
+ required_rubygems_version: !ruby/object:Gem::Requirement
198
+ requirements:
199
+ - - ">="
200
+ - !ruby/object:Gem::Version
201
+ version: '0'
202
+ requirements: []
203
+ rubyforge_project:
204
+ rubygems_version: 2.5.1
205
+ signing_key:
206
+ specification_version: 4
207
+ summary: Gets public information about Github developers
208
+ test_files:
209
+ - spec/fixtures/README.md
210
+ - spec/github_spec.rb
211
+ - spec/spec_helper.rb