ossert 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 +7 -0
- data/.gitignore +16 -0
- data/.rspec +2 -0
- data/.rubocop_todo.yml +44 -0
- data/.ruby-gemset +1 -0
- data/.ruby-version +1 -0
- data/.travis.yml +16 -0
- data/Gemfile +8 -0
- data/LICENSE.txt +21 -0
- data/README.md +199 -0
- data/Rakefile +12 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/config/classifiers.yml +153 -0
- data/config/descriptions.yml +45 -0
- data/config/sidekiq.rb +15 -0
- data/config/stats.yml +198 -0
- data/config/translations.yml +44 -0
- data/db/backups/.keep +0 -0
- data/db/migrate/001_create_projects.rb +22 -0
- data/db/migrate/002_create_exceptions.rb +14 -0
- data/db/migrate/003_add_meta_to_projects.rb +14 -0
- data/db/migrate/004_add_timestamps_to_projects.rb +12 -0
- data/db/migrate/005_create_classifiers.rb +19 -0
- data/lib/ossert/classifiers/decision_tree.rb +112 -0
- data/lib/ossert/classifiers/growing/check.rb +172 -0
- data/lib/ossert/classifiers/growing/classifier.rb +175 -0
- data/lib/ossert/classifiers/growing.rb +163 -0
- data/lib/ossert/classifiers.rb +14 -0
- data/lib/ossert/config.rb +24 -0
- data/lib/ossert/fetch/bestgems.rb +98 -0
- data/lib/ossert/fetch/github.rb +536 -0
- data/lib/ossert/fetch/rubygems.rb +80 -0
- data/lib/ossert/fetch.rb +142 -0
- data/lib/ossert/presenters/project.rb +202 -0
- data/lib/ossert/presenters/project_v2.rb +117 -0
- data/lib/ossert/presenters.rb +8 -0
- data/lib/ossert/project.rb +144 -0
- data/lib/ossert/quarters_store.rb +164 -0
- data/lib/ossert/rake_tasks.rb +6 -0
- data/lib/ossert/reference.rb +87 -0
- data/lib/ossert/repositories.rb +138 -0
- data/lib/ossert/saveable.rb +153 -0
- data/lib/ossert/stats/agility_quarter.rb +62 -0
- data/lib/ossert/stats/agility_total.rb +71 -0
- data/lib/ossert/stats/base.rb +113 -0
- data/lib/ossert/stats/community_quarter.rb +28 -0
- data/lib/ossert/stats/community_total.rb +24 -0
- data/lib/ossert/stats.rb +32 -0
- data/lib/ossert/tasks/database.rake +179 -0
- data/lib/ossert/tasks/ossert.rake +52 -0
- data/lib/ossert/version.rb +4 -0
- data/lib/ossert/workers/fetch.rb +21 -0
- data/lib/ossert/workers/fetch_bestgems_page.rb +32 -0
- data/lib/ossert/workers/refresh_fetch.rb +22 -0
- data/lib/ossert/workers/sync_rubygems.rb +0 -0
- data/lib/ossert/workers.rb +11 -0
- data/lib/ossert.rb +63 -0
- data/ossert.gemspec +47 -0
- metadata +396 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: e4e0028dc0e8484c13af62aa08115e2054372885
|
4
|
+
data.tar.gz: f3b8c10d0367809899dd376360155cecb32eee60
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: a7f7872c3351e0a19fa4886720d65b32c5c421824d7acd7449f254cf1bbfe58b3eff5ea5d96317978ec47f9cc96a01e1b15fa4db9df246bb91cc1db90e40bc87
|
7
|
+
data.tar.gz: 4324ce5e6650e59a592f608cdb7110b3fa9985b5598bd4a27b50d40cf9e7a225d17bfe4cd7d195c81656cf0df9c7435011a2db09c8b0042382001712f30cfec2
|
data/.gitignore
ADDED
data/.rspec
ADDED
data/.rubocop_todo.yml
ADDED
@@ -0,0 +1,44 @@
|
|
1
|
+
# This configuration was generated by
|
2
|
+
# `rubocop --auto-gen-config`
|
3
|
+
# on 2016-10-28 16:34:29 +0300 using RuboCop version 0.44.1.
|
4
|
+
|
5
|
+
# The point is for the user to remove these configuration records
|
6
|
+
# one by one as the offenses are removed from the code base.
|
7
|
+
# Note that changes in the inspected code, or installation of new
|
8
|
+
# versions of RuboCop, may require this file to be generated again.
|
9
|
+
|
10
|
+
Metrics/AbcSize:
|
11
|
+
Max: 16
|
12
|
+
Exclude:
|
13
|
+
- 'lib/ossert/fetch/github.rb'
|
14
|
+
|
15
|
+
Metrics/BlockLength:
|
16
|
+
Exclude:
|
17
|
+
- 'ossert.gemspec'
|
18
|
+
- 'lib/ossert/tasks/ossert.rake'
|
19
|
+
- 'lib/ossert/tasks/database.rake'
|
20
|
+
- 'spec/ossert_spec.rb'
|
21
|
+
- 'spec/spec_helper.rb'
|
22
|
+
|
23
|
+
Metrics/ClassLength:
|
24
|
+
Exclude:
|
25
|
+
- 'lib/ossert/fetch/github.rb'
|
26
|
+
|
27
|
+
Metrics/CyclomaticComplexity:
|
28
|
+
Exclude:
|
29
|
+
- 'lib/ossert/fetch/github.rb'
|
30
|
+
|
31
|
+
Metrics/MethodLength:
|
32
|
+
Exclude:
|
33
|
+
- 'lib/ossert/fetch/github.rb'
|
34
|
+
|
35
|
+
Metrics/PerceivedComplexity:
|
36
|
+
Max: 16
|
37
|
+
Exclude:
|
38
|
+
- 'lib/ossert/fetch/github.rb'
|
39
|
+
|
40
|
+
Metrics/LineLength:
|
41
|
+
Max: 120
|
42
|
+
|
43
|
+
Style/Documentation:
|
44
|
+
Enabled: false
|
data/.ruby-gemset
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
ossert
|
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
ruby-2.3.1
|
data/.travis.yml
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
language: ruby
|
2
|
+
rvm:
|
3
|
+
- 2.2.2
|
4
|
+
before_install: gem install bundler -v 1.11.2
|
5
|
+
cache: bundler
|
6
|
+
addons:
|
7
|
+
postgresql: "9.4"
|
8
|
+
env:
|
9
|
+
global:
|
10
|
+
- GITHUB_TOKEN="6a21f190e3422bf89afa8b360d923b0c30e8fbfa"
|
11
|
+
- TEST_DATABASE_URL='postgres://localhost/ossert_test'
|
12
|
+
- REDIS_URL='redis://localhost'
|
13
|
+
before_script:
|
14
|
+
- bundle exec rake db:test:prepare
|
15
|
+
script:
|
16
|
+
- bundle exec rspec
|
data/Gemfile
ADDED
data/LICENSE.txt
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
The MIT License (MIT)
|
2
|
+
|
3
|
+
Copyright (c) 2016 Sergey Dolganov
|
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,199 @@
|
|
1
|
+
Code quality? Checked by [RuboCop](https://github.com/bbatsov/rubocop/) (crowdsourced code quality metrics)
|
2
|
+
What about library support?
|
3
|
+
Introducing **Ossert**! Crowdsourced project support and availablity metrics.
|
4
|
+
|
5
|
+
# ossert (OSS cERTificate) [](https://travis-ci.org/ossert/ossert) [](http://inch-ci.org/github/ossert/ossert) [](https://codeclimate.com/github/ossert/ossert)
|
6
|
+
|
7
|
+
The main goal of project is to provide "certificate" for open-source software with different validity check, just to be more
|
8
|
+
formal in estimation of projects' risks, value and ability to use in an enterprise.
|
9
|
+
Also system is designed as open one, so any new checks and validations from community are appreciated.
|
10
|
+
|
11
|
+
The simple structure is:
|
12
|
+
- "Project" has set of raw attributes gathered from different data sources and metrics built upon them.
|
13
|
+
- "Fetch" classes gathers data from sources like Rubygems, Bestgems, GitHub.
|
14
|
+
- "Reference" class chooses reference projects from different popularity groups (from most to the least popular).
|
15
|
+
- "Classifiers::Growing::Classifier" class prepares classification by sections (Maintenance, Popularity, Maturity) using reference projects.
|
16
|
+
Each classifier section performs calculation upon its own metrics and weights.
|
17
|
+
- "Classifiers::Growing::Check" running checks against classifier and prepares marks for particular project.
|
18
|
+
|
19
|
+
Project tries to answer simple question: "Is this gem ready for production? Will it be available and consistent in a year?"
|
20
|
+
Ossert marks projects with grades A, B, C, D, E. Highest grade means you possibly can trust that open-source project because it is
|
21
|
+
used widely and supported in efficient way. Less grades means higher risks for production.
|
22
|
+
|
23
|
+
Also you can check several alternatives against same checks to select most stable and mature from them.
|
24
|
+
|
25
|
+
Long term milestone is to provide not only marks and metrics but also give a context of classification (trends, metadata, discussions, docs, users and so on).
|
26
|
+
This tool should help you dive into any open-source library on any level of detalization, from overall marks to a particular change in time.
|
27
|
+
|
28
|
+
## Metrics
|
29
|
+
|
30
|
+
I choose to start with following basic validity checks
|
31
|
+
|
32
|
+
### Project Community Metrics
|
33
|
+
|
34
|
+
#### Stats, total for all time
|
35
|
+
- Users count writing issues
|
36
|
+
- Users count sent PR
|
37
|
+
- Contributors count
|
38
|
+
- Watchers, Stargazers, Forks
|
39
|
+
- Owners... (link Rubygems and Github by email)
|
40
|
+
|
41
|
+
#### Pulse, for last year/quarter/month (amount + delta from total)
|
42
|
+
- Users count writing issues
|
43
|
+
- Users count sent PR
|
44
|
+
- Contributors count
|
45
|
+
- Watchers, Stargazers, Forks
|
46
|
+
|
47
|
+
### Project Agility Metrics
|
48
|
+
|
49
|
+
#### Stats, total for all time
|
50
|
+
- Opened and Closed Issues
|
51
|
+
- Opened, Merged and Closed PRs
|
52
|
+
- Opened non-author Issues, "with author comments" and total count
|
53
|
+
- Time since first/last PR and Issue
|
54
|
+
- Releases Count
|
55
|
+
- Last Release Date
|
56
|
+
- Commits count since last release
|
57
|
+
- Amount of changes each quarter
|
58
|
+
- Stale and Total branches count
|
59
|
+
|
60
|
+
#### Pulse, for last year/quarter/month (amount + delta from total)
|
61
|
+
- Opened and Closed Issues
|
62
|
+
- Opened and Merged PRs
|
63
|
+
- Releases Count
|
64
|
+
- Downloads divergence
|
65
|
+
- Downloads degradation per release (Comes later)
|
66
|
+
- Stale Branches Count
|
67
|
+
|
68
|
+
## Existining alternatives
|
69
|
+
|
70
|
+
### RecordNotFound.com
|
71
|
+
Interesting overview by commits and pull requests activity, not very detailed
|
72
|
+
|
73
|
+
### Github Archive (https://www.githubarchive.org/#bigquery)
|
74
|
+
|
75
|
+
### RubyToolbox has:
|
76
|
+
- Popularity Rating (https://www.ruby-toolbox.com/projects/delayed_job/popularity)
|
77
|
+
- Links, from gemspec
|
78
|
+
- Website
|
79
|
+
- RDoc
|
80
|
+
- Wiki
|
81
|
+
- Source Code
|
82
|
+
- Bug Tracker
|
83
|
+
- from Rubygems
|
84
|
+
- Total Downloads + increased for month
|
85
|
+
- Total Releases Count
|
86
|
+
- Current Version
|
87
|
+
- When Released
|
88
|
+
- First Release Date
|
89
|
+
- Depends on following gems
|
90
|
+
- Depending Gems (reverse dependencies)
|
91
|
+
- Popular gems depending on this... (list)
|
92
|
+
- from Github
|
93
|
+
- Watchers
|
94
|
+
- Forks
|
95
|
+
- Development activity (N commits within last year)
|
96
|
+
- Last commit date
|
97
|
+
- First commit date
|
98
|
+
- Top contributors
|
99
|
+
- Contributors Count
|
100
|
+
- Issues Count
|
101
|
+
- Wiki pages link
|
102
|
+
|
103
|
+
### Rubygems has:
|
104
|
+
- Total Downloads
|
105
|
+
- Total Releases Count
|
106
|
+
- current version and when it was released
|
107
|
+
- first release date
|
108
|
+
- Dependencies
|
109
|
+
- Depending Gems (reverse dependencies)
|
110
|
+
|
111
|
+
### Github has:
|
112
|
+
- Opened and Closed PRs
|
113
|
+
- Opened and Closed Issues
|
114
|
+
- Labels list
|
115
|
+
- Milestones list
|
116
|
+
- Watchers Count & Links
|
117
|
+
- Stargazers Count & Links
|
118
|
+
- Forks Count & Links
|
119
|
+
- Commits Count
|
120
|
+
- Branches Count
|
121
|
+
- Releases Count
|
122
|
+
- Contributors Count
|
123
|
+
- Latest commit date
|
124
|
+
|
125
|
+
#### Pulse, for month/week/3 days/24 hours period
|
126
|
+
"Excluding merges, 29 authors have pushed 76 commits to master and 87 commits to all branches.
|
127
|
+
On master, 128 files have changed and there have been 5,342 additions and 5,554 deletions."
|
128
|
+
- Active PRs Count and List (sent, merged)
|
129
|
+
- Active Issues Count and List (new, closed)
|
130
|
+
- Unresolved conversations
|
131
|
+
"Sometimes conversations happen on old items that aren’t yet closed.
|
132
|
+
Here is a list of all the Issues and Pull Requests with unresolved conversations."
|
133
|
+
|
134
|
+
#### Graphs, all time or selected period
|
135
|
+
- Top contributors (by commits/additoins/deletions)
|
136
|
+
- Commits timeline
|
137
|
+
- Code frequency (Additions/Deletions amount on timeline)
|
138
|
+
- Punch card (Days and Hours of most activity)
|
139
|
+
|
140
|
+
## Installation
|
141
|
+
|
142
|
+
Add this line to your application's Gemfile:
|
143
|
+
|
144
|
+
```ruby
|
145
|
+
gem 'ossert'
|
146
|
+
```
|
147
|
+
|
148
|
+
And then execute:
|
149
|
+
|
150
|
+
$ bundle
|
151
|
+
|
152
|
+
Or install it yourself as:
|
153
|
+
|
154
|
+
$ gem install ossert
|
155
|
+
|
156
|
+
After that you should set ENV variables:
|
157
|
+
|
158
|
+
```
|
159
|
+
$ export GITHUB_TOKEN xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
160
|
+
$ export REDIS_URL redis://localhost/
|
161
|
+
$ export DATABASE_URL postrgres://localhost/ossert
|
162
|
+
$ export TEST_DATABASE_URL postrgres://localhost/ossert_test
|
163
|
+
```
|
164
|
+
|
165
|
+
Then you can run:
|
166
|
+
|
167
|
+
```
|
168
|
+
bundle exec rake db:setup
|
169
|
+
```
|
170
|
+
|
171
|
+
Or if you have previous dumps of data:
|
172
|
+
|
173
|
+
```
|
174
|
+
bundle exec rake db:restore:last
|
175
|
+
```
|
176
|
+
|
177
|
+
|
178
|
+
## Usage
|
179
|
+
|
180
|
+
For interactive experiments run:
|
181
|
+
|
182
|
+
```
|
183
|
+
bin/console
|
184
|
+
```
|
185
|
+
|
186
|
+
## Development
|
187
|
+
|
188
|
+
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
189
|
+
|
190
|
+
To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
|
191
|
+
|
192
|
+
## Contributing
|
193
|
+
|
194
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/ossert/ossert.
|
195
|
+
|
196
|
+
## License
|
197
|
+
|
198
|
+
The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
|
199
|
+
|
data/Rakefile
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require 'bundler/gem_tasks'
|
3
|
+
require 'rspec/core/rake_task'
|
4
|
+
require 'sequel'
|
5
|
+
|
6
|
+
require 'bundler'
|
7
|
+
Bundler.require
|
8
|
+
|
9
|
+
RSpec::Core::RakeTask.new(:spec)
|
10
|
+
Dir.glob('lib/ossert/tasks/*.rake').each { |r| import r }
|
11
|
+
|
12
|
+
task default: :spec
|
data/bin/console
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
require 'bundler/setup'
|
5
|
+
require 'ossert'
|
6
|
+
|
7
|
+
Ossert.init
|
8
|
+
|
9
|
+
# You can add fixtures and/or initialization code here to make experimenting
|
10
|
+
# with your gem easier. You can also use a different console, if you like.
|
11
|
+
|
12
|
+
# (If you use this, don't forget to add pry to your Gemfile!)
|
13
|
+
require 'pry'
|
14
|
+
Pry.start
|
data/bin/setup
ADDED
@@ -0,0 +1,153 @@
|
|
1
|
+
classifiers:
|
2
|
+
growth:
|
3
|
+
trusted_probability: 0.65
|
4
|
+
checks:
|
5
|
+
- popularity
|
6
|
+
- maintenance
|
7
|
+
- maturity
|
8
|
+
syntetics:
|
9
|
+
download_divergence: 5
|
10
|
+
stale_branches_count: 15
|
11
|
+
pr_actual_count: 100
|
12
|
+
pr_active_percent: 90
|
13
|
+
pr_closed_percent: 90
|
14
|
+
issues_actual_count: 200
|
15
|
+
issues_active_percent: 90
|
16
|
+
issues_closed_percent: 90
|
17
|
+
dependants_count:
|
18
|
+
- 500
|
19
|
+
- 100
|
20
|
+
- 20
|
21
|
+
- 5
|
22
|
+
- 1
|
23
|
+
first_issue_date_int:
|
24
|
+
- 1161160504 # Best
|
25
|
+
- 1476783369 # Worst
|
26
|
+
first_pr_date_int:
|
27
|
+
- 1161160504 # Best
|
28
|
+
- 1476783369 # Worst
|
29
|
+
last_release_date_int:
|
30
|
+
- 1476783369 # Best
|
31
|
+
- 1161160504 # Worst
|
32
|
+
issues_processed_in_median:
|
33
|
+
- 7
|
34
|
+
- 120
|
35
|
+
pr_processed_in_median:
|
36
|
+
- 1
|
37
|
+
- 90
|
38
|
+
issues_processed_in_avg:
|
39
|
+
- 7
|
40
|
+
- 120
|
41
|
+
pr_processed_in_avg:
|
42
|
+
- 1
|
43
|
+
- 90
|
44
|
+
reversed:
|
45
|
+
- stale_branches_count
|
46
|
+
- issues_active_percent
|
47
|
+
- pr_active_percent
|
48
|
+
- issues_actual_count
|
49
|
+
- pr_actual_count
|
50
|
+
- issues_processed_in_avg
|
51
|
+
- pr_processed_in_avg
|
52
|
+
- issues_processed_in_median
|
53
|
+
- pr_processed_in_median
|
54
|
+
- first_issue_date_int
|
55
|
+
- first_pr_date_int
|
56
|
+
metrics:
|
57
|
+
popularity:
|
58
|
+
last_year:
|
59
|
+
users_creating_issues_count: 3
|
60
|
+
users_commenting_issues_count: 3
|
61
|
+
users_creating_pr_count: 3
|
62
|
+
users_commenting_pr_count: 3
|
63
|
+
stargazers_count: 3
|
64
|
+
forks_count: 3
|
65
|
+
users_involved_count: 3
|
66
|
+
users_involved_no_stars_count: 3
|
67
|
+
total_downloads_count: 3
|
68
|
+
total:
|
69
|
+
dependants_count: 4
|
70
|
+
users_creating_issues_count: 1
|
71
|
+
users_commenting_issues_count: 1
|
72
|
+
users_creating_pr_count: 1
|
73
|
+
users_commenting_pr_count: 1
|
74
|
+
contributors_count: 1
|
75
|
+
watchers_count: 1
|
76
|
+
forks_count: 1
|
77
|
+
users_involved_no_stars_count: 1
|
78
|
+
total_downloads_count: 1
|
79
|
+
maintenance:
|
80
|
+
last_year:
|
81
|
+
issues_processed_in_avg: 1
|
82
|
+
issues_processed_in_median: 1
|
83
|
+
issues_closed_percent: 2
|
84
|
+
issues_all_count: 2
|
85
|
+
pr_processed_in_avg: 1
|
86
|
+
pr_processed_in_median: 1
|
87
|
+
pr_closed_percent: 2
|
88
|
+
pr_all_count: 2
|
89
|
+
releases_count: 4
|
90
|
+
commits: 4
|
91
|
+
total:
|
92
|
+
issues_closed_percent: 0.5
|
93
|
+
issues_non_owner_percent: 0.5
|
94
|
+
issues_with_contrib_comments_percent: 0.5
|
95
|
+
issues_all_count: 0.5
|
96
|
+
issues_processed_in_avg: 0.25
|
97
|
+
issues_processed_in_median: 0.25
|
98
|
+
pr_closed_percent: 0.5
|
99
|
+
pr_non_owner_percent: 0.5
|
100
|
+
pr_with_contrib_comments_percent: 0.5
|
101
|
+
pr_all_count: 0.5
|
102
|
+
pr_processed_in_avg: 0.25
|
103
|
+
pr_processed_in_median: 0.25
|
104
|
+
releases_count: 1
|
105
|
+
stale_branches_count: 1
|
106
|
+
life_period: 1
|
107
|
+
last_changed: 1
|
108
|
+
maturity:
|
109
|
+
last_year:
|
110
|
+
users_creating_issues_count: 2
|
111
|
+
users_commenting_issues_count: 2
|
112
|
+
users_creating_pr_count: 2
|
113
|
+
users_commenting_pr_count: 2
|
114
|
+
stargazers_count: 2
|
115
|
+
forks_count: 2
|
116
|
+
users_involved_count: 2
|
117
|
+
users_involved_no_stars_count: 2
|
118
|
+
total_downloads_count: 2
|
119
|
+
issues_processed_in_avg: 1
|
120
|
+
issues_processed_in_median: 1
|
121
|
+
issues_closed_percent: 1
|
122
|
+
issues_all_count: 1
|
123
|
+
pr_processed_in_avg: 0.5
|
124
|
+
pr_processed_in_median: 0.5
|
125
|
+
pr_closed_percent: 1
|
126
|
+
pr_all_count: 1
|
127
|
+
releases_count: 2
|
128
|
+
commits: 2
|
129
|
+
total:
|
130
|
+
dependants_count: 3
|
131
|
+
users_creating_issues_count: 1
|
132
|
+
users_commenting_issues_count: 1
|
133
|
+
users_creating_pr_count: 1
|
134
|
+
users_commenting_pr_count: 1
|
135
|
+
watchers_count: 1
|
136
|
+
forks_count: 1
|
137
|
+
users_involved_no_stars_count: 1
|
138
|
+
total_downloads_count: 1
|
139
|
+
issues_closed_percent: 0.5
|
140
|
+
issues_non_owner_percent: 0.5
|
141
|
+
issues_with_contrib_comments_percent: 0.5
|
142
|
+
issues_all_count: 0.5
|
143
|
+
issues_processed_in_avg: 0.5
|
144
|
+
pr_closed_percent: 0.5
|
145
|
+
pr_non_owner_percent: 0.5
|
146
|
+
pr_with_contrib_comments_percent: 0.5
|
147
|
+
pr_all_count: 0.5
|
148
|
+
pr_processed_in_avg: 0.5
|
149
|
+
commits: 1
|
150
|
+
releases_count: 1
|
151
|
+
stale_branches_count: 1
|
152
|
+
life_period: 1
|
153
|
+
last_changed: 1
|
@@ -0,0 +1,45 @@
|
|
1
|
+
descriptions:
|
2
|
+
# Agility
|
3
|
+
dependencies_count: Total number of external dependecies used in runtime
|
4
|
+
issues_closed_percent: Percent of closed issues from the total number
|
5
|
+
issues_non_owner_percent: Percent of issues created by non-owners of the repo from the total number
|
6
|
+
issues_with_contrib_comments_percent: Percent of issues with contributor comments from the total number
|
7
|
+
issues_all_count: Total number of issues with any status
|
8
|
+
issues_processed_in_avg: Average time to close issue up to day
|
9
|
+
issues_processed_in_median: Median time to close issue up to day
|
10
|
+
first_issue_date_int: Date when first issue was created
|
11
|
+
last_issue_date_int: Date when last issue was created
|
12
|
+
pr_closed_percent: Percent of closed pull requests from the total number
|
13
|
+
pr_non_owner_percent: Percent of pull requests created by non-owners of the repo from the total number
|
14
|
+
pr_with_contrib_comments_percent: Percent of pull requests with contributor comments from the total number
|
15
|
+
pr_all_count: Total number of pull requests with any status
|
16
|
+
pr_processed_in_avg: Average time to close pull request up to day
|
17
|
+
pr_processed_in_median: Median time to close pull request up to day
|
18
|
+
first_pr_date_int: Date when first pull requests was created
|
19
|
+
last_pr_date_int: Date when last pull requests was created
|
20
|
+
pr_actual_count: Number of pull requests that were still open on the start of the period
|
21
|
+
last_release_date_int: Date of latest release of the project
|
22
|
+
releases_count: Total number of releases for period
|
23
|
+
commits_count_since_last_release_count: How many commits where made since the last project release
|
24
|
+
stale_branches_count: Number of stale branches, where stale means that the branch was not updated for whole quarter
|
25
|
+
life_period: Time period since the moment of first action till the last one
|
26
|
+
last_changed: Date of last change of the project
|
27
|
+
issues_actual_count: Number of issues that were open on the start of the period
|
28
|
+
commits: How many commits where made during the period
|
29
|
+
|
30
|
+
# Community
|
31
|
+
dependants_count: Total number of projects that depends on current
|
32
|
+
users_creating_issues_count: Number of unique users that created issues
|
33
|
+
users_commenting_issues_count: Number of unique users that commented any issue
|
34
|
+
users_creating_pr_count: Number of unique users that requested a pull
|
35
|
+
users_commenting_pr_count: Number of unique users commented any pull request
|
36
|
+
watchers_count: Number of unique watchers on Github
|
37
|
+
contributors_count: Number of unique contributors
|
38
|
+
stargazers_count: Number of unique users that starred the project
|
39
|
+
forks_count: Number of unique users that forked the project
|
40
|
+
users_involved_count: Number of unique users made any action for the project like leaving comment or requesting a pull
|
41
|
+
users_involved_no_stars_count:
|
42
|
+
Number of unique users that made any action for project excluding users that only give a Star on Github
|
43
|
+
total_downloads_count: Total number of downloads since first day of the project
|
44
|
+
delta_downloads: Number of downloads that were made during period
|
45
|
+
download_divergence: Downloads Growth From Previous Period %
|
data/config/sidekiq.rb
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require 'ossert'
|
3
|
+
|
4
|
+
SIDEKIQ_REDIS_CONFIGURATION = {
|
5
|
+
url: ENV.fetch('REDIS_URL'),
|
6
|
+
namespace: 'ossert_sidekiq'
|
7
|
+
}.freeze
|
8
|
+
|
9
|
+
Sidekiq.configure_server do |config|
|
10
|
+
config.redis = SIDEKIQ_REDIS_CONFIGURATION
|
11
|
+
end
|
12
|
+
|
13
|
+
Sidekiq.configure_client do |config|
|
14
|
+
config.redis = SIDEKIQ_REDIS_CONFIGURATION
|
15
|
+
end
|