rake-ui 0.1.0 → 0.1.1

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: bd7aaae9a795ec46917f67bc68117f375f0c6fa4e22bc6e320fe082a8f633a37
4
- data.tar.gz: cbf32b74d4a96a8156278a0e36c71f9f76672396a4a15031e094f8886ea5b4d7
3
+ metadata.gz: a66b9b0231a472dbbfb3dae969eab443def70832d9f52ffc4b803be8c1123782
4
+ data.tar.gz: ebef2c3058517271dd4bab6a2b99f647f42795359a04c4325e15647576e4e8c4
5
5
  SHA512:
6
- metadata.gz: 1509e6793d3f88ec54ed69a4f5cbce635dc0212b48bc657a56562fa8494a8c870c75d086287ee0786804eb14ab118d140e8a2ab4101ccf0f147e07224947e540
7
- data.tar.gz: c8baa27913c7c15ba812e3f4d4832783003fa47eb47c16c90603d9107083c1258a2b6f14562ab6f3208502c91fec767cd90258c589bc033071a5bc1ad12c4762
6
+ metadata.gz: c3688dbe3121f828132c8699d803100c0648ad10699ee22a80177606314797d46f336279d5dbd9cd8b92d44eb0dd138c91d8abc2f8a8c0177b707326000e7284
7
+ data.tar.gz: dd25fe11781e13cf75ca0d069ee17d40e08feb576ca42fbb038fcea9590058e2afcb4f0913681ddc859e469f61ee735098af31e348b2c7a84c50f07b2024801b
data/README.md CHANGED
@@ -69,7 +69,7 @@ nodemon -w ./app/models/* -e "rb" --exec "rake test TEST=test/rake_ui/rake_task
69
69
  ```
70
70
 
71
71
  ## Contributing
72
- Contributing information available in [CONTRIBUTING](./CONTRIBUTING.md)
72
+ See [CONTRIBUTING](./CONTRIBUTING.md)
73
73
 
74
74
  ## License
75
75
  The gem is available as open source under the terms of the [Apache 2.0 License](./LICENSE).
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require "shellwords"
4
+
3
5
  module RakeUi
4
6
  class RakeTask
5
7
  def self.to_safe_identifier(id)
@@ -111,13 +113,34 @@ module RakeUi
111
113
  command = ""
112
114
 
113
115
  if environment
114
- command += "#{environment} "
116
+ # Safely escape environment variables to prevent shell injection
117
+ # Only accept KEY=VALUE pairs; reject malicious tokens
118
+ #
119
+ # Shellwords.split raises ArgumentError on malformed input (e.g. an
120
+ # unbalanced quote like FOO="bar). Treat that as no usable env tokens
121
+ # rather than letting the exception bubble up as a 500.
122
+ tokens = begin
123
+ Shellwords.split(environment)
124
+ rescue ArgumentError
125
+ []
126
+ end
127
+
128
+ escaped_env = tokens.map do |token|
129
+ next unless token.match?(/\A[A-Z_][A-Z0-9_]*=.*\z/i)
130
+
131
+ # Valid KEY=VALUE pattern - escape only the value
132
+ key, value = token.split("=", 2)
133
+ "#{key}=#{Shellwords.escape(value)}"
134
+ end.compact.join(" ")
135
+
136
+ command += "#{escaped_env} " if escaped_env.present?
115
137
  end
116
138
 
117
139
  command += "rake #{name}"
118
140
 
119
141
  if args
120
- command += "[#{args}]"
142
+ # Escape args to prevent shell injection
143
+ command += "[#{Shellwords.escape(args)}]"
121
144
  end
122
145
 
123
146
  command
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RakeUi
4
- VERSION = "0.1.0"
4
+ VERSION = "0.1.1"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rake-ui
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Austin Story
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-02-01 00:00:00.000000000 Z
11
+ date: 2026-07-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -116,7 +116,7 @@ metadata:
116
116
  homepage_uri: https://github.com/doximity/rake-ui
117
117
  source_code_uri: https://github.com/doximity/rake-ui
118
118
  changelog_uri: https://github.com/doximity/rake-ui/CHANGELOG.md
119
- post_install_message:
119
+ post_install_message:
120
120
  rdoc_options: []
121
121
  require_paths:
122
122
  - lib
@@ -131,8 +131,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
131
131
  - !ruby/object:Gem::Version
132
132
  version: '0'
133
133
  requirements: []
134
- rubygems_version: 3.1.4
135
- signing_key:
134
+ rubygems_version: 3.1.6
135
+ signing_key:
136
136
  specification_version: 4
137
137
  summary: A Mountable Rails Engine to manage Rake Tasks through a UI
138
138
  test_files: []