pwn 0.5.458 → 0.5.460

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1c2d13b12e7ec4d460f7a76626be80ad82c30c448de61f4e1feea0049ddf7e50
4
- data.tar.gz: b8b29dfcc330ece669b3e1a287f3631d685f0fdc80b971315a9032e4db01eee5
3
+ metadata.gz: e0fd4b3e503df4cf02f8ebfd3e74650492432f45621f08bd9b7089443dfa5e4c
4
+ data.tar.gz: 0f98ea5d9af915e0cc094ec7659ddae8ce6ce17ef0bd95e11356b43e0832972b
5
5
  SHA512:
6
- metadata.gz: c3787c3d3b0c7de09178f8ce337f7b8023cdabf995443fc5a614ff6c031089eb05eea2b6b568a0a2a6a9e4af59112cdc49fdc05c8955d221093c336e45275ea6
7
- data.tar.gz: fab64b6da86b11a27b1bf05c088763e56408459156b03b24018566cb95f68de710d7917fdf631b2861b10dc0433c75ba3841c17983ea0a7b759026df11e72741
6
+ metadata.gz: 8dcbcb9f1f2b919dde7faad6bbfa922351013e0fc793de1d4953fb412b305fb654f9842dabdfce07f3fa2661e55402a23b12e091240318fa149c7c89821f32fe
7
+ data.tar.gz: 7dd9700299cf76c776057f9b2c51ee7508d7301345e9ec52096cab4d7a8e41ee4300935b50e7fe9c630be3a53a7f35036f91246ffd7b70233b60be7d18965905
data/README.md CHANGED
@@ -37,7 +37,7 @@ $ cd /opt/pwn
37
37
  $ ./install.sh
38
38
  $ ./install.sh ruby-gem
39
39
  $ pwn
40
- pwn[v0.5.458]:001 >>> PWN.help
40
+ pwn[v0.5.460]:001 >>> PWN.help
41
41
  ```
42
42
 
43
43
  [![Installing the pwn Security Automation Framework](https://raw.githubusercontent.com/0dayInc/pwn/master/documentation/pwn_install.png)](https://youtu.be/G7iLUY4FzsI)
@@ -52,7 +52,7 @@ $ rvm use ruby-3.4.4@pwn
52
52
  $ gem uninstall --all --executables pwn
53
53
  $ gem install --verbose pwn
54
54
  $ pwn
55
- pwn[v0.5.458]:001 >>> PWN.help
55
+ pwn[v0.5.460]:001 >>> PWN.help
56
56
  ```
57
57
 
58
58
  If you're using a multi-user install of RVM do:
@@ -62,7 +62,7 @@ $ rvm use ruby-3.4.4@pwn
62
62
  $ rvmsudo gem uninstall --all --executables pwn
63
63
  $ rvmsudo gem install --verbose pwn
64
64
  $ pwn
65
- pwn[v0.5.458]:001 >>> PWN.help
65
+ pwn[v0.5.460]:001 >>> PWN.help
66
66
  ```
67
67
 
68
68
  PWN periodically upgrades to the latest version of Ruby which is reflected in `/opt/pwn/.ruby-version`. The easiest way to upgrade to the latest version of Ruby from a previous PWN installation is to run the following script:
@@ -218,6 +218,7 @@ module PWN
218
218
  epic_name_field_key = all_fields.find { |field| field[:name] == 'Epic Name' }[:id]
219
219
 
220
220
  epic_name = opts[:epic_name]
221
+ raise 'ERROR: epic_name cannot be nil when issue_type is :epic.' if issue_type == :epic && epic_name.nil?
221
222
 
222
223
  http_body = {
223
224
  fields: {
@@ -267,7 +268,20 @@ module PWN
267
268
  )
268
269
  end
269
270
 
270
- get_issue(issue: issue)
271
+ created_issue = nil
272
+ get_issue_attempts = 0
273
+ max_get_issue_attempts = 7
274
+ begin
275
+ created_issue = get_issue(issue: issue)
276
+ rescue RuntimeError
277
+ raise 'ERROR: Max attempts reached for retrieving created issue.' if get_issue_attempts > max_get_issue_attempts
278
+
279
+ get_issue_attempts += 1
280
+ sleep 1
281
+ retry
282
+ end
283
+
284
+ created_issue
271
285
  rescue StandardError => e
272
286
  raise e
273
287
  end
@@ -370,6 +384,41 @@ module PWN
370
384
  raise e
371
385
  end
372
386
 
387
+ # Supported Method Parameters::
388
+ # issue_resp = PWN::Plugins::JiraServer.clone_issue(
389
+ # issue: 'required - issue to clone (e.g. Bug, Issue, Story, or Epic ID)'
390
+ # )
391
+
392
+ public_class_method def self.clone_issue(opts = {})
393
+ issue = opts[:issue]
394
+ raise 'ERROR: issue cannot be nil.' if issue.nil?
395
+
396
+ issue_data = get_issue(issue: issue)
397
+
398
+ project_key = issue_data[:fields][:project][:key]
399
+ summary = "CLONE - #{issue_data[:fields][:summary]}"
400
+ issue_type = issue_data[:fields][:issuetype][:name].downcase.to_sym
401
+ epic_name = nil
402
+ if issue_type == :epic
403
+ all_fields = get_all_fields
404
+ epic_name_field_key = all_fields.find { |field| field[:name] == 'Epic Name' }[:id]
405
+ epic_name = issue_data[:fields][epic_name_field_key.to_sym]
406
+ end
407
+ description = issue_data[:fields][:description]
408
+ additional_fields = { fields: issue_data[:fields] }
409
+
410
+ create_issue(
411
+ project_key: project_key,
412
+ summary: summary,
413
+ issue_type: issue_type,
414
+ epic_name: epic_name,
415
+ description: description,
416
+ additional_fields: additional_fields
417
+ )
418
+ rescue StandardError => e
419
+ raise e
420
+ end
421
+
373
422
  # Supported Method Parameters::
374
423
  # issue_resp = PWN::Plugins::JiraServer.delete_issue(
375
424
  # issue: 'required - issue to delete (e.g. Bug, Issue, Story, or Epic ID)'
@@ -453,6 +502,10 @@ module PWN
453
502
  comment: 'optional - comment to add or update in the issue (e.g. \"This is a comment\")'
454
503
  )
455
504
 
505
+ issue_resp = #{self}.clone_issue(
506
+ issue: 'required - issue to clone (e.g. Bug, Issue, Story, or Epic ID)'
507
+ )
508
+
456
509
  issue_resp = #{self}.delete_issue(
457
510
  issue: 'required - issue to delete (e.g. Bug, Issue, Story, or Epic ID)'
458
511
  )
data/lib/pwn/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module PWN
4
- VERSION = '0.5.458'
4
+ VERSION = '0.5.460'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pwn
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.458
4
+ version: 0.5.460
5
5
  platform: ruby
6
6
  authors:
7
7
  - 0day Inc.