devsecops-engine-tools 1.7.22__py3-none-any.whl → 1.7.23__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.
Potentially problematic release.
This version of devsecops-engine-tools might be problematic. Click here for more details.
- devsecops_engine_tools/engine_core/src/applications/runner_engine_core.py +9 -2
- devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/github/__init__.py +0 -0
- devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/github/github_actions.py +96 -0
- devsecops_engine_tools/engine_utilities/github/infrastructure/github_api.py +23 -4
- devsecops_engine_tools/engine_utilities/github/models/GithubPredefinedVariables.py +56 -0
- devsecops_engine_tools/version.py +1 -1
- {devsecops_engine_tools-1.7.22.dist-info → devsecops_engine_tools-1.7.23.dist-info}/METADATA +3 -2
- {devsecops_engine_tools-1.7.22.dist-info → devsecops_engine_tools-1.7.23.dist-info}/RECORD +11 -8
- {devsecops_engine_tools-1.7.22.dist-info → devsecops_engine_tools-1.7.23.dist-info}/WHEEL +0 -0
- {devsecops_engine_tools-1.7.22.dist-info → devsecops_engine_tools-1.7.23.dist-info}/entry_points.txt +0 -0
- {devsecops_engine_tools-1.7.22.dist-info → devsecops_engine_tools-1.7.23.dist-info}/top_level.txt +0 -0
|
@@ -10,6 +10,9 @@ from devsecops_engine_tools.engine_core.src.infrastructure.driven_adapters.aws.s
|
|
|
10
10
|
from devsecops_engine_tools.engine_core.src.infrastructure.driven_adapters.azure.azure_devops import (
|
|
11
11
|
AzureDevops,
|
|
12
12
|
)
|
|
13
|
+
from devsecops_engine_tools.engine_core.src.infrastructure.driven_adapters.github.github_actions import (
|
|
14
|
+
GithubActions,
|
|
15
|
+
)
|
|
13
16
|
from devsecops_engine_tools.engine_core.src.infrastructure.driven_adapters.runtime_local.runtime_local import (
|
|
14
17
|
RuntimeLocal,
|
|
15
18
|
)
|
|
@@ -45,7 +48,7 @@ def parse_choices(choices):
|
|
|
45
48
|
def get_inputs_from_cli(args):
|
|
46
49
|
parser = argparse.ArgumentParser()
|
|
47
50
|
parser.add_argument("-v", "--version", action='version', version='{version}'.format(version=version))
|
|
48
|
-
parser.add_argument("-pd", "--platform_devops", choices=["azure", "local"], type=str, required=True, help="Platform where is executed")
|
|
51
|
+
parser.add_argument("-pd", "--platform_devops", choices=["azure", "github", "local"], type=str, required=True, help="Platform where is executed")
|
|
49
52
|
parser.add_argument("-rcf" ,"--remote_config_repo", type=str, required=True, help="Name or Folder Path of Config Repo")
|
|
50
53
|
parser.add_argument("-t",
|
|
51
54
|
"--tool",
|
|
@@ -114,7 +117,11 @@ def application_core():
|
|
|
114
117
|
# Define driven adapters for gateways
|
|
115
118
|
vulnerability_management_gateway = DefectDojoPlatform()
|
|
116
119
|
secrets_manager_gateway = SecretsManager()
|
|
117
|
-
devops_platform_gateway =
|
|
120
|
+
devops_platform_gateway = {
|
|
121
|
+
"azure": AzureDevops(),
|
|
122
|
+
"github": GithubActions(),
|
|
123
|
+
"local": RuntimeLocal()
|
|
124
|
+
}.get(args["platform_devops"])
|
|
118
125
|
printer_table_gateway = PrinterPrettyTable()
|
|
119
126
|
metrics_manager_gateway = S3Manager()
|
|
120
127
|
|
|
File without changes
|
devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/github/github_actions.py
ADDED
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
from dataclasses import dataclass
|
|
2
|
+
from devsecops_engine_tools.engine_core.src.domain.model.gateway.devops_platform_gateway import (
|
|
3
|
+
DevopsPlatformGateway,
|
|
4
|
+
)
|
|
5
|
+
from devsecops_engine_tools.engine_utilities.github.models.GithubPredefinedVariables import (
|
|
6
|
+
BuildVariables,
|
|
7
|
+
SystemVariables,
|
|
8
|
+
ReleaseVariables,
|
|
9
|
+
AgentVariables
|
|
10
|
+
)
|
|
11
|
+
from devsecops_engine_tools.engine_utilities.github.infrastructure.github_api import (
|
|
12
|
+
GithubApi,
|
|
13
|
+
)
|
|
14
|
+
import os
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
@dataclass
|
|
18
|
+
class GithubActions(DevopsPlatformGateway):
|
|
19
|
+
OKGREEN = "\033[92m"
|
|
20
|
+
FAIL = "\033[91m"
|
|
21
|
+
ENDC = "\033[0m"
|
|
22
|
+
ICON_FAIL = "\u2718"
|
|
23
|
+
ICON_SUCCESS = "\u2714"
|
|
24
|
+
|
|
25
|
+
def get_remote_config(self, repository, path):
|
|
26
|
+
|
|
27
|
+
github_repository = SystemVariables.github_repository.value()
|
|
28
|
+
split = github_repository.split("/")
|
|
29
|
+
owner = split[0]
|
|
30
|
+
|
|
31
|
+
utils_github = GithubApi(
|
|
32
|
+
personal_access_token=SystemVariables.github_access_token.value()
|
|
33
|
+
)
|
|
34
|
+
|
|
35
|
+
git_client = utils_github.get_github_connection()
|
|
36
|
+
json_config = utils_github.get_remote_json_config(git_client, owner, repository, path)
|
|
37
|
+
|
|
38
|
+
return json_config
|
|
39
|
+
|
|
40
|
+
def message(self, type, message):
|
|
41
|
+
formats = {
|
|
42
|
+
"succeeded": f"::group::{message}",
|
|
43
|
+
"info": f"::notice::{message}",
|
|
44
|
+
"warning": f"::warning::{message}",
|
|
45
|
+
"error": f"::error::{message}"
|
|
46
|
+
}
|
|
47
|
+
return formats.get(type, message)
|
|
48
|
+
|
|
49
|
+
def result_pipeline(self, type):
|
|
50
|
+
results = {
|
|
51
|
+
"failed": f"{self.FAIL}{self.ICON_FAIL}Failed{self.ENDC}",
|
|
52
|
+
"succeeded": f"{self.OKGREEN}{self.ICON_SUCCESS}Succeeded{self.ENDC}"
|
|
53
|
+
}
|
|
54
|
+
return results.get(type)
|
|
55
|
+
|
|
56
|
+
def get_source_code_management_uri(self):
|
|
57
|
+
return f"{SystemVariables.github_server_url}/{SystemVariables.github_repository}"
|
|
58
|
+
|
|
59
|
+
def get_base_compact_remote_config_url(self, remote_config_repo):
|
|
60
|
+
github_repository = SystemVariables.github_repository.value()
|
|
61
|
+
split = github_repository.split("/")
|
|
62
|
+
owner = split[0]
|
|
63
|
+
return f"{SystemVariables.github_server_url}/{owner}/{remote_config_repo}"
|
|
64
|
+
|
|
65
|
+
def get_variable(self, variable):
|
|
66
|
+
variable_map = {
|
|
67
|
+
"branch_name": BuildVariables.github_ref,
|
|
68
|
+
"build_id": BuildVariables.github_run_number,
|
|
69
|
+
"build_execution_id": BuildVariables.github_run_id,
|
|
70
|
+
"commit_hash": BuildVariables.github_sha,
|
|
71
|
+
"environment": ReleaseVariables.github_env,
|
|
72
|
+
"release_id": ReleaseVariables.github_run_number,
|
|
73
|
+
"branch_tag": BuildVariables.github_ref,
|
|
74
|
+
"access_token": SystemVariables.github_access_token,
|
|
75
|
+
"organization": f"{SystemVariables.github_server_url}/{SystemVariables.github_repository}",
|
|
76
|
+
"project_name": SystemVariables.github_repository,
|
|
77
|
+
"repository": BuildVariables.github_repository,
|
|
78
|
+
"pipeline_name": (
|
|
79
|
+
BuildVariables.github_workflow
|
|
80
|
+
if SystemVariables.build.value() == "build"
|
|
81
|
+
else ReleaseVariables.github_workflow
|
|
82
|
+
),
|
|
83
|
+
"stage": SystemVariables.build,
|
|
84
|
+
"path_directory": SystemVariables.github_workspace,
|
|
85
|
+
"os": AgentVariables.runner_os,
|
|
86
|
+
"work_folder": AgentVariables.github_workspace,
|
|
87
|
+
"temp_directory": AgentVariables.runner_tool_cache,
|
|
88
|
+
"agent_directory": AgentVariables.runner_workspace,
|
|
89
|
+
"target_branch": SystemVariables.github_event_base_ref,
|
|
90
|
+
"source_branch": SystemVariables.github_ref,
|
|
91
|
+
"repository_provider": BuildVariables.GitHub,
|
|
92
|
+
}
|
|
93
|
+
try:
|
|
94
|
+
return variable_map.get(variable).value()
|
|
95
|
+
except ValueError:
|
|
96
|
+
return None
|
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
import requests
|
|
2
2
|
import zipfile
|
|
3
|
+
import json
|
|
4
|
+
from github import Github
|
|
5
|
+
from devsecops_engine_tools.engine_utilities.utils.api_error import ApiError
|
|
3
6
|
|
|
4
7
|
|
|
5
8
|
class GithubApi:
|
|
6
9
|
def __init__(
|
|
7
|
-
|
|
8
|
-
|
|
10
|
+
self,
|
|
11
|
+
personal_access_token: str = ""
|
|
9
12
|
):
|
|
10
|
-
self.
|
|
13
|
+
self.__personal_access_token = personal_access_token
|
|
11
14
|
|
|
12
15
|
def unzip_file(self, zip_file_path, extract_path):
|
|
13
16
|
with zipfile.ZipFile(zip_file_path, "r") as zip_ref:
|
|
@@ -18,7 +21,7 @@ class GithubApi:
|
|
|
18
21
|
):
|
|
19
22
|
url = f"https://api.github.com/repos/{owner}/{repository}/releases/latest"
|
|
20
23
|
|
|
21
|
-
headers = {"Authorization": f"token {self.
|
|
24
|
+
headers = {"Authorization": f"token {self.__personal_access_token}"}
|
|
22
25
|
|
|
23
26
|
response = requests.get(url, headers=headers)
|
|
24
27
|
|
|
@@ -47,3 +50,19 @@ class GithubApi:
|
|
|
47
50
|
print(
|
|
48
51
|
f"Error getting the assets of the last release. Status code: {response.status_code}"
|
|
49
52
|
)
|
|
53
|
+
|
|
54
|
+
def get_github_connection(self):
|
|
55
|
+
git_client = Github(self.__personal_access_token)
|
|
56
|
+
|
|
57
|
+
return git_client
|
|
58
|
+
|
|
59
|
+
def get_remote_json_config(self, git_client: Github, owner, repository, path):
|
|
60
|
+
try:
|
|
61
|
+
repo = git_client.get_repo(f"{owner}/{repository}")
|
|
62
|
+
file_content = repo.get_contents(path)
|
|
63
|
+
data = file_content.decoded_content.decode()
|
|
64
|
+
content_json = json.loads(data)
|
|
65
|
+
|
|
66
|
+
return content_json
|
|
67
|
+
except Exception as e:
|
|
68
|
+
raise ApiError("Error getting remote github configuration file: " + str(e))
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import os
|
|
2
|
+
from enum import Enum
|
|
3
|
+
from devsecops_engine_tools.engine_utilities.input_validations.env_utils import EnvVariables
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class EnvVariables:
|
|
7
|
+
@staticmethod
|
|
8
|
+
def get_value(env_name):
|
|
9
|
+
env_var = os.environ.get(env_name)
|
|
10
|
+
if env_var is None:
|
|
11
|
+
raise ValueError(f"La variable de entorno {env_name} no está definida")
|
|
12
|
+
return env_var
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class BaseEnum(Enum):
|
|
16
|
+
@property
|
|
17
|
+
def env_name(self):
|
|
18
|
+
return self._value_.replace(".", "_").upper()
|
|
19
|
+
|
|
20
|
+
def value(self):
|
|
21
|
+
return EnvVariables.get_value(self.env_name)
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
class SystemVariables(BaseEnum):
|
|
25
|
+
github_access_token = "github.access.token"
|
|
26
|
+
github_workspace = "github.workspace"
|
|
27
|
+
build = "build"
|
|
28
|
+
github_server_url = "github.server.url"
|
|
29
|
+
github_repository = "github.repository"
|
|
30
|
+
github_event_number = "github.event.number"
|
|
31
|
+
github_event_base_ref = "github.event.base.ref"
|
|
32
|
+
github_ref = "github.ref"
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
class BuildVariables(BaseEnum):
|
|
36
|
+
github_run_id = "github.run.id"
|
|
37
|
+
github_run_number = "github.run.number"
|
|
38
|
+
github_workflow = "github.workflow"
|
|
39
|
+
github_repository = "github.repository"
|
|
40
|
+
github_ref = "github.ref"
|
|
41
|
+
runner_temp = "runner.temp"
|
|
42
|
+
github_sha = "github.sha"
|
|
43
|
+
GitHub = "GitHub"
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
class ReleaseVariables(BaseEnum):
|
|
47
|
+
github_workflow = "github.workflow"
|
|
48
|
+
github_env = "github.env"
|
|
49
|
+
github_run_number = "github.run.number"
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
class AgentVariables(BaseEnum):
|
|
53
|
+
runner_workspace = "runner.workspace"
|
|
54
|
+
github_workspace = "github.workspace"
|
|
55
|
+
runner_os = "runner.os"
|
|
56
|
+
runner_tool_cache = "runner.tool.cache"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
version = '1.7.
|
|
1
|
+
version = '1.7.23'
|
{devsecops_engine_tools-1.7.22.dist-info → devsecops_engine_tools-1.7.23.dist-info}/METADATA
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: devsecops-engine-tools
|
|
3
|
-
Version: 1.7.
|
|
3
|
+
Version: 1.7.23
|
|
4
4
|
Summary: Tool for DevSecOps strategy
|
|
5
5
|
Home-page: https://github.com/bancolombia/devsecops-engine-tools
|
|
6
6
|
Author: Bancolombia DevSecOps Team
|
|
@@ -23,6 +23,7 @@ Requires-Dist: python-decouple ==3.8
|
|
|
23
23
|
Requires-Dist: requests-toolbelt ==1.0.0
|
|
24
24
|
Requires-Dist: python-dateutil ==2.8.2
|
|
25
25
|
Requires-Dist: pexpect ==4.9.0
|
|
26
|
+
Requires-Dist: PyGithub ==2.3.0
|
|
26
27
|
|
|
27
28
|
# DevSecOps Engine Tools
|
|
28
29
|
|
|
@@ -63,7 +64,7 @@ pip3 install devsecops-engine-tools
|
|
|
63
64
|
### Scan running - flags (CLI)
|
|
64
65
|
|
|
65
66
|
```bash
|
|
66
|
-
devsecops-engine-tools --platform_devops ["local","azure"] --remote_config_repo ["remote_config_repo"] --tool ["engine_iac", "engine_dast", "engine_secret", "engine_dependencies", "engine_container"] --folder_path ["Folder path scan engine_iac"] --platform ["eks","openshift"] --use_secrets_manager ["false", "true"] --use_vulnerability_management ["false", "true"] --send_metrics ["false", "true"] --token_cmdb ["token_cmdb"] --token_vulnerability_management ["token_vulnerability_management"] --token_engine_container ["token_engine_container"] --token_engine_dependencies ["token_engine_dependencies"]
|
|
67
|
+
devsecops-engine-tools --platform_devops ["local","azure","github"] --remote_config_repo ["remote_config_repo"] --tool ["engine_iac", "engine_dast", "engine_secret", "engine_dependencies", "engine_container"] --folder_path ["Folder path scan engine_iac"] --platform ["eks","openshift"] --use_secrets_manager ["false", "true"] --use_vulnerability_management ["false", "true"] --send_metrics ["false", "true"] --token_cmdb ["token_cmdb"] --token_vulnerability_management ["token_vulnerability_management"] --token_engine_container ["token_engine_container"] --token_engine_dependencies ["token_engine_dependencies"]
|
|
67
68
|
```
|
|
68
69
|
|
|
69
70
|
### Structure Remote Config
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
devsecops_engine_tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
|
-
devsecops_engine_tools/version.py,sha256=
|
|
2
|
+
devsecops_engine_tools/version.py,sha256=QMGesPOoNc-S-Q4OAGkG93FJLERtxasiwcJiAGieylA,19
|
|
3
3
|
devsecops_engine_tools/engine_core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
4
4
|
devsecops_engine_tools/engine_core/src/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
5
5
|
devsecops_engine_tools/engine_core/src/applications/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
6
|
-
devsecops_engine_tools/engine_core/src/applications/runner_engine_core.py,sha256=
|
|
6
|
+
devsecops_engine_tools/engine_core/src/applications/runner_engine_core.py,sha256=4eJwsuSRAD3psUBvWZVWu9XR9rwvagFs6FqnKFz0eEU,5965
|
|
7
7
|
devsecops_engine_tools/engine_core/src/deployment/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
8
8
|
devsecops_engine_tools/engine_core/src/deployment/infrastructure/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
9
9
|
devsecops_engine_tools/engine_core/src/domain/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -37,6 +37,8 @@ devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/azure/__in
|
|
|
37
37
|
devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/azure/azure_devops.py,sha256=Ot1j5my-iEpU-ZYy9yNXkwmwLOmJ3f95JyyAUcpFN5g,4967
|
|
38
38
|
devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/defect_dojo/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
39
39
|
devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/defect_dojo/defect_dojo.py,sha256=qOqipt7P6THEjoaBwpIPO8OEN9OKpW6u_X_c4DeGhx8,10903
|
|
40
|
+
devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/github/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
41
|
+
devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/github/github_actions.py,sha256=PsDCUfVHgUJL9AKwB2FyQ6VdUtgawyYTtvRcSscX_9A,3723
|
|
40
42
|
devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/printer_pretty_table/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
41
43
|
devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/printer_pretty_table/printer_pretty_table.py,sha256=Tz056qYuIKrdYGKyoPo7xFdOpfN3A0YMd3cCSAGVrYQ,3828
|
|
42
44
|
devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/runtime_local/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -226,7 +228,8 @@ devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapt
|
|
|
226
228
|
devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/repository/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
227
229
|
devsecops_engine_tools/engine_utilities/github/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
228
230
|
devsecops_engine_tools/engine_utilities/github/infrastructure/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
229
|
-
devsecops_engine_tools/engine_utilities/github/infrastructure/github_api.py,sha256=
|
|
231
|
+
devsecops_engine_tools/engine_utilities/github/infrastructure/github_api.py,sha256=AURk8GGAkNuHCqTEsiS6UxClL_YYJoqtBrWGBSYgWO4,2436
|
|
232
|
+
devsecops_engine_tools/engine_utilities/github/models/GithubPredefinedVariables.py,sha256=uPoiBRo0tlxQ69cqob40hmIdNk1BSbKqF1hpjsvhXdQ,1579
|
|
230
233
|
devsecops_engine_tools/engine_utilities/github/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
231
234
|
devsecops_engine_tools/engine_utilities/input_validations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
232
235
|
devsecops_engine_tools/engine_utilities/input_validations/env_utils.py,sha256=nHp9YIuG1k-IvxssQslrE9ny62juJMovmBTzcM7PPk0,258
|
|
@@ -241,8 +244,8 @@ devsecops_engine_tools/engine_utilities/utils/logger_info.py,sha256=4Mz8Bwlm9Mku
|
|
|
241
244
|
devsecops_engine_tools/engine_utilities/utils/name_conversion.py,sha256=ADJrRGaxYSDe0ZRh6VHRf53H4sXPcb-vNP_i81PUn3I,307
|
|
242
245
|
devsecops_engine_tools/engine_utilities/utils/printers.py,sha256=GAslbWaBpwP3mP6fBsgVl07TTBgcCggQTy8h2M9ibeo,612
|
|
243
246
|
devsecops_engine_tools/engine_utilities/utils/session_manager.py,sha256=yNtlT-8Legz1sHbGPH8LNYjL-LgDUE0zXG2rYjiab7U,290
|
|
244
|
-
devsecops_engine_tools-1.7.
|
|
245
|
-
devsecops_engine_tools-1.7.
|
|
246
|
-
devsecops_engine_tools-1.7.
|
|
247
|
-
devsecops_engine_tools-1.7.
|
|
248
|
-
devsecops_engine_tools-1.7.
|
|
247
|
+
devsecops_engine_tools-1.7.23.dist-info/METADATA,sha256=SLAil6N__fvnC22sThN1En0EV8CWQYKvjSegSJ9YLJM,4881
|
|
248
|
+
devsecops_engine_tools-1.7.23.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
|
|
249
|
+
devsecops_engine_tools-1.7.23.dist-info/entry_points.txt,sha256=9IjXF_7Zpgowq_SY6OSmsA9vZze18a8_AeHwkQVrgKk,131
|
|
250
|
+
devsecops_engine_tools-1.7.23.dist-info/top_level.txt,sha256=ge6y0X_xBAU1aG3EMWFtl9djbVyg5BxuSp2r2Lg6EQU,23
|
|
251
|
+
devsecops_engine_tools-1.7.23.dist-info/RECORD,,
|
|
File without changes
|
{devsecops_engine_tools-1.7.22.dist-info → devsecops_engine_tools-1.7.23.dist-info}/entry_points.txt
RENAMED
|
File without changes
|
{devsecops_engine_tools-1.7.22.dist-info → devsecops_engine_tools-1.7.23.dist-info}/top_level.txt
RENAMED
|
File without changes
|