firespring_dev_commands 2.1.11.pre.alpha.1 → 2.1.11
Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 29a90961c458e9095d240b89cf65bfd7cbe3541abd792f59c378a6f758636d67
|
4
|
+
data.tar.gz: 385f95613b2a66502c4e7a0b55d16315138c9e6cc02637e037865df7d1f3099e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dcd3f6a6d8f4fea275bf93500fa17b1c3fcda7a81b16dcd9c7c0072de8e5fe2b4298c1dc9bfdcaa5d1a8a46ecde4bcb4c624da03291638237a58a7a8b99cd12d
|
7
|
+
data.tar.gz: 3cb1434dd6f7edb66f79abfa7520e91bccf50bdc35588f78487d0eb20771e24f74e5105f4ed10a72c2b0d97d9f762b12ccfd43209f5853dadbd18641fa09a304
|
@@ -53,6 +53,7 @@ module Dev
|
|
53
53
|
self << "(Id in ('#{user_story_ids.join("', '")}'))"
|
54
54
|
end
|
55
55
|
|
56
|
+
# Add a filter that looks for stories whose team id is contained in the list of ids given
|
56
57
|
def filter_by_team_ids(team_ids)
|
57
58
|
self << "(Team.Id in ('#{team_ids.join("', '")}'))" unless team_ids.nil? || team_ids.empty?
|
58
59
|
end
|
@@ -72,6 +73,7 @@ module Dev
|
|
72
73
|
self << "(EntityState.IsFinal eq 'true')"
|
73
74
|
end
|
74
75
|
|
76
|
+
# Add a filter that looks for start dates between the given dates`
|
75
77
|
def filter_start_date_between(start_date, end_date)
|
76
78
|
self << "(StartDate gte '#{start_date}')" if start_date
|
77
79
|
self << "(StartDate lt '#{end_date}')" if end_date
|
@@ -83,24 +85,34 @@ module Dev
|
|
83
85
|
self << "(EndDate lt '#{end_date}')" if end_date
|
84
86
|
end
|
85
87
|
|
88
|
+
# Add a filter that looks for entities whose date is between the given dates
|
89
|
+
def filter_date_between(start_date, end_date)
|
90
|
+
self << "(Date gte '#{start_date}')" if start_date
|
91
|
+
self << "(Date lt '#{end_date}')" if end_date
|
92
|
+
end
|
93
|
+
|
86
94
|
# Add a filter that looks for stories which do not have a linked test plan
|
87
95
|
def filter_by_missing_tests
|
88
96
|
self << '(LinkedTestPlan is nil)'
|
89
97
|
end
|
90
98
|
|
99
|
+
# Add a filter that looks for items with a set start date and null end date
|
91
100
|
def filter_by_started_not_finished
|
92
101
|
self << '(StartDate is not nil)'
|
93
102
|
self << '(EndDate is nil)'
|
94
103
|
end
|
95
104
|
|
105
|
+
# Add a filter that looks for assignable entity types that match the name
|
96
106
|
def filter_by_entity_type(entity_type)
|
97
107
|
self << "(Assignable.EntityType.Name eq '#{entity_type}')" unless entity_type.nil?
|
98
108
|
end
|
99
109
|
|
110
|
+
# Add a filter that looks for assignable ids which are included in the given array
|
100
111
|
def filter_by_entity_ids(entity_ids)
|
101
112
|
self << "(Assignable.Id in ('#{entity_ids.join("', '")}'))" unless entity_ids.nil? || entity_ids.empty?
|
102
113
|
end
|
103
114
|
|
115
|
+
# Add a filter that looks for a custom deploy date between the given dates`
|
104
116
|
def filter_by_deploy_date(start_date, end_date = nil)
|
105
117
|
self << "('CustomFields.Deploy Date' gt '#{start_date}')" if start_date
|
106
118
|
self << "('CustomFields.Deploy Date' lt '#{end_date}')" if end_date
|
@@ -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}")
|
@@ -85,6 +89,18 @@ module Dev
|
|
85
89
|
end
|
86
90
|
end
|
87
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
|
+
|
88
104
|
# Perform a query to the team assignments api path
|
89
105
|
# Call the given block (if present) with each team assignment
|
90
106
|
# Return all team assignments
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: firespring_dev_commands
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.1.11
|
4
|
+
version: 2.1.11
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Firespring
|
@@ -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: '0'
|
347
348
|
requirements: []
|
348
349
|
rubygems_version: 3.4.10
|
349
350
|
signing_key:
|