stand 1.0.5.pre → 1.0.5.pre2
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 +4 -4
- data/lib/standup.rb +5 -0
- data/lib/standup/app.rb +4 -3
- data/lib/standup/cache.rb +17 -0
- data/lib/standup/config_parser.rb +1 -2
- data/lib/standup/report_generator.rb +40 -16
- data/lib/standup/version.rb +1 -1
- data/stand.gemspec +1 -0
- metadata +16 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 918e4803f3d7d64990882e29154023325df9f2fe
|
4
|
+
data.tar.gz: f9707445e4e0f4b8ea7f03a2416b0506d8be4aee
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b6ab15680612878db88f41a02bf5fc3f516cc93a26bf726356ffeb4723be9139a42103536d428331f7abf6be87cdbe17af84efbc65aa0d4e8d9dbbfcca3e94c5
|
7
|
+
data.tar.gz: a60e52c06f6ecf24ced9c4f05690e1fad6fa41bc30a61755b2cf64d1d1ce6a4212108f3da6ee8ad5e9c55bc11f23f4adc721f68858b2fcab22eb409588ee3624
|
data/lib/standup.rb
CHANGED
@@ -2,5 +2,10 @@ $LOAD_PATH.unshift(File.dirname(__FILE__))
|
|
2
2
|
require 'active_support/core_ext/time'
|
3
3
|
require 'active_support/core_ext/numeric/time'
|
4
4
|
|
5
|
+
module Standup
|
6
|
+
BASE_NAME = 'standup'.freeze
|
7
|
+
end
|
8
|
+
|
9
|
+
require 'standup/cache'
|
5
10
|
require 'standup/version'
|
6
11
|
require 'standup/app'
|
data/lib/standup/app.rb
CHANGED
@@ -11,7 +11,7 @@ module Standup
|
|
11
11
|
DESCRIPTION = 'Fetchs data from gitlab to report what you have done'
|
12
12
|
|
13
13
|
def initialize
|
14
|
-
config.config_file_base_name =
|
14
|
+
config.config_file_base_name = Standup::BASE_NAME
|
15
15
|
config.describes_application app_name: NAME,
|
16
16
|
app_version: Standup::VERSION,
|
17
17
|
app_description: DESCRIPTION
|
@@ -22,14 +22,15 @@ module Standup
|
|
22
22
|
config.add_command_line_section('Application Options') do |s|
|
23
23
|
s.on :from, 'From specific day', argument: true
|
24
24
|
s.on :to, 'To specific day', argument: true
|
25
|
-
s.on :username, 'Username', argument: true
|
26
25
|
end
|
27
26
|
end
|
28
27
|
|
29
28
|
def run
|
30
29
|
settings = ConfigParser.new(config)
|
31
30
|
|
32
|
-
|
31
|
+
Standup::Cache.use_cassette("gitlab", re_record_interval: (settings.to_date - settings.from_date) / 10) do
|
32
|
+
ReportGenerator.new(settings).gitlab_report!
|
33
|
+
end
|
33
34
|
end
|
34
35
|
end
|
35
36
|
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'vcr'
|
2
|
+
|
3
|
+
module Standup
|
4
|
+
Cache = VCR
|
5
|
+
end
|
6
|
+
|
7
|
+
Standup::Cache.configure do |c|
|
8
|
+
c.cassette_library_dir = "#{File.expand_path('~')}/.#{Standup::BASE_NAME}/cache"
|
9
|
+
c.hook_into :webmock
|
10
|
+
c.default_cassette_options = {
|
11
|
+
re_record_interval: 1.day,
|
12
|
+
record: :new_episodes
|
13
|
+
}
|
14
|
+
c.ignore_request do |request|
|
15
|
+
request.method != :get
|
16
|
+
end
|
17
|
+
end
|
@@ -17,8 +17,7 @@ module Standup
|
|
17
17
|
private
|
18
18
|
|
19
19
|
def validate_config!
|
20
|
-
fail
|
21
|
-
fail 'Please provide a Gitlab access token in your configuration file' unless config['gitlab_access_token']
|
20
|
+
fail "Please provide a Gitlab access token in your configuration file 'gitlab_access_token missing'" unless config['gitlab_access_token']
|
22
21
|
end
|
23
22
|
|
24
23
|
def help_needed?
|
@@ -14,57 +14,81 @@ module Standup
|
|
14
14
|
end
|
15
15
|
|
16
16
|
def gitlab_report!
|
17
|
+
# Get authenticated user
|
18
|
+
config[:username] = Gitlab.user.username
|
19
|
+
|
17
20
|
projects_query = {
|
18
|
-
per_page:
|
21
|
+
per_page: 20,
|
19
22
|
membership: true,
|
20
23
|
search: config['gitlab_project_search_pattern'],
|
21
24
|
order_by: :last_activity_at,
|
22
25
|
sort: :desc
|
23
26
|
}
|
24
27
|
|
25
|
-
|
28
|
+
created_mrs_query = {
|
26
29
|
per_page: 100,
|
27
30
|
state: :merged,
|
28
31
|
order_by: :updated_at,
|
29
|
-
sort: :desc
|
32
|
+
sort: :desc,
|
33
|
+
scope: 'created-by-me'
|
30
34
|
}
|
35
|
+
assigned_mrs_query = created_mrs_query.dup
|
36
|
+
assigned_mrs_query[:scope] = 'assigned-to-me'
|
31
37
|
|
32
|
-
|
38
|
+
assigned_issues_query = {
|
33
39
|
per_page: 100,
|
34
40
|
state: :closed,
|
35
41
|
order_by: :updated_at,
|
36
|
-
sort: :desc
|
42
|
+
sort: :desc,
|
43
|
+
scope: 'assigned-to-me'
|
37
44
|
}
|
38
45
|
|
39
46
|
projects = Gitlab.projects(projects_query)
|
40
47
|
|
41
48
|
projects.each do |project|
|
49
|
+
merged_mrs = []
|
50
|
+
closed_issues = []
|
51
|
+
|
52
|
+
if config[:verbose]
|
53
|
+
puts "Scanning project #{project.namespace.name}/#{project.name} (#{project.id})"
|
54
|
+
end
|
55
|
+
|
42
56
|
begin
|
43
|
-
|
44
|
-
|
57
|
+
Gitlab.merge_requests(project.id, created_mrs_query).auto_paginate do |mr|
|
58
|
+
merged_mrs << mr
|
59
|
+
end
|
60
|
+
Gitlab.merge_requests(project.id, assigned_mrs_query).auto_paginate do |mr|
|
61
|
+
merged_mrs << mr
|
62
|
+
end
|
63
|
+
rescue Gitlab::Error::Forbidden => e
|
45
64
|
# Don't seem to have acces to some MRs
|
46
|
-
|
65
|
+
if config[:verbose]
|
66
|
+
puts "Error while fetching merge requests from project #{project.name} (#{project.id}): #{e.inspect}"
|
67
|
+
end
|
47
68
|
end
|
48
69
|
|
49
70
|
begin
|
50
|
-
|
51
|
-
|
52
|
-
|
71
|
+
Gitlab.issues(project.id, assigned_issues_query).auto_paginate do |issue|
|
72
|
+
closed_issues << issue
|
73
|
+
end
|
74
|
+
rescue Gitlab::Error::Forbidden => e
|
75
|
+
if @settings.config[:verbose]
|
76
|
+
puts "Error while fetching issues from project #{project.name} (#{project.id}): #{e.inspect}"
|
77
|
+
end
|
53
78
|
end
|
54
79
|
|
55
80
|
merged_mrs.each do |mr|
|
56
|
-
|
81
|
+
validate_result!(project, mr, 'MR')
|
57
82
|
end
|
58
83
|
|
59
84
|
closed_issues.each do |issue|
|
60
|
-
|
85
|
+
validate_result!(project, issue, 'ISSUE')
|
61
86
|
end
|
62
87
|
end
|
63
88
|
|
64
89
|
puts Terminal::Table.new :title => 'DONE', :headings => [ 'PROJECT', 'TYPE', 'ID', 'TITLE' ], :rows => @result['done']
|
65
90
|
puts "\n"
|
66
91
|
puts Terminal::Table.new :title => 'REVIEWED', :headings => [ 'PROJECT', 'TYPE', 'ID', 'TITLE' ], :rows => @result['reviewed']
|
67
|
-
|
68
92
|
end
|
69
93
|
|
70
94
|
private
|
@@ -81,7 +105,7 @@ module Standup
|
|
81
105
|
@settings.from_date
|
82
106
|
end
|
83
107
|
|
84
|
-
def
|
108
|
+
def validate_result!(project, event, type='?')
|
85
109
|
updated_at = Time.parse(event.updated_at)
|
86
110
|
author = event.author.username
|
87
111
|
assignee = event.assignee && event.assignee.username
|
@@ -96,7 +120,7 @@ module Standup
|
|
96
120
|
end
|
97
121
|
|
98
122
|
def configure_gitlab_client
|
99
|
-
api_endpoint = config['gitlab_endpoint'] || 'https://gitlab.com/api/
|
123
|
+
api_endpoint = config['gitlab_endpoint'] || 'https://gitlab.com/api/v4'.freeze
|
100
124
|
|
101
125
|
Gitlab.configure do |c|
|
102
126
|
c.endpoint = api_endpoint
|
data/lib/standup/version.rb
CHANGED
data/stand.gemspec
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: stand
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.5.
|
4
|
+
version: 1.0.5.pre2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Paul Bonaud
|
@@ -68,6 +68,20 @@ dependencies:
|
|
68
68
|
- - ">="
|
69
69
|
- !ruby/object:Gem::Version
|
70
70
|
version: '0'
|
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: :runtime
|
79
|
+
prerelease: false
|
80
|
+
version_requirements: !ruby/object:Gem::Requirement
|
81
|
+
requirements:
|
82
|
+
- - ">="
|
83
|
+
- !ruby/object:Gem::Version
|
84
|
+
version: '3.0'
|
71
85
|
- !ruby/object:Gem::Dependency
|
72
86
|
name: pry
|
73
87
|
requirement: !ruby/object:Gem::Requirement
|
@@ -294,6 +308,7 @@ files:
|
|
294
308
|
- bin/standup
|
295
309
|
- lib/standup.rb
|
296
310
|
- lib/standup/app.rb
|
311
|
+
- lib/standup/cache.rb
|
297
312
|
- lib/standup/config_parser.rb
|
298
313
|
- lib/standup/report_generator.rb
|
299
314
|
- lib/standup/version.rb
|