gitget 0.1.0

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 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