opsscript-gate 0.6.0__tar.gz → 0.6.1__tar.gz

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.
Files changed (48) hide show
  1. opsscript_gate-0.6.1/.github/workflow-templates/opsscript-gate.yml +41 -0
  2. opsscript_gate-0.6.1/.github/workflow-templates/properties.json +6 -0
  3. {opsscript_gate-0.6.0 → opsscript_gate-0.6.1}/CHANGELOG.md +11 -0
  4. opsscript_gate-0.6.1/CITATION.cff +12 -0
  5. {opsscript_gate-0.6.0 → opsscript_gate-0.6.1}/PKG-INFO +12 -3
  6. {opsscript_gate-0.6.0 → opsscript_gate-0.6.1}/README.md +8 -0
  7. {opsscript_gate-0.6.0 → opsscript_gate-0.6.1}/ROADMAP.md +8 -1
  8. {opsscript_gate-0.6.0 → opsscript_gate-0.6.1}/pyproject.toml +9 -2
  9. {opsscript_gate-0.6.0 → opsscript_gate-0.6.1}/src/opsscript_gate/__init__.py +1 -1
  10. {opsscript_gate-0.6.0 → opsscript_gate-0.6.1}/.gitattributes +0 -0
  11. {opsscript_gate-0.6.0 → opsscript_gate-0.6.1}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  12. {opsscript_gate-0.6.0 → opsscript_gate-0.6.1}/.github/ISSUE_TEMPLATE/distro_request.yml +0 -0
  13. {opsscript_gate-0.6.0 → opsscript_gate-0.6.1}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  14. {opsscript_gate-0.6.0 → opsscript_gate-0.6.1}/.github/assets/social-preview.png +0 -0
  15. {opsscript_gate-0.6.0 → opsscript_gate-0.6.1}/.github/pull_request_template.md +0 -0
  16. {opsscript_gate-0.6.0 → opsscript_gate-0.6.1}/.github/workflows/demo.yml +0 -0
  17. {opsscript_gate-0.6.0 → opsscript_gate-0.6.1}/.github/workflows/release.yml +0 -0
  18. {opsscript_gate-0.6.0 → opsscript_gate-0.6.1}/.github/workflows/test.yml +0 -0
  19. {opsscript_gate-0.6.0 → opsscript_gate-0.6.1}/.gitignore +0 -0
  20. {opsscript_gate-0.6.0 → opsscript_gate-0.6.1}/CONTRIBUTING.md +0 -0
  21. {opsscript_gate-0.6.0 → opsscript_gate-0.6.1}/LICENSE +0 -0
  22. {opsscript_gate-0.6.0 → opsscript_gate-0.6.1}/README.zh-CN.md +0 -0
  23. {opsscript_gate-0.6.0 → opsscript_gate-0.6.1}/SECURITY.md +0 -0
  24. {opsscript_gate-0.6.0 → opsscript_gate-0.6.1}/action.yml +0 -0
  25. {opsscript_gate-0.6.0 → opsscript_gate-0.6.1}/docs/configuration.md +0 -0
  26. {opsscript_gate-0.6.0 → opsscript_gate-0.6.1}/docs/gpt-oss.md +0 -0
  27. {opsscript_gate-0.6.0 → opsscript_gate-0.6.1}/docs/troubleshooting.md +0 -0
  28. {opsscript_gate-0.6.0 → opsscript_gate-0.6.1}/examples/alpine-incompatibility/README.md +0 -0
  29. {opsscript_gate-0.6.0 → opsscript_gate-0.6.1}/examples/alpine-incompatibility/apt_dependency.sh +0 -0
  30. {opsscript_gate-0.6.0 → opsscript_gate-0.6.1}/examples/basic/README.md +0 -0
  31. {opsscript_gate-0.6.0 → opsscript_gate-0.6.1}/examples/basic/clean_setup.sh +0 -0
  32. {opsscript_gate-0.6.0 → opsscript_gate-0.6.1}/examples/github-actions/README.md +0 -0
  33. {opsscript_gate-0.6.0 → opsscript_gate-0.6.1}/examples/github-actions/workflow.yml +0 -0
  34. {opsscript_gate-0.6.0 → opsscript_gate-0.6.1}/examples/interactive-hang/README.md +0 -0
  35. {opsscript_gate-0.6.0 → opsscript_gate-0.6.1}/examples/interactive-hang/prompt_confirm.sh +0 -0
  36. {opsscript_gate-0.6.0 → opsscript_gate-0.6.1}/src/opsscript_gate/cli.py +0 -0
  37. {opsscript_gate-0.6.0 → opsscript_gate-0.6.1}/src/opsscript_gate/config.py +0 -0
  38. {opsscript_gate-0.6.0 → opsscript_gate-0.6.1}/src/opsscript_gate/discovery.py +0 -0
  39. {opsscript_gate-0.6.0 → opsscript_gate-0.6.1}/src/opsscript_gate/models.py +0 -0
  40. {opsscript_gate-0.6.0 → opsscript_gate-0.6.1}/src/opsscript_gate/remediation.py +0 -0
  41. {opsscript_gate-0.6.0 → opsscript_gate-0.6.1}/src/opsscript_gate/reporter.py +0 -0
  42. {opsscript_gate-0.6.0 → opsscript_gate-0.6.1}/src/opsscript_gate/runner.py +0 -0
  43. {opsscript_gate-0.6.0 → opsscript_gate-0.6.1}/tests/fixtures/fail_deps.sh +0 -0
  44. {opsscript_gate-0.6.0 → opsscript_gate-0.6.1}/tests/fixtures/fail_hang.sh +0 -0
  45. {opsscript_gate-0.6.0 → opsscript_gate-0.6.1}/tests/fixtures/pass_basic.sh +0 -0
  46. {opsscript_gate-0.6.0 → opsscript_gate-0.6.1}/tests/test_action_contract.py +0 -0
  47. {opsscript_gate-0.6.0 → opsscript_gate-0.6.1}/tests/test_onboarding.py +0 -0
  48. {opsscript_gate-0.6.0 → opsscript_gate-0.6.1}/tests/test_runner.py +0 -0
