dfetch 0.14.2__tar.gz → 0.14.4__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.
- {dfetch-0.14.2 → dfetch-0.14.4}/.github/workflows/build.yml +21 -16
- {dfetch-0.14.2 → dfetch-0.14.4}/.github/workflows/codeql-analysis.yml +2 -2
- {dfetch-0.14.2 → dfetch-0.14.4}/.github/workflows/dependency-review.yml +2 -2
- {dfetch-0.14.2 → dfetch-0.14.4}/.github/workflows/devcontainer.yml +4 -4
- {dfetch-0.14.2 → dfetch-0.14.4}/.github/workflows/docs.yml +10 -10
- {dfetch-0.14.2 → dfetch-0.14.4}/.github/workflows/python-publish.yml +8 -8
- {dfetch-0.14.2 → dfetch-0.14.4}/.github/workflows/release.yml +5 -5
- {dfetch-0.14.2 → dfetch-0.14.4}/.github/workflows/run.yml +19 -6
- {dfetch-0.14.2 → dfetch-0.14.4}/.github/workflows/scorecard.yml +3 -3
- {dfetch-0.14.2 → dfetch-0.14.4}/.github/workflows/source-provenance.yml +5 -5
- {dfetch-0.14.2 → dfetch-0.14.4}/.github/workflows/test.yml +4 -4
- dfetch-0.14.4/.github/workflows/winget-publish.yml +70 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/AGENTS.md +1 -1
- {dfetch-0.14.2 → dfetch-0.14.4}/CHANGELOG.rst +11 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/PKG-INFO +20 -19
- {dfetch-0.14.2 → dfetch-0.14.4}/action.yml +2 -2
- {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/__init__.py +1 -1
- {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/commands/command.py +1 -1
- {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/commands/diff.py +1 -1
- {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/commands/environment.py +7 -2
- {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/commands/import_.py +3 -1
- {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/commands/update_patch.py +1 -1
- {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/log.py +2 -2
- {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/manifest/manifest.py +4 -10
- {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/manifest/project.py +2 -2
- {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/manifest/version.py +2 -2
- {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/project/archivesubproject.py +1 -1
- {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/project/gitsubproject.py +5 -4
- {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/project/metadata.py +7 -4
- {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/project/subproject.py +1 -1
- {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/project/svnsubproject.py +2 -2
- {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/project/svnsuperproject.py +2 -3
- {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/reporting/check/code_climate_reporter.py +1 -1
- {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/reporting/check/reporter.py +1 -1
- {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/resources/__init__.py +4 -6
- {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/terminal/tree_browser.py +2 -2
- {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/util/cmdline.py +23 -10
- {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/util/purl.py +1 -2
- {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/util/util.py +5 -4
- {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/util/versions.py +1 -1
- {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/vcs/git.py +34 -217
- dfetch-0.14.4/dfetch/vcs/git_submodule.py +347 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/vcs/git_types.py +0 -13
- {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/vcs/patch.py +1 -3
- {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/vcs/svn.py +11 -5
- {dfetch-0.14.2 → dfetch-0.14.4}/dfetch.egg-info/PKG-INFO +20 -19
- {dfetch-0.14.2 → dfetch-0.14.4}/dfetch.egg-info/SOURCES.txt +7 -1
- {dfetch-0.14.2 → dfetch-0.14.4}/dfetch.egg-info/requires.txt +19 -18
- dfetch-0.14.4/dfetch.egg-info/scm_file_list.json +424 -0
- dfetch-0.14.4/dfetch.egg-info/scm_version.json +8 -0
- dfetch-0.14.4/doc/asciicasts/add.cast +84 -0
- dfetch-0.14.4/doc/asciicasts/basic.cast +184 -0
- dfetch-0.14.4/doc/asciicasts/check-ci.cast +129 -0
- dfetch-0.14.4/doc/asciicasts/check.cast +59 -0
- dfetch-0.14.4/doc/asciicasts/diff.cast +107 -0
- dfetch-0.14.4/doc/asciicasts/environment.cast +29 -0
- dfetch-0.14.4/doc/asciicasts/format-patch.cast +124 -0
- dfetch-0.14.4/doc/asciicasts/freeze.cast +72 -0
- dfetch-0.14.4/doc/asciicasts/import.cast +65 -0
- dfetch-0.14.4/doc/asciicasts/init.cast +56 -0
- dfetch-0.14.4/doc/asciicasts/interactive-add.cast +117 -0
- dfetch-0.14.4/doc/asciicasts/remove.cast +100 -0
- dfetch-0.14.4/doc/asciicasts/report.cast +43 -0
- dfetch-0.14.4/doc/asciicasts/sbom.cast +54 -0
- dfetch-0.14.4/doc/asciicasts/update-patch.cast +232 -0
- dfetch-0.14.4/doc/asciicasts/update.cast +115 -0
- dfetch-0.14.4/doc/asciicasts/validate.cast +20 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/explanation/security.rst +41 -1
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/explanation/threat_model_supply_chain.rst +28 -12
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/explanation/threat_model_usage.rst +13 -5
- dfetch-0.14.4/doc/generate-casts/README.md +26 -0
- dfetch-0.14.4/doc/generate-casts/interactive-add-demo.sh +64 -0
- dfetch-0.14.4/doc/generate-casts/interactive_helper.py +218 -0
- dfetch-0.14.4/doc/generate-casts/pr-demo/after.gif +0 -0
- dfetch-0.14.4/doc/generate-casts/pr-demo/before.gif +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/howto/contributing.rst +1 -1
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/tutorials/installation.rst +1 -1
- {dfetch-0.14.2 → dfetch-0.14.4}/features/check-archive.feature +6 -6
- {dfetch-0.14.2 → dfetch-0.14.4}/features/check-git-repo.feature +11 -11
- {dfetch-0.14.2 → dfetch-0.14.4}/features/check-specific-projects.feature +1 -1
- {dfetch-0.14.2 → dfetch-0.14.4}/features/check-svn-repo.feature +7 -7
- {dfetch-0.14.2 → dfetch-0.14.4}/features/checked-project-has-dependencies.feature +3 -3
- {dfetch-0.14.2 → dfetch-0.14.4}/features/diff-in-git.feature +2 -2
- {dfetch-0.14.2 → dfetch-0.14.4}/features/diff-in-svn.feature +2 -2
- {dfetch-0.14.2 → dfetch-0.14.4}/features/environment.feature +3 -4
- {dfetch-0.14.2 → dfetch-0.14.4}/features/fetch-archive.feature +2 -2
- {dfetch-0.14.2 → dfetch-0.14.4}/features/fetch-checks-destination.feature +2 -2
- {dfetch-0.14.2 → dfetch-0.14.4}/features/fetch-file-pattern-git.feature +2 -2
- {dfetch-0.14.2 → dfetch-0.14.4}/features/fetch-file-pattern-svn.feature +1 -1
- {dfetch-0.14.2 → dfetch-0.14.4}/features/fetch-git-repo-with-submodule.feature +34 -7
- {dfetch-0.14.2 → dfetch-0.14.4}/features/fetch-git-repo.feature +3 -3
- {dfetch-0.14.2 → dfetch-0.14.4}/features/fetch-single-file-git.feature +2 -2
- {dfetch-0.14.2 → dfetch-0.14.4}/features/fetch-single-file-svn.feature +1 -1
- {dfetch-0.14.2 → dfetch-0.14.4}/features/fetch-svn-repo-with-external.feature +2 -2
- {dfetch-0.14.2 → dfetch-0.14.4}/features/fetch-svn-repo-with-nonstd-external.feature +2 -2
- {dfetch-0.14.2 → dfetch-0.14.4}/features/fetch-with-ignore-git.feature +3 -3
- {dfetch-0.14.2 → dfetch-0.14.4}/features/fetch-with-ignore-svn.feature +3 -3
- {dfetch-0.14.2 → dfetch-0.14.4}/features/freeze-projects.feature +1 -1
- {dfetch-0.14.2 → dfetch-0.14.4}/features/guard-against-overwriting-git.feature +3 -3
- {dfetch-0.14.2 → dfetch-0.14.4}/features/guard-against-overwriting-svn.feature +3 -3
- {dfetch-0.14.2 → dfetch-0.14.4}/features/handle-invalid-metadata.feature +3 -3
- {dfetch-0.14.2 → dfetch-0.14.4}/features/import-from-git.feature +24 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/features/journey-basic-patching.feature +1 -1
- {dfetch-0.14.2 → dfetch-0.14.4}/features/journey-basic-usage.feature +1 -1
- {dfetch-0.14.2 → dfetch-0.14.4}/features/list-projects.feature +3 -3
- {dfetch-0.14.2 → dfetch-0.14.4}/features/patch-after-fetch-git.feature +4 -4
- {dfetch-0.14.2 → dfetch-0.14.4}/features/patch-after-fetch-svn.feature +1 -1
- {dfetch-0.14.2 → dfetch-0.14.4}/features/patch-fuzzy-matching-git.feature +1 -1
- {dfetch-0.14.2 → dfetch-0.14.4}/features/remove-project.feature +4 -4
- {dfetch-0.14.2 → dfetch-0.14.4}/features/report-sbom.feature +4 -4
- {dfetch-0.14.2 → dfetch-0.14.4}/features/steps/git_steps.py +54 -1
- {dfetch-0.14.2 → dfetch-0.14.4}/features/suggest-project-name.feature +3 -3
- {dfetch-0.14.2 → dfetch-0.14.4}/features/update-patch-in-git.feature +1 -1
- {dfetch-0.14.2 → dfetch-0.14.4}/features/update-patch-in-svn.feature +1 -1
- {dfetch-0.14.2 → dfetch-0.14.4}/features/updated-project-has-dependencies.feature +2 -2
- {dfetch-0.14.2 → dfetch-0.14.4}/features/validate-manifest.feature +6 -6
- {dfetch-0.14.2 → dfetch-0.14.4}/pyproject.toml +26 -20
- {dfetch-0.14.2 → dfetch-0.14.4}/security/README.md +1 -1
- {dfetch-0.14.2 → dfetch-0.14.4}/security/dfetch.component-definition.json +4 -4
- {dfetch-0.14.2 → dfetch-0.14.4}/security/tm_controls_data.py +2 -2
- {dfetch-0.14.2 → dfetch-0.14.4}/security/tm_render.py +57 -1
- {dfetch-0.14.2 → dfetch-0.14.4}/security/tm_supply_chain.py +21 -18
- {dfetch-0.14.2 → dfetch-0.14.4}/security/tm_usage.py +2 -1
- {dfetch-0.14.2 → dfetch-0.14.4}/tests/test_cmdline.py +19 -1
- dfetch-0.14.4/tests/test_git_submodule.py +430 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/tests/test_git_vcs.py +50 -127
- {dfetch-0.14.2 → dfetch-0.14.4}/tests/test_import.py +1 -1
- {dfetch-0.14.2 → dfetch-0.14.4}/tests/test_svn_vcs.py +29 -0
- dfetch-0.14.2/.github/workflows/winget-publish.yml +0 -56
- dfetch-0.14.2/doc/asciicasts/add.cast +0 -82
- dfetch-0.14.2/doc/asciicasts/basic.cast +0 -175
- dfetch-0.14.2/doc/asciicasts/check-ci.cast +0 -123
- dfetch-0.14.2/doc/asciicasts/check.cast +0 -60
- dfetch-0.14.2/doc/asciicasts/diff.cast +0 -107
- dfetch-0.14.2/doc/asciicasts/environment.cast +0 -28
- dfetch-0.14.2/doc/asciicasts/format-patch.cast +0 -123
- dfetch-0.14.2/doc/asciicasts/freeze.cast +0 -72
- dfetch-0.14.2/doc/asciicasts/import.cast +0 -68
- dfetch-0.14.2/doc/asciicasts/init.cast +0 -61
- dfetch-0.14.2/doc/asciicasts/interactive-add.cast +0 -129
- dfetch-0.14.2/doc/asciicasts/remove.cast +0 -96
- dfetch-0.14.2/doc/asciicasts/report.cast +0 -43
- dfetch-0.14.2/doc/asciicasts/sbom.cast +0 -53
- dfetch-0.14.2/doc/asciicasts/update-patch.cast +0 -236
- dfetch-0.14.2/doc/asciicasts/update.cast +0 -114
- dfetch-0.14.2/doc/asciicasts/validate.cast +0 -20
- dfetch-0.14.2/doc/generate-casts/README.md +0 -10
- dfetch-0.14.2/doc/generate-casts/interactive-add-demo.sh +0 -42
- dfetch-0.14.2/doc/generate-casts/interactive_add_helper.py +0 -133
- {dfetch-0.14.2 → dfetch-0.14.4}/.claude/commands/dfetch-add.md +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/.claude/settings.json +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/.coderabbit.yaml +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/.devcontainer/Dockerfile +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/.devcontainer/devcontainer.json +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/.github/dependabot.yml +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/.github/workflows/ci.yml +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/.gitignore +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/.plantwebrc +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/.pre-commit-config.yaml +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/.readthedocs.yml +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/CLAUDE.md +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/LICENSE +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/README.md +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/SECURITY.md +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/__main__.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/commands/__init__.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/commands/add.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/commands/check.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/commands/common.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/commands/format_patch.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/commands/freeze.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/commands/init.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/commands/remove.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/commands/report.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/commands/update.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/commands/validate.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/manifest/__init__.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/manifest/parse.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/manifest/remote.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/manifest/schema.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/project/__init__.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/project/abstract_check_reporter.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/project/gitsuperproject.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/project/superproject.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/reporting/__init__.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/reporting/check/__init__.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/reporting/check/jenkins_reporter.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/reporting/check/sarif_reporter.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/reporting/check/stdout_reporter.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/reporting/reporter.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/reporting/sbom_reporter.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/reporting/stdout_reporter.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/resources/template.yaml +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/terminal/__init__.py +3 -3
- {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/terminal/ansi.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/terminal/keys.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/terminal/pick.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/terminal/prompt.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/terminal/screen.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/terminal/types.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/util/__init__.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/util/github_version_check.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/util/license.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/util/ssh.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/vcs/__init__.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/vcs/archive.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/vcs/integrity_hash.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/dfetch.code-workspace +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/dfetch.egg-info/dependency_links.txt +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/dfetch.egg-info/entry_points.txt +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/dfetch.egg-info/top_level.txt +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/dfetch.yaml +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/Makefile +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/_ext/colordot.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/_ext/designguide.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/_ext/dfetch_style.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/_ext/latex_tabs.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/_ext/patches/001-autoformat-sphinxcontrib.asciinema.patch +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/_ext/patches/002-fix-options-sphinxcontrib.asciinema.patch +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/_ext/patches/003-only-handle-html-sphinxcontrib.asciinema.patch +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/_ext/scenario_directive.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/_ext/sphinxcontrib_asciinema/.dfetch_data.yaml +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/_ext/sphinxcontrib_asciinema/LICENSE +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/_ext/sphinxcontrib_asciinema/__init__.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/_ext/sphinxcontrib_asciinema/_static/asciinema-player_3.12.1.css +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/_ext/sphinxcontrib_asciinema/_static/asciinema-player_3.12.1.js +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/_ext/sphinxcontrib_asciinema/asciinema.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/_ext/unique_section_ids.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/_templates/about.html +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/appendix/scenarios.rst +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/conf.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/dfetch-action.md +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/dfetch_cover.inc +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/dfetch_preamble.inc +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/explanation/alternatives.rst +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/explanation/architecture.rst +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/explanation/compliance_track.rst +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/explanation/control_register.rst +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/explanation/governance.rst +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/explanation/line-endings.rst +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/explanation/security_pipeline.rst +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/explanation/vendoring.rst +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/generate-casts/add-demo.sh +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/generate-casts/basic-demo.sh +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/generate-casts/check-ci-demo.sh +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/generate-casts/check-demo.sh +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/generate-casts/demo-magic/.dfetch_data.yaml +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/generate-casts/demo-magic/demo-magic.sh +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/generate-casts/demo-magic/license.txt +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/generate-casts/diff-demo.sh +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/generate-casts/environment-demo.sh +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/generate-casts/format-patch-demo.sh +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/generate-casts/freeze-demo.sh +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/generate-casts/generate-casts.sh +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/generate-casts/import-demo.sh +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/generate-casts/init-demo.sh +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/generate-casts/remove-demo.sh +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/generate-casts/report-demo.sh +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/generate-casts/report-sbom-demo.sh +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/generate-casts/strip-setup-from-cast.sh +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/generate-casts/update-demo.sh +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/generate-casts/update-patch-demo.sh +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/generate-casts/validate-demo.sh +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/howto/adding-a-project.rst +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/howto/check-ci.rst +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/howto/migration.rst +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/howto/patching.rst +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/howto/remove-a-project.rst +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/howto/sbom.rst +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/howto/troubleshooting.rst +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/howto/updating-projects.rst +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/howto/verify-integrity.rst +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/images/dependency-track-license-detail.png +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/images/dependency-track-noassertion.png +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/images/dependency-track-properties.png +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/images/dfetch_header.png +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/images/dfetch_header.svg +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/images/dfetch_logo.png +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/images/dfetch_logo.svg +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/images/dfetch_logo_only.png +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/images/dfetch_logo_only.svg +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/images/dog.svg +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/images/favicon.ico +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/images/github-actions-result.png +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/images/gitlab-check-pipeline-result.png +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/images/gitlab-highlighted-manifest.png +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/images/local-change-github-details.png +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/images/local-change-github.png +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/images/out-of-date-jenkins.png +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/images/out-of-date-jenkins2.png +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/index.rst +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/landing-page/Makefile +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/landing-page/conf.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/landing-page/index.rst +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/landing-page/make.bat +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/landing-page/robots.txt +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/landing-page/static/ci-diagram.svg +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/landing-page/static/css/custom.css +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/landing-page/static/js/scroll-animate.js +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/landing-page/static/patch-diagram.svg +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/make.bat +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/reference/changelog.rst +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/reference/cli_cheatsheet.rst +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/reference/commands.rst +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/reference/glossary.rst +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/reference/legal.rst +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/reference/manifest.rst +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/reference/roadmap.rst +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/robots.txt +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/css/custom.css +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/font-awesome/.dfetch_data.yaml +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/font-awesome/LICENSE.txt +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/font-awesome/css/all.css +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/font-awesome/css/all.min.css +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/font-awesome/css/brands.css +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/font-awesome/css/brands.min.css +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/font-awesome/css/fontawesome.css +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/font-awesome/css/fontawesome.min.css +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/font-awesome/css/regular.css +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/font-awesome/css/regular.min.css +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/font-awesome/css/solid.css +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/font-awesome/css/solid.min.css +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/font-awesome/css/v4-font-face.css +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/font-awesome/css/v4-font-face.min.css +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/font-awesome/css/v4-shims.css +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/font-awesome/css/v4-shims.min.css +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/font-awesome/css/v5-font-face.css +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/font-awesome/css/v5-font-face.min.css +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/font-awesome/webfonts/fa-brands-400.woff2 +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/font-awesome/webfonts/fa-regular-400.woff2 +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/font-awesome/webfonts/fa-solid-900.woff2 +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/font-awesome/webfonts/fa-v4compatibility.woff2 +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/inter/.dfetch_data.yaml +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/inter/Inter-Bold.woff2 +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/inter/Inter-ExtraBold.woff2 +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/inter/Inter-ExtraLight.woff2 +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/inter/Inter-Light.woff2 +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/inter/Inter-Medium.woff2 +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/inter/Inter-Regular.woff2 +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/inter/Inter-SemiBold.woff2 +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/inter/Inter-Thin.woff2 +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/inter/LICENSE.txt +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/jetbrains-mono/.dfetch_data.yaml +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/jetbrains-mono/ttf/JetBrainsMono-Medium.ttf +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/jetbrains-mono/ttf/JetBrainsMono-Regular.ttf +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/jetbrains-mono/variable/JetBrainsMono[wght].ttf +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/jetbrains-mono/webfonts/JetBrainsMono-Medium.woff2 +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/jetbrains-mono/webfonts/JetBrainsMono-Regular.woff2 +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/poiretone/.dfetch_data.yaml +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/poiretone/ttf/PoiretOne-Regular.ttf +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/texgyreheros/.dfetch_data.yaml +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/texgyreheros/texgyreheros-bold.otf +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/texgyreheros/texgyreheros-bolditalic.otf +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/texgyreheros/texgyreheros-italic.otf +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/texgyreheros/texgyreheros-regular.otf +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/js/diataxis.js +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/uml/c1_dfetch_context.puml +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/uml/c2_dfetch_containers.puml +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/uml/c3_dfetch_components_commands.puml +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/uml/c3_dfetch_components_manifest.puml +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/uml/c3_dfetch_components_project.puml +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/uml/check.puml +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/uml/commands.puml +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/uml/generate_diagram.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/uml/security_doc_flow.puml +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/uml/styles/plantuml-c4/.dfetch_data.yaml +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/uml/styles/plantuml-c4/C4.puml +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/uml/styles/plantuml-c4/C4_Component.puml +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/uml/styles/plantuml-c4/C4_Container.puml +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/uml/styles/plantuml-c4/C4_Context.puml +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/uml/styles/plantuml-c4/C4_Deployment.puml +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/uml/styles/plantuml-c4/C4_Dynamic.puml +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/uml/styles/plantuml-c4/C4_Sequence.puml +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/uml/styles/plantuml-c4/LICENSE +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/uml/update.puml +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/doc/tutorials/getting_started.rst +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/example/dfetch.yaml +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/features/add-project-through-cli.feature +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/features/check-report-code-climate.feature +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/features/check-report-jenkins.feature +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/features/check-report-sarif.feature +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/features/environment.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/features/fetch-specific-project.feature +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/features/fetch-svn-repo.feature +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/features/format-patch-in-git.feature +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/features/format-patch-in-svn.feature +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/features/freeze-archive.feature +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/features/freeze-inplace.feature +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/features/freeze-specific-projects.feature +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/features/import-from-svn.feature +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/features/interactive-add.feature +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/features/keep-license-in-project.feature +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/features/report-sbom-archive.feature +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/features/report-sbom-license.feature +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/features/steps/__init__.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/features/steps/add_steps.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/features/steps/archive_steps.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/features/steps/generic_steps.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/features/steps/json_steps.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/features/steps/manifest_steps.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/features/steps/svn_steps.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/features/superproject-line-ending-attrs.feature +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/script/build.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/script/check_quality.bat +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/script/create_docs.bat +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/script/create_release_notes.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/script/create_sbom.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/script/create_venv.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/script/dependabot_hook.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/script/package.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/script/release.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/security/__init__.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/security/compliance.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/security/compliance_data.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/security/compliance_types.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/security/cra_pren_4000014_oscal_catalog.json +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/security/report_template.rst +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/security/threats.json +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/security/tm_elements.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/setup.cfg +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/stubs/py_serializable/__init__.pyi +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/tests/__init__.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/tests/manifest_mock.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/tests/run_tests.bat +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/tests/test_add.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/tests/test_archive.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/tests/test_check.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/tests/test_fuzzing.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/tests/test_fuzzing_parsers.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/tests/test_github_version_check.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/tests/test_integrity.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/tests/test_integrity_hash.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/tests/test_license.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/tests/test_manifest.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/tests/test_metadata.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/tests/test_patch.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/tests/test_project_entry.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/tests/test_project_version.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/tests/test_purl.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/tests/test_remove.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/tests/test_report.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/tests/test_resources.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/tests/test_sbom_reporter.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/tests/test_stdout_reporter.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/tests/test_subproject.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/tests/test_svn.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/tests/test_svnsubproject.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/tests/test_tree_browser.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/tests/test_update.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/tests/test_util.py +0 -0
- {dfetch-0.14.2 → dfetch-0.14.4}/tests/test_util_version.py +0 -0
|
@@ -25,7 +25,7 @@ jobs:
|
|
|
25
25
|
|
|
26
26
|
steps:
|
|
27
27
|
- name: "Harden the runner (Block egress traffic: Only allow calls to allowed endpoints)"
|
|
28
|
-
uses: step-security/harden-runner@
|
|
28
|
+
uses: step-security/harden-runner@05e31511f85b41b11d1cf0ef85d0992719546e2c # v2.21.0
|
|
29
29
|
with:
|
|
30
30
|
egress-policy: block
|
|
31
31
|
allowed-endpoints: >+
|
|
@@ -49,14 +49,19 @@ jobs:
|
|
|
49
49
|
rekor.sigstore.dev:443
|
|
50
50
|
tuf-repo-cdn.sigstore.dev:443
|
|
51
51
|
*.blob.core.windows.net:443
|
|
52
|
+
ziglang.org:443
|
|
53
|
+
dependencywalker.com:443
|
|
54
|
+
ghcr.io:443
|
|
55
|
+
pkg-containers.githubusercontent.com:443
|
|
56
|
+
formulae.brew.sh:443
|
|
52
57
|
|
|
53
|
-
- uses: actions/checkout@
|
|
58
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
54
59
|
with:
|
|
55
60
|
persist-credentials: false
|
|
56
61
|
fetch-depth: 0 # Fetches all history and tags
|
|
57
62
|
|
|
58
63
|
- name: Setup Python
|
|
59
|
-
uses: actions/setup-python@
|
|
64
|
+
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
|
|
60
65
|
with:
|
|
61
66
|
python-version: '3.13'
|
|
62
67
|
cache: 'pip'
|
|
@@ -67,7 +72,7 @@ jobs:
|
|
|
67
72
|
|
|
68
73
|
- name: Set up Ruby
|
|
69
74
|
if: ${{ matrix.platform != 'windows-latest' }}
|
|
70
|
-
uses: ruby/setup-ruby@
|
|
75
|
+
uses: ruby/setup-ruby@95ef2b042f9d7a56d8268cba8559e2842e2ad01b #v1.321.0
|
|
71
76
|
with:
|
|
72
77
|
ruby-version: 3.3 # See also devcontainer
|
|
73
78
|
|
|
@@ -99,7 +104,7 @@ jobs:
|
|
|
99
104
|
- name: Restore cache for clcache
|
|
100
105
|
id: clcache-restore
|
|
101
106
|
if: ${{ matrix.platform == 'windows-latest' }}
|
|
102
|
-
uses: actions/cache/restore@
|
|
107
|
+
uses: actions/cache/restore@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
|
|
103
108
|
with:
|
|
104
109
|
path: ${{ github.workspace }}\.clcache
|
|
105
110
|
key: ${{ github.job }}-${{ matrix.platform }}-${{ github.ref_name }}-${{ hashFiles('pyproject.toml') }}
|
|
@@ -140,7 +145,7 @@ jobs:
|
|
|
140
145
|
|
|
141
146
|
- name: Save cache for clcache
|
|
142
147
|
if: ${{ always() && matrix.platform == 'windows-latest' && steps.clcache-restore.outputs.cache-hit != 'true' }}
|
|
143
|
-
uses: actions/cache/save@
|
|
148
|
+
uses: actions/cache/save@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
|
|
144
149
|
with:
|
|
145
150
|
path: ${{ github.workspace }}\.clcache
|
|
146
151
|
key: ${{ steps.clcache-restore.outputs.cache-primary-key }}
|
|
@@ -152,7 +157,7 @@ jobs:
|
|
|
152
157
|
SBOM=$(find build/dfetch-package -name '*.cdx.json' -maxdepth 1 | head -1)
|
|
153
158
|
echo "path=$SBOM" >> "$GITHUB_OUTPUT"
|
|
154
159
|
- name: Attest binary packages with SBOM
|
|
155
|
-
uses: actions/attest@
|
|
160
|
+
uses: actions/attest@1e69f48acb82d1966a394da916b4c1698aa569d6 # v4.2.2
|
|
156
161
|
with:
|
|
157
162
|
subject-path: |
|
|
158
163
|
build/dfetch-package/*.deb
|
|
@@ -175,7 +180,7 @@ jobs:
|
|
|
175
180
|
--cert-oidc-issuer https://token.actions.githubusercontent.com
|
|
176
181
|
done
|
|
177
182
|
- name: Attest build provenance
|
|
178
|
-
uses: actions/attest-build-provenance@
|
|
183
|
+
uses: actions/attest-build-provenance@4d101475d8b20a2381f78447822ac1eab6504dd8 # v4.2.2
|
|
179
184
|
with:
|
|
180
185
|
subject-path: |
|
|
181
186
|
build/dfetch-package/*.deb
|
|
@@ -215,7 +220,7 @@ jobs:
|
|
|
215
220
|
}' > vsa-predicate.json
|
|
216
221
|
- name: Attest build artifacts with VSA
|
|
217
222
|
if: steps.verify-source.outcome == 'success'
|
|
218
|
-
uses: actions/attest@
|
|
223
|
+
uses: actions/attest@1e69f48acb82d1966a394da916b4c1698aa569d6 # v4.2.2
|
|
219
224
|
with:
|
|
220
225
|
subject-path: |
|
|
221
226
|
build/dfetch-package/*.deb
|
|
@@ -237,7 +242,7 @@ jobs:
|
|
|
237
242
|
|
|
238
243
|
- name: Upload installer to release
|
|
239
244
|
if: ${{ inputs.release_id }}
|
|
240
|
-
uses: softprops/action-gh-release@
|
|
245
|
+
uses: softprops/action-gh-release@3d0d9888cb7fd7b750713d6e236d1fcb99157228 # v2.5.0
|
|
241
246
|
with:
|
|
242
247
|
tag_name: ${{ inputs.release_id }}
|
|
243
248
|
files: |
|
|
@@ -335,7 +340,7 @@ jobs:
|
|
|
335
340
|
|
|
336
341
|
steps:
|
|
337
342
|
- name: "Harden the runner (Block egress traffic: Only allow calls to allowed endpoints)"
|
|
338
|
-
uses: step-security/harden-runner@
|
|
343
|
+
uses: step-security/harden-runner@05e31511f85b41b11d1cf0ef85d0992719546e2c # v2.21.0
|
|
339
344
|
with:
|
|
340
345
|
egress-policy: block
|
|
341
346
|
allowed-endpoints: >+
|
|
@@ -352,12 +357,12 @@ jobs:
|
|
|
352
357
|
*.blob.core.windows.net:443
|
|
353
358
|
|
|
354
359
|
|
|
355
|
-
- uses: actions/checkout@
|
|
360
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
356
361
|
with:
|
|
357
362
|
persist-credentials: false
|
|
358
363
|
fetch-depth: 0 # Fetches all history and tags
|
|
359
364
|
- name: Set up Python
|
|
360
|
-
uses: actions/setup-python@
|
|
365
|
+
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
|
|
361
366
|
with:
|
|
362
367
|
python-version: '3.13'
|
|
363
368
|
cache: 'pip'
|
|
@@ -374,7 +379,7 @@ jobs:
|
|
|
374
379
|
SBOM=$(find dist -name '*.cdx.json' -maxdepth 1 | head -1)
|
|
375
380
|
echo "path=$SBOM" >> "$GITHUB_OUTPUT"
|
|
376
381
|
- name: Attest Python packages with SBOM
|
|
377
|
-
uses: actions/attest@
|
|
382
|
+
uses: actions/attest@1e69f48acb82d1966a394da916b4c1698aa569d6 # v4.2.2
|
|
378
383
|
with:
|
|
379
384
|
subject-path: |
|
|
380
385
|
dist/*.whl
|
|
@@ -395,7 +400,7 @@ jobs:
|
|
|
395
400
|
--cert-oidc-issuer https://token.actions.githubusercontent.com
|
|
396
401
|
done
|
|
397
402
|
- name: Attest Python build provenance
|
|
398
|
-
uses: actions/attest-build-provenance@
|
|
403
|
+
uses: actions/attest-build-provenance@4d101475d8b20a2381f78447822ac1eab6504dd8 # v4.2.2
|
|
399
404
|
with:
|
|
400
405
|
subject-path: |
|
|
401
406
|
dist/*.whl
|
|
@@ -434,7 +439,7 @@ jobs:
|
|
|
434
439
|
name: python-package-distributions
|
|
435
440
|
path: dist/
|
|
436
441
|
- name: Upload artifacts to release
|
|
437
|
-
uses: softprops/action-gh-release@
|
|
442
|
+
uses: softprops/action-gh-release@3d0d9888cb7fd7b750713d6e236d1fcb99157228 # v2.5.0
|
|
438
443
|
with:
|
|
439
444
|
tag_name: ${{ inputs.release_id }}
|
|
440
445
|
files: dist/*
|
|
@@ -35,7 +35,7 @@ jobs:
|
|
|
35
35
|
|
|
36
36
|
steps:
|
|
37
37
|
- name: "Harden the runner (Block egress traffic: Only allow calls to allowed endpoints)"
|
|
38
|
-
uses: step-security/harden-runner@
|
|
38
|
+
uses: step-security/harden-runner@05e31511f85b41b11d1cf0ef85d0992719546e2c # v2.21.0
|
|
39
39
|
with:
|
|
40
40
|
egress-policy: block
|
|
41
41
|
allowed-endpoints: >+
|
|
@@ -44,7 +44,7 @@ jobs:
|
|
|
44
44
|
release-assets.githubusercontent.com:443
|
|
45
45
|
|
|
46
46
|
- name: Checkout repository
|
|
47
|
-
uses: actions/checkout@
|
|
47
|
+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
48
48
|
with:
|
|
49
49
|
persist-credentials: false
|
|
50
50
|
|
|
@@ -17,7 +17,7 @@ jobs:
|
|
|
17
17
|
runs-on: ubuntu-latest
|
|
18
18
|
steps:
|
|
19
19
|
- name: "Harden the runner (Block egress traffic: Only allow calls to allowed endpoints)"
|
|
20
|
-
uses: step-security/harden-runner@
|
|
20
|
+
uses: step-security/harden-runner@05e31511f85b41b11d1cf0ef85d0992719546e2c # v2.21.0
|
|
21
21
|
with:
|
|
22
22
|
egress-policy: block
|
|
23
23
|
allowed-endpoints: >+
|
|
@@ -26,7 +26,7 @@ jobs:
|
|
|
26
26
|
github.com:443
|
|
27
27
|
|
|
28
28
|
- name: 'Checkout Repository'
|
|
29
|
-
uses: actions/checkout@
|
|
29
|
+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
30
30
|
with:
|
|
31
31
|
persist-credentials: false
|
|
32
32
|
- name: 'Dependency Review'
|
|
@@ -16,7 +16,7 @@ jobs:
|
|
|
16
16
|
|
|
17
17
|
steps:
|
|
18
18
|
- name: "Harden the runner (Block egress traffic: Only allow calls to allowed endpoints)"
|
|
19
|
-
uses: step-security/harden-runner@
|
|
19
|
+
uses: step-security/harden-runner@05e31511f85b41b11d1cf0ef85d0992719546e2c # v2.21.0
|
|
20
20
|
with:
|
|
21
21
|
egress-policy: block
|
|
22
22
|
allowed-endpoints: >+
|
|
@@ -48,12 +48,12 @@ jobs:
|
|
|
48
48
|
storage.googleapis.com:443
|
|
49
49
|
|
|
50
50
|
- name: Checkout repository
|
|
51
|
-
uses: actions/checkout@
|
|
51
|
+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
52
52
|
with:
|
|
53
53
|
persist-credentials: false
|
|
54
54
|
|
|
55
55
|
- name: Cache Docker layers
|
|
56
|
-
uses: actions/cache@
|
|
56
|
+
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
|
|
57
57
|
with:
|
|
58
58
|
path: /tmp/.buildx-cache
|
|
59
59
|
key: devcontainer-${{ runner.os }}-${{ github.sha }}
|
|
@@ -61,7 +61,7 @@ jobs:
|
|
|
61
61
|
devcontainer-${{ runner.os }}-
|
|
62
62
|
|
|
63
63
|
- name: Set up Docker Buildx
|
|
64
|
-
uses: docker/setup-buildx-action@
|
|
64
|
+
uses: docker/setup-buildx-action@37fe631027851001ddb9b187196cc803df7f5f0e # v4.3.0
|
|
65
65
|
|
|
66
66
|
- name: Build DevContainer image
|
|
67
67
|
uses: devcontainers/ci@513af61f4de4f75d37e4438f184ba4358f0fc1ca # v0.3.1900000450
|
|
@@ -20,7 +20,7 @@ jobs:
|
|
|
20
20
|
runs-on: ubuntu-latest
|
|
21
21
|
steps:
|
|
22
22
|
- name: "Harden the runner (Block egress traffic: Only allow calls to allowed endpoints)"
|
|
23
|
-
uses: step-security/harden-runner@
|
|
23
|
+
uses: step-security/harden-runner@05e31511f85b41b11d1cf0ef85d0992719546e2c # v2.21.0
|
|
24
24
|
with:
|
|
25
25
|
egress-policy: block
|
|
26
26
|
allowed-endpoints: >+
|
|
@@ -31,13 +31,13 @@ jobs:
|
|
|
31
31
|
plantuml.com:443
|
|
32
32
|
www.plantuml.com:80
|
|
33
33
|
|
|
34
|
-
- uses: actions/checkout@
|
|
34
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
35
35
|
with:
|
|
36
36
|
fetch-depth: 0
|
|
37
37
|
persist-credentials: false
|
|
38
38
|
|
|
39
39
|
- name: Install Python
|
|
40
|
-
uses: actions/setup-python@
|
|
40
|
+
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
|
|
41
41
|
with:
|
|
42
42
|
python-version: '3.13'
|
|
43
43
|
|
|
@@ -53,7 +53,7 @@ jobs:
|
|
|
53
53
|
runs-on: ubuntu-latest
|
|
54
54
|
steps:
|
|
55
55
|
- name: "Harden the runner (Block egress traffic: Only allow calls to allowed endpoints)"
|
|
56
|
-
uses: step-security/harden-runner@
|
|
56
|
+
uses: step-security/harden-runner@05e31511f85b41b11d1cf0ef85d0992719546e2c # v2.21.0
|
|
57
57
|
with:
|
|
58
58
|
egress-policy: block
|
|
59
59
|
allowed-endpoints: >+
|
|
@@ -65,12 +65,12 @@ jobs:
|
|
|
65
65
|
plantuml.com:443
|
|
66
66
|
www.plantuml.com:80
|
|
67
67
|
|
|
68
|
-
- uses: actions/checkout@
|
|
68
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
69
69
|
with:
|
|
70
70
|
persist-credentials: false
|
|
71
71
|
|
|
72
72
|
- name: Setup Python
|
|
73
|
-
uses: actions/setup-python@
|
|
73
|
+
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
|
|
74
74
|
with:
|
|
75
75
|
python-version: "3.13"
|
|
76
76
|
|
|
@@ -97,7 +97,7 @@ jobs:
|
|
|
97
97
|
contents: write
|
|
98
98
|
steps:
|
|
99
99
|
- name: "Harden the runner (Block egress traffic: Only allow calls to allowed endpoints)"
|
|
100
|
-
uses: step-security/harden-runner@
|
|
100
|
+
uses: step-security/harden-runner@05e31511f85b41b11d1cf0ef85d0992719546e2c # v2.21.0
|
|
101
101
|
with:
|
|
102
102
|
egress-policy: block
|
|
103
103
|
allowed-endpoints: >+
|
|
@@ -119,13 +119,13 @@ jobs:
|
|
|
119
119
|
security.ubuntu.com:443
|
|
120
120
|
www.plantuml.com:80
|
|
121
121
|
|
|
122
|
-
- uses: actions/checkout@
|
|
122
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
123
123
|
with:
|
|
124
124
|
fetch-depth: 0
|
|
125
125
|
persist-credentials: false
|
|
126
126
|
|
|
127
127
|
- name: Setup Python
|
|
128
|
-
uses: actions/setup-python@
|
|
128
|
+
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
|
|
129
129
|
with:
|
|
130
130
|
python-version: '3.13'
|
|
131
131
|
|
|
@@ -150,7 +150,7 @@ jobs:
|
|
|
150
150
|
|
|
151
151
|
- name: Upload PDF to release
|
|
152
152
|
if: ${{ inputs.release_id }}
|
|
153
|
-
uses: softprops/action-gh-release@
|
|
153
|
+
uses: softprops/action-gh-release@3d0d9888cb7fd7b750713d6e236d1fcb99157228 # v2.5.0
|
|
154
154
|
with:
|
|
155
155
|
tag_name: ${{ inputs.release_id }}
|
|
156
156
|
files: doc/_build/latex/dfetch-*.pdf
|
|
@@ -25,7 +25,7 @@ jobs:
|
|
|
25
25
|
|
|
26
26
|
steps:
|
|
27
27
|
- name: "Harden the runner (Block egress traffic: Only allow calls to allowed endpoints)"
|
|
28
|
-
uses: step-security/harden-runner@
|
|
28
|
+
uses: step-security/harden-runner@05e31511f85b41b11d1cf0ef85d0992719546e2c # v2.21.0
|
|
29
29
|
with:
|
|
30
30
|
egress-policy: block
|
|
31
31
|
allowed-endpoints: >+
|
|
@@ -39,12 +39,12 @@ jobs:
|
|
|
39
39
|
tuf-repo-cdn.sigstore.dev:443
|
|
40
40
|
api.osv.dev:443
|
|
41
41
|
|
|
42
|
-
- uses: actions/checkout@
|
|
42
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
43
43
|
with:
|
|
44
44
|
persist-credentials: false
|
|
45
45
|
fetch-depth: 0 # Fetches all history and tags
|
|
46
46
|
- name: Set up Python
|
|
47
|
-
uses: actions/setup-python@
|
|
47
|
+
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
|
|
48
48
|
with:
|
|
49
49
|
python-version: '3.x'
|
|
50
50
|
- name: Install dependencies
|
|
@@ -76,7 +76,7 @@ jobs:
|
|
|
76
76
|
SBOM=$(find dist-sbom -name '*.cdx.json' -maxdepth 1 | head -1)
|
|
77
77
|
echo "path=$SBOM" >> "$GITHUB_OUTPUT"
|
|
78
78
|
- name: Attest Python distribution with SBOM
|
|
79
|
-
uses: actions/attest@
|
|
79
|
+
uses: actions/attest@1e69f48acb82d1966a394da916b4c1698aa569d6 # v4.2.2
|
|
80
80
|
with:
|
|
81
81
|
subject-path: 'dist/*.whl,dist/*.tar.gz'
|
|
82
82
|
predicate-type: 'https://cyclonedx.org/bom'
|
|
@@ -87,7 +87,7 @@ jobs:
|
|
|
87
87
|
name: python-sbom
|
|
88
88
|
path: dist-sbom/
|
|
89
89
|
- name: Attest OSCAL build provenance
|
|
90
|
-
uses: actions/attest-build-provenance@
|
|
90
|
+
uses: actions/attest-build-provenance@4d101475d8b20a2381f78447822ac1eab6504dd8 # v4.2.2
|
|
91
91
|
with:
|
|
92
92
|
subject-path: dist-oscal/dfetch.component-definition.json
|
|
93
93
|
- name: Store the OSCAL Component Definition
|
|
@@ -116,7 +116,7 @@ jobs:
|
|
|
116
116
|
name: python-package-distributions
|
|
117
117
|
path: dist/
|
|
118
118
|
- name: Publish distribution 📦 to TestPyPI
|
|
119
|
-
uses: pypa/gh-action-pypi-publish@
|
|
119
|
+
uses: pypa/gh-action-pypi-publish@dc37677b2e1c63e2034f94d8a5b11f265b73ba33 # v1
|
|
120
120
|
with:
|
|
121
121
|
repository-url: https://test.pypi.org/legacy/
|
|
122
122
|
skip-existing: true
|
|
@@ -145,7 +145,7 @@ jobs:
|
|
|
145
145
|
name: python-package-distributions
|
|
146
146
|
path: dist/
|
|
147
147
|
- name: Publish distribution 📦 to PyPI
|
|
148
|
-
uses: pypa/gh-action-pypi-publish@
|
|
148
|
+
uses: pypa/gh-action-pypi-publish@dc37677b2e1c63e2034f94d8a5b11f265b73ba33 # v1
|
|
149
149
|
with:
|
|
150
150
|
skip-existing: true
|
|
151
151
|
- name: Download SBOM
|
|
@@ -159,7 +159,7 @@ jobs:
|
|
|
159
159
|
name: oscal-component-definition
|
|
160
160
|
path: dist-oscal/
|
|
161
161
|
- name: Upload SBOM and OSCAL to GitHub Release
|
|
162
|
-
uses: softprops/action-gh-release@
|
|
162
|
+
uses: softprops/action-gh-release@3d0d9888cb7fd7b750713d6e236d1fcb99157228 # v2.5.0
|
|
163
163
|
with:
|
|
164
164
|
tag_name: ${{ github.event.release.tag_name }}
|
|
165
165
|
files: |
|
|
@@ -21,7 +21,7 @@ jobs:
|
|
|
21
21
|
release_id: ${{ steps.release_info.outputs.tag }}
|
|
22
22
|
|
|
23
23
|
steps:
|
|
24
|
-
- uses: step-security/harden-runner@
|
|
24
|
+
- uses: step-security/harden-runner@05e31511f85b41b11d1cf0ef85d0992719546e2c # v2.21.0
|
|
25
25
|
with:
|
|
26
26
|
egress-policy: block
|
|
27
27
|
allowed-endpoints: >+
|
|
@@ -29,10 +29,10 @@ jobs:
|
|
|
29
29
|
api.github.com:443
|
|
30
30
|
release-assets.githubusercontent.com:443
|
|
31
31
|
uploads.github.com:443
|
|
32
|
-
- uses: actions/checkout@
|
|
32
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
33
33
|
with:
|
|
34
34
|
persist-credentials: true # Required for preparing & creating releases
|
|
35
|
-
- uses: actions/setup-python@
|
|
35
|
+
- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
|
|
36
36
|
with:
|
|
37
37
|
python-version: '3.13'
|
|
38
38
|
|
|
@@ -57,7 +57,7 @@ jobs:
|
|
|
57
57
|
|
|
58
58
|
- name: Update latest tag
|
|
59
59
|
if: ${{ steps.release_info.outputs.tag == 'latest' }}
|
|
60
|
-
uses: EndBug/latest-tag@
|
|
60
|
+
uses: EndBug/latest-tag@b2e1a0a2b6990399c5b3bf109e032a78ae82dd41
|
|
61
61
|
with:
|
|
62
62
|
ref: latest
|
|
63
63
|
description: Last state in main
|
|
@@ -84,7 +84,7 @@ jobs:
|
|
|
84
84
|
|
|
85
85
|
- name: Create release
|
|
86
86
|
if: ${{ steps.release_info.outputs.tag }}
|
|
87
|
-
uses: softprops/action-gh-release@
|
|
87
|
+
uses: softprops/action-gh-release@3d0d9888cb7fd7b750713d6e236d1fcb99157228 # v2.5.0
|
|
88
88
|
with:
|
|
89
89
|
tag_name: ${{ steps.release_info.outputs.tag }}
|
|
90
90
|
name: ${{ steps.release_info.outputs.tag }}
|
|
@@ -16,7 +16,7 @@ jobs:
|
|
|
16
16
|
|
|
17
17
|
steps:
|
|
18
18
|
- name: "Harden the runner (Block egress traffic: Only allow calls to allowed endpoints)"
|
|
19
|
-
uses: step-security/harden-runner@
|
|
19
|
+
uses: step-security/harden-runner@05e31511f85b41b11d1cf0ef85d0992719546e2c # v2.21.0
|
|
20
20
|
with:
|
|
21
21
|
egress-policy: block
|
|
22
22
|
allowed-endpoints: >+
|
|
@@ -28,8 +28,18 @@ jobs:
|
|
|
28
28
|
community.chocolatey.org:443
|
|
29
29
|
community.chocolatey.org:80
|
|
30
30
|
packages.chocolatey.org:443
|
|
31
|
-
|
|
32
|
-
|
|
31
|
+
cygwin.com:443
|
|
32
|
+
mirrors.kernel.org:443
|
|
33
|
+
*.c.lencr.org:443
|
|
34
|
+
*.c.lencr.org:80
|
|
35
|
+
*.dl.sourceforge.net:443
|
|
36
|
+
downloads.sourceforge.net:443
|
|
37
|
+
sourceforge.net:443
|
|
38
|
+
svn.code.sf.net:443
|
|
39
|
+
svn.code.sf.net:3690
|
|
40
|
+
ziglang.org:443
|
|
41
|
+
|
|
42
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
33
43
|
with:
|
|
34
44
|
persist-credentials: false
|
|
35
45
|
|
|
@@ -130,9 +140,11 @@ jobs:
|
|
|
130
140
|
allowed-endpoints: >+
|
|
131
141
|
_https._tcp.packages.microsoft.com:443
|
|
132
142
|
api.github.com:443
|
|
143
|
+
*.dl.sourceforge.net:443
|
|
133
144
|
community.chocolatey.org:443
|
|
134
145
|
community.chocolatey.org:80
|
|
135
146
|
dc.services.visualstudio.com:443
|
|
147
|
+
downloads.sourceforge.net:443
|
|
136
148
|
fe2cr.update.microsoft.com:443
|
|
137
149
|
files.pythonhosted.org:443
|
|
138
150
|
github.com:443
|
|
@@ -141,6 +153,7 @@ jobs:
|
|
|
141
153
|
packages.microsoft.com:443
|
|
142
154
|
pypi.org:443
|
|
143
155
|
release-assets.githubusercontent.com:443
|
|
156
|
+
sourceforge.net:443
|
|
144
157
|
ziglang.org:443
|
|
145
158
|
runs-on: ${{ matrix.platform }}
|
|
146
159
|
permissions:
|
|
@@ -149,17 +162,17 @@ jobs:
|
|
|
149
162
|
|
|
150
163
|
steps:
|
|
151
164
|
- name: "Harden the runner (Block egress traffic: Only allow calls to allowed endpoints)"
|
|
152
|
-
uses: step-security/harden-runner@
|
|
165
|
+
uses: step-security/harden-runner@05e31511f85b41b11d1cf0ef85d0992719546e2c # v2.21.0
|
|
153
166
|
with:
|
|
154
167
|
egress-policy: block
|
|
155
168
|
allowed-endpoints: ${{ matrix.allowed-endpoints }}
|
|
156
169
|
|
|
157
|
-
- uses: actions/checkout@
|
|
170
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
158
171
|
with:
|
|
159
172
|
persist-credentials: false
|
|
160
173
|
|
|
161
174
|
- name: Setup Python
|
|
162
|
-
uses: actions/setup-python@
|
|
175
|
+
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
|
|
163
176
|
with:
|
|
164
177
|
python-version: ${{ matrix.python-version }}
|
|
165
178
|
|
|
@@ -27,7 +27,7 @@ jobs:
|
|
|
27
27
|
|
|
28
28
|
steps:
|
|
29
29
|
- name: "Harden the runner (Block egress traffic: Only allow calls to allowed endpoints)"
|
|
30
|
-
uses: step-security/harden-runner@
|
|
30
|
+
uses: step-security/harden-runner@05e31511f85b41b11d1cf0ef85d0992719546e2c # v2.21.0
|
|
31
31
|
with:
|
|
32
32
|
egress-policy: block
|
|
33
33
|
allowed-endpoints: >+
|
|
@@ -47,12 +47,12 @@ jobs:
|
|
|
47
47
|
api.scorecard.dev:443
|
|
48
48
|
|
|
49
49
|
- name: "Checkout code"
|
|
50
|
-
uses: actions/checkout@
|
|
50
|
+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
51
51
|
with:
|
|
52
52
|
persist-credentials: false
|
|
53
53
|
|
|
54
54
|
- name: "Run analysis"
|
|
55
|
-
uses: ossf/scorecard-action@
|
|
55
|
+
uses: ossf/scorecard-action@2d1146689b8cda280b9bc96326124645441f03bc # v2.4.4
|
|
56
56
|
with:
|
|
57
57
|
results_file: results.sarif
|
|
58
58
|
results_format: sarif
|
|
@@ -21,7 +21,7 @@ jobs:
|
|
|
21
21
|
|
|
22
22
|
steps:
|
|
23
23
|
- name: "Harden the runner (Block egress traffic: Only allow calls to allowed endpoints)"
|
|
24
|
-
uses: step-security/harden-runner@
|
|
24
|
+
uses: step-security/harden-runner@05e31511f85b41b11d1cf0ef85d0992719546e2c # v2.21.0
|
|
25
25
|
with:
|
|
26
26
|
egress-policy: block
|
|
27
27
|
allowed-endpoints: >+
|
|
@@ -36,7 +36,7 @@ jobs:
|
|
|
36
36
|
*.blob.core.windows.net:443
|
|
37
37
|
|
|
38
38
|
- name: Checkout repository
|
|
39
|
-
uses: actions/checkout@
|
|
39
|
+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
40
40
|
with:
|
|
41
41
|
persist-credentials: true
|
|
42
42
|
|
|
@@ -55,7 +55,7 @@ jobs:
|
|
|
55
55
|
|
|
56
56
|
steps:
|
|
57
57
|
- name: "Harden the runner (Block egress traffic: Only allow calls to allowed endpoints)"
|
|
58
|
-
uses: step-security/harden-runner@
|
|
58
|
+
uses: step-security/harden-runner@05e31511f85b41b11d1cf0ef85d0992719546e2c # v2.21.0
|
|
59
59
|
with:
|
|
60
60
|
egress-policy: block
|
|
61
61
|
allowed-endpoints: >+
|
|
@@ -69,7 +69,7 @@ jobs:
|
|
|
69
69
|
*.blob.core.windows.net:443
|
|
70
70
|
|
|
71
71
|
- name: Checkout repository
|
|
72
|
-
uses: actions/checkout@
|
|
72
|
+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
73
73
|
with:
|
|
74
74
|
persist-credentials: false
|
|
75
75
|
|
|
@@ -77,7 +77,7 @@ jobs:
|
|
|
77
77
|
run: git archive HEAD --format=tar.gz -o dfetch-source.tar.gz
|
|
78
78
|
|
|
79
79
|
- name: Attest source provenance
|
|
80
|
-
uses: actions/attest-build-provenance@
|
|
80
|
+
uses: actions/attest-build-provenance@4d101475d8b20a2381f78447822ac1eab6504dd8 # v4.2.2
|
|
81
81
|
with:
|
|
82
82
|
subject-path: dfetch-source.tar.gz
|
|
83
83
|
|
|
@@ -18,7 +18,7 @@ jobs:
|
|
|
18
18
|
id-token: write
|
|
19
19
|
steps:
|
|
20
20
|
- name: "Harden the runner (Block egress traffic: Only allow calls to allowed endpoints)"
|
|
21
|
-
uses: step-security/harden-runner@
|
|
21
|
+
uses: step-security/harden-runner@05e31511f85b41b11d1cf0ef85d0992719546e2c # v2.21.0
|
|
22
22
|
with:
|
|
23
23
|
egress-policy: block
|
|
24
24
|
# dfetch.invalid and giiiiiidhub.com are intentionally invalid test
|
|
@@ -60,12 +60,12 @@ jobs:
|
|
|
60
60
|
tuf-repo-cdn.sigstore.dev:443
|
|
61
61
|
*.blob.core.windows.net:443
|
|
62
62
|
|
|
63
|
-
- uses: actions/checkout@
|
|
63
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
64
64
|
with:
|
|
65
65
|
persist-credentials: false
|
|
66
66
|
|
|
67
67
|
- name: Setup Python
|
|
68
|
-
uses: actions/setup-python@
|
|
68
|
+
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
|
|
69
69
|
with:
|
|
70
70
|
python-version: '3.13'
|
|
71
71
|
|
|
@@ -147,7 +147,7 @@ jobs:
|
|
|
147
147
|
|
|
148
148
|
- name: Attest test results
|
|
149
149
|
if: steps.download-source.outcome == 'success'
|
|
150
|
-
uses: actions/attest@
|
|
150
|
+
uses: actions/attest@1e69f48acb82d1966a394da916b4c1698aa569d6 # v4.2.2
|
|
151
151
|
with:
|
|
152
152
|
subject-path: dfetch-source.tar.gz
|
|
153
153
|
predicate-type: https://in-toto.io/attestation/test-result/v0.1
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
name: Publish to WinGet
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
release:
|
|
5
|
+
types: [published]
|
|
6
|
+
workflow_dispatch:
|
|
7
|
+
inputs:
|
|
8
|
+
release-tag:
|
|
9
|
+
description: 'Release tag to publish (e.g. 0.14.2)'
|
|
10
|
+
required: true
|
|
11
|
+
type: string
|
|
12
|
+
|
|
13
|
+
permissions:
|
|
14
|
+
contents: read
|
|
15
|
+
|
|
16
|
+
jobs:
|
|
17
|
+
publish:
|
|
18
|
+
name: Publish to WinGet
|
|
19
|
+
# For releases: skip the rolling 'latest' tag on main.
|
|
20
|
+
# For manual dispatch: always run (the operator knows what they're doing).
|
|
21
|
+
if: >-
|
|
22
|
+
github.event_name != 'release' ||
|
|
23
|
+
github.event.release.tag_name != 'latest'
|
|
24
|
+
runs-on: ubuntu-latest
|
|
25
|
+
concurrency:
|
|
26
|
+
group: winget-publish-${{ github.event.release.tag_name || inputs.release-tag }}
|
|
27
|
+
cancel-in-progress: true
|
|
28
|
+
|
|
29
|
+
environment:
|
|
30
|
+
name: winget
|
|
31
|
+
url: https://github.com/microsoft/winget-pkgs
|
|
32
|
+
|
|
33
|
+
steps:
|
|
34
|
+
- name: "Harden the runner (Block egress traffic: Only allow calls to allowed endpoints)"
|
|
35
|
+
uses: step-security/harden-runner@05e31511f85b41b11d1cf0ef85d0992719546e2c # v2.21.0
|
|
36
|
+
with:
|
|
37
|
+
egress-policy: block
|
|
38
|
+
allowed-endpoints: >+
|
|
39
|
+
github.com:443
|
|
40
|
+
api.github.com:443
|
|
41
|
+
objects.githubusercontent.com:443
|
|
42
|
+
release-assets.githubusercontent.com:443
|
|
43
|
+
uploads.github.com:443
|
|
44
|
+
index.crates.io:443
|
|
45
|
+
static.crates.io:443
|
|
46
|
+
|
|
47
|
+
- name: Publish to WinGet
|
|
48
|
+
# Requires WINGET_TOKEN secret in the 'winget' environment.
|
|
49
|
+
#
|
|
50
|
+
# NOTE: fine-grained PATs are NOT supported by this action — use a
|
|
51
|
+
# classic PAT only. See https://github.com/vedantmgoyal9/winget-releaser/issues/172
|
|
52
|
+
#
|
|
53
|
+
# Setup — create a classic PAT:
|
|
54
|
+
# 1. GitHub → Settings → Developer settings → Personal access tokens
|
|
55
|
+
# → Tokens (classic) → Generate new token
|
|
56
|
+
# 2. Select scope: public_repo
|
|
57
|
+
# 3. The PAT must belong to a GitHub account that has write access to
|
|
58
|
+
# dfetch-org/winget-pkgs (i.e. an org member with Triage or higher,
|
|
59
|
+
# or the org owner).
|
|
60
|
+
# 4. Store the token as secret WINGET_TOKEN in:
|
|
61
|
+
# Repo → Settings → Environments → winget → Environment secrets
|
|
62
|
+
#
|
|
63
|
+
# Prerequisites: dfetch-org/winget-pkgs must exist as a fork of
|
|
64
|
+
# microsoft/winget-pkgs (create it once manually on GitHub).
|
|
65
|
+
uses: vedantmgoyal9/winget-releaser@4ffc7888bffd451b357355dc214d43bb9f23917e # v2
|
|
66
|
+
with:
|
|
67
|
+
identifier: DFetch-org.DFetch
|
|
68
|
+
release-tag: ${{ github.event.release.tag_name || inputs.release-tag }}
|
|
69
|
+
token: ${{ secrets.WINGET_TOKEN }}
|
|
70
|
+
fork-user: dfetch-org
|
|
@@ -72,7 +72,7 @@ dfetch.log ← logging (lowest layer)
|
|
|
72
72
|
- **`dfetch/commands/`** — One file per CLI command (e.g., `update.py`, `check.py`); all inherit from `command.py`'s abstract `Command` base
|
|
73
73
|
- **`dfetch/manifest/`** — YAML manifest loading/writing with `strictyaml` schema validation; `manifest.py` is the main handler
|
|
74
74
|
- **`dfetch/project/`** — Abstract `Subproject`/`Superproject` classes with concrete Git, SVN, and Archive implementations; factory functions `create_sub_project()` and `create_super_project()` are the main entry points
|
|
75
|
-
- **`dfetch/vcs/`** — Low-level VCS operations: `git.py`, `svn.py`, `archive.py` (with hash verification in `integrity_hash.py`), and `patch.py`
|
|
75
|
+
- **`dfetch/vcs/`** — Low-level VCS operations: `git.py`, `svn.py`, `archive.py` (with hash verification in `integrity_hash.py`), and `patch.py`; Git submodule handling (enumeration, `.gitmodules` parsing, orphan-gitlink hygiene, `src`/`ignore` filtering) lives in `git_submodule.py`
|
|
76
76
|
- **`dfetch/reporting/`** — Output formatters; check results can be emitted as stdout, Jenkins JSON, SARIF, or Code Climate format; SBOM output uses CycloneDX format
|
|
77
77
|
- **`dfetch/terminal/`** — Terminal UI components (interactive prompts, tree browser, ANSI colors)
|
|
78
78
|
|