Skip to content

Commit 200b22e

Browse files
authored
Merge pull request #65 from vbakke/feat/meta-on-top
Adopt the new filename `model.yaml`
2 parents e428141 + 1578bb2 commit 200b22e

File tree

7 files changed

+31
-32
lines changed

7 files changed

+31
-32
lines changed

.github/workflows/main.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,9 +58,9 @@ jobs:
5858
docker run -d --name=yaml --entrypoint="/bin/sleep" wurstbrot/dsomm-yaml-generation:${{ steps.get-version.outputs.version }} 60
5959
docker cp yaml:/var/www/html/generated/model.yaml generated/model.yaml
6060
docker cp yaml:/var/www/html/generated/dependency-tree.md generated/dependency-tree.md
61-
- name: Replace version placeholder in activities.yaml
61+
- name: Replace version placeholder in model.yaml
6262
run: |
63-
sed -i "s/__VERSION_PLACEHOLDER__/${{ steps.get-version.outputs.version }}/g" src/assets/YAML/activities.yaml
63+
sed -i "s/__VERSION_PLACEHOLDER__/${{ steps.get-version.outputs.version }}/g" src/assets/YAML/model.yaml
6464
- name: Commit all changed files back to the repository
6565
uses: planetscale/ghcommit-action@v0.1.6
6666
with:

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,5 +48,5 @@ Thumbs.db
4848
# Generated
4949
/src/assets/YAML/generated/generated.yaml
5050
/generated/model.yaml
51-
dependency-tree.md
51+
/generated/dependency-tree.md
5252
url-test-results.txt

README.md

Lines changed: 7 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# OWASP DevSecOps Maturity Model Data
22

