train-k8s-container-mitre 2.0.0 → 2.0.2
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 +4 -4
- data/.release-please-manifest.json +3 -0
- data/CHANGELOG.md +107 -92
- data/CONTRIBUTING.md +51 -5
- data/DEVELOPMENT.md +44 -6
- data/README.md +5 -3
- data/lib/train-k8s-container/version.rb +1 -1
- data/lib/train-k8s-container-mitre.rb +9 -0
- data/release-please-config.json +27 -0
- data/train-k8s-container.gemspec +22 -0
- metadata +29 -5
- data/VERSION +0 -1
- data/cliff.toml +0 -80
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 011c11460782897e0ec2e1a3eb0e1e010ed46a3f87ebd53a695af49b81b40147
|
|
4
|
+
data.tar.gz: 2db778c2cb5c06e4409a100ab98a4c0d3522bc712de613b4c6128d13cb587933
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 11e3dd39351a35f2c8c0c872bfb05bfaa9c2500ec6fe7deeadf25028c9f4ceb375b6d15f800cbc09a75a22d1baef18a23f037002d88c2ed0afa0a58b167d3da0
|
|
7
|
+
data.tar.gz: 67eaa24b6d076b134138e7a50b41deb73c00443b032cc05e5e1184c568f367b67aa38ff0b131be367fb819ddfff48c60162c3ee61569d013cac4a4890cab820f
|
data/CHANGELOG.md
CHANGED
|
@@ -5,154 +5,169 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
-
## [
|
|
8
|
+
## [2.0.2](https://github.com/mitre/train-k8s-container/compare/v2.0.1...v2.0.2) (2025-12-12)
|
|
9
9
|
|
|
10
|
-
### Added
|
|
11
10
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
11
|
+
### Bug Fixes
|
|
12
|
+
|
|
13
|
+
* Add post-install warning for correct plugin installation ([832e1c3](https://github.com/mitre/train-k8s-container/commit/832e1c36920d59e51ca34fce786fea4749fc4fc4))
|
|
14
|
+
* Configure release-please to use simple v* tags ([aefc7ba](https://github.com/mitre/train-k8s-container/commit/aefc7baa4f86608dcfe91479491b150850989d43))
|
|
15
|
+
|
|
15
16
|
|
|
16
17
|
### Documentation
|
|
17
18
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
19
|
+
* Update CHANGELOG for v2.0.1 release ([2237873](https://github.com/mitre/train-k8s-container/commit/2237873cc5142f48ca416242f985be0f41550e4d))
|
|
20
|
+
* Update installation instructions and add post-install warning ([8649575](https://github.com/mitre/train-k8s-container/commit/86495758a6794ae00505e50391f109442487d72a))
|
|
21
|
+
* Update release process documentation for release-please ([a9f4fd3](https://github.com/mitre/train-k8s-container/commit/a9f4fd3ce1da48557aa3442d62ca97ab983b3d21))
|
|
22
|
+
|
|
23
|
+
## [2.0.1] - 2025-12-05
|
|
23
24
|
|
|
24
25
|
### Fixed
|
|
25
26
|
|
|
26
|
-
-
|
|
27
|
-
-
|
|
27
|
+
- Add shim file for train-k8s-container-mitre gem name compatibility
|
|
28
|
+
- Reset version tracking for release-please integration
|
|
28
29
|
|
|
29
30
|
### Miscellaneous Tasks
|
|
30
31
|
|
|
31
|
-
-
|
|
32
|
-
-
|
|
33
|
-
- Add release-tag.yml workflow for RubyGems publication
|
|
32
|
+
- Add release-please for automated versioning and changelog
|
|
33
|
+
- Bump version to 2.0.1 for first MITRE RubyGems release
|
|
34
34
|
|
|
35
|
-
## [2.0.0] - 2025-
|
|
35
|
+
## [2.0.0] - 2025-12-05
|
|
36
36
|
|
|
37
|
-
###
|
|
37
|
+
### Added
|
|
38
38
|
|
|
39
|
-
-
|
|
40
|
-
-
|
|
41
|
-
-
|
|
39
|
+
- Migrate to Train plugin v2 with multi-platform support and security improvements ([#1](https://github.com/mitre/train-k8s-container/issues/1))
|
|
40
|
+
- Migrate to Train plugin v2 with multi-platform support and security improvements
|
|
41
|
+
- Fix platform detection using Detect + Context pattern
|
|
42
|
+
- **ci**: Add real STIG profile and same-pod container-to-container tests
|
|
42
43
|
|
|
43
|
-
###
|
|
44
|
+
### Documentation
|
|
44
45
|
|
|
45
|
-
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
- Fallback platform for distroless/minimal containers
|
|
49
|
-
- **Shell Detection**: Tiered detection with automatic fallback
|
|
50
|
-
- Unix: bash → sh → ash → zsh
|
|
51
|
-
- Windows: cmd.exe → powershell.exe → pwsh.exe (scaffolded, not tested)
|
|
52
|
-
- Linux family detection from /etc/os-release
|
|
53
|
-
- **Security Hardening**:
|
|
54
|
-
- ANSI escape sequence sanitization (CVE-2021-25743 mitigation)
|
|
55
|
-
- Command injection prevention with Shellwords.escape
|
|
56
|
-
- RFC 1123 validation for pod/container names
|
|
57
|
-
- **Error Handling**:
|
|
58
|
-
- Custom error classes (ConnectionError, CommandError, ValidationError)
|
|
59
|
-
- Retry logic with exponential backoff for transient failures
|
|
60
|
-
- **CI/CD Pipeline**:
|
|
61
|
-
- GitHub Actions with kind cluster integration tests
|
|
62
|
-
- Multi-version Ruby (3.1, 3.2, 3.3) and Kubernetes (1.29, 1.30, 1.31) matrix
|
|
63
|
-
- Security scanning (TruffleHog, bundler-audit, SBOM generation)
|
|
64
|
-
- Pod-to-pod testing with InSpec running inside cluster
|
|
65
|
-
- **Code Quality**:
|
|
66
|
-
- Cookstyle linting (replaced deprecated chefstyle)
|
|
67
|
-
- 95%+ test coverage with SimpleCov
|
|
68
|
-
- Unit tests (mocked) and integration tests (real kubectl)
|
|
69
|
-
|
|
70
|
-
### Changed
|
|
71
|
-
|
|
72
|
-
- Transport: Proper Train v2 plugin API implementation
|
|
73
|
-
- Connection: Lazy initialization of kubectl client
|
|
74
|
-
- Platform: Uses Train's built-in detection instead of force_platform!
|
|
46
|
+
- Add MITRE standards documentation and release workflow
|
|
47
|
+
- Update CHANGELOG.md with git-cliff format
|
|
48
|
+
- Rewrite CHANGELOG with accurate v2.0.0 content
|
|
75
49
|
|
|
76
50
|
### Fixed
|
|
77
51
|
|
|
78
|
-
-
|
|
79
|
-
-
|
|
80
|
-
-
|
|
52
|
+
- **ci**: Fix distroless test, Dockerfile, and shellcheck warnings
|
|
53
|
+
- **ci**: Fix kubectl cp glob pattern for same-pod test
|
|
54
|
+
- **ci**: Use pre-built cinc-scanner:local for same-pod testing
|
|
55
|
+
- Remove gemspec warnings for RubyGems publishing
|
|
56
|
+
|
|
57
|
+
### Miscellaneous Tasks
|
|
58
|
+
|
|
59
|
+
- Switch from InSpec to Cinc Auditor (license-free)
|
|
60
|
+
- Add git-cliff configuration for changelog generation
|
|
61
|
+
- Add git-cliff to release workflow for automated changelog
|
|
62
|
+
- Use official git-cliff-action for changelog generation
|
|
63
|
+
- Rename gem to train-k8s-container-mitre for RubyGems publishing
|
|
81
64
|
|
|
82
|
-
###
|
|
65
|
+
### Refactor
|
|
83
66
|
|
|
84
|
-
-
|
|
85
|
-
- Command escaping with Shellwords
|
|
86
|
-
- Input validation for Kubernetes resource names
|
|
67
|
+
- DRY improvements, CI enhancements, and distroless support
|
|
87
68
|
|
|
88
|
-
###
|
|
69
|
+
### Testing
|
|
89
70
|
|
|
90
|
-
|
|
91
|
-
|------|---------|
|
|
92
|
-
| `transport.rb` | Train v2 plugin registration |
|
|
93
|
-
| `connection.rb` | URI parsing, connection management |
|
|
94
|
-
| `kubectl_exec_client.rb` | kubectl command execution |
|
|
95
|
-
| `platform.rb` | Detect+Context platform detection |
|
|
96
|
-
| `shell_detector.rb` | Shell availability detection |
|
|
97
|
-
| `ansi_sanitizer.rb` | CVE-2021-25743 mitigation |
|
|
98
|
-
| `kubernetes_name_validator.rb` | RFC 1123 validation |
|
|
99
|
-
| `retry_handler.rb` | Exponential backoff retry logic |
|
|
71
|
+
- **integration**: Update platform tests for Detect+Context pattern
|
|
100
72
|
|
|
101
73
|
## [1.3.1] - 2024-03-05
|
|
102
74
|
|
|
103
75
|
### Fixed
|
|
104
76
|
|
|
105
|
-
- Fix run command to
|
|
77
|
+
- Fix run command to be run with Bourne shell to execute commands
|
|
78
|
+
|
|
79
|
+
This is to make sure we are able to run all OS resource commands
|
|
80
|
+
|
|
81
|
+
Signed-off-by: Sathish Babu <sbabu@progress.com>
|
|
106
82
|
|
|
107
83
|
## [1.3.0] - 2024-01-31
|
|
108
84
|
|
|
109
|
-
###
|
|
85
|
+
### Testing
|
|
110
86
|
|
|
111
|
-
-
|
|
87
|
+
- Test file connections
|
|
88
|
+
|
|
89
|
+
Signed-off-by: Sathish Babu <sbabu@progress.com>
|
|
112
90
|
|
|
113
91
|
## [1.2.1] - 2024-01-18
|
|
114
92
|
|
|
115
|
-
|
|
93
|
+
## [1.2.0] - 2024-01-16
|
|
116
94
|
|
|
117
|
-
|
|
95
|
+
## [1.1.2] - 2024-01-16
|
|
118
96
|
|
|
119
|
-
|
|
97
|
+
### Fixed
|
|
120
98
|
|
|
121
|
-
|
|
99
|
+
- Fix connection spec
|
|
122
100
|
|
|
123
|
-
-
|
|
101
|
+
Signed-off-by: Sathish Babu <sbabu@progress.com>
|
|
102
|
+
- Fix specs to use mocks over real connections
|
|
124
103
|
|
|
125
|
-
|
|
104
|
+
Signed-off-by: Sathish Babu <sbabu@progress.com>
|
|
105
|
+
|
|
106
|
+
## [1.1.1] - 2024-01-15
|
|
126
107
|
|
|
127
108
|
### Fixed
|
|
128
109
|
|
|
129
|
-
-
|
|
110
|
+
- Fix typo with spec
|
|
130
111
|
|
|
131
|
-
|
|
112
|
+
Signed-off-by: Sathish Babu <sbabu@progress.com>
|
|
132
113
|
|
|
133
114
|
### Testing
|
|
134
115
|
|
|
135
|
-
-
|
|
116
|
+
- Test connection
|
|
117
|
+
|
|
118
|
+
Signed-off-by: Sathish Babu <sbabu@progress.com>
|
|
136
119
|
|
|
137
120
|
## [1.1.0] - 2024-01-11
|
|
138
121
|
|
|
139
|
-
###
|
|
122
|
+
### Testing
|
|
123
|
+
|
|
124
|
+
- Test kubectl exec client
|
|
140
125
|
|
|
141
|
-
-
|
|
126
|
+
Signed-off-by: Sathish Babu <sbabu@progress.com>
|
|
127
|
+
- Test connection and platform
|
|
128
|
+
|
|
129
|
+
Signed-off-by: Sathish Babu <sbabu@progress.com>
|
|
142
130
|
|
|
143
131
|
## [1.0.0] - 2024-01-11
|
|
144
132
|
|
|
145
|
-
|
|
133
|
+
## [0.0.7] - 2024-01-11
|
|
134
|
+
|
|
135
|
+
## [0.0.6] - 2024-01-09
|
|
136
|
+
|
|
137
|
+
## [0.0.5] - 2024-01-02
|
|
138
|
+
|
|
139
|
+
## [0.0.4] - 2023-11-20
|
|
140
|
+
|
|
141
|
+
## [0.0.3] - 2023-11-15
|
|
142
|
+
|
|
143
|
+
### DELETE
|
|
144
|
+
|
|
145
|
+
- Remove files not required for the library
|
|
146
|
+
|
|
147
|
+
### ENHANCE
|
|
148
|
+
|
|
149
|
+
- Minor improvement with gemspec and rakefile
|
|
150
|
+
|
|
151
|
+
### GEM
|
|
152
|
+
|
|
153
|
+
- Initialize repo with bundle gem train-k8s-container
|
|
154
|
+
|
|
155
|
+
### Miscellaneous Tasks
|
|
156
|
+
|
|
157
|
+
- Add doc dir with a sample readme
|
|
158
|
+
|
|
159
|
+
## [0.0.2] - 2023-11-15
|
|
160
|
+
|
|
161
|
+
### CONFIG
|
|
146
162
|
|
|
147
|
-
-
|
|
163
|
+
- Add basic expeditor config
|
|
164
|
+
- Add basic verify pipeline
|
|
165
|
+
- Add subscriptions to expeditor config
|
|
166
|
+
- Add basic coverage pipeline template
|
|
167
|
+
- Add configurations for sonarscanner in verify and update coverage pipeline
|
|
148
168
|
|
|
149
|
-
|
|
169
|
+
### DOC
|
|
150
170
|
|
|
151
|
-
-
|
|
152
|
-
- **0.0.6** - Version bumper
|
|
153
|
-
- **0.0.5** - Apache v2.0 license
|
|
154
|
-
- **0.0.4** - SonarQube integration
|
|
155
|
-
- **0.0.3** - Initial repo setup
|
|
156
|
-
- **0.0.2** - Expeditor configuration
|
|
171
|
+
- Add empty changelog required for expeditor
|
|
157
172
|
|
|
158
173
|
<!-- generated by git-cliff -->
|
data/CONTRIBUTING.md
CHANGED
|
@@ -137,12 +137,58 @@ open coverage/index.html
|
|
|
137
137
|
|
|
138
138
|
## Release Process
|
|
139
139
|
|
|
140
|
-
Releases are managed by project maintainers
|
|
140
|
+
Releases are automated using [release-please](https://github.com/googleapis/release-please) and managed by project maintainers.
|
|
141
141
|
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
142
|
+
### How It Works
|
|
143
|
+
|
|
144
|
+
1. **Commit with Conventional Commits**: Use prefixes like `feat:`, `fix:`, `docs:`, `chore:`
|
|
145
|
+
- `feat:` triggers a minor version bump (e.g., 2.0.0 → 2.1.0)
|
|
146
|
+
- `fix:` triggers a patch version bump (e.g., 2.0.0 → 2.0.1)
|
|
147
|
+
- `feat!:` or `BREAKING CHANGE:` triggers a major version bump
|
|
148
|
+
|
|
149
|
+
2. **Release PR Created Automatically**: When commits are pushed to `main`, release-please creates/updates a Release PR that:
|
|
150
|
+
- Bumps the version in `VERSION` file
|
|
151
|
+
- Updates `CHANGELOG.md` with commit messages
|
|
152
|
+
- Shows the proposed version change
|
|
153
|
+
|
|
154
|
+
3. **Merge to Release**: When maintainers merge the Release PR:
|
|
155
|
+
- A git tag is created (e.g., `v2.1.0`)
|
|
156
|
+
- GitHub Actions builds and publishes the gem to RubyGems.org
|
|
157
|
+
- A GitHub Release is created with auto-generated notes
|
|
158
|
+
|
|
159
|
+
### Example Workflow
|
|
160
|
+
|
|
161
|
+
```bash
|
|
162
|
+
# Make changes with conventional commit messages
|
|
163
|
+
git commit -m "feat: add support for Windows containers"
|
|
164
|
+
git push origin main
|
|
165
|
+
|
|
166
|
+
# release-please automatically creates a PR like:
|
|
167
|
+
# "chore(main): release 2.1.0"
|
|
168
|
+
|
|
169
|
+
# After review, maintainer merges the PR
|
|
170
|
+
# → Tag v2.1.0 is created
|
|
171
|
+
# → Gem is published to RubyGems.org
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
### Manual Releases (Emergency Only)
|
|
175
|
+
|
|
176
|
+
For hotfixes that need immediate release without waiting for release-please:
|
|
177
|
+
|
|
178
|
+
```bash
|
|
179
|
+
# Update VERSION manually
|
|
180
|
+
echo "2.0.2" > VERSION
|
|
181
|
+
|
|
182
|
+
# Update CHANGELOG.md manually
|
|
183
|
+
|
|
184
|
+
# Commit, tag, and push
|
|
185
|
+
git add VERSION CHANGELOG.md
|
|
186
|
+
git commit -m "chore: release v2.0.2"
|
|
187
|
+
git tag v2.0.2
|
|
188
|
+
git push origin main --tags
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
**Note:** Manual releases should be rare. Prefer the automated release-please flow.
|
|
146
192
|
|
|
147
193
|
## Getting Help
|
|
148
194
|
|
data/DEVELOPMENT.md
CHANGED
|
@@ -295,21 +295,59 @@ See `.github/workflows/ci.yml` for details.
|
|
|
295
295
|
|
|
296
296
|
## Releasing
|
|
297
297
|
|
|
298
|
-
Releases are automated
|
|
298
|
+
Releases are automated using [release-please](https://github.com/googleapis/release-please).
|
|
299
|
+
|
|
300
|
+
### Automated Release Process (Recommended)
|
|
301
|
+
|
|
302
|
+
1. **Make commits using Conventional Commits format**:
|
|
303
|
+
```bash
|
|
304
|
+
git commit -m "feat: add Windows container support"
|
|
305
|
+
git commit -m "fix: handle empty shell response"
|
|
306
|
+
git commit -m "docs: update installation instructions"
|
|
307
|
+
```
|
|
308
|
+
|
|
309
|
+
2. **Push to main** - release-please will automatically create a Release PR:
|
|
310
|
+
```bash
|
|
311
|
+
git push origin main
|
|
312
|
+
# release-please creates PR: "chore(main): release 2.1.0"
|
|
313
|
+
```
|
|
314
|
+
|
|
315
|
+
3. **Review and merge the Release PR** - this triggers:
|
|
316
|
+
- Version bump in `VERSION` file
|
|
317
|
+
- `CHANGELOG.md` update
|
|
318
|
+
- Git tag creation (e.g., `v2.1.0`)
|
|
319
|
+
- Gem build and publish to RubyGems.org
|
|
320
|
+
- GitHub Release creation
|
|
321
|
+
|
|
322
|
+
### Conventional Commits Cheat Sheet
|
|
323
|
+
|
|
324
|
+
| Prefix | Version Bump | Example |
|
|
325
|
+
|--------|-------------|---------|
|
|
326
|
+
| `feat:` | Minor (2.0.0 → 2.1.0) | `feat: add retry logic` |
|
|
327
|
+
| `fix:` | Patch (2.0.0 → 2.0.1) | `fix: handle nil response` |
|
|
328
|
+
| `docs:` | Patch | `docs: update README` |
|
|
329
|
+
| `chore:` | Patch | `chore: update dependencies` |
|
|
330
|
+
| `feat!:` | Major (2.0.0 → 3.0.0) | `feat!: change URI format` |
|
|
331
|
+
|
|
332
|
+
### Manual Release (Emergency Only)
|
|
333
|
+
|
|
334
|
+
For hotfixes that can't wait for the release-please flow:
|
|
299
335
|
|
|
300
336
|
```bash
|
|
301
337
|
# Update VERSION file
|
|
302
|
-
echo "2.
|
|
338
|
+
echo "2.0.2" > VERSION
|
|
339
|
+
|
|
340
|
+
# Update CHANGELOG.md manually
|
|
303
341
|
|
|
304
342
|
# Commit and tag
|
|
305
343
|
git add VERSION CHANGELOG.md
|
|
306
|
-
git commit -m "
|
|
307
|
-
git tag v2.
|
|
344
|
+
git commit -m "chore: release v2.0.2"
|
|
345
|
+
git tag v2.0.2
|
|
308
346
|
git push origin main --tags
|
|
309
347
|
```
|
|
310
348
|
|
|
311
|
-
The `release-tag.yml` workflow will:
|
|
349
|
+
The `release-tag.yml` workflow triggers on tag push and will:
|
|
312
350
|
1. Run tests
|
|
313
351
|
2. Build gem
|
|
314
|
-
3. Publish to RubyGems.org
|
|
352
|
+
3. Publish to RubyGems.org (via OIDC trusted publishing)
|
|
315
353
|
4. Create GitHub release
|
data/README.md
CHANGED
|
@@ -26,12 +26,14 @@ This plugin allows InSpec/Cinc Auditor to scan containers running in Kubernetes
|
|
|
26
26
|
|
|
27
27
|
### From RubyGems (Recommended)
|
|
28
28
|
|
|
29
|
+
**Important:** Always install Train plugins using `inspec plugin install` or `cinc-auditor plugin install`. Do NOT use `gem install` directly, as this can cause issues with plugin discovery and management.
|
|
30
|
+
|
|
29
31
|
```bash
|
|
30
32
|
# Using Cinc Auditor (recommended - open source, license-free)
|
|
31
|
-
cinc-auditor plugin install train-k8s-container
|
|
33
|
+
cinc-auditor plugin install train-k8s-container-mitre
|
|
32
34
|
|
|
33
35
|
# Or using Chef InSpec
|
|
34
|
-
inspec plugin install train-k8s-container
|
|
36
|
+
inspec plugin install train-k8s-container-mitre
|
|
35
37
|
```
|
|
36
38
|
|
|
37
39
|
### From Source
|
|
@@ -40,7 +42,7 @@ inspec plugin install train-k8s-container
|
|
|
40
42
|
git clone https://github.com/mitre/train-k8s-container.git
|
|
41
43
|
cd train-k8s-container
|
|
42
44
|
gem build train-k8s-container.gemspec
|
|
43
|
-
cinc-auditor plugin install train-k8s-container-*.gem
|
|
45
|
+
cinc-auditor plugin install train-k8s-container-mitre-*.gem
|
|
44
46
|
```
|
|
45
47
|
|
|
46
48
|
## Prerequisites
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# Shim file for gem name compatibility
|
|
4
|
+
# The gem is named 'train-k8s-container-mitre' for RubyGems publishing,
|
|
5
|
+
# but the internal library structure uses 'train-k8s-container'.
|
|
6
|
+
# This allows `require 'train-k8s-container-mitre'` to work when
|
|
7
|
+
# InSpec/Cinc loads the plugin by gem name.
|
|
8
|
+
|
|
9
|
+
require_relative 'train-k8s-container'
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json",
|
|
3
|
+
"release-type": "ruby",
|
|
4
|
+
"include-component-in-tag": false,
|
|
5
|
+
"packages": {
|
|
6
|
+
".": {
|
|
7
|
+
"package-name": "train-k8s-container-mitre",
|
|
8
|
+
"changelog-path": "CHANGELOG.md",
|
|
9
|
+
"bump-minor-pre-major": true,
|
|
10
|
+
"bump-patch-for-minor-pre-major": true,
|
|
11
|
+
"version-file": "lib/train-k8s-container/version.rb"
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
"changelog-sections": [
|
|
15
|
+
{"type": "feat", "section": "Features"},
|
|
16
|
+
{"type": "fix", "section": "Bug Fixes"},
|
|
17
|
+
{"type": "perf", "section": "Performance Improvements"},
|
|
18
|
+
{"type": "revert", "section": "Reverts"},
|
|
19
|
+
{"type": "docs", "section": "Documentation"},
|
|
20
|
+
{"type": "style", "section": "Styles"},
|
|
21
|
+
{"type": "chore", "section": "Miscellaneous Chores"},
|
|
22
|
+
{"type": "refactor", "section": "Code Refactoring"},
|
|
23
|
+
{"type": "test", "section": "Tests"},
|
|
24
|
+
{"type": "build", "section": "Build System"},
|
|
25
|
+
{"type": "ci", "section": "Continuous Integration"}
|
|
26
|
+
]
|
|
27
|
+
}
|
data/train-k8s-container.gemspec
CHANGED
|
@@ -36,6 +36,28 @@ Gem::Specification.new do |spec|
|
|
|
36
36
|
|
|
37
37
|
spec.require_paths = ['lib']
|
|
38
38
|
|
|
39
|
+
spec.post_install_message = <<~MESSAGE
|
|
40
|
+
|
|
41
|
+
╔════════════════════════════════════════════════════════════════════╗
|
|
42
|
+
║ train-k8s-container-mitre installed successfully! ║
|
|
43
|
+
╠════════════════════════════════════════════════════════════════════╣
|
|
44
|
+
║ ║
|
|
45
|
+
║ WARNING: If you installed this gem using 'gem install', you ║
|
|
46
|
+
║ may experience issues with 'inspec plugin list'. ║
|
|
47
|
+
║ ║
|
|
48
|
+
║ RECOMMENDED: Install using the InSpec/Cinc plugin system: ║
|
|
49
|
+
║ ║
|
|
50
|
+
║ gem uninstall train-k8s-container-mitre ║
|
|
51
|
+
║ cinc-auditor plugin install train-k8s-container-mitre ║
|
|
52
|
+
║ ║
|
|
53
|
+
║ Or for Chef InSpec: ║
|
|
54
|
+
║ ║
|
|
55
|
+
║ inspec plugin install train-k8s-container-mitre ║
|
|
56
|
+
║ ║
|
|
57
|
+
╚════════════════════════════════════════════════════════════════════╝
|
|
58
|
+
|
|
59
|
+
MESSAGE
|
|
60
|
+
|
|
39
61
|
# NOTE: Do not list 'train' or 'inspec' as dependencies.
|
|
40
62
|
# Train plugins are loaded within InSpec's environment, which already provides
|
|
41
63
|
# train, train-core, and all their dependencies. Declaring train as a dependency
|
metadata
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: train-k8s-container-mitre
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.0.
|
|
4
|
+
version: 2.0.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- MITRE SAF Team
|
|
8
|
+
autorequire:
|
|
8
9
|
bindir: bin
|
|
9
10
|
cert_chain: []
|
|
10
|
-
date:
|
|
11
|
+
date: 2025-12-12 00:00:00.000000000 Z
|
|
11
12
|
dependencies:
|
|
12
13
|
- !ruby/object:Gem::Dependency
|
|
13
14
|
name: base64
|
|
@@ -45,6 +46,7 @@ files:
|
|
|
45
46
|
- ".expeditor/coverage.pipeline.yml"
|
|
46
47
|
- ".expeditor/update_version.sh"
|
|
47
48
|
- ".expeditor/verify.pipeline.yml"
|
|
49
|
+
- ".release-please-manifest.json"
|
|
48
50
|
- ".rspec"
|
|
49
51
|
- ".rubocop.yml"
|
|
50
52
|
- CHANGELOG.md
|
|
@@ -57,9 +59,8 @@ files:
|
|
|
57
59
|
- README.md
|
|
58
60
|
- Rakefile
|
|
59
61
|
- SECURITY.md
|
|
60
|
-
- VERSION
|
|
61
|
-
- cliff.toml
|
|
62
62
|
- docs/README.md
|
|
63
|
+
- lib/train-k8s-container-mitre.rb
|
|
63
64
|
- lib/train-k8s-container.rb
|
|
64
65
|
- lib/train-k8s-container/ansi_sanitizer.rb
|
|
65
66
|
- lib/train-k8s-container/connection.rb
|
|
@@ -75,6 +76,7 @@ files:
|
|
|
75
76
|
- lib/train-k8s-container/shell_detector.rb
|
|
76
77
|
- lib/train-k8s-container/transport.rb
|
|
77
78
|
- lib/train-k8s-container/version.rb
|
|
79
|
+
- release-please-config.json
|
|
78
80
|
- sonar-project.properties
|
|
79
81
|
- train-k8s-container.gemspec
|
|
80
82
|
homepage: https://github.com/mitre/train-k8s-container
|
|
@@ -86,6 +88,26 @@ metadata:
|
|
|
86
88
|
changelog_uri: https://github.com/mitre/train-k8s-container/blob/main/CHANGELOG.md
|
|
87
89
|
bug_tracker_uri: https://github.com/mitre/train-k8s-container/issues
|
|
88
90
|
documentation_uri: https://github.com/mitre/train-k8s-container#readme
|
|
91
|
+
post_install_message: |2+
|
|
92
|
+
|
|
93
|
+
╔════════════════════════════════════════════════════════════════════╗
|
|
94
|
+
║ train-k8s-container-mitre installed successfully! ║
|
|
95
|
+
╠════════════════════════════════════════════════════════════════════╣
|
|
96
|
+
║ ║
|
|
97
|
+
║ WARNING: If you installed this gem using 'gem install', you ║
|
|
98
|
+
║ may experience issues with 'inspec plugin list'. ║
|
|
99
|
+
║ ║
|
|
100
|
+
║ RECOMMENDED: Install using the InSpec/Cinc plugin system: ║
|
|
101
|
+
║ ║
|
|
102
|
+
║ gem uninstall train-k8s-container-mitre ║
|
|
103
|
+
║ cinc-auditor plugin install train-k8s-container-mitre ║
|
|
104
|
+
║ ║
|
|
105
|
+
║ Or for Chef InSpec: ║
|
|
106
|
+
║ ║
|
|
107
|
+
║ inspec plugin install train-k8s-container-mitre ║
|
|
108
|
+
║ ║
|
|
109
|
+
╚════════════════════════════════════════════════════════════════════╝
|
|
110
|
+
|
|
89
111
|
rdoc_options: []
|
|
90
112
|
require_paths:
|
|
91
113
|
- lib
|
|
@@ -100,8 +122,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
100
122
|
- !ruby/object:Gem::Version
|
|
101
123
|
version: '0'
|
|
102
124
|
requirements: []
|
|
103
|
-
rubygems_version: 3.
|
|
125
|
+
rubygems_version: 3.5.22
|
|
126
|
+
signing_key:
|
|
104
127
|
specification_version: 4
|
|
105
128
|
summary: Train transport plugin for scanning Kubernetes containers with InSpec/Cinc
|
|
106
129
|
Auditor.
|
|
107
130
|
test_files: []
|
|
131
|
+
...
|
data/VERSION
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
2.0.0
|
data/cliff.toml
DELETED
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
# git-cliff configuration for train-k8s-container
|
|
2
|
-
# See: https://git-cliff.org/docs/configuration
|
|
3
|
-
|
|
4
|
-
[changelog]
|
|
5
|
-
# changelog header
|
|
6
|
-
header = """
|
|
7
|
-
# Changelog
|
|
8
|
-
|
|
9
|
-
All notable changes to this project will be documented in this file.
|
|
10
|
-
|
|
11
|
-
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
12
|
-
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
13
|
-
|
|
14
|
-
"""
|
|
15
|
-
# template for the changelog body
|
|
16
|
-
body = """
|
|
17
|
-
{% if version %}\
|
|
18
|
-
## [{{ version | trim_start_matches(pat="v") }}] - {{ timestamp | date(format="%Y-%m-%d") }}
|
|
19
|
-
{% else %}\
|
|
20
|
-
## [Unreleased]
|
|
21
|
-
{% endif %}\
|
|
22
|
-
{% for group, commits in commits | group_by(attribute="group") %}
|
|
23
|
-
### {{ group | striptags | trim | upper_first }}
|
|
24
|
-
{% for commit in commits %}
|
|
25
|
-
- {% if commit.scope %}**{{ commit.scope }}**: {% endif %}{{ commit.message | upper_first }}\
|
|
26
|
-
{% endfor %}
|
|
27
|
-
{% endfor %}\n
|
|
28
|
-
"""
|
|
29
|
-
# remove the leading and trailing whitespace from the template
|
|
30
|
-
trim = true
|
|
31
|
-
# changelog footer
|
|
32
|
-
footer = """
|
|
33
|
-
<!-- generated by git-cliff -->
|
|
34
|
-
"""
|
|
35
|
-
|
|
36
|
-
[git]
|
|
37
|
-
# parse the commits based on https://www.conventionalcommits.org
|
|
38
|
-
conventional_commits = true
|
|
39
|
-
# filter out the commits that are not conventional
|
|
40
|
-
filter_unconventional = false
|
|
41
|
-
# process each line of a commit as an individual commit
|
|
42
|
-
split_commits = false
|
|
43
|
-
# regex for preprocessing the commit messages
|
|
44
|
-
commit_preprocessors = [
|
|
45
|
-
# Extract issue numbers from commit messages
|
|
46
|
-
{ pattern = '\((\w+\s)?#([0-9]+)\)', replace = "([#${2}](https://github.com/mitre/train-k8s-container/issues/${2}))"},
|
|
47
|
-
]
|
|
48
|
-
# regex for parsing and grouping commits
|
|
49
|
-
commit_parsers = [
|
|
50
|
-
{ message = "^feat", group = "Added" },
|
|
51
|
-
{ message = "^fix", group = "Fixed" },
|
|
52
|
-
{ message = "^doc", group = "Documentation" },
|
|
53
|
-
{ message = "^perf", group = "Performance" },
|
|
54
|
-
{ message = "^refactor", group = "Refactor" },
|
|
55
|
-
{ message = "^style", group = "Styling" },
|
|
56
|
-
{ message = "^test", group = "Testing" },
|
|
57
|
-
{ message = "^chore\\(release\\): prepare for", skip = true },
|
|
58
|
-
{ message = "^chore\\(deps\\)", skip = true },
|
|
59
|
-
{ message = "^chore\\(pr\\)", skip = true },
|
|
60
|
-
{ message = "^chore\\(pull\\)", skip = true },
|
|
61
|
-
{ message = "^chore|^ci", group = "Miscellaneous Tasks" },
|
|
62
|
-
{ body = ".*security", group = "Security" },
|
|
63
|
-
{ message = "^revert", group = "Revert" },
|
|
64
|
-
]
|
|
65
|
-
# protect breaking changes from being skipped due to matching a skipping commit_parser
|
|
66
|
-
protect_breaking_commits = false
|
|
67
|
-
# filter out the commits that are not matched by commit parsers
|
|
68
|
-
filter_commits = false
|
|
69
|
-
# glob pattern for matching git tags
|
|
70
|
-
tag_pattern = "v[0-9]*"
|
|
71
|
-
# regex for skipping tags
|
|
72
|
-
skip_tags = ""
|
|
73
|
-
# regex for ignoring tags
|
|
74
|
-
ignore_tags = ""
|
|
75
|
-
# sort the tags topologically
|
|
76
|
-
topo_order = false
|
|
77
|
-
# sort the commits inside sections by oldest/newest order
|
|
78
|
-
sort_commits = "oldest"
|
|
79
|
-
# limit the number of commits included in the changelog.
|
|
80
|
-
# limit_commits = 42
|