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: 56bf08e32560ceaa334b8d40fca0488b851527a472b36e5338b49084d3da295b
4
- data.tar.gz: a54b0aaa2fd492e7a8ac2564fddec64458a0b2c742759b67ea8fc3758d7704ae
3
+ metadata.gz: 29a90961c458e9095d240b89cf65bfd7cbe3541abd792f59c378a6f758636d67
4
+ data.tar.gz: 385f95613b2a66502c4e7a0b55d16315138c9e6cc02637e037865df7d1f3099e
5
5
  SHA512:
6
- metadata.gz: c319501a7c3dbad17908f5d1af9c7b63835a676eefc182cf11a054912dcda5b2b2b3430df4dcfeabed834c5146572d63bd5aaca99158c8cf2a64632112e13874
7
- data.tar.gz: bc6544562f620053912cc68772892c24d20dbcea9d171132518ec8f1a81adc9344ae8fc4d2bdfaf4712bbe7d57fe02d26e97828f5ba0ab0752fa5bb4a6f1f0c3
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
@@ -6,6 +6,6 @@ module Dev
6
6
  # Use 'v.v.v.pre.alpha.v' for pre-release vesions
7
7
  # Use 'v.v.v.beta.v for beta versions
8
8
  # Use semantic versioning for any releases (https://semver.org/)
9
- VERSION = '2.1.11.pre.alpha.1'.freeze
9
+ VERSION = '2.1.11'.freeze
10
10
  end
11
11
  end
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.pre.alpha.1
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: 1.3.1
347
+ version: '0'
347
348
  requirements: []
348
349
  rubygems_version: 3.4.10
349
350
  signing_key: