Skip to content

Commit a2a55b3

Browse files
committed
feat: add uuid: resolution to name
1 parent 8e4ee9c commit a2a55b3

File tree

2 files changed

+70
-28
lines changed

2 files changed

+70
-28
lines changed

yaml-generation/functions.php

+24
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,30 @@ function getReferenceLabel($reference_id) {
146146
}
147147

148148

149+
function getActivityNameByUuid($uuid, $dimensionsAggregated) {
150+
foreach ($dimensionsAggregated as $dimension => $subdimensions) {
151+
ksort($subdimensions);
152+
foreach ($subdimensions as $subdimension => $elements) {
153+
if (sizeof($elements) == 0) {
154+
echo "unsetting $subdimension\n";
155+
unset($dimensionsAggregated[$dimension][$subdimension]);
156+
continue;
157+
}
158+
if (substr($subdimension, 0, 1) == "_") {
159+
continue;
160+
}
161+
162+
foreach ($elements as $activityName => $activity) {
163+
if($activity["uuid"] == $uuid) {
164+
return $activityName;
165+
}
166+
}
167+
}
168+
}
169+
return "TODO:Mapping";
170+
}
171+
172+
149173
/**
150174
*
151175
* @param unknown $headings

yaml-generation/generateDimensions.php

+46-28
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,17 @@
44

55
$metadata = readYaml("src/assets/YAML/meta.yaml");
66
$teams = $metadata["teams"];
7-
if(sizeof($teams) == 0) {
7+
if (sizeof($teams) == 0) {
88
echo "Warning: No teams defined";
99
}
1010
$teamsImplemented = array();
11-
foreach($teams as $team) {
11+
foreach ($teams as $team) {
1212
$teamsImplemented[$team] = false;
1313
}
1414

1515

16-
1716
$files = glob("src/assets/YAML/default/*/*.yaml");
18-
$dimensions=array();
17+
$dimensions = array();
1918
foreach ($files as $filename) {
2019
//echo "Found $filename";
2120
if (preg_match("/_meta.yaml/", $filename)) continue;
@@ -27,8 +26,8 @@
2726
}
2827

2928
$files = glob("src/assets/YAML/custom/*/*.yaml");
30-
$dimensionsCustom=array();
31-
$dimensionsAggregated=array();
29+
$dimensionsCustom = array();
30+
$dimensionsAggregated = array();
3231
foreach ($files as $filename) {
3332
//echo "Found $filename";
3433
$dimensionCustom = getDimensions($filename);
@@ -46,16 +45,16 @@
4645
}
4746
}
4847
} else {
49-
$dimensionsAggregated=$dimensions;
48+
$dimensionsAggregated = $dimensions;
5049
}
5150

