Skip to content

Commit a189c05

Browse files
authored
Merge branch 'main' into explanation
2 parents 9c104ca + 34b5e9b commit a189c05

File tree

252 files changed

+3573
-2038
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

252 files changed

+3573
-2038
lines changed

.github/ISSUE_TEMPLATE/bug_report.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ A clear and concise description of what the bug is.
1212

1313
**To Reproduce**
1414
Steps to reproduce the behavior:
15+
1516
1. Go to '...'
1617
2. Click on '....'
1718
3. Scroll down to '....'

.github/ISSUE_TEMPLATE/question.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,6 @@ assignees: ''
77

88
---
99

10-
_Note:_ Questions for the SSVC team can be asked here in the form of an issue. More general questions directed at the SSVC user community
10+
*Note:* Questions for the SSVC team can be asked here in the form of an issue. More general questions directed at the SSVC user community
1111
might be a better fit in the [Q&A](https://github.com/CERTCC/SSVC/discussions/categories/q-a) category of our
1212
[Discussions](https://github.com/CERTCC/SSVC/discussions) area.

.github/PULL_REQUEST_TEMPLATE/pull_request_template.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
not just a reference to an issue number. PR titles are used in the commit log
55
and release notes, so they need to convey meaning on their own.
66
- Most pull requests should be in response to an issue, and ideally a PR will
7-
resolve or close one or more issues.
7+
resolve or close one or more issues.
88
- If a PR only partially resolves an issue,
99
we suggest spawning one or more child issues from the main issue to identify what portion
1010
of the issue is resolved by the PR, and what work remains to be done.
@@ -13,5 +13,5 @@
1313
- Using bulleted lists with the issue id at the end lets github automatically
1414
link the issue and provide the title inline. E.g.: `- resolves #99999`
1515
- CoPilot summaries are welcome in the PR description, but please provide a brief
16-
description of the changes in your own words as well. CoPilot can be good at the _what_,
17-
but not so good at the _why_.
16+
description of the changes in your own words as well. CoPilot can be good at the *what*,
17+
but not so good at the *why*.

.github/workflows/deploy_site.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ jobs:
3737
- name: Set up Python
3838
uses: actions/setup-python@v5
3939
with:
40-
python-version: '3.10'
40+
python-version: '3.12'
4141

4242
- name: Install dependencies
4343
run: |
@@ -49,6 +49,7 @@ jobs:
4949

5050
- name: Build Site
5151
run: |
52+
export PYTHONPATH=src:$PYTHONPATH
5253
mkdocs build --verbose --clean --config-file mkdocs.yml
5354
5455
- name: Upload artifact

.github/workflows/lint_md_changes.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,12 @@ jobs:
1616
- uses: actions/checkout@v4
1717
with:
1818
fetch-depth: 0
19-
- uses: tj-actions/changed-files@v44
19+
- uses: tj-actions/changed-files@ed68ef82c095e0d48ec87eccea555d944a631a4c
2020
id: changed-files
2121
with:
2222
files: '**/*.md'
2323
separator: ","
24-
- uses: DavidAnson/markdownlint-cli2-action@v16
24+
- uses: DavidAnson/markdownlint-cli2-action@v20
2525
if: steps.changed-files.outputs.any_changed == 'true'
2626
with:
2727
globs: ${{ steps.changed-files.outputs.all_changed_files }}

.github/workflows/python-app.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,10 @@ jobs:
2121
- uses: actions/checkout@v4
2222
with:
2323
fetch-tags: true
24-
- name: Set up Python 3.10
24+
- name: Set up Python 3.12
2525
uses: actions/setup-python@v5
2626
with:
27-
python-version: "3.10"
27+
python-version: "3.12"
2828
- name: Install dependencies
2929
run: |
3030
python -m pip install --upgrade pip

Dockerfile

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,23 @@
1-
FROM python:3.12-slim-bookworm
2-
1+
FROM python:3.12-slim-bookworm AS base
2+
RUN pip install --upgrade pip
33
WORKDIR /app
44

5+
FROM base AS dependencies
6+
57
# install requirements
68
COPY requirements.txt .
79
RUN pip install -r requirements.txt
8-
910
# Copy the files we need
10-
COPY src/ .
11-
COPY data ./data
11+
COPY . /app
12+
# Set the environment variable
13+
ENV PYTHONPATH=/app/src
1214

15+
16+
FROM dependencies AS test
1317
# install pytest
1418
RUN pip install pytest
15-
1619
# run the unit tests \
17-
ENTRYPOINT ["pytest"]
18-
CMD ["test"]
20+
CMD ["pytest","src/test"]
21+
22+
FROM dependencies AS docs
23+
CMD ["mkdocs", "serve", "--dev-addr", "0.0.0.0:8000"]

LICENSE

Lines changed: 46 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -1,67 +1,48 @@
1-
The following license applies to software contained in this repository.
1+
Different directories in this repository are subject to different licenses. Please consult each directory for its applicable license.
2+
3+
---
4+
5+
The following statement applies to markdown, pdf, bib, and text files (documentation):
6+
7+
Copyright 2025 Carnegie Mellon University.
8+
9+
This material is based upon work funded and supported by the Department of Homeland Security under Contract No. FA8702-15-D-0002 with Carnegie Mellon University for the operation of the Software Engineering Institute, a federally funded research and development center sponsored by the United States Department of Defense.
10+
11+
The view, opinions, and/or findings contained in this material are those of the author(s) and should not be construed as an official Government position, policy, or decision, unless designated by other documentation.
12+
13+
NO WARRANTY. THIS CARNEGIE MELLON UNIVERSITY AND SOFTWARE ENGINEERING INSTITUTE MATERIAL IS FURNISHED ON AN "AS-IS" BASIS. CARNEGIE MELLON UNIVERSITY MAKES NO WARRANTIES OF ANY KIND, EITHER EXPRESSED OR IMPLIED, AS TO ANY MATTER INCLUDING, BUT NOT LIMITED TO, WARRANTY OF FITNESS FOR PURPOSE OR MERCHANTABILITY, EXCLUSIVITY, OR RESULTS OBTAINED FROM USE OF THE MATERIAL. CARNEGIE MELLON UNIVERSITY DOES NOT MAKE ANY WARRANTY OF ANY KIND WITH RESPECT TO FREEDOM FROM PATENT, TRADEMARK, OR COPYRIGHT INFRINGEMENT.
14+
15+
[DISTRIBUTION STATEMENT A] This material has been approved for public release and unlimited distribution. Please see Copyright notice for non-US Government use and distribution.
16+
17+
This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License. Requests for permission for non-licensed uses should be directed to the Software Engineering Institute at permission@sei.cmu.edu.
18+
CERT Coordination Center® is registered in the U.S. Patent and Trademark Office by Carnegie Mellon University.
19+
20+
DM24-0278
21+
22+
---
23+
24+
The following statement applies to py, json, csv, sh, toml files (software):
25+
26+
Copyright 2025 Carnegie Mellon University.
27+
28+
Licensed under a MIT (SEI)-style license, please see license.txt or contact permission@sei.cmu.edu for full terms.
29+
30+
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
31+
32+
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
33+
34+
This Software includes and/or can make use of certain third party software ("Third Party Software"). The Third Party Software that is used by the software is dependent upon your system configuration, but typically includes the software identified in this license.txt file, and/or described in the documentation and/or read me file. By using this software, you agree to comply with any and all relevant Third Party Software terms and conditions contained in any such Third Party Software or separate license file distributed with such Third Party Software. The parties who own the Third Party Software ("Third Party Licensors") are intended third party beneficiaries to this License with respect to the terms applicable to their Third Party Software. Third Party Software licenses only apply to the Third Party Software and not any other portion of SEI Software or this software as a whole.
35+
36+
This material is based upon work funded and supported by the Department of Defense under Contract No. FA8702-15-D-0002 with Carnegie Mellon University for the operation of the Software Engineering Institute, a federally funded research and development center.
37+
38+
The view, opinions, and/or findings contained in this material are those of the author(s) and should not be construed as an official Government position, policy, or decision, unless designated by other documentation.
39+
40+
References herein to any specific commercial product, process, or service by trade name, trade mark, manufacturer, or otherwise, does not necessarily constitute or imply its endorsement, recommendation, or favoring by Carnegie Mellon University or its Software Engineering Institute.
41+
42+
NO WARRANTY. THIS CARNEGIE MELLON UNIVERSITY AND SOFTWARE ENGINEERING INSTITUTE MATERIAL IS FURNISHED ON AN "AS-IS" BASIS. CARNEGIE MELLON UNIVERSITY MAKES NO WARRANTIES OF ANY KIND, EITHER EXPRESSED OR IMPLIED, AS TO ANY MATTER INCLUDING, BUT NOT LIMITED TO, WARRANTY OF FITNESS FOR PURPOSE OR MERCHANTABILITY, EXCLUSIVITY, OR RESULTS OBTAINED FROM USE OF THE MATERIAL. CARNEGIE MELLON UNIVERSITY DOES NOT MAKE ANY WARRANTY OF ANY KIND WITH RESPECT TO FREEDOM FROM PATENT, TRADEMARK, OR COPYRIGHT INFRINGEMENT.
43+
44+
[DISTRIBUTION STATEMENT A] This material has been approved for public release and unlimited distribution. Please see Copyright notice for non-US Government use and distribution.
45+
46+
DM24-0278
247

3-
----
4-
MIT License
548

6-
Copyright (c) 2020-2025 Carnegie Mellon University
7-
8-
Permission is hereby granted, free of charge, to any person obtaining a copy
9-
of this software and associated documentation files (the "Software"), to deal
10-
in the Software without restriction, including without limitation the rights
11-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
12-
copies of the Software, and to permit persons to whom the Software is
13-
furnished to do so, subject to the following conditions:
14-
15-
The above copyright notice and this permission notice shall be included in all
16-
copies or substantial portions of the Software.
17-
18-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
21-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
23-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
24-
SOFTWARE.
25-
26-
----
27-
The following statement applies to PDF, markdown, and text documents contained in this repository.
28-
29-
This material is based upon work funded and supported by the Department of Defense
30-
under Contract No. FA8702-15-D-0002 with Carnegie Mellon University for the operation
31-
of the Software Engineering Institute, a federally funded research and development center.
32-
33-
The view, opinions, and/or findings contained in this material are those of the author(s)
34-
and should not be construed as an official Government position, policy, or decision, unless
35-
designated by other documentation.
36-
37-
References herein to any specific commercial product, process, or service by trade name,
38-
trade mark, manufacturer, or otherwise, does not necessarily constitute or imply its
39-
endorsement, recommendation, or favoring by Carnegie Mellon University or its
40-
Software Engineering Institute.
41-
42-
NO WARRANTY. THIS CARNEGIE MELLON UNIVERSITY AND SOFTWARE ENGINEERING INSTITUTE MATERIAL
43-
IS FURNISHED ON AN "AS-IS" BASIS. CARNEGIE MELLON UNIVERSITY MAKES NO WARRANTIES OF ANY KIND,
44-
EITHER EXPRESSED OR IMPLIED, AS TO ANY MATTER INCLUDING, BUT NOT LIMITED TO, WARRANTY OF
45-
FITNESS FOR PURPOSE OR MERCHANTABILITY, EXCLUSIVITY, OR RESULTS OBTAINED FROM USE OF THE
46-
MATERIAL. CARNEGIE MELLON UNIVERSITY DOES NOT MAKE ANY WARRANTY OF ANY KIND WITH RESPECT
47-
TO FREEDOM FROM PATENT, TRADEMARK, OR COPYRIGHT INFRINGEMENT.
48-
49-
[DISTRIBUTION STATEMENT A] This material has been approved for public release and unlimited distribution.
50-
Please see Copyright notice for non-US Government use and distribution.
51-
52-
Internal use:
53-
* Permission to reproduce this material and to prepare derivative works from this material for internal
54-
use is granted, provided the copyright and “No Warranty” statements are included with all reproductions
55-
and derivative works.
56-
57-
External use:
58-
* This material may be reproduced in its entirety, without modification, and freely distributed in
59-
written or electronic form without requesting formal permission. Permission is required for any
60-
other external and/or commercial use. Requests for permission should be directed to the
61-
Software Engineering Institute at permission@sei.cmu.edu.
62-
63-
* These restrictions do not apply to U.S. government entities.
64-
65-
Carnegie Mellon®, CERT Coordination Center® and OCTAVE® are registered in the U.S. Patent and
66-
Trademark Office by Carnegie Mellon University.
67-
DM18-1203, DM19-1222

Makefile

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
# Project-specific vars
2+
PFX=ssvc
3+
DOCKER=docker
4+
DOCKER_BUILD=$(DOCKER) build
5+
DOCKER_RUN=$(DOCKER) run --tty --rm
6+
PROJECT_VOLUME=--volume $(shell pwd):/app
7+
MKDOCS_PORT=8765
8+
9+
# docker names
10+
TEST_DOCKER_TARGET=test
11+
TEST_IMAGE = $(PFX)_test
12+
DOCS_DOCKER_TARGET=docs
13+
DOCS_IMAGE = $(PFX)_docs
14+
15+
# Targets
16+
.PHONY: all dockerbuild_test dockerrun_test dockerbuild_docs dockerrun_docs docs docker_test clean help
17+
18+
all: help
19+
20+
mdlint_fix:
21+
@echo "Running markdownlint..."
22+
markdownlint --config .markdownlint.yml --fix .
23+
24+
dockerbuild_test:
25+
@echo "Building the test Docker image..."
26+
$(DOCKER_BUILD) --target $(TEST_DOCKER_TARGET) --tag $(TEST_IMAGE) .
27+
28+
dockerrun_test:
29+
@echo "Running the test Docker image..."
30+
$(DOCKER_RUN) $(PROJECT_VOLUME) $(TEST_IMAGE)
31+
32+
dockerbuild_docs:
33+
@echo "Building the docs Docker image..."
34+
$(DOCKER_BUILD) --target $(DOCS_DOCKER_TARGET) --tag $(DOCS_IMAGE) .
35+
36+
dockerrun_docs:
37+
@echo "Running the docs Docker image..."
38+
$(DOCKER_RUN) --publish $(MKDOCS_PORT):8000 $(PROJECT_VOLUME) $(DOCS_IMAGE)
39+
40+
41+
docs: dockerbuild_docs dockerrun_docs
42+
docker_test: dockerbuild_test dockerrun_test
43+
44+
clean:
45+
@echo "Cleaning up..."
46+
$(DOCKER) rmi $(TEST_IMAGE) $(DOCS_IMAGE) || true
47+
48+
help:
49+
@echo "Usage: make [target]"
50+
@echo ""
51+
@echo "Targets:"
52+
@echo " all - Display this help message"
53+
@echo " mdlint_fix - Run markdownlint with --fix"
54+
@echo " docs - Build and run the docs Docker image"
55+
@echo " docker_test - Build and run the test Docker image"
56+
@echo ""
57+
@echo " dockerbuild_test - Build the test Docker image"
58+
@echo " dockerrun_test - Run the test Docker image"
59+
@echo " dockerbuild_docs - Build the docs Docker image"
60+
@echo " dockerrun_docs - Run the docs Docker image"
61+
@echo ""
62+
@echo " clean - Remove the Docker images"
63+
@echo " help - Display this help message"
64+
65+
66+

0 commit comments

Comments
 (0)