3-
This GitHub project ([DevSecOps-MaturityModel-data](https://github.com/devsecopsmaturitymodel/DevSecOps-MaturityModel-data)) contains the source for the model itself, used by the DSOMM applciation [DevSecOps-MaturityModel](https://github.com/devsecopsmaturitymodel/DevSecOps-MaturityModel).
3+
This GitHub project ([DevSecOps-MaturityModel-data](https://github.com/devsecopsmaturitymodel/DevSecOps-MaturityModel-data)) contains the source for the DSOMM *model*. The model is used by the DSOMM applciation [DevSecOps-MaturityModel](https://github.com/devsecopsmaturitymodel/DevSecOps-MaturityModel).
44

55
The source files include dimensions, activities, descriptions, measures, and other model data used by the application.
66

@@ -12,7 +12,7 @@ Contributions that improve the DSOMM model are welcome. Please edit the source f
1212

1313
### Testing
1414

15-
After making changes, generate a new `activities.yaml` and use it in a local DSOMM application to verify there are no technical issues.
15+
After making changes, generate a new `model.yaml` and start a local DSOMM application to verify there are no technical issues. (See below.)
1616

1717

1818
## Usage
@@ -28,11 +28,7 @@ Depending on your platform use either `generateDimensions.bash` (Linux) or `gene
2828

2929
`cd yaml-generation`
3030

31-
3. Install dependencies:
32-
33-
`./generateDimensions.bash --install`
34-
35-
4. Generate `activities.yaml`:
31+
3. Generate `model.yaml`:
3632

3733
`./generateDimensions.bash`
3834

@@ -42,27 +38,23 @@ Depending on your platform use either `generateDimensions.bash` (Linux) or `gene
4238

4339
To start a local DSOMM instance on http://localhost:8080, run:
4440

45-
`./generateDimensions.bash --start-dsomm`
41+
- `./generateDimensions.bash --start-dsomm`
42+
43+
This will down the latest DSOMM docker image and spin it up as a docker container.
4644

4745

4846
### Test referenced URLs
4947

5048
To test all URLs referenced by `implementations.yaml` and save results to `url-test-results.txt`, run:
5149

52-
`./generateDimensions.bash --test-urls`
50+
- `./generateDimensions.bash --test-urls`
5351

5452

5553
### Using Podman instead of Docker
5654

5755
If you prefer Podman over Docker, set the environement variable `DOCKER_CMD` to `podman`, or edit the script for you operating system.
5856

5957

60-
## Development
61-
cd yaml-generation
62-
docker run --rm -v $(pwd):/app composer install
63-
cd ..
64-
docker run -ti -v $(pwd)/yaml-generation:/var/www/html/yaml-generation -v $(pwd)/src/assets/YAML/:/var/www/html/src/assets/YAML/ wurstbrot/dsomm-yaml-generation
65-
6658
## Credits
6759

6860
- The "Test and Verification" dimension is based on Christian Schneider's Security DevOps Maturity Model (SDOMM).

generated/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
GitHub Actions will update these generated files.
Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
#!/bin/bash
22

33
# Usage:
4-
# ./generateDimensions.bash --install First time, install composer dependencies
5-
# ./generateDimensions.bash Generate activities.yaml
6-
# ./generateDimensions.bash --test-urls Test URLs in implementations.yaml
4+
# ./generateDimensions.bash Generate model.yaml
5+
# ./generateDimensions.bash --test-urls Test URLs in implementations.yaml
6+
# ./generateDimensions.bash --start-dsomm Run local DSOMM with generated model.yaml
77

88
cd "$(dirname "$0")"/..
99

@@ -17,12 +17,13 @@ MSYS_NO_PATHCONV=1 $DOCKER_CMD run -ti --rm --volume "${PWD}:/app" wurstbrot/dso
1717

1818
if [ "$1" = "--start-dsomm" ]; then
1919
echo "Starting local DSOMM application..."
20-
MSYS_NO_PATHCONV=1 $DOCKER_CMD run -ti --rm --volume "${PWD}/src/assets/YAML/generated/generated.yaml:/srv/assets/YAML/generated/generated.yaml" -p 8080:8080 wurstbrot/dsomm
20+
MSYS_NO_PATHCONV=1 $DOCKER_CMD run -ti --rm --volume "${PWD}/generated/model.yaml:/srv/assets/YAML/default/model.yaml" -p 8080:8080 wurstbrot/dsomm
21+
2122
elif [ "$1" = "--test-urls" ]; then
2223
echo "Test URLs in implementations.yaml..."
2324
MSYS_NO_PATHCONV=1 $DOCKER_CMD run -e TEST_REFERENCED_URLS=true -ti --rm --volume "${PWD}:/app" wurstbrot/dsomm-yaml-generation bash -c 'cd /app/ && php yaml-generation/generateDimensions.php' | tee url-test-results.txt
2425

2526
else
26-
echo "Generating activities.yaml..."
27-
MSYS_NO_PATHCONV=1 $DOCKER_CMD run -ti --rm --volume "${PWD}:/app" wurstbrot/dsomm-yaml-generation bash -c 'cd /app/ && php yaml-generation/generateDimensions.php'
27+
echo "Generating model.yaml..."
28+
MSYS_NO_PATHCONV=1 $DOCKER_CMD run -e USERNAME=${USER:-$USERNAME} -ti --rm --volume "${PWD}:/app" wurstbrot/dsomm-yaml-generation bash -c 'cd /app/ && php yaml-generation/generateDimensions.php'
2829
fi

yaml-generation/generateDimensions.bat

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
@echo off
22

33
REM Usage:
4-
REM ./generateDimensions.bash --install First time, install composer dependencies
5-
REM ./generateDimensions.bash Generate activities.yaml
6-
REM ./generateDimensions.bash --test-urls Test URLs in implementations.yaml
4+
REM ./generateDimensions.bash Generate model.yaml
5+
REM ./generateDimensions.bash --test-urls Test URLs in implementations.yaml
6+
REM ./generateDimensions.bash --start-dsomm Run local DSOMM with generated model.yaml
77

88
setlocal
99
REM Change working directory to the project root
@@ -19,15 +19,15 @@ echo Installing composer dependencies...
1919

2020
if "%~1"=="--start-dsomm" (
2121
echo Start local DSOMM application...
22-
%DOCKER_CMD% run -ti --rm --volume "%CD%/src/assets/YAML/generated/generated.yaml:/srv/assets/YAML/generated/generated.yaml" -p 8080:8080 wurstbrot/dsomm
22+
%DOCKER_CMD% run -ti --rm --volume "%CD%/generated/model.yaml:/srv/assets/YAML/default/model.yaml" -p 8080:8080 wurstbrot/dsomm
2323

2424
) else if "%~1"=="--test-urls" (
2525
echo Test URLs in implementations.yaml...
2626
%DOCKER_CMD% run -e TEST_REFERENCED_URLS=true -ti --rm --volume "%CD%:/app" wurstbrot/dsomm-yaml-generation bash -c "cd /app/ && php yaml-generation/generateDimensions.php" | tee url-test-results.txt
2727

2828
) else (
29-
echo Generate activities.yaml...
30-
%DOCKER_CMD% run -e %argument% -ti --rm --volume "%CD%:/app" wurstbrot/dsomm-yaml-generation bash -c "cd /app/ && php yaml-generation/generateDimensions.php"
29+
echo Generate model.yaml...
30+
%DOCKER_CMD% run -e USERNAME=%USERNAME% -ti --rm --volume "%CD%:/app" wurstbrot/dsomm-yaml-generation bash -c "cd /app/ && php yaml-generation/generateDimensions.php"
3131

3232
)
3333

yaml-generation/generateDimensions.php

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,12 @@
77
$inputFolder = "src/assets/YAML";
88
$implementationReferenceFile = "$inputFolder/default/implementations.yaml";
99

10+
if (getenv('GITHUB_ACTIONS')) {
11+
$publisher = 'https://github.com/' . getenv('GITHUB_REPOSITORY');
12+
} else {
13+
$publisher = getenv('USERNAME');
14+
}
15+
1016
$files = glob("$inputFolder/default/*/*.yaml");
1117
$dimensions = array();
1218
foreach ($files as $filename) {
@@ -157,7 +163,6 @@
157163
}
158164

159165

160-
161166
// Post-process to add activity name as comment for `dependsOn`
162167
$dimensionsString = yaml_emit($dimensionsAggregated);
163168
preg_match_all('/\{!([0-9a-z-]{30,})!\}/', $dimensionsString, $matches);
@@ -173,7 +178,7 @@
173178
'meta' => array(
174179
'version' => '__VERSION_PLACEHOLDER__',
175180
'released' => date('Y-m-d'),
176-
'publisher' => 'https://github.com/devsecopsmaturitymodel/DevSecOps-MaturityModel-data/'
181+
'publisher' => $publisher
177182
)
178183
);
179184
$modelString = yaml_emit_with_header($metaDocument, $dimensionsAggregated);

0 commit comments

Comments
 (0)