conviso-ast 3.0.0rc0__tar.gz → 3.0.1rc0__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.
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/PKG-INFO +4 -4
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/conviso_ast.egg-info/PKG-INFO +4 -4
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/conviso_ast.egg-info/SOURCES.txt +0 -5
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/conviso_ast.egg-info/requires.txt +3 -3
- conviso_ast-3.0.1rc0/convisoappsec/flow/util/__init__.py +5 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flowcli/deploy/create/with_/tag_tracker/sort_by/time_.py +0 -2
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flowcli/deploy/create/with_/tag_tracker/sort_by/versioning_style.py +0 -2
- conviso_ast-3.0.1rc0/convisoappsec/version.py +1 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/setup.py +3 -3
- conviso_ast-3.0.0rc0/convisoappsec/flow/source_code_scanner/__init__.py +0 -9
- conviso_ast-3.0.0rc0/convisoappsec/flow/source_code_scanner/exceptions.py +0 -2
- conviso_ast-3.0.0rc0/convisoappsec/flow/source_code_scanner/scc.py +0 -68
- conviso_ast-3.0.0rc0/convisoappsec/flow/source_code_scanner/source_code_scanner.py +0 -177
- conviso_ast-3.0.0rc0/convisoappsec/flow/util/__init__.py +0 -7
- conviso_ast-3.0.0rc0/convisoappsec/flow/util/metrics.py +0 -16
- conviso_ast-3.0.0rc0/convisoappsec/version.py +0 -1
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/README.md +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/conviso_ast.egg-info/dependency_links.txt +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/conviso_ast.egg-info/entry_points.txt +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/conviso_ast.egg-info/top_level.txt +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/__init__.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/common/__init__.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/common/box.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/common/cleaner.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/common/docker.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/common/exceptions.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/common/git_data_parser.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/common/graphql/__init__.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/common/graphql/error_handlers.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/common/graphql/errors.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/common/graphql/low_client.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/common/retry_handler.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/common/strings.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flow/__init__.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flow/api.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flow/cleaner.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flow/graphql_api/__init__.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flow/graphql_api/beta/__init__.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flow/graphql_api/beta/client.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flow/graphql_api/beta/models/__init__.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flow/graphql_api/beta/models/issues/__init__.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flow/graphql_api/beta/models/issues/container.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flow/graphql_api/beta/models/issues/iac.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flow/graphql_api/beta/models/issues/normalize.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flow/graphql_api/beta/models/issues/sast.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flow/graphql_api/beta/models/issues/sca.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flow/graphql_api/beta/resources_api.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flow/graphql_api/beta/schemas/__init__.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flow/graphql_api/beta/schemas/mutations/__init__.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flow/graphql_api/beta/schemas/resolvers/__init__.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flow/graphql_api/v1/__init__.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flow/graphql_api/v1/client.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flow/graphql_api/v1/models/__init__.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flow/graphql_api/v1/models/asset.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flow/graphql_api/v1/models/issues.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flow/graphql_api/v1/models/project.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flow/graphql_api/v1/resources_api.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flow/graphql_api/v1/schemas/__init__.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flow/graphql_api/v1/schemas/mutations/__init__.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flow/graphql_api/v1/schemas/resolvers/__init__.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flow/util/ci_provider.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flow/util/source_code_compressor.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flow/version_control_system_adapter.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flow/version_searchers/__init__.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flow/version_searchers/sorted_by_versioning_style.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flow/version_searchers/timebased_version_seacher.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flow/version_searchers/version_searcher_result.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flow/versioning_style/__init__.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flow/versioning_style/semantic_versioning.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flowcli/__init__.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flowcli/__main__.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flowcli/assets/__init__.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flowcli/assets/create.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flowcli/assets/entrypoint.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flowcli/assets/ls.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flowcli/ast/__init__.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flowcli/ast/entrypoint.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flowcli/common.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flowcli/companies/__init__.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flowcli/companies/ls.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flowcli/container/__init__.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flowcli/container/entrypoint.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flowcli/container/run.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flowcli/context.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flowcli/deploy/__init__.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flowcli/deploy/create/__init__.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flowcli/deploy/create/context.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flowcli/deploy/create/entrypoint.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flowcli/deploy/create/with_/__init__.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flowcli/deploy/create/with_/entrypoint.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flowcli/deploy/create/with_/tag_tracker/__init__.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flowcli/deploy/create/with_/tag_tracker/context.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flowcli/deploy/create/with_/tag_tracker/entrypoint.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flowcli/deploy/create/with_/tag_tracker/sort_by/__init__.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flowcli/deploy/create/with_/tag_tracker/sort_by/entrypoint.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flowcli/deploy/create/with_/values.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flowcli/entrypoint.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flowcli/environment_checker.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flowcli/findings/__init__.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flowcli/findings/create/__init__.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flowcli/findings/create/entrypoint.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flowcli/findings/create/with_/__init__.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flowcli/findings/create/with_/entrypoint.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flowcli/findings/create/with_/version_tracker.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flowcli/findings/entrypoint.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flowcli/findings/import_sarif/__init__.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flowcli/findings/import_sarif/entrypoint.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flowcli/help_option.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flowcli/iac/__init__.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flowcli/iac/entrypoint.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flowcli/iac/run.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flowcli/requirements_verifier.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flowcli/sast/__init__.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flowcli/sast/entrypoint.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flowcli/sast/run.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flowcli/sbom/__init__.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flowcli/sbom/entrypoint.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flowcli/sbom/generate.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flowcli/sca/__init__.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flowcli/sca/entrypoint.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flowcli/sca/run.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flowcli/vulnerability/__init__.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flowcli/vulnerability/assert_security_rules.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flowcli/vulnerability/container_vulnerability_manager.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flowcli/vulnerability/entrypoint.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flowcli/vulnerability/rules_schema.json +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flowcli/vulnerability/run.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/logger.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/sast/__init__.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/sast/decision.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/sast/sastbox.py +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/scripts/shell_completer/flow_bash_completer.sh +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/scripts/shell_completer/flow_fish_completer.fish +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/scripts/shell_completer/flow_zsh_completer.sh +0 -0
- {conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/setup.cfg +0 -0
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: conviso-ast
|
|
3
|
-
Version: 3.0.
|
|
3
|
+
Version: 3.0.1rc0
|
|
4
4
|
Maintainer: Conviso
|
|
5
5
|
Maintainer-email: development@convisoappsec.com
|
|
6
6
|
Project-URL: Source, https://github.com/convisoappsec/convisocli/
|
|
7
7
|
Requires-Python: >=3.9
|
|
8
8
|
Description-Content-Type: text/markdown
|
|
9
|
-
Requires-Dist: GitPython==3.1.
|
|
9
|
+
Requires-Dist: GitPython==3.1.46
|
|
10
10
|
Requires-Dist: click==8.1.8
|
|
11
11
|
Requires-Dist: requests==2.32.5
|
|
12
|
-
Requires-Dist: urllib3==2.
|
|
12
|
+
Requires-Dist: urllib3==2.6.3
|
|
13
13
|
Requires-Dist: semantic-version==2.10.0
|
|
14
14
|
Requires-Dist: docker==7.1.0
|
|
15
15
|
Requires-Dist: PyYAML==6.0.3
|
|
16
16
|
Requires-Dist: click-log==0.4.0
|
|
17
17
|
Requires-Dist: transitions==0.9.2
|
|
18
18
|
Requires-Dist: jsonschema==4.25.1
|
|
19
|
-
Requires-Dist: giturlparse<=0.
|
|
19
|
+
Requires-Dist: giturlparse<=0.14.0
|
|
20
20
|
Requires-Dist: jmespath==1.0.1
|
|
21
21
|
Requires-Dist: setuptools==78.1.0
|
|
22
22
|
Dynamic: description
|
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: conviso-ast
|
|
3
|
-
Version: 3.0.
|
|
3
|
+
Version: 3.0.1rc0
|
|
4
4
|
Maintainer: Conviso
|
|
5
5
|
Maintainer-email: development@convisoappsec.com
|
|
6
6
|
Project-URL: Source, https://github.com/convisoappsec/convisocli/
|
|
7
7
|
Requires-Python: >=3.9
|
|
8
8
|
Description-Content-Type: text/markdown
|
|
9
|
-
Requires-Dist: GitPython==3.1.
|
|
9
|
+
Requires-Dist: GitPython==3.1.46
|
|
10
10
|
Requires-Dist: click==8.1.8
|
|
11
11
|
Requires-Dist: requests==2.32.5
|
|
12
|
-
Requires-Dist: urllib3==2.
|
|
12
|
+
Requires-Dist: urllib3==2.6.3
|
|
13
13
|
Requires-Dist: semantic-version==2.10.0
|
|
14
14
|
Requires-Dist: docker==7.1.0
|
|
15
15
|
Requires-Dist: PyYAML==6.0.3
|
|
16
16
|
Requires-Dist: click-log==0.4.0
|
|
17
17
|
Requires-Dist: transitions==0.9.2
|
|
18
18
|
Requires-Dist: jsonschema==4.25.1
|
|
19
|
-
Requires-Dist: giturlparse<=0.
|
|
19
|
+
Requires-Dist: giturlparse<=0.14.0
|
|
20
20
|
Requires-Dist: jmespath==1.0.1
|
|
21
21
|
Requires-Dist: setuptools==78.1.0
|
|
22
22
|
Dynamic: description
|
|
@@ -49,13 +49,8 @@ convisoappsec/flow/graphql_api/v1/models/project.py
|
|
|
49
49
|
convisoappsec/flow/graphql_api/v1/schemas/__init__.py
|
|
50
50
|
convisoappsec/flow/graphql_api/v1/schemas/mutations/__init__.py
|
|
51
51
|
convisoappsec/flow/graphql_api/v1/schemas/resolvers/__init__.py
|
|
52
|
-
convisoappsec/flow/source_code_scanner/__init__.py
|
|
53
|
-
convisoappsec/flow/source_code_scanner/exceptions.py
|
|
54
|
-
convisoappsec/flow/source_code_scanner/scc.py
|
|
55
|
-
convisoappsec/flow/source_code_scanner/source_code_scanner.py
|
|
56
52
|
convisoappsec/flow/util/__init__.py
|
|
57
53
|
convisoappsec/flow/util/ci_provider.py
|
|
58
|
-
convisoappsec/flow/util/metrics.py
|
|
59
54
|
convisoappsec/flow/util/source_code_compressor.py
|
|
60
55
|
convisoappsec/flow/version_searchers/__init__.py
|
|
61
56
|
convisoappsec/flow/version_searchers/sorted_by_versioning_style.py
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
GitPython==3.1.
|
|
1
|
+
GitPython==3.1.46
|
|
2
2
|
click==8.1.8
|
|
3
3
|
requests==2.32.5
|
|
4
|
-
urllib3==2.
|
|
4
|
+
urllib3==2.6.3
|
|
5
5
|
semantic-version==2.10.0
|
|
6
6
|
docker==7.1.0
|
|
7
7
|
PyYAML==6.0.3
|
|
8
8
|
click-log==0.4.0
|
|
9
9
|
transitions==0.9.2
|
|
10
10
|
jsonschema==4.25.1
|
|
11
|
-
giturlparse<=0.
|
|
11
|
+
giturlparse<=0.14.0
|
|
12
12
|
jmespath==1.0.1
|
|
13
13
|
setuptools==78.1.0
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import click
|
|
2
2
|
# TODO: refactoring. all deploy create share some behavior
|
|
3
|
-
from convisoappsec.flow.util import project_metrics
|
|
4
3
|
from convisoappsec.flow.version_searchers import TimeBasedVersionSearcher
|
|
5
4
|
from convisoappsec.flow.version_control_system_adapter import GitAdapter
|
|
6
5
|
from convisoappsec.flowcli.context import pass_flow_context
|
|
@@ -72,7 +71,6 @@ def time_(flow_context, create_context, tag_tracker_context, attach_diff):
|
|
|
72
71
|
previous_version=previous_version,
|
|
73
72
|
diff_content=diff_content,
|
|
74
73
|
metrics=deploy_metrics,
|
|
75
|
-
project_metrics=project_metrics(repository_dir),
|
|
76
74
|
commit_authors=authors_data
|
|
77
75
|
)
|
|
78
76
|
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import click
|
|
2
2
|
# TODO: refactoring. all deploy create share some behavior
|
|
3
|
-
from convisoappsec.flow.util import project_metrics
|
|
4
3
|
from convisoappsec.flowcli.context import pass_flow_context
|
|
5
4
|
from convisoappsec.flow.version_searchers import SortedByVersioningStyle
|
|
6
5
|
from convisoappsec.flow.version_control_system_adapter import GitAdapter
|
|
@@ -103,7 +102,6 @@ def versioning_style(
|
|
|
103
102
|
previous_version=previous_version,
|
|
104
103
|
diff_content=diff_content,
|
|
105
104
|
metrics=deploy_metrics,
|
|
106
|
-
project_metrics=project_metrics(repository_dir),
|
|
107
105
|
commit_authors=authors_data
|
|
108
106
|
)
|
|
109
107
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = '3.0.1-rc.0'
|
|
@@ -33,17 +33,17 @@ setup(
|
|
|
33
33
|
exclude=["test*"],
|
|
34
34
|
),
|
|
35
35
|
install_requires=[
|
|
36
|
-
"GitPython==3.1.
|
|
36
|
+
"GitPython==3.1.46",
|
|
37
37
|
"click==8.1.8",
|
|
38
38
|
"requests==2.32.5",
|
|
39
|
-
"urllib3==2.
|
|
39
|
+
"urllib3==2.6.3",
|
|
40
40
|
"semantic-version==2.10.0",
|
|
41
41
|
"docker==7.1.0",
|
|
42
42
|
"PyYAML==6.0.3",
|
|
43
43
|
"click-log==0.4.0",
|
|
44
44
|
"transitions==0.9.2",
|
|
45
45
|
"jsonschema==4.25.1",
|
|
46
|
-
"giturlparse<=0.
|
|
46
|
+
"giturlparse<=0.14.0",
|
|
47
47
|
"jmespath==1.0.1",
|
|
48
48
|
"setuptools==78.1.0"
|
|
49
49
|
],
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
import yaml
|
|
2
|
-
import tempfile
|
|
3
|
-
|
|
4
|
-
from .source_code_scanner import SourceCodeScanner
|
|
5
|
-
from .exceptions import SourceCodeScannerException
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
class SCC(SourceCodeScanner):
|
|
9
|
-
|
|
10
|
-
def __init__(
|
|
11
|
-
self,
|
|
12
|
-
source_code_dir,
|
|
13
|
-
container_source_dir = '/code',
|
|
14
|
-
create_source_code_volume = True
|
|
15
|
-
):
|
|
16
|
-
super().__init__(
|
|
17
|
-
source_code_dir,
|
|
18
|
-
create_source_code_volume=create_source_code_volume
|
|
19
|
-
)
|
|
20
|
-
self.__scan_result = {}
|
|
21
|
-
self.__container_source_dir = container_source_dir
|
|
22
|
-
|
|
23
|
-
@property
|
|
24
|
-
def repository(self):
|
|
25
|
-
return 'convisoappsec/scc'
|
|
26
|
-
|
|
27
|
-
@property
|
|
28
|
-
def tag(self):
|
|
29
|
-
return 'latest'
|
|
30
|
-
|
|
31
|
-
@property
|
|
32
|
-
def container_source_dir(self):
|
|
33
|
-
return self.__container_source_dir
|
|
34
|
-
|
|
35
|
-
def _read_scan_stdout(self, stdout_generator):
|
|
36
|
-
with tempfile.TemporaryFile() as yaml_output:
|
|
37
|
-
for chunk in stdout_generator:
|
|
38
|
-
yaml_output.write(chunk)
|
|
39
|
-
|
|
40
|
-
yaml_output.seek(0)
|
|
41
|
-
|
|
42
|
-
self.__scan_result = yaml.load(
|
|
43
|
-
yaml_output,
|
|
44
|
-
Loader=yaml.FullLoader
|
|
45
|
-
)
|
|
46
|
-
|
|
47
|
-
@property
|
|
48
|
-
def summary(self):
|
|
49
|
-
summary = self.__scan_result.get('SUM')
|
|
50
|
-
if not summary:
|
|
51
|
-
raise SourceCodeScannerException(
|
|
52
|
-
'Unexpected error retrienving source code summary metrics'
|
|
53
|
-
)
|
|
54
|
-
|
|
55
|
-
return summary
|
|
56
|
-
|
|
57
|
-
@property
|
|
58
|
-
def total_source_code_lines(self):
|
|
59
|
-
return self.summary.get('code')
|
|
60
|
-
|
|
61
|
-
@property
|
|
62
|
-
def command(self):
|
|
63
|
-
return [
|
|
64
|
-
'--no-cocomo',
|
|
65
|
-
'--no-complexity',
|
|
66
|
-
'--format',
|
|
67
|
-
'cloc-yaml'
|
|
68
|
-
]
|
|
@@ -1,177 +0,0 @@
|
|
|
1
|
-
import docker
|
|
2
|
-
from contextlib import suppress
|
|
3
|
-
import tempfile
|
|
4
|
-
from uuid import uuid4
|
|
5
|
-
|
|
6
|
-
from convisoappsec.flow.util import SourceCodeCompressor
|
|
7
|
-
from .exceptions import SourceCodeScannerException
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
class SourceCodeScanner(object):
|
|
11
|
-
SUCCESS_EXIT_CODE = 0
|
|
12
|
-
'''
|
|
13
|
-
hooks:
|
|
14
|
-
def _pre_pull(self):
|
|
15
|
-
:return: void
|
|
16
|
-
|
|
17
|
-
def _capture_stdout(self, stdout_bytes)
|
|
18
|
-
:param stdout_bytes: chunks generated by stdout
|
|
19
|
-
:paramtype stdout_bytes: bytes
|
|
20
|
-
:return: void
|
|
21
|
-
_pre_scan
|
|
22
|
-
_scan_stdout
|
|
23
|
-
_post_scan
|
|
24
|
-
'''
|
|
25
|
-
|
|
26
|
-
def __init__(self, source_code_dir, create_source_code_volume = True):
|
|
27
|
-
uuid = str(uuid4())
|
|
28
|
-
self.docker = docker.from_env(version="auto")
|
|
29
|
-
self.__container_name = "source_code_scanner_{0}".format(
|
|
30
|
-
uuid
|
|
31
|
-
)
|
|
32
|
-
self.__source_code_dir = source_code_dir
|
|
33
|
-
self.__create_source_code_volume = create_source_code_volume
|
|
34
|
-
|
|
35
|
-
if self.__create_source_code_volume:
|
|
36
|
-
self.__source_code_volume_name = "source_code_scanner_src_{0}".format(
|
|
37
|
-
uuid
|
|
38
|
-
)
|
|
39
|
-
else:
|
|
40
|
-
self.__source_code_volume_name = None
|
|
41
|
-
|
|
42
|
-
@property
|
|
43
|
-
def repository(self):
|
|
44
|
-
raise Exception('Not implemented yet!')
|
|
45
|
-
|
|
46
|
-
@property
|
|
47
|
-
def tag(self):
|
|
48
|
-
raise Exception('Not implemented yet!')
|
|
49
|
-
|
|
50
|
-
@property
|
|
51
|
-
def command(self):
|
|
52
|
-
raise Exception('Not implemented yet!')
|
|
53
|
-
|
|
54
|
-
@property
|
|
55
|
-
def container_source_dir(self):
|
|
56
|
-
raise Exception('Not implemented yet!')
|
|
57
|
-
|
|
58
|
-
@property
|
|
59
|
-
def image(self):
|
|
60
|
-
return "{repository}:{tag}".format(
|
|
61
|
-
repository=self.repository,
|
|
62
|
-
tag=self.tag,
|
|
63
|
-
)
|
|
64
|
-
|
|
65
|
-
@property
|
|
66
|
-
def volumes(self):
|
|
67
|
-
if not self.__create_source_code_volume:
|
|
68
|
-
return {}
|
|
69
|
-
|
|
70
|
-
return {
|
|
71
|
-
self.__source_code_volume_name: {
|
|
72
|
-
'bind': self.container_source_dir,
|
|
73
|
-
'mode': 'rw',
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
def __get_container(self):
|
|
78
|
-
return self.docker.containers.get(
|
|
79
|
-
self.__container_name
|
|
80
|
-
)
|
|
81
|
-
|
|
82
|
-
def __get_source_code_volume(self):
|
|
83
|
-
return self.docker.volumes.get(
|
|
84
|
-
self.__source_code_volume_name
|
|
85
|
-
)
|
|
86
|
-
|
|
87
|
-
@property
|
|
88
|
-
def __container(self):
|
|
89
|
-
try:
|
|
90
|
-
return self.__get_container()
|
|
91
|
-
except docker.errors.NotFound:
|
|
92
|
-
return self.__create_container()
|
|
93
|
-
|
|
94
|
-
def __create_container(self):
|
|
95
|
-
return self.docker.containers.create(
|
|
96
|
-
self.image,
|
|
97
|
-
name=self.__container_name,
|
|
98
|
-
volumes=self.volumes,
|
|
99
|
-
detach=True,
|
|
100
|
-
command=self.command,
|
|
101
|
-
working_dir=self.container_source_dir if self.container_source_dir != '/code' else '/code'
|
|
102
|
-
)
|
|
103
|
-
|
|
104
|
-
def __pull_image(self):
|
|
105
|
-
if self.has_pre_pull:
|
|
106
|
-
self._pre_pull()
|
|
107
|
-
|
|
108
|
-
self.docker.images.pull(self.repository, self.tag)
|
|
109
|
-
|
|
110
|
-
def __load_source_code(self):
|
|
111
|
-
container = self.__container
|
|
112
|
-
|
|
113
|
-
with tempfile.TemporaryFile() as fileobj:
|
|
114
|
-
compressor = SourceCodeCompressor(
|
|
115
|
-
self.__source_code_dir
|
|
116
|
-
)
|
|
117
|
-
|
|
118
|
-
compressor.write_to(fileobj)
|
|
119
|
-
fileobj.seek(0)
|
|
120
|
-
|
|
121
|
-
container.put_archive(
|
|
122
|
-
self.container_source_dir,
|
|
123
|
-
fileobj
|
|
124
|
-
)
|
|
125
|
-
|
|
126
|
-
def scan(self):
|
|
127
|
-
self.__pull_image()
|
|
128
|
-
self.__load_source_code()
|
|
129
|
-
container = self.__container
|
|
130
|
-
|
|
131
|
-
container.start()
|
|
132
|
-
|
|
133
|
-
if self.has_read_scan_stderr:
|
|
134
|
-
self._read_scan_stderr(
|
|
135
|
-
container.logs(
|
|
136
|
-
stream=True, stdout=False, stderr=True
|
|
137
|
-
)
|
|
138
|
-
)
|
|
139
|
-
|
|
140
|
-
if self.has_read_scan_stdout:
|
|
141
|
-
self._read_scan_stdout(
|
|
142
|
-
container.logs(
|
|
143
|
-
stream=True, stdout=True, stderr=False
|
|
144
|
-
)
|
|
145
|
-
)
|
|
146
|
-
|
|
147
|
-
wait_result = container.wait()
|
|
148
|
-
status_code = wait_result.get('StatusCode')
|
|
149
|
-
|
|
150
|
-
if not status_code == self.SUCCESS_EXIT_CODE:
|
|
151
|
-
raise SourceCodeScannerException(
|
|
152
|
-
'Source code scanning fail'
|
|
153
|
-
)
|
|
154
|
-
|
|
155
|
-
def __has_method(self, method_name):
|
|
156
|
-
return hasattr(self, method_name)
|
|
157
|
-
|
|
158
|
-
@property
|
|
159
|
-
def has_read_scan_stdout(self):
|
|
160
|
-
return self.__has_method('_read_scan_stdout')
|
|
161
|
-
|
|
162
|
-
@property
|
|
163
|
-
def has_read_scan_stderr(self):
|
|
164
|
-
return self.__has_method('_read_scan_stderr')
|
|
165
|
-
|
|
166
|
-
@property
|
|
167
|
-
def has_pre_pull(self):
|
|
168
|
-
return self.__has_method('_pre_pull')
|
|
169
|
-
|
|
170
|
-
def __del__(self):
|
|
171
|
-
with suppress(Exception):
|
|
172
|
-
container = self.__get_container()
|
|
173
|
-
container.remove()
|
|
174
|
-
|
|
175
|
-
with suppress(Exception):
|
|
176
|
-
source_code_volume = self.__get_source_code_volume()
|
|
177
|
-
source_code_volume.remove()
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
from convisoappsec.flow.source_code_scanner import SCC
|
|
2
|
-
from convisoappsec.logger import LOGGER
|
|
3
|
-
import docker
|
|
4
|
-
|
|
5
|
-
def project_metrics(source_code_dir):
|
|
6
|
-
try:
|
|
7
|
-
scanner = SCC(source_code_dir, create_source_code_volume=False)
|
|
8
|
-
scanner.scan()
|
|
9
|
-
return {
|
|
10
|
-
'total_lines': scanner.total_source_code_lines
|
|
11
|
-
}
|
|
12
|
-
except docker.errors.APIError as e:
|
|
13
|
-
LOGGER.error('Error on fetch project metrics')
|
|
14
|
-
LOGGER.exception(e)
|
|
15
|
-
return {}
|
|
16
|
-
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = '3.0.0-rc.0'
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/common/graphql/error_handlers.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flow/graphql_api/beta/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flow/graphql_api/beta/models/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flow/graphql_api/beta/resources_api.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flow/graphql_api/v1/models/__init__.py
RENAMED
|
File without changes
|
{conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flow/graphql_api/v1/models/asset.py
RENAMED
|
File without changes
|
{conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flow/graphql_api/v1/models/issues.py
RENAMED
|
File without changes
|
{conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flow/graphql_api/v1/models/project.py
RENAMED
|
File without changes
|
{conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flow/graphql_api/v1/resources_api.py
RENAMED
|
File without changes
|
{conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flow/graphql_api/v1/schemas/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flow/util/source_code_compressor.py
RENAMED
|
File without changes
|
{conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flow/version_control_system_adapter.py
RENAMED
|
File without changes
|
{conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flow/version_searchers/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flow/versioning_style/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flowcli/deploy/create/__init__.py
RENAMED
|
File without changes
|
{conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flowcli/deploy/create/context.py
RENAMED
|
File without changes
|
{conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flowcli/deploy/create/entrypoint.py
RENAMED
|
File without changes
|
{conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flowcli/deploy/create/with_/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flowcli/deploy/create/with_/values.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flowcli/findings/create/__init__.py
RENAMED
|
File without changes
|
{conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flowcli/findings/create/entrypoint.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flowcli/requirements_verifier.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flowcli/vulnerability/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flowcli/vulnerability/entrypoint.py
RENAMED
|
File without changes
|
{conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/convisoappsec/flowcli/vulnerability/rules_schema.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/scripts/shell_completer/flow_bash_completer.sh
RENAMED
|
File without changes
|
{conviso_ast-3.0.0rc0 → conviso_ast-3.0.1rc0}/scripts/shell_completer/flow_fish_completer.fish
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|