@@ -0,0 +1,41 @@
1
+ name: Shell compatibility
2
+
3
+ on:
4
+ pull_request:
5
+ paths:
6
+ - '**/*.sh'
7
+ - '**/*.bash'
8
+ push:
9
+ branches: [main]
10
+ paths:
11
+ - '**/*.sh'
12
+ - '**/*.bash'
13
+
14
+ permissions:
15
+ contents: read
16
+
17
+ jobs:
18
+ shell-compatibility:
19
+ name: Debian, Ubuntu and Alpine
20
+ runs-on: ubuntu-latest
21
+ steps:
22
+ - name: Checkout
23
+ uses: actions/checkout@v4
24
+ with:
25
+ persist-credentials: false
26
+
27
+ - name: Run OpsScript Gate
28
+ uses: Mresyzz/opsscript-gate@v0.6.0
29
+ with:
30
+ shell: auto
31
+ network: none
32
+ format: markdown
33
+ output: reports/opsscript-gate.md
34
+
35
+ - name: Upload compatibility report
36
+ if: always()
37
+ uses: actions/upload-artifact@v4
38
+ with:
39
+ name: opsscript-gate-report
40
+ path: reports/opsscript-gate.md
41
+ if-no-files-found: ignore
@@ -0,0 +1,6 @@
1
+ {
2
+ "name": "OpsScript Gate shell compatibility",
3
+ "description": "Run shell scripts in Debian, Ubuntu and Alpine containers on changes to shell files.",
4
+ "iconName": "octicon-shield-check",
5
+ "categories": ["Continuous integration", "Testing"]
6
+ }
@@ -1,5 +1,16 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.6.1] - 2026-10-01
4
+
5
+ ### Added
6
+ - Added a zero-configuration GitHub workflow starter that runs only when shell files change.
7
+ - Added a copyable compatibility report artifact to the starter workflow.
8
+ - Added citation metadata and clearer PyPI keywords for installer and bootstrap use cases.
9
+
10
+ ### Changed
11
+ - Marked the project Beta now that the default matrix, safety controls, reports, presets, and changed-script mode are released.
12
+ - Updated the roadmap to show the v0.5 and v0.6 controls as delivered.
13
+
3
14
  ## [0.6.0] - 2026-09-30
