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.
Files changed (451) hide show
  1. {dfetch-0.14.2 → dfetch-0.14.4}/.github/workflows/build.yml +21 -16
  2. {dfetch-0.14.2 → dfetch-0.14.4}/.github/workflows/codeql-analysis.yml +2 -2
  3. {dfetch-0.14.2 → dfetch-0.14.4}/.github/workflows/dependency-review.yml +2 -2
  4. {dfetch-0.14.2 → dfetch-0.14.4}/.github/workflows/devcontainer.yml +4 -4
  5. {dfetch-0.14.2 → dfetch-0.14.4}/.github/workflows/docs.yml +10 -10
  6. {dfetch-0.14.2 → dfetch-0.14.4}/.github/workflows/python-publish.yml +8 -8
  7. {dfetch-0.14.2 → dfetch-0.14.4}/.github/workflows/release.yml +5 -5
  8. {dfetch-0.14.2 → dfetch-0.14.4}/.github/workflows/run.yml +19 -6
  9. {dfetch-0.14.2 → dfetch-0.14.4}/.github/workflows/scorecard.yml +3 -3
  10. {dfetch-0.14.2 → dfetch-0.14.4}/.github/workflows/source-provenance.yml +5 -5
  11. {dfetch-0.14.2 → dfetch-0.14.4}/.github/workflows/test.yml +4 -4
  12. dfetch-0.14.4/.github/workflows/winget-publish.yml +70 -0
  13. {dfetch-0.14.2 → dfetch-0.14.4}/AGENTS.md +1 -1
  14. {dfetch-0.14.2 → dfetch-0.14.4}/CHANGELOG.rst +11 -0
  15. {dfetch-0.14.2 → dfetch-0.14.4}/PKG-INFO +20 -19
  16. {dfetch-0.14.2 → dfetch-0.14.4}/action.yml +2 -2
  17. {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/__init__.py +1 -1
  18. {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/commands/command.py +1 -1
  19. {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/commands/diff.py +1 -1
  20. {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/commands/environment.py +7 -2
  21. {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/commands/import_.py +3 -1
  22. {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/commands/update_patch.py +1 -1
  23. {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/log.py +2 -2
  24. {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/manifest/manifest.py +4 -10
  25. {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/manifest/project.py +2 -2
  26. {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/manifest/version.py +2 -2
  27. {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/project/archivesubproject.py +1 -1
  28. {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/project/gitsubproject.py +5 -4
  29. {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/project/metadata.py +7 -4
  30. {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/project/subproject.py +1 -1
  31. {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/project/svnsubproject.py +2 -2
  32. {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/project/svnsuperproject.py +2 -3
  33. {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/reporting/check/code_climate_reporter.py +1 -1
  34. {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/reporting/check/reporter.py +1 -1
  35. {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/resources/__init__.py +4 -6
  36. {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/terminal/tree_browser.py +2 -2
  37. {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/util/cmdline.py +23 -10
  38. {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/util/purl.py +1 -2
  39. {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/util/util.py +5 -4
  40. {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/util/versions.py +1 -1
  41. {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/vcs/git.py +34 -217
  42. dfetch-0.14.4/dfetch/vcs/git_submodule.py +347 -0
  43. {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/vcs/git_types.py +0 -13
  44. {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/vcs/patch.py +1 -3
  45. {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/vcs/svn.py +11 -5
  46. {dfetch-0.14.2 → dfetch-0.14.4}/dfetch.egg-info/PKG-INFO +20 -19
  47. {dfetch-0.14.2 → dfetch-0.14.4}/dfetch.egg-info/SOURCES.txt +7 -1
  48. {dfetch-0.14.2 → dfetch-0.14.4}/dfetch.egg-info/requires.txt +19 -18
  49. dfetch-0.14.4/dfetch.egg-info/scm_file_list.json +424 -0
  50. dfetch-0.14.4/dfetch.egg-info/scm_version.json +8 -0
  51. dfetch-0.14.4/doc/asciicasts/add.cast +84 -0
  52. dfetch-0.14.4/doc/asciicasts/basic.cast +184 -0
  53. dfetch-0.14.4/doc/asciicasts/check-ci.cast +129 -0
  54. dfetch-0.14.4/doc/asciicasts/check.cast +59 -0
  55. dfetch-0.14.4/doc/asciicasts/diff.cast +107 -0
  56. dfetch-0.14.4/doc/asciicasts/environment.cast +29 -0
  57. dfetch-0.14.4/doc/asciicasts/format-patch.cast +124 -0
  58. dfetch-0.14.4/doc/asciicasts/freeze.cast +72 -0
  59. dfetch-0.14.4/doc/asciicasts/import.cast +65 -0
  60. dfetch-0.14.4/doc/asciicasts/init.cast +56 -0
  61. dfetch-0.14.4/doc/asciicasts/interactive-add.cast +117 -0
  62. dfetch-0.14.4/doc/asciicasts/remove.cast +100 -0
  63. dfetch-0.14.4/doc/asciicasts/report.cast +43 -0
  64. dfetch-0.14.4/doc/asciicasts/sbom.cast +54 -0
  65. dfetch-0.14.4/doc/asciicasts/update-patch.cast +232 -0
  66. dfetch-0.14.4/doc/asciicasts/update.cast +115 -0
  67. dfetch-0.14.4/doc/asciicasts/validate.cast +20 -0
  68. {dfetch-0.14.2 → dfetch-0.14.4}/doc/explanation/security.rst +41 -1
  69. {dfetch-0.14.2 → dfetch-0.14.4}/doc/explanation/threat_model_supply_chain.rst +28 -12
  70. {dfetch-0.14.2 → dfetch-0.14.4}/doc/explanation/threat_model_usage.rst +13 -5
  71. dfetch-0.14.4/doc/generate-casts/README.md +26 -0
  72. dfetch-0.14.4/doc/generate-casts/interactive-add-demo.sh +64 -0
  73. dfetch-0.14.4/doc/generate-casts/interactive_helper.py +218 -0
  74. dfetch-0.14.4/doc/generate-casts/pr-demo/after.gif +0 -0
  75. dfetch-0.14.4/doc/generate-casts/pr-demo/before.gif +0 -0
  76. {dfetch-0.14.2 → dfetch-0.14.4}/doc/howto/contributing.rst +1 -1
  77. {dfetch-0.14.2 → dfetch-0.14.4}/doc/tutorials/installation.rst +1 -1
  78. {dfetch-0.14.2 → dfetch-0.14.4}/features/check-archive.feature +6 -6
  79. {dfetch-0.14.2 → dfetch-0.14.4}/features/check-git-repo.feature +11 -11
  80. {dfetch-0.14.2 → dfetch-0.14.4}/features/check-specific-projects.feature +1 -1
  81. {dfetch-0.14.2 → dfetch-0.14.4}/features/check-svn-repo.feature +7 -7
  82. {dfetch-0.14.2 → dfetch-0.14.4}/features/checked-project-has-dependencies.feature +3 -3
  83. {dfetch-0.14.2 → dfetch-0.14.4}/features/diff-in-git.feature +2 -2
  84. {dfetch-0.14.2 → dfetch-0.14.4}/features/diff-in-svn.feature +2 -2
  85. {dfetch-0.14.2 → dfetch-0.14.4}/features/environment.feature +3 -4
  86. {dfetch-0.14.2 → dfetch-0.14.4}/features/fetch-archive.feature +2 -2
  87. {dfetch-0.14.2 → dfetch-0.14.4}/features/fetch-checks-destination.feature +2 -2
  88. {dfetch-0.14.2 → dfetch-0.14.4}/features/fetch-file-pattern-git.feature +2 -2
  89. {dfetch-0.14.2 → dfetch-0.14.4}/features/fetch-file-pattern-svn.feature +1 -1
  90. {dfetch-0.14.2 → dfetch-0.14.4}/features/fetch-git-repo-with-submodule.feature +34 -7
  91. {dfetch-0.14.2 → dfetch-0.14.4}/features/fetch-git-repo.feature +3 -3
  92. {dfetch-0.14.2 → dfetch-0.14.4}/features/fetch-single-file-git.feature +2 -2
  93. {dfetch-0.14.2 → dfetch-0.14.4}/features/fetch-single-file-svn.feature +1 -1
  94. {dfetch-0.14.2 → dfetch-0.14.4}/features/fetch-svn-repo-with-external.feature +2 -2
  95. {dfetch-0.14.2 → dfetch-0.14.4}/features/fetch-svn-repo-with-nonstd-external.feature +2 -2
  96. {dfetch-0.14.2 → dfetch-0.14.4}/features/fetch-with-ignore-git.feature +3 -3
  97. {dfetch-0.14.2 → dfetch-0.14.4}/features/fetch-with-ignore-svn.feature +3 -3
  98. {dfetch-0.14.2 → dfetch-0.14.4}/features/freeze-projects.feature +1 -1
  99. {dfetch-0.14.2 → dfetch-0.14.4}/features/guard-against-overwriting-git.feature +3 -3
  100. {dfetch-0.14.2 → dfetch-0.14.4}/features/guard-against-overwriting-svn.feature +3 -3
  101. {dfetch-0.14.2 → dfetch-0.14.4}/features/handle-invalid-metadata.feature +3 -3
  102. {dfetch-0.14.2 → dfetch-0.14.4}/features/import-from-git.feature +24 -0
  103. {dfetch-0.14.2 → dfetch-0.14.4}/features/journey-basic-patching.feature +1 -1
  104. {dfetch-0.14.2 → dfetch-0.14.4}/features/journey-basic-usage.feature +1 -1
  105. {dfetch-0.14.2 → dfetch-0.14.4}/features/list-projects.feature +3 -3
  106. {dfetch-0.14.2 → dfetch-0.14.4}/features/patch-after-fetch-git.feature +4 -4
  107. {dfetch-0.14.2 → dfetch-0.14.4}/features/patch-after-fetch-svn.feature +1 -1
  108. {dfetch-0.14.2 → dfetch-0.14.4}/features/patch-fuzzy-matching-git.feature +1 -1
  109. {dfetch-0.14.2 → dfetch-0.14.4}/features/remove-project.feature +4 -4
  110. {dfetch-0.14.2 → dfetch-0.14.4}/features/report-sbom.feature +4 -4
  111. {dfetch-0.14.2 → dfetch-0.14.4}/features/steps/git_steps.py +54 -1
  112. {dfetch-0.14.2 → dfetch-0.14.4}/features/suggest-project-name.feature +3 -3
  113. {dfetch-0.14.2 → dfetch-0.14.4}/features/update-patch-in-git.feature +1 -1
  114. {dfetch-0.14.2 → dfetch-0.14.4}/features/update-patch-in-svn.feature +1 -1
  115. {dfetch-0.14.2 → dfetch-0.14.4}/features/updated-project-has-dependencies.feature +2 -2
  116. {dfetch-0.14.2 → dfetch-0.14.4}/features/validate-manifest.feature +6 -6
  117. {dfetch-0.14.2 → dfetch-0.14.4}/pyproject.toml +26 -20
  118. {dfetch-0.14.2 → dfetch-0.14.4}/security/README.md +1 -1
  119. {dfetch-0.14.2 → dfetch-0.14.4}/security/dfetch.component-definition.json +4 -4
  120. {dfetch-0.14.2 → dfetch-0.14.4}/security/tm_controls_data.py +2 -2
  121. {dfetch-0.14.2 → dfetch-0.14.4}/security/tm_render.py +57 -1
  122. {dfetch-0.14.2 → dfetch-0.14.4}/security/tm_supply_chain.py +21 -18
  123. {dfetch-0.14.2 → dfetch-0.14.4}/security/tm_usage.py +2 -1
  124. {dfetch-0.14.2 → dfetch-0.14.4}/tests/test_cmdline.py +19 -1
  125. dfetch-0.14.4/tests/test_git_submodule.py +430 -0
  126. {dfetch-0.14.2 → dfetch-0.14.4}/tests/test_git_vcs.py +50 -127
  127. {dfetch-0.14.2 → dfetch-0.14.4}/tests/test_import.py +1 -1
  128. {dfetch-0.14.2 → dfetch-0.14.4}/tests/test_svn_vcs.py +29 -0
  129. dfetch-0.14.2/.github/workflows/winget-publish.yml +0 -56
  130. dfetch-0.14.2/doc/asciicasts/add.cast +0 -82
  131. dfetch-0.14.2/doc/asciicasts/basic.cast +0 -175
  132. dfetch-0.14.2/doc/asciicasts/check-ci.cast +0 -123
  133. dfetch-0.14.2/doc/asciicasts/check.cast +0 -60
  134. dfetch-0.14.2/doc/asciicasts/diff.cast +0 -107
  135. dfetch-0.14.2/doc/asciicasts/environment.cast +0 -28
  136. dfetch-0.14.2/doc/asciicasts/format-patch.cast +0 -123
  137. dfetch-0.14.2/doc/asciicasts/freeze.cast +0 -72
  138. dfetch-0.14.2/doc/asciicasts/import.cast +0 -68
  139. dfetch-0.14.2/doc/asciicasts/init.cast +0 -61
  140. dfetch-0.14.2/doc/asciicasts/interactive-add.cast +0 -129
  141. dfetch-0.14.2/doc/asciicasts/remove.cast +0 -96
  142. dfetch-0.14.2/doc/asciicasts/report.cast +0 -43
  143. dfetch-0.14.2/doc/asciicasts/sbom.cast +0 -53
  144. dfetch-0.14.2/doc/asciicasts/update-patch.cast +0 -236
  145. dfetch-0.14.2/doc/asciicasts/update.cast +0 -114
  146. dfetch-0.14.2/doc/asciicasts/validate.cast +0 -20
  147. dfetch-0.14.2/doc/generate-casts/README.md +0 -10
  148. dfetch-0.14.2/doc/generate-casts/interactive-add-demo.sh +0 -42
  149. dfetch-0.14.2/doc/generate-casts/interactive_add_helper.py +0 -133
  150. {dfetch-0.14.2 → dfetch-0.14.4}/.claude/commands/dfetch-add.md +0 -0
  151. {dfetch-0.14.2 → dfetch-0.14.4}/.claude/settings.json +0 -0
  152. {dfetch-0.14.2 → dfetch-0.14.4}/.coderabbit.yaml +0 -0
  153. {dfetch-0.14.2 → dfetch-0.14.4}/.devcontainer/Dockerfile +0 -0
  154. {dfetch-0.14.2 → dfetch-0.14.4}/.devcontainer/devcontainer.json +0 -0
  155. {dfetch-0.14.2 → dfetch-0.14.4}/.github/dependabot.yml +0 -0
  156. {dfetch-0.14.2 → dfetch-0.14.4}/.github/workflows/ci.yml +0 -0
  157. {dfetch-0.14.2 → dfetch-0.14.4}/.gitignore +0 -0
  158. {dfetch-0.14.2 → dfetch-0.14.4}/.plantwebrc +0 -0
  159. {dfetch-0.14.2 → dfetch-0.14.4}/.pre-commit-config.yaml +0 -0
  160. {dfetch-0.14.2 → dfetch-0.14.4}/.readthedocs.yml +0 -0
  161. {dfetch-0.14.2 → dfetch-0.14.4}/CLAUDE.md +0 -0
  162. {dfetch-0.14.2 → dfetch-0.14.4}/LICENSE +0 -0
  163. {dfetch-0.14.2 → dfetch-0.14.4}/README.md +0 -0
  164. {dfetch-0.14.2 → dfetch-0.14.4}/SECURITY.md +0 -0
  165. {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/__main__.py +0 -0
  166. {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/commands/__init__.py +0 -0
  167. {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/commands/add.py +0 -0
  168. {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/commands/check.py +0 -0
  169. {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/commands/common.py +0 -0
  170. {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/commands/format_patch.py +0 -0
  171. {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/commands/freeze.py +0 -0
  172. {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/commands/init.py +0 -0
  173. {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/commands/remove.py +0 -0
  174. {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/commands/report.py +0 -0
  175. {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/commands/update.py +0 -0
  176. {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/commands/validate.py +0 -0
  177. {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/manifest/__init__.py +0 -0
  178. {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/manifest/parse.py +0 -0
  179. {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/manifest/remote.py +0 -0
  180. {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/manifest/schema.py +0 -0
  181. {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/project/__init__.py +0 -0
  182. {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/project/abstract_check_reporter.py +0 -0
  183. {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/project/gitsuperproject.py +0 -0
  184. {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/project/superproject.py +0 -0
  185. {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/reporting/__init__.py +0 -0
  186. {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/reporting/check/__init__.py +0 -0
  187. {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/reporting/check/jenkins_reporter.py +0 -0
  188. {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/reporting/check/sarif_reporter.py +0 -0
  189. {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/reporting/check/stdout_reporter.py +0 -0
  190. {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/reporting/reporter.py +0 -0
  191. {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/reporting/sbom_reporter.py +0 -0
  192. {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/reporting/stdout_reporter.py +0 -0
  193. {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/resources/template.yaml +0 -0
  194. {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/terminal/__init__.py +3 -3
  195. {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/terminal/ansi.py +0 -0
  196. {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/terminal/keys.py +0 -0
  197. {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/terminal/pick.py +0 -0
  198. {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/terminal/prompt.py +0 -0
  199. {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/terminal/screen.py +0 -0
  200. {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/terminal/types.py +0 -0
  201. {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/util/__init__.py +0 -0
  202. {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/util/github_version_check.py +0 -0
  203. {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/util/license.py +0 -0
  204. {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/util/ssh.py +0 -0
  205. {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/vcs/__init__.py +0 -0
  206. {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/vcs/archive.py +0 -0
  207. {dfetch-0.14.2 → dfetch-0.14.4}/dfetch/vcs/integrity_hash.py +0 -0
  208. {dfetch-0.14.2 → dfetch-0.14.4}/dfetch.code-workspace +0 -0
  209. {dfetch-0.14.2 → dfetch-0.14.4}/dfetch.egg-info/dependency_links.txt +0 -0
  210. {dfetch-0.14.2 → dfetch-0.14.4}/dfetch.egg-info/entry_points.txt +0 -0
  211. {dfetch-0.14.2 → dfetch-0.14.4}/dfetch.egg-info/top_level.txt +0 -0
  212. {dfetch-0.14.2 → dfetch-0.14.4}/dfetch.yaml +0 -0
  213. {dfetch-0.14.2 → dfetch-0.14.4}/doc/Makefile +0 -0
  214. {dfetch-0.14.2 → dfetch-0.14.4}/doc/_ext/colordot.py +0 -0
  215. {dfetch-0.14.2 → dfetch-0.14.4}/doc/_ext/designguide.py +0 -0
  216. {dfetch-0.14.2 → dfetch-0.14.4}/doc/_ext/dfetch_style.py +0 -0
  217. {dfetch-0.14.2 → dfetch-0.14.4}/doc/_ext/latex_tabs.py +0 -0
  218. {dfetch-0.14.2 → dfetch-0.14.4}/doc/_ext/patches/001-autoformat-sphinxcontrib.asciinema.patch +0 -0
  219. {dfetch-0.14.2 → dfetch-0.14.4}/doc/_ext/patches/002-fix-options-sphinxcontrib.asciinema.patch +0 -0
  220. {dfetch-0.14.2 → dfetch-0.14.4}/doc/_ext/patches/003-only-handle-html-sphinxcontrib.asciinema.patch +0 -0
  221. {dfetch-0.14.2 → dfetch-0.14.4}/doc/_ext/scenario_directive.py +0 -0
  222. {dfetch-0.14.2 → dfetch-0.14.4}/doc/_ext/sphinxcontrib_asciinema/.dfetch_data.yaml +0 -0
  223. {dfetch-0.14.2 → dfetch-0.14.4}/doc/_ext/sphinxcontrib_asciinema/LICENSE +0 -0
  224. {dfetch-0.14.2 → dfetch-0.14.4}/doc/_ext/sphinxcontrib_asciinema/__init__.py +0 -0
  225. {dfetch-0.14.2 → dfetch-0.14.4}/doc/_ext/sphinxcontrib_asciinema/_static/asciinema-player_3.12.1.css +0 -0
  226. {dfetch-0.14.2 → dfetch-0.14.4}/doc/_ext/sphinxcontrib_asciinema/_static/asciinema-player_3.12.1.js +0 -0
  227. {dfetch-0.14.2 → dfetch-0.14.4}/doc/_ext/sphinxcontrib_asciinema/asciinema.py +0 -0
  228. {dfetch-0.14.2 → dfetch-0.14.4}/doc/_ext/unique_section_ids.py +0 -0
  229. {dfetch-0.14.2 → dfetch-0.14.4}/doc/_templates/about.html +0 -0
  230. {dfetch-0.14.2 → dfetch-0.14.4}/doc/appendix/scenarios.rst +0 -0
  231. {dfetch-0.14.2 → dfetch-0.14.4}/doc/conf.py +0 -0
  232. {dfetch-0.14.2 → dfetch-0.14.4}/doc/dfetch-action.md +0 -0
  233. {dfetch-0.14.2 → dfetch-0.14.4}/doc/dfetch_cover.inc +0 -0
  234. {dfetch-0.14.2 → dfetch-0.14.4}/doc/dfetch_preamble.inc +0 -0
  235. {dfetch-0.14.2 → dfetch-0.14.4}/doc/explanation/alternatives.rst +0 -0
  236. {dfetch-0.14.2 → dfetch-0.14.4}/doc/explanation/architecture.rst +0 -0
  237. {dfetch-0.14.2 → dfetch-0.14.4}/doc/explanation/compliance_track.rst +0 -0
  238. {dfetch-0.14.2 → dfetch-0.14.4}/doc/explanation/control_register.rst +0 -0
  239. {dfetch-0.14.2 → dfetch-0.14.4}/doc/explanation/governance.rst +0 -0
  240. {dfetch-0.14.2 → dfetch-0.14.4}/doc/explanation/line-endings.rst +0 -0
  241. {dfetch-0.14.2 → dfetch-0.14.4}/doc/explanation/security_pipeline.rst +0 -0
  242. {dfetch-0.14.2 → dfetch-0.14.4}/doc/explanation/vendoring.rst +0 -0
  243. {dfetch-0.14.2 → dfetch-0.14.4}/doc/generate-casts/add-demo.sh +0 -0
  244. {dfetch-0.14.2 → dfetch-0.14.4}/doc/generate-casts/basic-demo.sh +0 -0
  245. {dfetch-0.14.2 → dfetch-0.14.4}/doc/generate-casts/check-ci-demo.sh +0 -0
  246. {dfetch-0.14.2 → dfetch-0.14.4}/doc/generate-casts/check-demo.sh +0 -0
  247. {dfetch-0.14.2 → dfetch-0.14.4}/doc/generate-casts/demo-magic/.dfetch_data.yaml +0 -0
  248. {dfetch-0.14.2 → dfetch-0.14.4}/doc/generate-casts/demo-magic/demo-magic.sh +0 -0
  249. {dfetch-0.14.2 → dfetch-0.14.4}/doc/generate-casts/demo-magic/license.txt +0 -0
  250. {dfetch-0.14.2 → dfetch-0.14.4}/doc/generate-casts/diff-demo.sh +0 -0
  251. {dfetch-0.14.2 → dfetch-0.14.4}/doc/generate-casts/environment-demo.sh +0 -0
  252. {dfetch-0.14.2 → dfetch-0.14.4}/doc/generate-casts/format-patch-demo.sh +0 -0
  253. {dfetch-0.14.2 → dfetch-0.14.4}/doc/generate-casts/freeze-demo.sh +0 -0
  254. {dfetch-0.14.2 → dfetch-0.14.4}/doc/generate-casts/generate-casts.sh +0 -0
  255. {dfetch-0.14.2 → dfetch-0.14.4}/doc/generate-casts/import-demo.sh +0 -0
  256. {dfetch-0.14.2 → dfetch-0.14.4}/doc/generate-casts/init-demo.sh +0 -0
  257. {dfetch-0.14.2 → dfetch-0.14.4}/doc/generate-casts/remove-demo.sh +0 -0
  258. {dfetch-0.14.2 → dfetch-0.14.4}/doc/generate-casts/report-demo.sh +0 -0
  259. {dfetch-0.14.2 → dfetch-0.14.4}/doc/generate-casts/report-sbom-demo.sh +0 -0
  260. {dfetch-0.14.2 → dfetch-0.14.4}/doc/generate-casts/strip-setup-from-cast.sh +0 -0
  261. {dfetch-0.14.2 → dfetch-0.14.4}/doc/generate-casts/update-demo.sh +0 -0
  262. {dfetch-0.14.2 → dfetch-0.14.4}/doc/generate-casts/update-patch-demo.sh +0 -0
  263. {dfetch-0.14.2 → dfetch-0.14.4}/doc/generate-casts/validate-demo.sh +0 -0
  264. {dfetch-0.14.2 → dfetch-0.14.4}/doc/howto/adding-a-project.rst +0 -0
  265. {dfetch-0.14.2 → dfetch-0.14.4}/doc/howto/check-ci.rst +0 -0
  266. {dfetch-0.14.2 → dfetch-0.14.4}/doc/howto/migration.rst +0 -0
  267. {dfetch-0.14.2 → dfetch-0.14.4}/doc/howto/patching.rst +0 -0
  268. {dfetch-0.14.2 → dfetch-0.14.4}/doc/howto/remove-a-project.rst +0 -0
  269. {dfetch-0.14.2 → dfetch-0.14.4}/doc/howto/sbom.rst +0 -0
  270. {dfetch-0.14.2 → dfetch-0.14.4}/doc/howto/troubleshooting.rst +0 -0
  271. {dfetch-0.14.2 → dfetch-0.14.4}/doc/howto/updating-projects.rst +0 -0
  272. {dfetch-0.14.2 → dfetch-0.14.4}/doc/howto/verify-integrity.rst +0 -0
  273. {dfetch-0.14.2 → dfetch-0.14.4}/doc/images/dependency-track-license-detail.png +0 -0
  274. {dfetch-0.14.2 → dfetch-0.14.4}/doc/images/dependency-track-noassertion.png +0 -0
  275. {dfetch-0.14.2 → dfetch-0.14.4}/doc/images/dependency-track-properties.png +0 -0
  276. {dfetch-0.14.2 → dfetch-0.14.4}/doc/images/dfetch_header.png +0 -0
  277. {dfetch-0.14.2 → dfetch-0.14.4}/doc/images/dfetch_header.svg +0 -0
  278. {dfetch-0.14.2 → dfetch-0.14.4}/doc/images/dfetch_logo.png +0 -0
  279. {dfetch-0.14.2 → dfetch-0.14.4}/doc/images/dfetch_logo.svg +0 -0
  280. {dfetch-0.14.2 → dfetch-0.14.4}/doc/images/dfetch_logo_only.png +0 -0
  281. {dfetch-0.14.2 → dfetch-0.14.4}/doc/images/dfetch_logo_only.svg +0 -0
  282. {dfetch-0.14.2 → dfetch-0.14.4}/doc/images/dog.svg +0 -0
  283. {dfetch-0.14.2 → dfetch-0.14.4}/doc/images/favicon.ico +0 -0
  284. {dfetch-0.14.2 → dfetch-0.14.4}/doc/images/github-actions-result.png +0 -0
  285. {dfetch-0.14.2 → dfetch-0.14.4}/doc/images/gitlab-check-pipeline-result.png +0 -0
  286. {dfetch-0.14.2 → dfetch-0.14.4}/doc/images/gitlab-highlighted-manifest.png +0 -0
  287. {dfetch-0.14.2 → dfetch-0.14.4}/doc/images/local-change-github-details.png +0 -0
  288. {dfetch-0.14.2 → dfetch-0.14.4}/doc/images/local-change-github.png +0 -0
  289. {dfetch-0.14.2 → dfetch-0.14.4}/doc/images/out-of-date-jenkins.png +0 -0
  290. {dfetch-0.14.2 → dfetch-0.14.4}/doc/images/out-of-date-jenkins2.png +0 -0
  291. {dfetch-0.14.2 → dfetch-0.14.4}/doc/index.rst +0 -0
  292. {dfetch-0.14.2 → dfetch-0.14.4}/doc/landing-page/Makefile +0 -0
  293. {dfetch-0.14.2 → dfetch-0.14.4}/doc/landing-page/conf.py +0 -0
  294. {dfetch-0.14.2 → dfetch-0.14.4}/doc/landing-page/index.rst +0 -0
  295. {dfetch-0.14.2 → dfetch-0.14.4}/doc/landing-page/make.bat +0 -0
  296. {dfetch-0.14.2 → dfetch-0.14.4}/doc/landing-page/robots.txt +0 -0
  297. {dfetch-0.14.2 → dfetch-0.14.4}/doc/landing-page/static/ci-diagram.svg +0 -0
  298. {dfetch-0.14.2 → dfetch-0.14.4}/doc/landing-page/static/css/custom.css +0 -0
  299. {dfetch-0.14.2 → dfetch-0.14.4}/doc/landing-page/static/js/scroll-animate.js +0 -0
  300. {dfetch-0.14.2 → dfetch-0.14.4}/doc/landing-page/static/patch-diagram.svg +0 -0
  301. {dfetch-0.14.2 → dfetch-0.14.4}/doc/make.bat +0 -0
  302. {dfetch-0.14.2 → dfetch-0.14.4}/doc/reference/changelog.rst +0 -0
  303. {dfetch-0.14.2 → dfetch-0.14.4}/doc/reference/cli_cheatsheet.rst +0 -0
  304. {dfetch-0.14.2 → dfetch-0.14.4}/doc/reference/commands.rst +0 -0
  305. {dfetch-0.14.2 → dfetch-0.14.4}/doc/reference/glossary.rst +0 -0
  306. {dfetch-0.14.2 → dfetch-0.14.4}/doc/reference/legal.rst +0 -0
  307. {dfetch-0.14.2 → dfetch-0.14.4}/doc/reference/manifest.rst +0 -0
  308. {dfetch-0.14.2 → dfetch-0.14.4}/doc/reference/roadmap.rst +0 -0
  309. {dfetch-0.14.2 → dfetch-0.14.4}/doc/robots.txt +0 -0
  310. {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/css/custom.css +0 -0
  311. {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/font-awesome/.dfetch_data.yaml +0 -0
  312. {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/font-awesome/LICENSE.txt +0 -0
  313. {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/font-awesome/css/all.css +0 -0
  314. {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/font-awesome/css/all.min.css +0 -0
  315. {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/font-awesome/css/brands.css +0 -0
  316. {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/font-awesome/css/brands.min.css +0 -0
  317. {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/font-awesome/css/fontawesome.css +0 -0
  318. {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/font-awesome/css/fontawesome.min.css +0 -0
  319. {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/font-awesome/css/regular.css +0 -0
  320. {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/font-awesome/css/regular.min.css +0 -0
  321. {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/font-awesome/css/solid.css +0 -0
  322. {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/font-awesome/css/solid.min.css +0 -0
  323. {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/font-awesome/css/v4-font-face.css +0 -0
  324. {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/font-awesome/css/v4-font-face.min.css +0 -0
  325. {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/font-awesome/css/v4-shims.css +0 -0
  326. {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/font-awesome/css/v4-shims.min.css +0 -0
  327. {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/font-awesome/css/v5-font-face.css +0 -0
  328. {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/font-awesome/css/v5-font-face.min.css +0 -0
  329. {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/font-awesome/webfonts/fa-brands-400.woff2 +0 -0
  330. {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/font-awesome/webfonts/fa-regular-400.woff2 +0 -0
  331. {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/font-awesome/webfonts/fa-solid-900.woff2 +0 -0
  332. {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/font-awesome/webfonts/fa-v4compatibility.woff2 +0 -0
  333. {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/inter/.dfetch_data.yaml +0 -0
  334. {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/inter/Inter-Bold.woff2 +0 -0
  335. {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/inter/Inter-ExtraBold.woff2 +0 -0
  336. {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/inter/Inter-ExtraLight.woff2 +0 -0
  337. {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/inter/Inter-Light.woff2 +0 -0
  338. {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/inter/Inter-Medium.woff2 +0 -0
  339. {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/inter/Inter-Regular.woff2 +0 -0
  340. {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/inter/Inter-SemiBold.woff2 +0 -0
  341. {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/inter/Inter-Thin.woff2 +0 -0
  342. {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/inter/LICENSE.txt +0 -0
  343. {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/jetbrains-mono/.dfetch_data.yaml +0 -0
  344. {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/jetbrains-mono/ttf/JetBrainsMono-Medium.ttf +0 -0
  345. {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/jetbrains-mono/ttf/JetBrainsMono-Regular.ttf +0 -0
  346. {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/jetbrains-mono/variable/JetBrainsMono[wght].ttf +0 -0
  347. {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/jetbrains-mono/webfonts/JetBrainsMono-Medium.woff2 +0 -0
  348. {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/jetbrains-mono/webfonts/JetBrainsMono-Regular.woff2 +0 -0
  349. {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/poiretone/.dfetch_data.yaml +0 -0
  350. {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/poiretone/ttf/PoiretOne-Regular.ttf +0 -0
  351. {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/texgyreheros/.dfetch_data.yaml +0 -0
  352. {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/texgyreheros/texgyreheros-bold.otf +0 -0
  353. {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/texgyreheros/texgyreheros-bolditalic.otf +0 -0
  354. {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/texgyreheros/texgyreheros-italic.otf +0 -0
  355. {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/fonts/texgyreheros/texgyreheros-regular.otf +0 -0
  356. {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/js/diataxis.js +0 -0
  357. {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/uml/c1_dfetch_context.puml +0 -0
  358. {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/uml/c2_dfetch_containers.puml +0 -0
  359. {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/uml/c3_dfetch_components_commands.puml +0 -0
  360. {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/uml/c3_dfetch_components_manifest.puml +0 -0
  361. {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/uml/c3_dfetch_components_project.puml +0 -0
  362. {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/uml/check.puml +0 -0
  363. {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/uml/commands.puml +0 -0
  364. {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/uml/generate_diagram.py +0 -0
  365. {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/uml/security_doc_flow.puml +0 -0
  366. {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/uml/styles/plantuml-c4/.dfetch_data.yaml +0 -0
  367. {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/uml/styles/plantuml-c4/C4.puml +0 -0
  368. {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/uml/styles/plantuml-c4/C4_Component.puml +0 -0
  369. {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/uml/styles/plantuml-c4/C4_Container.puml +0 -0
  370. {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/uml/styles/plantuml-c4/C4_Context.puml +0 -0
  371. {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/uml/styles/plantuml-c4/C4_Deployment.puml +0 -0
  372. {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/uml/styles/plantuml-c4/C4_Dynamic.puml +0 -0
  373. {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/uml/styles/plantuml-c4/C4_Sequence.puml +0 -0
  374. {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/uml/styles/plantuml-c4/LICENSE +0 -0
  375. {dfetch-0.14.2 → dfetch-0.14.4}/doc/static/uml/update.puml +0 -0
  376. {dfetch-0.14.2 → dfetch-0.14.4}/doc/tutorials/getting_started.rst +0 -0
  377. {dfetch-0.14.2 → dfetch-0.14.4}/example/dfetch.yaml +0 -0
  378. {dfetch-0.14.2 → dfetch-0.14.4}/features/add-project-through-cli.feature +0 -0
  379. {dfetch-0.14.2 → dfetch-0.14.4}/features/check-report-code-climate.feature +0 -0
  380. {dfetch-0.14.2 → dfetch-0.14.4}/features/check-report-jenkins.feature +0 -0
  381. {dfetch-0.14.2 → dfetch-0.14.4}/features/check-report-sarif.feature +0 -0
  382. {dfetch-0.14.2 → dfetch-0.14.4}/features/environment.py +0 -0
  383. {dfetch-0.14.2 → dfetch-0.14.4}/features/fetch-specific-project.feature +0 -0
  384. {dfetch-0.14.2 → dfetch-0.14.4}/features/fetch-svn-repo.feature +0 -0
  385. {dfetch-0.14.2 → dfetch-0.14.4}/features/format-patch-in-git.feature +0 -0
  386. {dfetch-0.14.2 → dfetch-0.14.4}/features/format-patch-in-svn.feature +0 -0
  387. {dfetch-0.14.2 → dfetch-0.14.4}/features/freeze-archive.feature +0 -0
  388. {dfetch-0.14.2 → dfetch-0.14.4}/features/freeze-inplace.feature +0 -0
  389. {dfetch-0.14.2 → dfetch-0.14.4}/features/freeze-specific-projects.feature +0 -0
  390. {dfetch-0.14.2 → dfetch-0.14.4}/features/import-from-svn.feature +0 -0
  391. {dfetch-0.14.2 → dfetch-0.14.4}/features/interactive-add.feature +0 -0
  392. {dfetch-0.14.2 → dfetch-0.14.4}/features/keep-license-in-project.feature +0 -0
  393. {dfetch-0.14.2 → dfetch-0.14.4}/features/report-sbom-archive.feature +0 -0
  394. {dfetch-0.14.2 → dfetch-0.14.4}/features/report-sbom-license.feature +0 -0
  395. {dfetch-0.14.2 → dfetch-0.14.4}/features/steps/__init__.py +0 -0
  396. {dfetch-0.14.2 → dfetch-0.14.4}/features/steps/add_steps.py +0 -0
  397. {dfetch-0.14.2 → dfetch-0.14.4}/features/steps/archive_steps.py +0 -0
  398. {dfetch-0.14.2 → dfetch-0.14.4}/features/steps/generic_steps.py +0 -0
  399. {dfetch-0.14.2 → dfetch-0.14.4}/features/steps/json_steps.py +0 -0
  400. {dfetch-0.14.2 → dfetch-0.14.4}/features/steps/manifest_steps.py +0 -0
  401. {dfetch-0.14.2 → dfetch-0.14.4}/features/steps/svn_steps.py +0 -0
  402. {dfetch-0.14.2 → dfetch-0.14.4}/features/superproject-line-ending-attrs.feature +0 -0
  403. {dfetch-0.14.2 → dfetch-0.14.4}/script/build.py +0 -0
  404. {dfetch-0.14.2 → dfetch-0.14.4}/script/check_quality.bat +0 -0
  405. {dfetch-0.14.2 → dfetch-0.14.4}/script/create_docs.bat +0 -0
  406. {dfetch-0.14.2 → dfetch-0.14.4}/script/create_release_notes.py +0 -0
  407. {dfetch-0.14.2 → dfetch-0.14.4}/script/create_sbom.py +0 -0
  408. {dfetch-0.14.2 → dfetch-0.14.4}/script/create_venv.py +0 -0
  409. {dfetch-0.14.2 → dfetch-0.14.4}/script/dependabot_hook.py +0 -0
  410. {dfetch-0.14.2 → dfetch-0.14.4}/script/package.py +0 -0
  411. {dfetch-0.14.2 → dfetch-0.14.4}/script/release.py +0 -0
  412. {dfetch-0.14.2 → dfetch-0.14.4}/security/__init__.py +0 -0
  413. {dfetch-0.14.2 → dfetch-0.14.4}/security/compliance.py +0 -0
  414. {dfetch-0.14.2 → dfetch-0.14.4}/security/compliance_data.py +0 -0
  415. {dfetch-0.14.2 → dfetch-0.14.4}/security/compliance_types.py +0 -0
  416. {dfetch-0.14.2 → dfetch-0.14.4}/security/cra_pren_4000014_oscal_catalog.json +0 -0
  417. {dfetch-0.14.2 → dfetch-0.14.4}/security/report_template.rst +0 -0
  418. {dfetch-0.14.2 → dfetch-0.14.4}/security/threats.json +0 -0
  419. {dfetch-0.14.2 → dfetch-0.14.4}/security/tm_elements.py +0 -0
  420. {dfetch-0.14.2 → dfetch-0.14.4}/setup.cfg +0 -0
  421. {dfetch-0.14.2 → dfetch-0.14.4}/stubs/py_serializable/__init__.pyi +0 -0
  422. {dfetch-0.14.2 → dfetch-0.14.4}/tests/__init__.py +0 -0
  423. {dfetch-0.14.2 → dfetch-0.14.4}/tests/manifest_mock.py +0 -0
  424. {dfetch-0.14.2 → dfetch-0.14.4}/tests/run_tests.bat +0 -0
  425. {dfetch-0.14.2 → dfetch-0.14.4}/tests/test_add.py +0 -0
  426. {dfetch-0.14.2 → dfetch-0.14.4}/tests/test_archive.py +0 -0
  427. {dfetch-0.14.2 → dfetch-0.14.4}/tests/test_check.py +0 -0
  428. {dfetch-0.14.2 → dfetch-0.14.4}/tests/test_fuzzing.py +0 -0
  429. {dfetch-0.14.2 → dfetch-0.14.4}/tests/test_fuzzing_parsers.py +0 -0
  430. {dfetch-0.14.2 → dfetch-0.14.4}/tests/test_github_version_check.py +0 -0
  431. {dfetch-0.14.2 → dfetch-0.14.4}/tests/test_integrity.py +0 -0
  432. {dfetch-0.14.2 → dfetch-0.14.4}/tests/test_integrity_hash.py +0 -0
  433. {dfetch-0.14.2 → dfetch-0.14.4}/tests/test_license.py +0 -0
  434. {dfetch-0.14.2 → dfetch-0.14.4}/tests/test_manifest.py +0 -0
  435. {dfetch-0.14.2 → dfetch-0.14.4}/tests/test_metadata.py +0 -0
  436. {dfetch-0.14.2 → dfetch-0.14.4}/tests/test_patch.py +0 -0
  437. {dfetch-0.14.2 → dfetch-0.14.4}/tests/test_project_entry.py +0 -0
  438. {dfetch-0.14.2 → dfetch-0.14.4}/tests/test_project_version.py +0 -0
  439. {dfetch-0.14.2 → dfetch-0.14.4}/tests/test_purl.py +0 -0
  440. {dfetch-0.14.2 → dfetch-0.14.4}/tests/test_remove.py +0 -0
  441. {dfetch-0.14.2 → dfetch-0.14.4}/tests/test_report.py +0 -0
  442. {dfetch-0.14.2 → dfetch-0.14.4}/tests/test_resources.py +0 -0
  443. {dfetch-0.14.2 → dfetch-0.14.4}/tests/test_sbom_reporter.py +0 -0
  444. {dfetch-0.14.2 → dfetch-0.14.4}/tests/test_stdout_reporter.py +0 -0
  445. {dfetch-0.14.2 → dfetch-0.14.4}/tests/test_subproject.py +0 -0
  446. {dfetch-0.14.2 → dfetch-0.14.4}/tests/test_svn.py +0 -0
  447. {dfetch-0.14.2 → dfetch-0.14.4}/tests/test_svnsubproject.py +0 -0
  448. {dfetch-0.14.2 → dfetch-0.14.4}/tests/test_tree_browser.py +0 -0
  449. {dfetch-0.14.2 → dfetch-0.14.4}/tests/test_update.py +0 -0
  450. {dfetch-0.14.2 → dfetch-0.14.4}/tests/test_util.py +0 -0
  451. {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@9af89fc71515a100421586dfdb3dc9c984fbf411 # v2.19.4
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@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
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@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
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@89f90524b88a01fe6e0b732220432cc6142926af #v1.313.0
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@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
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@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
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@59d89421af93a897026c735860bf21b6eb4f7b26 # v4.1.0
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@a2bbfa25375fe432b6a289bc6b6cd05ecd0c4c32 # v4.1.0
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@59d89421af93a897026c735860bf21b6eb4f7b26 # v4.1.0
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@718ea10b132b3b2eba29c1007bb80653f286566b # v2.5.0
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@9af89fc71515a100421586dfdb3dc9c984fbf411 # v2.19.4
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@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
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@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
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@59d89421af93a897026c735860bf21b6eb4f7b26 # v4.1.0
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@a2bbfa25375fe432b6a289bc6b6cd05ecd0c4c32 # v4.1.0
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@718ea10b132b3b2eba29c1007bb80653f286566b # v2.5.0
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@9af89fc71515a100421586dfdb3dc9c984fbf411 # v2.19.4
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@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
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@9af89fc71515a100421586dfdb3dc9c984fbf411 # v2.19.4
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@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
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@9af89fc71515a100421586dfdb3dc9c984fbf411 # v2.19.4
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@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
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@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
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@d7f5e7f509e45cec5c76c4d5afdd7de93d0b3df5 # v4.1.0
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@9af89fc71515a100421586dfdb3dc9c984fbf411 # v2.19.4
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@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
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@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
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@9af89fc71515a100421586dfdb3dc9c984fbf411 # v2.19.4
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@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
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@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
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@9af89fc71515a100421586dfdb3dc9c984fbf411 # v2.19.4
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@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
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@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
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@718ea10b132b3b2eba29c1007bb80653f286566b # v2.5.0
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@9af89fc71515a100421586dfdb3dc9c984fbf411 # v2.19.4
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@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
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@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
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@59d89421af93a897026c735860bf21b6eb4f7b26 # v4.1.0
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@a2bbfa25375fe432b6a289bc6b6cd05ecd0c4c32 # v4.1.0
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@cef221092ed1bacb1cc03d23a2d87d1d172e277b # v1
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@cef221092ed1bacb1cc03d23a2d87d1d172e277b # v1
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@718ea10b132b3b2eba29c1007bb80653f286566b # v2.5.0
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@9af89fc71515a100421586dfdb3dc9c984fbf411 # v2.19.4
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@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
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@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
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@16bb0ae5bf2834bce7de88eb1ecdf479d4ed8753
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@718ea10b132b3b2eba29c1007bb80653f286566b # v2.5.0
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@9af89fc71515a100421586dfdb3dc9c984fbf411 # v2.19.4
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
- - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
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@9af89fc71515a100421586dfdb3dc9c984fbf411 # v2.19.4
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@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
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@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
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@9af89fc71515a100421586dfdb3dc9c984fbf411 # v2.19.4
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@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
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@4eaacf0543bb3f2c246792bd56e8cdeffafb205a # v2.4.3
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@9af89fc71515a100421586dfdb3dc9c984fbf411 # v2.19.4
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@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
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@9af89fc71515a100421586dfdb3dc9c984fbf411 # v2.19.4
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@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
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@a2bbfa25375fe432b6a289bc6b6cd05ecd0c4c32 # v4.1.0
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@9af89fc71515a100421586dfdb3dc9c984fbf411 # v2.19.4
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@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
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@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
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@59d89421af93a897026c735860bf21b6eb4f7b26 # v4.1.0
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