firespring_dev_commands 2.1.10 → 2.1.11.pre.alpha.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/firespring_dev_commands/target_process/query.rb +10 -0
- data/lib/firespring_dev_commands/target_process/release.rb +17 -1
- data/lib/firespring_dev_commands/target_process/user_story_history.rb +45 -0
- data/lib/firespring_dev_commands/target_process.rb +28 -0
- data/lib/firespring_dev_commands/version.rb +1 -1
- metadata +5 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fc8f0bc322b7f4a223de4a702efbf2a9d5018c35393e705c9ced4c144f646b77
|
4
|
+
data.tar.gz: f6ac473e759540fc0432e37e6a899cfa6628b07d38506e4d27223b395aaa7beb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c8913c2462bc151d46b53e8b70d1ef6ff0718a5713b206975f891a21560c262485c41253ca4b6780540d1d25b732687f4ff1b826771f2cea4c6815b41b5b8292
|
7
|
+
data.tar.gz: 50f74eba4f799fac640a6b82e2b463a9c91248a80ac2b6c9356e75259aabbeac83caa93ab82258697fa77f456b8ef8ae9778f4c188ae2c09318245c76e97f755
|
@@ -83,6 +83,11 @@ module Dev
|
|
83
83
|
self << "(EndDate lt '#{end_date}')" if end_date
|
84
84
|
end
|
85
85
|
|
86
|
+
def filter_date_between(start_date, end_date)
|
87
|
+
self << "(Date gte '#{start_date}')" if start_date
|
88
|
+
self << "(Date lt '#{end_date}')" if end_date
|
89
|
+
end
|
90
|
+
|
86
91
|
# Add a filter that looks for stories which do not have a linked test plan
|
87
92
|
def filter_by_missing_tests
|
88
93
|
self << '(LinkedTestPlan is nil)'
|
@@ -100,6 +105,11 @@ module Dev
|
|
100
105
|
def filter_by_entity_ids(entity_ids)
|
101
106
|
self << "(Assignable.Id in ('#{entity_ids.join("', '")}'))" unless entity_ids.nil? || entity_ids.empty?
|
102
107
|
end
|
108
|
+
|
109
|
+
def filter_by_deploy_date(start_date, end_date = nil)
|
110
|
+
self << "('CustomFields.Deploy Date' gt '#{start_date}')" if start_date
|
111
|
+
self << "('CustomFields.Deploy Date' lt '#{end_date}')" if end_date
|
112
|
+
end
|
103
113
|
end
|
104
114
|
end
|
105
115
|
end
|
@@ -2,12 +2,28 @@ module Dev
|
|
2
2
|
class TargetProcess
|
3
3
|
# Class containing release information
|
4
4
|
class Release
|
5
|
-
|
5
|
+
# The resource type for the api endpoint
|
6
|
+
RESOURCE_TYPE = 'Release'.freeze
|
7
|
+
|
8
|
+
# The api path for release requests
|
9
|
+
PATH = '/Releases'.freeze
|
10
|
+
|
11
|
+
attr_accessor :id, :type, :name, :start_date, :end_date, :custom_fields
|
6
12
|
|
7
13
|
def initialize(data)
|
8
14
|
@id = data['Id']
|
9
15
|
@type = data['ResourceType']
|
10
16
|
@name = data['Name']
|
17
|
+
@start_date = parse_time(data['StartDate'])
|
18
|
+
@end_date = parse_time(data['EndDate'])
|
19
|
+
@custom_fields = data['CustomFields']
|
20
|
+
end
|
21
|
+
|
22
|
+
# Parse the dot net time representation into something that ruby can use
|
23
|
+
def parse_time(string)
|
24
|
+
return nil unless string && !string.empty?
|
25
|
+
|
26
|
+
Time.at(string.slice(6, 10).to_i)
|
11
27
|
end
|
12
28
|
end
|
13
29
|
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
module Dev
|
2
|
+
class TargetProcess
|
3
|
+
# Class containing user story information
|
4
|
+
class UserStoryHistory
|
5
|
+
# The resource type for the api endpoint
|
6
|
+
RESOURCE_TYPE = 'UserStoryHistory'.freeze
|
7
|
+
|
8
|
+
# The api path for user story requests
|
9
|
+
PATH = '/UserStoryHistories'.freeze
|
10
|
+
|
11
|
+
attr_accessor :type, :id, :source_entity_id, :name, :description, :start_date, :end_date, :create_date, :modify_date, :tags, :effort, :time_spent,
|
12
|
+
:last_state_change_date, :project, :owner, :creator, :release, :team, :priority, :state, :original_data
|
13
|
+
|
14
|
+
def initialize(data)
|
15
|
+
@id = data['Id']
|
16
|
+
@source_entity_id = data['SourceEntityId']
|
17
|
+
@type = data['ResourceType']
|
18
|
+
@name = data['Name']
|
19
|
+
@description = data['Description']
|
20
|
+
@state = data['EntityState']['Name'] if data['EntityState']
|
21
|
+
@project = Project.new(data['Project']) if data['Project']
|
22
|
+
@owner = User.new(data['Owner']) if data['Owner']
|
23
|
+
@creator = User.new(data['Creator']) if data['Creator']
|
24
|
+
@release = Release.new(data['Release']) if data['Release']
|
25
|
+
@team = Team.new(data['Team']) if data['Team']
|
26
|
+
@start_date = parse_time(data['StartDate'])
|
27
|
+
@end_date = parse_time(data['EndDate'])
|
28
|
+
@create_date = parse_time(data['CreateDate'])
|
29
|
+
@modify_date = parse_time(data['ModifyDate'])
|
30
|
+
@tags = data['Tags']
|
31
|
+
@effort = data['Effort']
|
32
|
+
@time_spent = data['TimeSpent']
|
33
|
+
@last_state_change_date = parse_time(data['LastStateChangeDate'])
|
34
|
+
@original_data = original_data
|
35
|
+
end
|
36
|
+
|
37
|
+
# Parse the dot net time representation into something that ruby can use
|
38
|
+
def parse_time(string)
|
39
|
+
return nil unless string && !string.empty?
|
40
|
+
|
41
|
+
Time.at(string.slice(6, 10).to_i)
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
@@ -45,6 +45,10 @@ module Dev
|
|
45
45
|
|
46
46
|
# Initialize a new target process client using the given inputs
|
47
47
|
def initialize(username: self.class.config.username, password: self.class.config.password, url: self.class.config.url)
|
48
|
+
raise 'username is required' if username.to_s.strip.empty?
|
49
|
+
raise 'password is required' if password.to_s.strip.empty?
|
50
|
+
raise 'url is required' if url.to_s.strip.empty?
|
51
|
+
|
48
52
|
@username = username
|
49
53
|
@password = password
|
50
54
|
@auth = Base64.strict_encode64("#{@username}:#{@password}")
|
@@ -61,6 +65,18 @@ module Dev
|
|
61
65
|
}
|
62
66
|
end
|
63
67
|
|
68
|
+
# Perform a query to the release api path
|
69
|
+
# Call the given block (if present) with each release
|
70
|
+
# Return all releases
|
71
|
+
def releases(query, &)
|
72
|
+
[].tap do |ary|
|
73
|
+
get(Release::PATH, query) do |result|
|
74
|
+
ary << Release.new(result)
|
75
|
+
end
|
76
|
+
ary.each(&)
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
64
80
|
# Perform a query to the user story api path
|
65
81
|
# Call the given block (if present) with each user story
|
66
82
|
# Return all user stories
|
@@ -73,6 +89,18 @@ module Dev
|
|
73
89
|
end
|
74
90
|
end
|
75
91
|
|
92
|
+
# Perform a query to the user story history api path
|
93
|
+
# Call the given block (if present) with each user story history
|
94
|
+
# Return all user stories
|
95
|
+
def user_story_histories(query, &)
|
96
|
+
[].tap do |ary|
|
97
|
+
get(UserStoryHistory::PATH, query) do |result|
|
98
|
+
ary << UserStoryHistory.new(result)
|
99
|
+
end
|
100
|
+
ary.each(&)
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
76
104
|
# Perform a query to the team assignments api path
|
77
105
|
# Call the given block (if present) with each team assignment
|
78
106
|
# Return all team assignments
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: firespring_dev_commands
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.1.
|
4
|
+
version: 2.1.11.pre.alpha.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Firespring
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-10-
|
11
|
+
date: 2023-10-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -313,6 +313,7 @@ files:
|
|
313
313
|
- lib/firespring_dev_commands/target_process/team_assignment.rb
|
314
314
|
- lib/firespring_dev_commands/target_process/user.rb
|
315
315
|
- lib/firespring_dev_commands/target_process/user_story.rb
|
316
|
+
- lib/firespring_dev_commands/target_process/user_story_history.rb
|
316
317
|
- lib/firespring_dev_commands/templates/aws.rb
|
317
318
|
- lib/firespring_dev_commands/templates/base_interface.rb
|
318
319
|
- lib/firespring_dev_commands/templates/ci.rb
|
@@ -341,9 +342,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
341
342
|
version: '3.1'
|
342
343
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
343
344
|
requirements:
|
344
|
-
- - "
|
345
|
+
- - ">"
|
345
346
|
- !ruby/object:Gem::Version
|
346
|
-
version:
|
347
|
+
version: 1.3.1
|
347
348
|
requirements: []
|
348
349
|
rubygems_version: 3.4.10
|
349
350
|
signing_key:
|