4
15
 
5
16
  ### Added
@@ -0,0 +1,12 @@
1
+ cff-version: 1.2.0
2
+ title: OpsScript Gate
3
+ message: If this project helps your shell compatibility testing, please cite it.
4
+ type: software
5
+ authors:
6
+ - family-names: Mresyzz
7
+ given-names: Mresy
8
+ version: 0.6.0
9
+ date-released: 2026-09-30
10
+ repository-code: https://github.com/Mresyzz/opsscript-gate
11
+ url: https://github.com/Mresyzz/opsscript-gate
12
+ license: MIT
@@ -1,16 +1,17 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: opsscript-gate
3
- Version: 0.6.0
3
+ Version: 0.6.1
4
4
  Summary: Run Linux shell scripts in Debian, Ubuntu and Alpine containers to catch runtime compatibility failures before merge
5
5
  Project-URL: Homepage, https://github.com/Mresyzz/opsscript-gate
6
6
  Project-URL: Repository, https://github.com/Mresyzz/opsscript-gate
7
7
  Project-URL: Issues, https://github.com/Mresyzz/opsscript-gate/issues
8
8
  Project-URL: Changelog, https://github.com/Mresyzz/opsscript-gate/blob/main/CHANGELOG.md
9
+ Project-URL: Documentation, https://github.com/Mresyzz/opsscript-gate/tree/main/docs
9
10
  Author: Mresyzz
10
11
  License: MIT
11
12
  License-File: LICENSE
12
- Keywords: ci,compatibility,cross-distro,devops,docker,github-actions,linux,posix,shell,testing
13
- Classifier: Development Status :: 3 - Alpha
13
+ Keywords: alpine,bootstrap,ci,compatibility,cross-distro,debian,devops,docker,github-actions,installer,linux,posix,shell,shellcheck-alternative,testing,ubuntu
14
+ Classifier: Development Status :: 4 - Beta
14
15
  Classifier: Intended Audience :: Developers
15
16
  Classifier: Intended Audience :: System Administrators
16
17
  Classifier: License :: OSI Approved :: MIT License
@@ -45,6 +46,11 @@ Description-Content-Type: text/markdown
45
46
 
46
47
  It is designed for shell testing, portable shell validation, Bash/POSIX compatibility checks, and cross-distro CI where syntax-only tooling is not enough.
47
48
 
49
+ If your repository contains an installer, bootstrap script, or shell entrypoint, the fastest path is to
50
+ copy the [zero-configuration workflow](.github/workflow-templates/opsscript-gate.yml). It only runs when
51
+ shell files change, uses offline containers by default, and uploads a report that can be attached to a PR.
52
+ No account, API key, or service signup is required.
53
+
48
54
  ---
49
55
 
50
56
  ## Current release: v0.6.0
@@ -75,6 +81,9 @@ See [configuration and migration](docs/configuration.md) and
75
81
 
76
82
  Add this workflow to `.github/workflows/shell-compat.yml`:
77
83
 
84
+ You can also select **OpsScript Gate shell compatibility** from GitHub's workflow templates, or copy the
85
+ maintained [starter workflow](.github/workflow-templates/opsscript-gate.yml).
86
+
78
87
  You can copy the maintained example from [`examples/github-actions/workflow.yml`](examples/github-actions/workflow.yml)
79
88
  and change the `script-path`, or use the minimal workflow below.
80
89
 
@@ -17,6 +17,11 @@
17
17
 
