pyossmtool 0.0.1__py3-none-any.whl
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.
- pyossmtool/__init__.py +3 -0
- pyossmtool/bundle/catalog/checks/bandit.scan.yaml +13 -0
- pyossmtool/bundle/catalog/checks/codespell.spelling.yaml +12 -0
- pyossmtool/bundle/catalog/checks/deadcode.scan.yaml +13 -0
- pyossmtool/bundle/catalog/checks/gate.acronym-allowlist.yaml +14 -0
- pyossmtool/bundle/catalog/checks/gate.folder-breadth.yaml +14 -0
- pyossmtool/bundle/catalog/checks/gate.module-private-vars.yaml +14 -0
- pyossmtool/bundle/catalog/checks/gate.module-size.yaml +14 -0
- pyossmtool/bundle/catalog/checks/gitleaks.secrets.yaml +21 -0
- pyossmtool/bundle/catalog/checks/hadolint.dockerfile.yaml +16 -0
- pyossmtool/bundle/catalog/checks/jscpd.duplication.yaml +19 -0
- pyossmtool/bundle/catalog/checks/markdownlint.check.yaml +17 -0
- pyossmtool/bundle/catalog/checks/mdformat.apply.yaml +10 -0
- pyossmtool/bundle/catalog/checks/mdformat.format.yaml +14 -0
- pyossmtool/bundle/catalog/checks/mutmut.run.yaml +13 -0
- pyossmtool/bundle/catalog/checks/pydeps.cycles.yaml +14 -0
- pyossmtool/bundle/catalog/checks/pytest.coverage.yaml +19 -0
- pyossmtool/bundle/catalog/checks/pytest.test.yaml +14 -0
- pyossmtool/bundle/catalog/checks/radon.cc.yaml +13 -0
- pyossmtool/bundle/catalog/checks/radon.mi.yaml +13 -0
- pyossmtool/bundle/catalog/checks/ruff.format.apply.yaml +11 -0
- pyossmtool/bundle/catalog/checks/ruff.format.yaml +14 -0
- pyossmtool/bundle/catalog/checks/ruff.lint.yaml +15 -0
- pyossmtool/bundle/catalog/checks/ruff.unused.yaml +17 -0
- pyossmtool/bundle/catalog/checks/semgrep.scan.yaml +18 -0
- pyossmtool/bundle/catalog/checks/shellcheck.yaml +13 -0
- pyossmtool/bundle/catalog/checks/shfmt.apply.yaml +11 -0
- pyossmtool/bundle/catalog/checks/shfmt.format.yaml +14 -0
- pyossmtool/bundle/catalog/checks/sourcery.review.yaml +14 -0
- pyossmtool/bundle/catalog/checks/ty.check.yaml +15 -0
- pyossmtool/bundle/catalog/checks/vulture.scan.yaml +16 -0
- pyossmtool/bundle/catalog/checks/yamlfmt.apply.yaml +10 -0
- pyossmtool/bundle/catalog/checks/yamlfmt.format.yaml +14 -0
- pyossmtool/bundle/catalog/checks/yamllint.check.yaml +16 -0
- pyossmtool/bundle/catalog/tools/bandit.yaml +20 -0
- pyossmtool/bundle/catalog/tools/codespell.yaml +17 -0
- pyossmtool/bundle/catalog/tools/deadcode.yaml +13 -0
- pyossmtool/bundle/catalog/tools/gitleaks.yaml +9 -0
- pyossmtool/bundle/catalog/tools/hadolint.yaml +11 -0
- pyossmtool/bundle/catalog/tools/jscpd.yaml +15 -0
- pyossmtool/bundle/catalog/tools/markdownlint.yaml +18 -0
- pyossmtool/bundle/catalog/tools/mdformat.yaml +13 -0
- pyossmtool/bundle/catalog/tools/mutmut.yaml +10 -0
- pyossmtool/bundle/catalog/tools/pydeps.yaml +10 -0
- pyossmtool/bundle/catalog/tools/pytest.yaml +12 -0
- pyossmtool/bundle/catalog/tools/radon.yaml +10 -0
- pyossmtool/bundle/catalog/tools/ruff.yaml +26 -0
- pyossmtool/bundle/catalog/tools/script.yaml +8 -0
- pyossmtool/bundle/catalog/tools/semgrep.yaml +21 -0
- pyossmtool/bundle/catalog/tools/shellcheck.yaml +10 -0
- pyossmtool/bundle/catalog/tools/shfmt.yaml +13 -0
- pyossmtool/bundle/catalog/tools/sourcery.yaml +10 -0
- pyossmtool/bundle/catalog/tools/ty.yaml +20 -0
- pyossmtool/bundle/catalog/tools/vulture.yaml +13 -0
- pyossmtool/bundle/catalog/tools/yamlfmt.yaml +24 -0
- pyossmtool/bundle/catalog/tools/yamllint.yaml +24 -0
- pyossmtool/bundle/defaults/allowlists/acronyms.yaml +10 -0
- pyossmtool/bundle/defaults/allowlists/folder-breadth.txt +1 -0
- pyossmtool/bundle/defaults/allowlists/module-private-vars.txt +1 -0
- pyossmtool/bundle/defaults/allowlists/module-size.txt +1 -0
- pyossmtool/bundle/defaults/configs/bandit.yaml +5 -0
- pyossmtool/bundle/defaults/configs/gates/acronym-allowlist.yaml +4 -0
- pyossmtool/bundle/defaults/configs/gates/folder-breadth.yaml +12 -0
- pyossmtool/bundle/defaults/configs/gates/module-private-vars.yaml +4 -0
- pyossmtool/bundle/defaults/configs/gates/module-size.yaml +6 -0
- pyossmtool/bundle/defaults/configs/markdownlint.json +8 -0
- pyossmtool/bundle/defaults/configs/ruff.toml +8 -0
- pyossmtool/bundle/defaults/configs/ty.toml +5 -0
- pyossmtool/bundle/defaults/configs/yamlfmt.yaml +4 -0
- pyossmtool/bundle/defaults/configs/yamllint.yaml +12 -0
- pyossmtool/bundle/defaults/gates/README.md +150 -0
- pyossmtool/bundle/defaults/gates/acronym-allowlist.sh +15 -0
- pyossmtool/bundle/defaults/gates/folder-breadth.sh +22 -0
- pyossmtool/bundle/defaults/gates/lib.sh +116 -0
- pyossmtool/bundle/defaults/gates/module-private-vars.sh +77 -0
- pyossmtool/bundle/defaults/gates/module-size.sh +60 -0
- pyossmtool/bundle/defaults/semgrep/python-quality.yml +19 -0
- pyossmtool/bundle/suites/demo.yaml +11 -0
- pyossmtool/bundle/suites/extended.yaml +34 -0
- pyossmtool/bundle/suites/format.yaml +10 -0
- pyossmtool/bundle/suites/formatting.yaml +10 -0
- pyossmtool/bundle/suites/policy.yaml +11 -0
- pyossmtool/bundle/suites/python-quality.yaml +9 -0
- pyossmtool/bundle/suites/reslab-parity.yaml +41 -0
- pyossmtool/bundle/suites/standard.yaml +45 -0
- pyossmtool/cli.py +233 -0
- pyossmtool/config_resolver.py +117 -0
- pyossmtool/discovery.py +50 -0
- pyossmtool/gate_config.py +119 -0
- pyossmtool/gates.py +102 -0
- pyossmtool/ignore.py +270 -0
- pyossmtool/ignore_materialize.py +184 -0
- pyossmtool/installer.py +119 -0
- pyossmtool/models.py +279 -0
- pyossmtool/parsers/__init__.py +76 -0
- pyossmtool/parsers/analysis.py +329 -0
- pyossmtool/parsers/base.py +29 -0
- pyossmtool/parsers/common.py +57 -0
- pyossmtool/parsers/format_text.py +67 -0
- pyossmtool/parsers/gates.py +92 -0
- pyossmtool/parsers/patterns.py +78 -0
- pyossmtool/parsers/prose.py +193 -0
- pyossmtool/parsers/ruff.py +103 -0
- pyossmtool/parsers/shell.py +83 -0
- pyossmtool/policy/__init__.py +0 -0
- pyossmtool/policy/acronym_allowlist.py +322 -0
- pyossmtool/policy/folder_breadth.py +306 -0
- pyossmtool/registry.py +72 -0
- pyossmtool/reporter.py +87 -0
- pyossmtool/resolver.py +146 -0
- pyossmtool/runner.py +482 -0
- pyossmtool/runner_script.py +131 -0
- pyossmtool/target_expand.py +112 -0
- pyossmtool-0.0.1.dist-info/METADATA +94 -0
- pyossmtool-0.0.1.dist-info/RECORD +119 -0
- pyossmtool-0.0.1.dist-info/WHEEL +5 -0
- pyossmtool-0.0.1.dist-info/entry_points.txt +2 -0
- pyossmtool-0.0.1.dist-info/licenses/LICENSE +21 -0
- pyossmtool-0.0.1.dist-info/top_level.txt +1 -0
pyossmtool/__init__.py
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
id: deadcode.scan
|
|
2
|
+
tool: deadcode
|
|
3
|
+
name: Deadcode Scan
|
|
4
|
+
description: Find unused Python definitions.
|
|
5
|
+
argv:
|
|
6
|
+
- --no-color
|
|
7
|
+
- "{target}"
|
|
8
|
+
parser: deadcode_text
|
|
9
|
+
success:
|
|
10
|
+
exit_codes: [0]
|
|
11
|
+
remediation:
|
|
12
|
+
suggested_commands:
|
|
13
|
+
- deadcode --no-color {target}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
id: gate.acronym-allowlist
|
|
2
|
+
tool: script
|
|
3
|
+
name: Acronym Allowlist Gate
|
|
4
|
+
description: Require documented expansions for acronyms in contributor prose.
|
|
5
|
+
script: bundled:gates/acronym-allowlist.sh
|
|
6
|
+
parser: gate_json
|
|
7
|
+
output_file: .pyossmtool/reports/gate.acronym-allowlist.json
|
|
8
|
+
argv: []
|
|
9
|
+
config:
|
|
10
|
+
bundled: gates/acronym-allowlist.yaml
|
|
11
|
+
project_file: .pyossmtool/configs/gates/gate.acronym-allowlist.yaml
|
|
12
|
+
allowlist_bundled: acronyms.yaml
|
|
13
|
+
success:
|
|
14
|
+
exit_codes: [0]
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
id: gate.folder-breadth
|
|
2
|
+
tool: script
|
|
3
|
+
name: Folder Breadth Gate
|
|
4
|
+
description: Cap direct sibling file counts in leaf directories.
|
|
5
|
+
script: bundled:gates/folder-breadth.sh
|
|
6
|
+
parser: gate_json
|
|
7
|
+
output_file: .pyossmtool/reports/gate.folder-breadth.json
|
|
8
|
+
argv: []
|
|
9
|
+
config:
|
|
10
|
+
bundled: gates/folder-breadth.yaml
|
|
11
|
+
project_file: .pyossmtool/configs/gates/gate.folder-breadth.yaml
|
|
12
|
+
allowlist_bundled: folder-breadth.txt
|
|
13
|
+
success:
|
|
14
|
+
exit_codes: [0]
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
id: gate.module-private-vars
|
|
2
|
+
tool: script
|
|
3
|
+
name: Module Private Vars Gate
|
|
4
|
+
description: Forbid module-level names with a single leading underscore.
|
|
5
|
+
script: bundled:gates/module-private-vars.sh
|
|
6
|
+
parser: gate_json
|
|
7
|
+
output_file: .pyossmtool/reports/gate.module-private-vars.json
|
|
8
|
+
argv: []
|
|
9
|
+
config:
|
|
10
|
+
bundled: gates/module-private-vars.yaml
|
|
11
|
+
project_file: .pyossmtool/configs/gates/gate.module-private-vars.yaml
|
|
12
|
+
allowlist_bundled: module-private-vars.txt
|
|
13
|
+
success:
|
|
14
|
+
exit_codes: [0]
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
id: gate.module-size
|
|
2
|
+
tool: script
|
|
3
|
+
name: Module Size Gate
|
|
4
|
+
description: Enforce portfolio and new-file line limits on Python modules.
|
|
5
|
+
script: bundled:gates/module-size.sh
|
|
6
|
+
parser: gate_json
|
|
7
|
+
output_file: .pyossmtool/reports/gate.module-size.json
|
|
8
|
+
argv: []
|
|
9
|
+
config:
|
|
10
|
+
bundled: gates/module-size.yaml
|
|
11
|
+
project_file: .pyossmtool/configs/gates/gate.module-size.yaml
|
|
12
|
+
allowlist_bundled: module-size.txt
|
|
13
|
+
success:
|
|
14
|
+
exit_codes: [0]
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
id: gitleaks.secrets
|
|
2
|
+
tool: gitleaks
|
|
3
|
+
name: Gitleaks Secret Scan
|
|
4
|
+
description: Scan repository for leaked secrets.
|
|
5
|
+
argv:
|
|
6
|
+
- detect
|
|
7
|
+
- --source
|
|
8
|
+
- "{target}"
|
|
9
|
+
- --no-banner
|
|
10
|
+
- --redact
|
|
11
|
+
- --report-format
|
|
12
|
+
- json
|
|
13
|
+
- --report-path
|
|
14
|
+
- .pyossmtool/gitleaks-report.json
|
|
15
|
+
parser: gitleaks_json
|
|
16
|
+
success:
|
|
17
|
+
exit_codes: [0]
|
|
18
|
+
output_file: .pyossmtool/gitleaks-report.json
|
|
19
|
+
remediation:
|
|
20
|
+
suggested_commands:
|
|
21
|
+
- gitleaks detect --source {target}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
id: hadolint.dockerfile
|
|
2
|
+
tool: hadolint
|
|
3
|
+
name: Hadolint
|
|
4
|
+
description: Lint Dockerfiles.
|
|
5
|
+
argv:
|
|
6
|
+
- --format
|
|
7
|
+
- json
|
|
8
|
+
- '{target}'
|
|
9
|
+
parser: hadolint_json
|
|
10
|
+
success:
|
|
11
|
+
exit_codes:
|
|
12
|
+
- 0
|
|
13
|
+
- 1
|
|
14
|
+
remediation:
|
|
15
|
+
suggested_commands:
|
|
16
|
+
- hadolint {target}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
id: jscpd.duplication
|
|
2
|
+
tool: jscpd
|
|
3
|
+
name: JSCPD Duplication Scan
|
|
4
|
+
description: Detect duplicated code blocks above threshold.
|
|
5
|
+
argv:
|
|
6
|
+
- "{target}"
|
|
7
|
+
- --reporters
|
|
8
|
+
- json
|
|
9
|
+
- --silent
|
|
10
|
+
- --min-lines
|
|
11
|
+
- "3"
|
|
12
|
+
- --min-tokens
|
|
13
|
+
- "20"
|
|
14
|
+
parser: jscpd_json
|
|
15
|
+
success:
|
|
16
|
+
exit_codes: [0]
|
|
17
|
+
policy:
|
|
18
|
+
max_duplication_percent: 50
|
|
19
|
+
output_file: report/jscpd-report.json
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
id: markdownlint.check
|
|
2
|
+
tool: markdownlint
|
|
3
|
+
name: Markdownlint
|
|
4
|
+
description: Lint Markdown files for style issues.
|
|
5
|
+
argv:
|
|
6
|
+
- -c
|
|
7
|
+
- '{config}'
|
|
8
|
+
- -j
|
|
9
|
+
- '{target}'
|
|
10
|
+
parser: markdownlint_json
|
|
11
|
+
success:
|
|
12
|
+
exit_codes:
|
|
13
|
+
- 0
|
|
14
|
+
- 1
|
|
15
|
+
remediation:
|
|
16
|
+
suggested_commands:
|
|
17
|
+
- markdownlint {target}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
id: mdformat.format
|
|
2
|
+
tool: mdformat
|
|
3
|
+
name: mdformat Check
|
|
4
|
+
description: Verify Markdown formatting without applying changes.
|
|
5
|
+
argv:
|
|
6
|
+
- --check
|
|
7
|
+
- '{target}'
|
|
8
|
+
parser: mdformat_text
|
|
9
|
+
success:
|
|
10
|
+
exit_codes:
|
|
11
|
+
- 0
|
|
12
|
+
remediation:
|
|
13
|
+
suggested_commands:
|
|
14
|
+
- mdformat {target}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
id: mutmut.run
|
|
2
|
+
tool: mutmut
|
|
3
|
+
name: Mutmut Mutation Testing
|
|
4
|
+
description: Run mutation tests (slow; requires [tool.mutmut] in pyproject.toml).
|
|
5
|
+
argv:
|
|
6
|
+
- run
|
|
7
|
+
parser: mutmut_text
|
|
8
|
+
success:
|
|
9
|
+
exit_codes: [0]
|
|
10
|
+
remediation:
|
|
11
|
+
suggested_commands:
|
|
12
|
+
- mutmut run
|
|
13
|
+
- mutmut results
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
id: pydeps.cycles
|
|
2
|
+
tool: pydeps
|
|
3
|
+
name: Pydeps Import Cycles
|
|
4
|
+
description: Fail when Python import cycles are detected.
|
|
5
|
+
argv:
|
|
6
|
+
- "{target}"
|
|
7
|
+
- --show-cycles
|
|
8
|
+
- --no-show
|
|
9
|
+
parser: pydeps_cycles_text
|
|
10
|
+
success:
|
|
11
|
+
exit_codes: [0, 1, 2]
|
|
12
|
+
remediation:
|
|
13
|
+
suggested_commands:
|
|
14
|
+
- pydeps {target} --show-cycles --no-show
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
id: pytest.coverage
|
|
2
|
+
tool: pytest
|
|
3
|
+
name: Pytest Coverage
|
|
4
|
+
description: Run tests with coverage floor enforcement.
|
|
5
|
+
argv:
|
|
6
|
+
- "{target}"
|
|
7
|
+
- --cov={cov}
|
|
8
|
+
- --cov-report=term-missing
|
|
9
|
+
- --cov-fail-under=80
|
|
10
|
+
- -q
|
|
11
|
+
parser: pytest_text
|
|
12
|
+
success:
|
|
13
|
+
exit_codes: [0]
|
|
14
|
+
policy:
|
|
15
|
+
min_coverage_percent: 80
|
|
16
|
+
coverage_source: src/
|
|
17
|
+
remediation:
|
|
18
|
+
suggested_commands:
|
|
19
|
+
- pytest {target} --cov={cov}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
id: radon.cc
|
|
2
|
+
tool: radon
|
|
3
|
+
name: Radon Cyclomatic Complexity
|
|
4
|
+
description: Fail when function complexity rank exceeds policy.
|
|
5
|
+
argv:
|
|
6
|
+
- cc
|
|
7
|
+
- "{target}"
|
|
8
|
+
- -j
|
|
9
|
+
parser: radon_cc_json
|
|
10
|
+
success:
|
|
11
|
+
exit_codes: [0]
|
|
12
|
+
policy:
|
|
13
|
+
max_complexity_rank: A
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
id: radon.mi
|
|
2
|
+
tool: radon
|
|
3
|
+
name: Radon Maintainability Index
|
|
4
|
+
description: Fail when module maintainability rank exceeds policy.
|
|
5
|
+
argv:
|
|
6
|
+
- mi
|
|
7
|
+
- "{target}"
|
|
8
|
+
- -j
|
|
9
|
+
parser: radon_mi_json
|
|
10
|
+
success:
|
|
11
|
+
exit_codes: [0]
|
|
12
|
+
policy:
|
|
13
|
+
max_complexity_rank: A
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
id: ruff.format
|
|
2
|
+
tool: ruff
|
|
3
|
+
name: Ruff Format Check
|
|
4
|
+
description: Verify Python formatting without applying changes.
|
|
5
|
+
argv:
|
|
6
|
+
- format
|
|
7
|
+
- --check
|
|
8
|
+
- "{target}"
|
|
9
|
+
parser: ruff_format_text
|
|
10
|
+
success:
|
|
11
|
+
exit_codes: [0]
|
|
12
|
+
remediation:
|
|
13
|
+
suggested_commands:
|
|
14
|
+
- ruff format {target}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
id: ruff.lint
|
|
2
|
+
tool: ruff
|
|
3
|
+
name: Ruff Lint
|
|
4
|
+
description: Run ruff check on Python sources.
|
|
5
|
+
argv:
|
|
6
|
+
- check
|
|
7
|
+
- "{target}"
|
|
8
|
+
- --output-format
|
|
9
|
+
- json
|
|
10
|
+
parser: ruff_json
|
|
11
|
+
success:
|
|
12
|
+
exit_codes: [0]
|
|
13
|
+
remediation:
|
|
14
|
+
suggested_commands:
|
|
15
|
+
- ruff check --fix {target}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
id: ruff.unused
|
|
2
|
+
tool: ruff
|
|
3
|
+
name: Ruff Unused Imports
|
|
4
|
+
description: Detect unused imports and variables (F401, F841).
|
|
5
|
+
argv:
|
|
6
|
+
- check
|
|
7
|
+
- "{target}"
|
|
8
|
+
- --select
|
|
9
|
+
- F401,F841
|
|
10
|
+
- --output-format
|
|
11
|
+
- json
|
|
12
|
+
parser: ruff_json
|
|
13
|
+
success:
|
|
14
|
+
exit_codes: [0]
|
|
15
|
+
remediation:
|
|
16
|
+
suggested_commands:
|
|
17
|
+
- ruff check --select F401,F841 --fix {target}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
id: semgrep.scan
|
|
2
|
+
tool: semgrep
|
|
3
|
+
name: Semgrep Scan
|
|
4
|
+
description: Static analysis for security and architecture patterns.
|
|
5
|
+
argv:
|
|
6
|
+
- scan
|
|
7
|
+
- --config
|
|
8
|
+
- "{config}"
|
|
9
|
+
- "{target}"
|
|
10
|
+
- --error
|
|
11
|
+
- --json
|
|
12
|
+
- --quiet
|
|
13
|
+
parser: semgrep_json
|
|
14
|
+
success:
|
|
15
|
+
exit_codes: [0, 1]
|
|
16
|
+
remediation:
|
|
17
|
+
suggested_commands:
|
|
18
|
+
- semgrep scan --config <rules> {target}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
id: shfmt.format
|
|
2
|
+
tool: shfmt
|
|
3
|
+
name: shfmt Format Check
|
|
4
|
+
description: Verify shell script formatting via diff mode.
|
|
5
|
+
argv:
|
|
6
|
+
- -d
|
|
7
|
+
- '{target}'
|
|
8
|
+
parser: shfmt_diff
|
|
9
|
+
success:
|
|
10
|
+
exit_codes:
|
|
11
|
+
- 0
|
|
12
|
+
remediation:
|
|
13
|
+
suggested_commands:
|
|
14
|
+
- shfmt -w {target}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
id: sourcery.review
|
|
2
|
+
tool: sourcery
|
|
3
|
+
name: Sourcery Review
|
|
4
|
+
description: Automated code review suggestions (optional; may require Sourcery account).
|
|
5
|
+
argv:
|
|
6
|
+
- review
|
|
7
|
+
- "{target}"
|
|
8
|
+
- --check
|
|
9
|
+
parser: sourcery_text
|
|
10
|
+
success:
|
|
11
|
+
exit_codes: [0, 1]
|
|
12
|
+
remediation:
|
|
13
|
+
suggested_commands:
|
|
14
|
+
- sourcery review {target}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
id: ty.check
|
|
2
|
+
tool: ty
|
|
3
|
+
name: ty Type Check
|
|
4
|
+
description: Static type checking with concise diagnostics.
|
|
5
|
+
argv:
|
|
6
|
+
- check
|
|
7
|
+
- "{target}"
|
|
8
|
+
- --output-format
|
|
9
|
+
- concise
|
|
10
|
+
parser: ty_concise
|
|
11
|
+
success:
|
|
12
|
+
exit_codes: [0]
|
|
13
|
+
remediation:
|
|
14
|
+
suggested_commands:
|
|
15
|
+
- ty check {target}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
id: vulture.scan
|
|
2
|
+
tool: vulture
|
|
3
|
+
name: Vulture Scan
|
|
4
|
+
description: Find dead Python code with high confidence.
|
|
5
|
+
argv:
|
|
6
|
+
- "{target}"
|
|
7
|
+
- --min-confidence
|
|
8
|
+
- "80"
|
|
9
|
+
parser: vulture_text
|
|
10
|
+
success:
|
|
11
|
+
exit_codes: [0, 3]
|
|
12
|
+
policy:
|
|
13
|
+
min_confidence: 80
|
|
14
|
+
remediation:
|
|
15
|
+
suggested_commands:
|
|
16
|
+
- vulture {target}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
id: yamlfmt.format
|
|
2
|
+
tool: yamlfmt
|
|
3
|
+
name: yamlfmt Lint
|
|
4
|
+
description: Lint YAML files for formatting issues.
|
|
5
|
+
argv:
|
|
6
|
+
- -lint
|
|
7
|
+
- '{target}'
|
|
8
|
+
parser: yamlfmt_text
|
|
9
|
+
success:
|
|
10
|
+
exit_codes:
|
|
11
|
+
- 0
|
|
12
|
+
remediation:
|
|
13
|
+
suggested_commands:
|
|
14
|
+
- yamlfmt {target}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
id: yamllint.check
|
|
2
|
+
tool: yamllint
|
|
3
|
+
name: Yamllint
|
|
4
|
+
description: Lint YAML files for syntax and style issues.
|
|
5
|
+
argv:
|
|
6
|
+
- -f
|
|
7
|
+
- parsable
|
|
8
|
+
- '{target}'
|
|
9
|
+
parser: yamllint_text
|
|
10
|
+
success:
|
|
11
|
+
exit_codes:
|
|
12
|
+
- 0
|
|
13
|
+
- 1
|
|
14
|
+
remediation:
|
|
15
|
+
suggested_commands:
|
|
16
|
+
- yamllint {target}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
id: bandit
|
|
2
|
+
name: Bandit
|
|
3
|
+
description: Security issue scanner for Python.
|
|
4
|
+
install:
|
|
5
|
+
method: pip
|
|
6
|
+
package: bandit>=1.9.0
|
|
7
|
+
binary: bandit
|
|
8
|
+
documentation_url: https://bandit.readthedocs.io/
|
|
9
|
+
config:
|
|
10
|
+
flag: -c
|
|
11
|
+
bundled: bandit.yaml
|
|
12
|
+
pyproject:
|
|
13
|
+
- tool
|
|
14
|
+
- bandit
|
|
15
|
+
use_pyproject_as_path: true
|
|
16
|
+
ignore:
|
|
17
|
+
kind: flag_pairs
|
|
18
|
+
flag: -x
|
|
19
|
+
files:
|
|
20
|
+
- '**/*.py'
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
id: codespell
|
|
2
|
+
name: codespell
|
|
3
|
+
description: Fix common misspellings in text files.
|
|
4
|
+
install:
|
|
5
|
+
method: pip
|
|
6
|
+
package: codespell>=2.4.0
|
|
7
|
+
binary: codespell
|
|
8
|
+
documentation_url: https://github.com/codespell-project/codespell
|
|
9
|
+
config:
|
|
10
|
+
pyproject:
|
|
11
|
+
- tool
|
|
12
|
+
- codespell
|
|
13
|
+
ignore:
|
|
14
|
+
kind: skip_file
|
|
15
|
+
flag: --skip
|
|
16
|
+
file: codespell.skip
|
|
17
|
+
files: []
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
id: deadcode
|
|
2
|
+
name: deadcode
|
|
3
|
+
description: Find unused Python code by static analysis.
|
|
4
|
+
install:
|
|
5
|
+
method: pip
|
|
6
|
+
package: deadcode>=2.4.0
|
|
7
|
+
binary: deadcode
|
|
8
|
+
documentation_url: https://github.com/alanedwardes/deadcode
|
|
9
|
+
ignore:
|
|
10
|
+
kind: prefix
|
|
11
|
+
prefix: --exclude=
|
|
12
|
+
files:
|
|
13
|
+
- '**/*.py'
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
id: jscpd
|
|
2
|
+
name: JSCPD
|
|
3
|
+
description: Copy/paste detector for duplicated code.
|
|
4
|
+
install:
|
|
5
|
+
method: npm
|
|
6
|
+
package: jscpd
|
|
7
|
+
binary: jscpd
|
|
8
|
+
documentation_url: https://docs.jscpd.io/
|
|
9
|
+
ignore:
|
|
10
|
+
kind: config_overlay
|
|
11
|
+
format: json
|
|
12
|
+
file: jscpd.json
|
|
13
|
+
flag: --config
|
|
14
|
+
key: ignore
|
|
15
|
+
files: []
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
id: markdownlint
|
|
2
|
+
name: markdownlint
|
|
3
|
+
description: Markdown style linter (markdownlint-cli).
|
|
4
|
+
install:
|
|
5
|
+
method: npm
|
|
6
|
+
package: markdownlint-cli
|
|
7
|
+
binary: markdownlint
|
|
8
|
+
documentation_url: https://github.com/DavidAnson/markdownlint
|
|
9
|
+
config:
|
|
10
|
+
flag: -c
|
|
11
|
+
bundled: markdownlint.json
|
|
12
|
+
pass_flag: false
|
|
13
|
+
repo_files:
|
|
14
|
+
- .markdownlint.json
|
|
15
|
+
- .markdownlint.yaml
|
|
16
|
+
- .markdownlint.yml
|
|
17
|
+
files:
|
|
18
|
+
- '**/*.{md,markdown}'
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
id: mdformat
|
|
2
|
+
name: mdformat
|
|
3
|
+
description: Markdown formatter with --check mode.
|
|
4
|
+
install:
|
|
5
|
+
method: pip
|
|
6
|
+
package: mdformat>=0.7.0
|
|
7
|
+
binary: mdformat
|
|
8
|
+
documentation_url: https://github.com/executablebooks/mdformat
|
|
9
|
+
config:
|
|
10
|
+
repo_files:
|
|
11
|
+
- .mdformat.toml
|
|
12
|
+
files:
|
|
13
|
+
- '**/*.{md,markdown}'
|