5251
foreach ($dimensionsAggregated as $dimension => $subdimensions) {
5352
ksort($subdimensions);
5453
foreach ($subdimensions as $subdimension => $elements) {
55-
if(sizeof($elements) == 0) {
54+
if (sizeof($elements) == 0) {
5655
echo "unsetting $subdimension\n";
5756
unset($dimensionsAggregated[$dimension][$subdimension]);
58-
continue;
57+
continue;
5958
}
6059
if (substr($subdimension, 0, 1) == "_") {
6160
continue;
@@ -70,37 +69,53 @@
7069
exit;
7170
}
7271
if (!array_key_exists("tags", $activity)) {
73-
$dimensionsAggregated[$dimension][$subdimension][$activityName]["tags"] = [ "none" ];
72+
$dimensionsAggregated[$dimension][$subdimension][$activityName]["tags"] = ["none"];
7473
}
7574
if (!array_key_exists("teamsImplemented", $activity)) {
7675
$dimensionsAggregated[$dimension][$subdimension][$activityName]["teamsImplemented"] = array();
7776
}
7877
$evidenceImplemented = array();
79-
if(array_key_exists("evidence", $activity) && is_array($activity["evidence"]) && IS_IMPLEMENTED_WHEN_EVIDENCE) {
80-
foreach($activity["evidence"] as $team => $evidenceForTeam) {
81-
if(strlen($activity["evidence"][$team]) > 0) {
78+
if (array_key_exists("evidence", $activity) && is_array($activity["evidence"]) && IS_IMPLEMENTED_WHEN_EVIDENCE) {
79+
foreach ($activity["evidence"] as $team => $evidenceForTeam) {
80+
if (strlen($activity["evidence"][$team]) > 0) {
8281
$evidenceImplemented[$team] = true;
83-
}else {
82+
} else {
8483
echo "Warning: '$activityName -> evidence -> $team' has no evidence set but should have";
8584
}
8685
}
87-
}
86+
}
8887

89-
if (!array_key_exists("openCRE", $activity["references"])) {
90-
$dimensionsAggregated[$dimension][$subdimension][$activityName]["references"]["openCRE"] = array();
91-
$dimensionsAggregated[$dimension][$subdimension][$activityName]["references"]["openCRE"][] = "https://www.opencre.org/rest/v1/standard/DevSecOps+Maturity+Model+(DSOMM)/" . $subdimension . "/" . $dimensionsAggregated[$dimension][$subdimension][$activityName]["uuid"];
88+
if (!array_key_exists("openCRE", $activity["references"])) {
89+
$dimensionsAggregated[$dimension][$subdimension][$activityName]["references"]["openCRE"] = array();
90+
$dimensionsAggregated[$dimension][$subdimension][$activityName]["references"]["openCRE"][] = "https://www.opencre.org/rest/v1/standard/DevSecOps+Maturity+Model+(DSOMM)/" . $subdimension . "/" . $dimensionsAggregated[$dimension][$subdimension][$activityName]["uuid"];
9291
}
9392

9493
$dimensionsAggregated[$dimension][$subdimension][$activityName]["teamsImplemented"] = array_merge($teamsImplemented, $dimensionsAggregated[$dimension][$subdimension][$activityName]["teamsImplemented"], $evidenceImplemented);
9594
// can be removed in 2024
9695
if (array_key_exists("isImplemented", $activity)) {
9796
unset($dimensionsAggregated[$dimension][$subdimension][$activityName]["evidence"]);
98-
}
97+
}
98+
if (array_key_exists("dependsOn", $activity)) {
99+
foreach($activity['dependsOn'] as $index => $dependingElement) {
100+
if(!is_string($dependingElement)) {
101+
echo "$dependingElement is not a string in $activityName";
102+
var_dump($dependingElement);
103+
continue;
104+
}
105+
if(str_starts_with($dependingElement, "uuid:" )) {
106+
echo "$dependingElement is having a uuuid\n";
107+
$dependsOnUuid = str_replace("uuid:", "", $dependingElement);
108+
$dimensionsAggregated[$dimension][$subdimension][$activityName]["dependsOn"][$index] = $dependsOnUuid;
109+
$dependsOnActivityName = getActivityNameByUuid($dependsOnUuid, $dimensionsAggregated);
110+
echo "exchanged $dependingElement to name $dependsOnActivityName";
111+
}
112+
}
113+
}
99114
}
100115
}
101116
}
102117
foreach ($dimensionsAggregated as $dimension => $subdimensions) {
103-
if(sizeof($subdimensions) == 0) {
118+
if (sizeof($subdimensions) == 0) {
104119
echo "unsetting $dimension\n";
105120
unset($dimensionsAggregated[$dimension]);
106121
}
@@ -112,14 +127,14 @@
112127
file_put_contents("src/assets/YAML/generated/generated.yaml", $dimensionsString);
113128

114129

115-
116130
/**
117131
*
118132
* @param unknown $dimensions
119133
* @param unknown $activityName
120134
* @return unknown
121135
*/
122-
function isActivityExisting($dimensions, $activityName) {
136+
function isActivityExisting($dimensions, $activityName)
137+
{
123138
foreach (getActions($dimensions) as list($dimension, $subdimension, $activities)) {
124139
foreach ($activities as $activity => $activityContent) {
125140
if ($activity == $activityName) {
@@ -133,11 +148,12 @@ function isActivityExisting($dimensions, $activityName) {
133148

134149
/**
135150
*
136-
* @param array $array1
137-
* @param array $array2
151+
* @param array $array1
152+
* @param array $array2
138153
* @return unknown
139154
*/
140-
function array_merge_recursive_ex(array $array1, array $array2) {
155+
function array_merge_recursive_ex(array $array1, array $array2)
156+
{
141157
$merged = $array1;
142158

143159
foreach ($array2 as $key => & $value) {
@@ -161,7 +177,8 @@ function array_merge_recursive_ex(array $array1, array $array2) {
161177
*
162178
* @param unknown $data (reference)
163179
*/
164-
function resolve_json_ref(&$data) {
180+
function resolve_json_ref(&$data)
181+
{
165182

166183

167184
/**
@@ -170,8 +187,9 @@ function resolve_json_ref(&$data) {
170187
* @param unknown $key
171188
* @param unknown $ctx
172189
*/
173-
function resolve_json_ref_cb(&$value, $key, $ctx) {
174-
if (! is_array($value)) {
190+
function resolve_json_ref_cb(&$value, $key, $ctx)
191+
{
192+
if (!is_array($value)) {
175193
return;
176194
}
177195

0 commit comments

Comments
 (0)