18
18
  It is designed for shell testing, portable shell validation, Bash/POSIX compatibility checks, and cross-distro CI where syntax-only tooling is not enough.
19
19
 
20
+ If your repository contains an installer, bootstrap script, or shell entrypoint, the fastest path is to
21
+ copy the [zero-configuration workflow](.github/workflow-templates/opsscript-gate.yml). It only runs when
22
+ shell files change, uses offline containers by default, and uploads a report that can be attached to a PR.
23
+ No account, API key, or service signup is required.
24
+
20
25
  ---
21
26
 
22
27
  ## Current release: v0.6.0
@@ -47,6 +52,9 @@ See [configuration and migration](docs/configuration.md) and
47
52
 
48
53
  Add this workflow to `.github/workflows/shell-compat.yml`:
49
54
 
55
+ You can also select **OpsScript Gate shell compatibility** from GitHub's workflow templates, or copy the
56
+ maintained [starter workflow](.github/workflow-templates/opsscript-gate.yml).
57
+
50
58
  You can copy the maintained example from [`examples/github-actions/workflow.yml`](examples/github-actions/workflow.yml)
51
59
  and change the `script-path`, or use the minimal workflow below.
52
60
 
@@ -25,7 +25,14 @@ This roadmap tracks features delivered in recent releases and areas under consid
25
25
 
26
26
  ---
27
27
 
28
- ## Planned for Future Releases (v0.5.0+)
28
+ ## Delivered in v0.5.0 and v0.6.0
29
+
30
+ - [x] Project configuration with strict validation and CLI/Action precedence.
31
+ - [x] Dry-run plans, `minimal` and `ubuntu` presets, exclusions, and saved reports.
32
+ - [x] Bounded discovery with symlink and oversized-file protection.
33
+ - [x] Changed-script selection with `--changed-since` for pull requests.
34
+
35
+ ## Planned for Future Releases
29
36
 
30
37
  ### 1. Matrix & Distribution Presets
31
38
  - [ ] **RPM-based distributions**: Evaluate support for Enterprise Linux baselines (e.g. Rocky Linux 9, AlmaLinux, Fedora).
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "opsscript-gate"
7
- version = "0.6.0"
7
+ version = "0.6.1"
8
8
  description = "Run Linux shell scripts in Debian, Ubuntu and Alpine containers to catch runtime compatibility failures before merge"
9
9
  readme = "README.md"
10
10
  license = { text = "MIT" }
@@ -23,9 +23,15 @@ keywords = [
23
23
  "cross-distro",
24
24
  "posix",
25
25
  "testing",
26
+ "installer",
27
+ "bootstrap",
28
+ "debian",
29
+ "ubuntu",
30
+ "alpine",
31
+ "shellcheck-alternative",
26
32
  ]
27
33
  classifiers = [
28
- "Development Status :: 3 - Alpha",
34
+ "Development Status :: 4 - Beta",
29
35
  "Intended Audience :: Developers",
30
36
  "Intended Audience :: System Administrators",
31
37
  "License :: OSI Approved :: MIT License",
@@ -45,6 +51,7 @@ Homepage = "https://github.com/Mresyzz/opsscript-gate"
45
51
  Repository = "https://github.com/Mresyzz/opsscript-gate"
46
52
  Issues = "https://github.com/Mresyzz/opsscript-gate/issues"
47
53
  Changelog = "https://github.com/Mresyzz/opsscript-gate/blob/main/CHANGELOG.md"
54
+ Documentation = "https://github.com/Mresyzz/opsscript-gate/tree/main/docs"
48
55
 
49
56
  [project.optional-dependencies]
50
57
  test = [
@@ -1,4 +1,4 @@
1
1
  """OpsScript Gate: Lightweight cross-distro compatibility pre-check for Linux ops scripts."""
2
2
 
3
- __version__ = "0.6.0"
3
+ __version__ = "0.6.1"
4
4
  __all__ = ["__version__"]
File without changes