oe-python-template 0.6.18__tar.gz → 0.6.20__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 (170) hide show
  1. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/.copier-answers.yml +1 -1
  2. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/.github/workflows/docker-image-build-publish.yml +8 -10
  3. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/.github/workflows/package-build-publish-release.yml +4 -4
  4. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/.github/workflows/test-and-report.yml +7 -7
  5. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/CHANGELOG.md +15 -4
  6. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/CONTRIBUTING.md +7 -0
  7. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/PKG-INFO +1 -1
  8. oe_python_template-0.6.20/RELEASE_NOTES.md +8 -0
  9. oe_python_template-0.6.20/VERSION +1 -0
  10. oe_python_template-0.6.20/docs/source/_static/openapi_v2.json +262 -0
  11. oe_python_template-0.6.20/docs/source/api_v1.rst.jinja +9 -0
  12. oe_python_template-0.6.20/docs/source/api_v2.rst.jinja +9 -0
  13. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/docs/source/conf.py +1 -1
  14. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/examples/notebook.py +1 -1
  15. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/pyproject.toml +2 -2
  16. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/sonar-project.properties +1 -1
  17. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/template/.github/workflows/docker-image-build-publish.yml.jinja +8 -8
  18. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/template/.github/workflows/package-build-publish-release.yml.jinja +4 -4
  19. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/template/.github/workflows/test-and-report.yml.jinja +7 -7
  20. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/template/CONTRIBUTING.md.jinja +7 -0
  21. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/template/examples/notebook.py.jinja +1 -1
  22. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/uv.lock +1 -1
  23. oe_python_template-0.6.18/RELEASE_NOTES.md +0 -14
  24. oe_python_template-0.6.18/VERSION +0 -1
  25. oe_python_template-0.6.18/docs/source/_static/openapi_v2.json +0 -62
  26. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/.act-env-public +0 -0
  27. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/.devcontainer/Dockerfile +0 -0
  28. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/.devcontainer/devcontainer.json +0 -0
  29. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/.devcontainer/onCreateCommand +0 -0
  30. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/.devcontainer/postAttachCommand +0 -0
  31. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/.devcontainer/postCreateCommand +0 -0
  32. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/.env.example +0 -0
  33. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/.github/copilot-instructions.md +0 -0
  34. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/.github/dependabot.yml +0 -0
  35. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/.github/prompts/.keep +0 -0
  36. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/.github/workflows/codeql.yml +0 -0
  37. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/.gitignore +0 -0
  38. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/.pre-commit-config.yaml +0 -0
  39. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/.python-version +0 -0
  40. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/.readthedocs.yml +0 -0
  41. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/.secrets.baseline +0 -0
  42. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/.vscode/extensions.json +0 -0
  43. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/.vscode/settings.json +0 -0
  44. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/CODEOWNERS +0 -0
  45. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/CODE_STYLE.md +0 -0
  46. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/Dockerfile +0 -0
  47. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/LICENSE +0 -0
  48. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/README.md +0 -0
  49. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/SECURITY.md +0 -0
  50. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/SERVICE_CONNECTIONS.md +0 -0
  51. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/bin/git-cliff +0 -0
  52. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/codecov.yml +0 -0
  53. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/compose.yaml +0 -0
  54. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/copier.yml +0 -0
  55. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/docs/Makefile +0 -0
  56. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/docs/make.bat +0 -0
  57. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/docs/partials/README_footer.md +0 -0
  58. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/docs/partials/README_header.md +0 -0
  59. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/docs/partials/README_main.md +0 -0
  60. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/docs/source/_static/.keep +0 -0
  61. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/docs/source/_static/openapi_v1.json +0 -0
  62. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/docs/source/_static/openapi_v1.yaml +0 -0
  63. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/docs/source/_static/openapi_v2.yaml +0 -0
  64. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/docs/source/api_v1.rst +0 -0
  65. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/docs/source/api_v2.rst +0 -0
  66. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/docs/source/code-style.rst +0 -0
  67. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/docs/source/contributing.rst +0 -0
  68. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/docs/source/index.rst +0 -0
  69. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/docs/source/latexmkrc +0 -0
  70. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/docs/source/main.rst +0 -0
  71. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/docs/source/reference.rst +0 -0
  72. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/docs/source/release-notes.rst +0 -0
  73. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/docs/source/security.rst +0 -0
  74. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/examples/__init__.py +0 -0
  75. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/examples/notebook.ipynb +0 -0
  76. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/examples/script.py +0 -0
  77. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/examples/streamlit.py +0 -0
  78. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/git-cliff-2.7.0/CHANGELOG.md +0 -0
  79. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/git-cliff-2.7.0/LICENSE-APACHE +0 -0
  80. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/git-cliff-2.7.0/LICENSE-MIT +0 -0
  81. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/git-cliff-2.7.0/README.md +0 -0
  82. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/git-cliff-2.7.0/completions/_git-cliff +0 -0
  83. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/git-cliff-2.7.0/completions/_git-cliff.ps1 +0 -0
  84. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/git-cliff-2.7.0/completions/git-cliff.bash +0 -0
  85. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/git-cliff-2.7.0/completions/git-cliff.elv +0 -0
  86. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/git-cliff-2.7.0/completions/git-cliff.fish +0 -0
  87. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/git-cliff-2.7.0/git-cliff-completions +0 -0
  88. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/git-cliff-2.7.0/git-cliff-mangen +0 -0
  89. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/git-cliff-2.7.0/man/git-cliff.1 +0 -0
  90. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/git-cliff-2.7.0-x86_64-unknown-linux-gnu.tar.gz +0 -0
  91. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/github-action-run +0 -0
  92. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/logo.png +0 -0
  93. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/n +0 -0
  94. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/noxfile.py +0 -0
  95. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/renovate.json +0 -0
  96. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/reports/.keep +0 -0
  97. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/src/oe_python_template/__init__.py +0 -0
  98. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/src/oe_python_template/api.py +0 -0
  99. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/src/oe_python_template/cli.py +0 -0
  100. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/src/oe_python_template/constants.py +0 -0
  101. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/src/oe_python_template/service.py +0 -0
  102. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/template/.act-env-public.jinja +0 -0
  103. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/template/.devcontainer/Dockerfile.jinja +0 -0
  104. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/template/.devcontainer/devcontainer.json.jinja +0 -0
  105. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/template/.devcontainer/onCreateCommand.jinja +0 -0
  106. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/template/.devcontainer/postAttachCommand.jinja +0 -0
  107. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/template/.devcontainer/postCreateCommand.jinja +0 -0
  108. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/template/.env.example.jinja +0 -0
  109. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/template/.github/copilot-instructions.md +0 -0
  110. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/template/.github/dependabot.yml +0 -0
  111. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/template/.github/workflows/codeql.yml +0 -0
  112. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/template/.gitignore.jinja +0 -0
  113. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/template/.pre-commit-config.yaml.jinja +0 -0
  114. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/template/.python-version +0 -0
  115. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/template/.readthedocs.yml.jinja +0 -0
  116. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/template/.vscode/extensions.json +0 -0
  117. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/template/.vscode/settings.json.jinja +0 -0
  118. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/template/CHANGELOG.md +0 -0
  119. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/template/CODEOWNERS.jinja +0 -0
  120. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/template/CODE_STYLE.md.jinja +0 -0
  121. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/template/Dockerfile.jinja +0 -0
  122. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/template/LICENSE.jinja +0 -0
  123. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/template/README.md +0 -0
  124. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/template/SECURITY.md.jinja +0 -0
  125. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/template/SERVICE_CONNECTIONS.md.jinja +0 -0
  126. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/template/VERSION +0 -0
  127. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/template/codecov.yml.jinja +0 -0
  128. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/template/compose.yaml.jinja +0 -0
  129. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/template/docs/Makefile.jinja +0 -0
  130. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/template/docs/make.bat.jinja +0 -0
  131. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/template/docs/partials/README_footer.md.jinja +0 -0
  132. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/template/docs/partials/README_header.md.jinja +0 -0
  133. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/template/docs/partials/README_main.md.jinja +0 -0
  134. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/template/docs/source/_static/.keep +0 -0
  135. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/template/docs/source/api_v1.rst.jinja +0 -0
  136. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/template/docs/source/api_v2.rst.jinja +0 -0
  137. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/template/docs/source/code-style.rst.jinja +0 -0
  138. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/template/docs/source/conf.py.jinja +0 -0
  139. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/template/docs/source/contributing.rst.jinja +0 -0
  140. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/template/docs/source/index.rst.jinja +0 -0
  141. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/template/docs/source/main.rst.jinja +0 -0
  142. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/template/docs/source/reference.rst.jinja +0 -0
  143. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/template/docs/source/release-notes.rst.jinja +0 -0
  144. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/template/docs/source/security.rst.jinja +0 -0
  145. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/template/examples/__init__.py.jinja +0 -0
  146. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/template/examples/notebook.ipynb.jinja +0 -0
  147. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/template/examples/script.py.jinja +0 -0
  148. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/template/examples/streamlit.py.jinja +0 -0
  149. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/template/github-action-run.jinja +0 -0
  150. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/template/logo.png +0 -0
  151. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/template/n.jinja +0 -0
  152. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/template/noxfile.py.jinja +0 -0
  153. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/template/pyproject.toml.jinja +0 -0
  154. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/template/renovate.json +0 -0
  155. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/template/reports/.keep +0 -0
  156. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/template/sonar-project.properties.jinja +0 -0
  157. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/template/src/{{ project_name_snake_case }}/__init__.py.jinja +0 -0
  158. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/template/src/{{ project_name_snake_case }}/api.py.jinja +0 -0
  159. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/template/src/{{ project_name_snake_case }}/cli.py.jinja +0 -0
  160. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/template/src/{{ project_name_snake_case }}/constants.py.jinja +0 -0
  161. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/template/src/{{ project_name_snake_case }}/service.py.jinja +0 -0
  162. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/template/tests/__init__.py.jinja +0 -0
  163. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/template/tests/api_test.py.jinja +0 -0
  164. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/template/tests/cli_test.py.jinja +0 -0
  165. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/template/tests/fixtures/.keep +0 -0
  166. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/template/{{_copier_conf.answers_file}}.jinja +0 -0
  167. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/tests/__init__.py +0 -0
  168. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/tests/api_test.py +0 -0
  169. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/tests/cli_test.py +0 -0
  170. {oe_python_template-0.6.18 → oe_python_template-0.6.20}/tests/fixtures/.keep +0 -0
@@ -1,4 +1,4 @@
1
- _commit: v0.6.17-7-g3aa4b83
1
+ _commit: v0.6.19-1-g15d3e1f
2
2
  _src_path: .
3
3
  author_email: helmuthva@gmail.com
4
4
  author_github_username: helmut-hoffer-von-ankershoffen
@@ -21,18 +21,18 @@ jobs:
21
21
  id-token: write
22
22
  steps:
23
23
  - name: Checkout
24
- uses: actions/checkout@v4
24
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
25
25
 
26
26
  - name: Set up QEMU
27
- uses: docker/setup-qemu-action@v3
27
+ uses: docker/setup-qemu-action@29109295f81e9208d7d86ff1c6c12d2833863392 # v3.6.0
28
28
 
29
29
  - name: Set up Docker Buildx
30
- uses: docker/setup-buildx-action@v3
30
+ uses: docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2 # v3.10.0
31
31
 
32
32
 
33
33
 
34
34
  - name: Log in to Docker Hub
35
- uses: docker/login-action@v3
35
+ uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3.4.0
36
36
  with:
37
37
 
38
38
  username: ${{ secrets.DOCKER_USERNAME }}
@@ -41,7 +41,7 @@ jobs:
41
41
 
42
42
 
43
43
  - name: Log in to GitHub container registry
44
- uses: docker/login-action@v3
44
+ uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3.4.0
45
45
  with:
46
46
  registry: ghcr.io
47
47
 
@@ -51,7 +51,7 @@ jobs:
51
51
 
52
52
  - name: Extract metadata (tags, labels) for Docker
53
53
  id: meta
54
- uses: docker/metadata-action@v5
54
+ uses: docker/metadata-action@902fa8ec7d6ecbf8d84d538b9b233a880e428804 # v5.7.0
55
55
  with:
56
56
 
57
57
 
@@ -73,7 +73,7 @@ jobs:
73
73
 
74
74
  - name: Build and push Docker image
75
75
  id: push
76
- uses: docker/build-push-action@v6
76
+ uses: docker/build-push-action@471d1dc4e07e5cdedd4c2171150001c434f0b7a4 # v6.15.0
77
77
  with:
78
78
  context: .
79
79
  file: ./Dockerfile
@@ -86,10 +86,8 @@ jobs:
86
86
 
87
87
 
88
88
  - name: Generate artifact attestation
89
- uses: actions/attest-build-provenance@v2
89
+ uses: actions/attest-build-provenance@c074443f1aee8d4aeeae555aebba3282517141b2 # v2.2.3
90
90
  with:
91
91
  subject-name: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
92
92
  subject-digest: ${{ steps.push.outputs.digest }}
93
93
  push-to-registry: true
94
-
95
-
@@ -15,12 +15,12 @@ jobs:
15
15
  packages: read
16
16
  steps:
17
17
  - name: Checkout
18
- uses: actions/checkout@v4
18
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
19
19
  with:
20
20
  fetch-depth: 0
21
21
 
22
22
  - name: Generate release notes
23
- uses: orhun/git-cliff-action@v4
23
+ uses: orhun/git-cliff-action@4a4a951bc43fafe41cd2348d181853f52356bee7 # v4.4.2
24
24
  id: git-cliff
25
25
  with:
26
26
  config: pyproject.toml
@@ -34,9 +34,9 @@ jobs:
34
34
 
35
35
 
36
36
  - name: Install uv
37
- uses: astral-sh/setup-uv@v5
37
+ uses: astral-sh/setup-uv@f94ec6bedd8674c4426838e6b50417d36b6ab231 # v5.3.1
38
38
  with:
39
- version: "0.5.9"
39
+ version: "0.6.7"
40
40
  cache-dependency-glob: uv.lock
41
41
  enable-cache: true
42
42
 
@@ -17,7 +17,7 @@ jobs:
17
17
  id-token: write
18
18
  steps:
19
19
  - name: Checkout
20
- uses: actions/checkout@v4
20
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
21
21
  with:
22
22
  fetch-depth: 0
23
23
 
@@ -30,7 +30,7 @@ jobs:
30
30
  sudo apt-get install -y curl jq xsltproc gnupg2 libcairo2
31
31
 
32
32
  - name: Install uv (python package manager)
33
- uses: astral-sh/setup-uv@v5
33
+ uses: astral-sh/setup-uv@f94ec6bedd8674c4426838e6b50417d36b6ab231 # v5.3.1
34
34
  with:
35
35
  version: "0.5.9"
36
36
  enable-cache: true
@@ -58,7 +58,7 @@ jobs:
58
58
  echo "Development build - Current version in pyproject.toml: $TOML_VERSION"
59
59
 
60
60
  - name: Create .env file
61
- uses: SpicyPizza/create-envfile@v2.0
61
+ uses: SpicyPizza/create-envfile@ace6d4f5d7802b600276c23ca417e669f1a06f6f # v2.0.3
62
62
  with:
63
63
  envkey_ENV_KEY: "ENV_VALUE"
64
64
  fail_on_empty: true
@@ -80,7 +80,7 @@ jobs:
80
80
  uv run nox
81
81
 
82
82
  - name: Upload test results
83
- uses: actions/upload-artifact@v4
83
+ uses: actions/upload-artifact@4cec3d8aa04e39d1a68397de0c4cd6fb9dce8ec1 # v4.6.1
84
84
  if: ${{ always() && (env.GITHUB_WORKFLOW_RUNTIME != 'ACT') }}
85
85
  with:
86
86
  name: test-results
@@ -94,7 +94,7 @@ jobs:
94
94
  retention-days: 30
95
95
 
96
96
  - name: Upload coverage reports to Codecov
97
- uses: codecov/codecov-action@v5
97
+ uses: codecov/codecov-action@0565863a31f2c772f9f0395002a31e3f06189574 # v5.4.0
98
98
  if: ${{ !cancelled() && (env.GITHUB_WORKFLOW_RUNTIME != 'ACT') }}
99
99
  with:
100
100
  token: ${{ secrets.CODECOV_TOKEN }}
@@ -102,12 +102,12 @@ jobs:
102
102
 
103
103
  - name: Upload test results to Codecov
104
104
  if: ${{ !cancelled() && (env.GITHUB_WORKFLOW_RUNTIME != 'ACT') }}
105
- uses: codecov/test-results-action@v1
105
+ uses: codecov/test-results-action@f2dba722c67b86c6caa034178c6e4d35335f6706 # v1.1.0
106
106
  with:
107
107
  token: ${{ secrets.CODECOV_TOKEN }}
108
108
  - name: SonarQube Scan
109
109
  if: ${{ !cancelled() && (env.GITHUB_WORKFLOW_RUNTIME != 'ACT') }}
110
- uses: SonarSource/sonarqube-scan-action@v5
110
+ uses: SonarSource/sonarqube-scan-action@0303d6b62e310685c0e34d0b9cde218036885c4d # v5.0.0
111
111
  env:
112
112
  GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
113
113
  SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
@@ -1,6 +1,20 @@
1
1
  [🧠 OE Python Template](https://oe-python-template.readthedocs.io/en/latest/)
2
2
 
3
- ## [0.6.18](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/compare/v0.6.17..0.6.18) - 2025-03-18
3
+ ## [0.6.20](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/compare/v0.6.19..0.6.20) - 2025-03-18
4
+
5
+ ### 🐛 Bug Fixes
6
+
7
+ - *(codeql)* Remaining pin - ([c31a05b](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/commit/c31a05bc09602cac72799a5e1c9e2a574788ce91))
8
+
9
+
10
+ ## [0.6.19](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/compare/v0.6.18..v0.6.19) - 2025-03-18
11
+
12
+ ### 🚜 Refactor
13
+
14
+ - *(codeql)* Fix - ([0af319f](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/commit/0af319fcf7a24c06cb3cacdfa3140e6121830e09))
15
+
16
+
17
+ ## [0.6.18](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/compare/v0.6.17..v0.6.18) - 2025-03-18
4
18
 
5
19
  ### 📚 Documentation
6
20
 
@@ -12,9 +26,6 @@
12
26
  - Debug rtd - ([bc760ac](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/commit/bc760aca603950b8dd1cf5c77241b2f8ccc091d2))
13
27
  - Debug rtd pdf link - ([192df7f](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/commit/192df7f2552180eb721fd21b32f9e074c0f35073))
14
28
 
15
- ## New Contributors ❤️
16
-
17
- * @helmut-hoffer-von-ankershoffen made their first contribution
18
29
 
19
30
  ## [0.6.17](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/compare/v0.6.16..v0.6.17) - 2025-03-18
20
31
 
@@ -20,6 +20,7 @@ fi
20
20
  which jq &> /dev/null || brew install jq
21
21
  which xmllint &> /dev/null || brew install xmllint
22
22
  which act &> /dev/null || brew install act
23
+ which pinact &> /dev/null || brew install pinact
23
24
  uv run pre-commit install # install pre-commit hooks, see https://pre-commit.com/
24
25
  ```
25
26
 
@@ -130,6 +131,12 @@ docker build -t oe-python-template .
130
131
  docker run --env THE_VAR=THE_VALUE oe-python-template --help
131
132
  ```
132
133
 
134
+ ### Pinning github actions
135
+
136
+ ```shell
137
+ pinact run # See https://dev.to/suzukishunsuke/pin-github-actions-to-a-full-length-commit-sha-for-security-2n7p
138
+ ```
139
+
133
140
  ### Copier
134
141
 
135
142
  Update from template
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: oe-python-template
3
- Version: 0.6.18
3
+ Version: 0.6.20
4
4
  Summary: 🧠 Copier template to scaffold Python projects compliant with best practices and modern tooling.
5
5
  Project-URL: Homepage, https://oe-python-template.readthedocs.io/en/latest/
6
6
  Project-URL: Documentation, https://oe-python-template.readthedocs.io/en/latest/
@@ -0,0 +1,8 @@
1
+ ## [0.6.20](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/compare/v0.6.19..v0.6.20) - 2025-03-18
2
+
3
+ ### 🐛 Bug Fixes
4
+
5
+ - *(codeql)* Remaining pin - ([c31a05b](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/commit/c31a05bc09602cac72799a5e1c9e2a574788ce91))
6
+
7
+
8
+
@@ -0,0 +1 @@
1
+ 0.6.20
@@ -0,0 +1,262 @@
1
+ {
2
+ "openapi": "3.1.0",
3
+ "info": {
4
+ "title": "OE Python Template",
5
+ "termsOfService": "https://oe-python-template.readthedocs.io/en/latest/",
6
+ "contact": {
7
+ "name": "Helmut Hoffer von Ankershoffen",
8
+ "url": "https://github.com/helmut-hoffer-von-ankershoffen",
9
+ "email": "helmuthva@gmail.com"
10
+ },
11
+ "version": "2.0.0"
12
+ },
13
+ "paths": {
14
+ "/health": {
15
+ "get": {
16
+ "tags": [
17
+ "Observability"
18
+ ],
19
+ "summary": "Health",
20
+ "description": "Check the health of the service.\n\nThis endpoint returns the health status of the service.\nThe health status can be either UP or DOWN.\nIf the service is healthy, the status will be UP.\nIf the service is unhealthy, the status will be DOWN and a reason will be provided.\nThe response will have a 200 OK status code if the service is healthy,\nand a 500 Internal Server Error status code if the service is unhealthy.\n\nReturns:\n Health: The health status of the service.",
21
+ "operationId": "health_health_get",
22
+ "responses": {
23
+ "200": {
24
+ "description": "Successful Response",
25
+ "content": {
26
+ "application/json": {
27
+ "schema": {
28
+ "$ref": "#/components/schemas/Health"
29
+ }
30
+ }
31
+ }
32
+ }
33
+ }
34
+ }
35
+ },
36
+ "/healthz": {
37
+ "get": {
38
+ "tags": [
39
+ "Observability"
40
+ ],
41
+ "summary": "Health",
42
+ "description": "Check the health of the service.\n\nThis endpoint returns the health status of the service.\nThe health status can be either UP or DOWN.\nIf the service is healthy, the status will be UP.\nIf the service is unhealthy, the status will be DOWN and a reason will be provided.\nThe response will have a 200 OK status code if the service is healthy,\nand a 500 Internal Server Error status code if the service is unhealthy.\n\nReturns:\n Health: The health status of the service.",
43
+ "operationId": "health_healthz_get",
44
+ "responses": {
45
+ "200": {
46
+ "description": "Successful Response",
47
+ "content": {
48
+ "application/json": {
49
+ "schema": {
50
+ "$ref": "#/components/schemas/Health"
51
+ }
52
+ }
53
+ }
54
+ }
55
+ }
56
+ }
57
+ },
58
+ "/hello-world": {
59
+ "get": {
60
+ "tags": [
61
+ "Basics"
62
+ ],
63
+ "summary": "Hello World",
64
+ "description": "Return a hello world message.\n\nReturns:\n HelloWorldResponse: A response containing the hello world message.",
65
+ "operationId": "hello_world_hello_world_get",
66
+ "responses": {
67
+ "200": {
68
+ "description": "Successful Response",
69
+ "content": {
70
+ "application/json": {
71
+ "schema": {
72
+ "$ref": "#/components/schemas/HelloWorldResponse"
73
+ }
74
+ }
75
+ }
76
+ }
77
+ }
78
+ }
79
+ },
80
+ "/echo": {
81
+ "post": {
82
+ "tags": [
83
+ "Basics"
84
+ ],
85
+ "summary": "Echo V2",
86
+ "description": "Echo back the provided utterance.\n\nArgs:\n request (Utterance): The request containing the utterance to echo back.\n\nReturns:\n EchoResponse: A response containing the echoed utterance.\n\nRaises:\n 422 Unprocessable Entity: If utterance is not provided or empty.",
87
+ "operationId": "echo_v2_echo_post",
88
+ "requestBody": {
89
+ "content": {
90
+ "application/json": {
91
+ "schema": {
92
+ "$ref": "#/components/schemas/Utterance"
93
+ }
94
+ }
95
+ },
96
+ "required": true
97
+ },
98
+ "responses": {
99
+ "200": {
100
+ "description": "Successful Response",
101
+ "content": {
102
+ "application/json": {
103
+ "schema": {
104
+ "$ref": "#/components/schemas/EchoResponse"
105
+ }
106
+ }
107
+ }
108
+ },
109
+ "422": {
110
+ "description": "Validation Error",
111
+ "content": {
112
+ "application/json": {
113
+ "schema": {
114
+ "$ref": "#/components/schemas/HTTPValidationError"
115
+ }
116
+ }
117
+ }
118
+ }
119
+ }
120
+ }
121
+ }
122
+ },
123
+ "components": {
124
+ "schemas": {
125
+ "EchoResponse": {
126
+ "properties": {
127
+ "message": {
128
+ "type": "string",
129
+ "minLength": 1,
130
+ "title": "Message",
131
+ "description": "The message content",
132
+ "examples": [
133
+ "Hello, world!"
134
+ ]
135
+ }
136
+ },
137
+ "type": "object",
138
+ "required": [
139
+ "message"
140
+ ],
141
+ "title": "EchoResponse",
142
+ "description": "Response model for echo endpoint."
143
+ },
144
+ "HTTPValidationError": {
145
+ "properties": {
146
+ "detail": {
147
+ "items": {
148
+ "$ref": "#/components/schemas/ValidationError"
149
+ },
150
+ "type": "array",
151
+ "title": "Detail"
152
+ }
153
+ },
154
+ "type": "object",
155
+ "title": "HTTPValidationError"
156
+ },
157
+ "Health": {
158
+ "properties": {
159
+ "status": {
160
+ "$ref": "#/components/schemas/_HealthStatus"
161
+ },
162
+ "reason": {
163
+ "anyOf": [
164
+ {
165
+ "type": "string"
166
+ },
167
+ {
168
+ "type": "null"
169
+ }
170
+ ],
171
+ "title": "Reason"
172
+ }
173
+ },
174
+ "type": "object",
175
+ "required": [
176
+ "status"
177
+ ],
178
+ "title": "Health",
179
+ "description": "Health status model."
180
+ },
181
+ "HelloWorldResponse": {
182
+ "properties": {
183
+ "message": {
184
+ "type": "string",
185
+ "title": "Message",
186
+ "description": "The hello world message",
187
+ "examples": [
188
+ "Hello, world!"
189
+ ]
190
+ }
191
+ },
192
+ "type": "object",
193
+ "required": [
194
+ "message"
195
+ ],
196
+ "title": "HelloWorldResponse",
197
+ "description": "Response model for hello-world endpoint."
198
+ },
199
+ "Utterance": {
200
+ "properties": {
201
+ "utterance": {
202
+ "type": "string",
203
+ "minLength": 1,
204
+ "title": "Utterance",
205
+ "description": "The utterance to echo back",
206
+ "examples": [
207
+ "Hello, world!"
208
+ ]
209
+ }
210
+ },
211
+ "type": "object",
212
+ "required": [
213
+ "utterance"
214
+ ],
215
+ "title": "Utterance",
216
+ "description": "Request model for echo endpoint."
217
+ },
218
+ "ValidationError": {
219
+ "properties": {
220
+ "loc": {
221
+ "items": {
222
+ "anyOf": [
223
+ {
224
+ "type": "string"
225
+ },
226
+ {
227
+ "type": "integer"
228
+ }
229
+ ]
230
+ },
231
+ "type": "array",
232
+ "title": "Location"
233
+ },
234
+ "msg": {
235
+ "type": "string",
236
+ "title": "Message"
237
+ },
238
+ "type": {
239
+ "type": "string",
240
+ "title": "Error Type"
241
+ }
242
+ },
243
+ "type": "object",
244
+ "required": [
245
+ "loc",
246
+ "msg",
247
+ "type"
248
+ ],
249
+ "title": "ValidationError"
250
+ },
251
+ "_HealthStatus": {
252
+ "type": "string",
253
+ "enum": [
254
+ "UP",
255
+ "DOWN"
256
+ ],
257
+ "title": "_HealthStatus",
258
+ "description": "Health status enumeration."
259
+ }
260
+ }
261
+ }
262
+ }
@@ -0,0 +1,9 @@
1
+ API V1
2
+ ======
3
+
4
+ .. only:: html
5
+
6
+ .. swagger-plugin:: _static/openapi_v1.yaml
7
+ :full-page:
8
+
9
+ Visit the `Interactive API Documentation <https://oe-python-template.readthedocs.io/en/latest/api_v1.html>`_
@@ -0,0 +1,9 @@
1
+ API V2
2
+ ======
3
+
4
+ .. only:: html
5
+
6
+ .. swagger-plugin:: _static/openapi_v2.yaml
7
+ :full-page:
8
+
9
+ Visit the `Interactive API Documentation <https://oe-python-template.readthedocs.io/en/latest/api_v2.html>`_
@@ -29,7 +29,7 @@ extensions = [
29
29
  project = "oe-python-template"
30
30
  author = "Helmut Hoffer von Ankershoffen"
31
31
  copyright = f" (c) 2025-{datetime.now(UTC).year}, {author}" # noqa: A001
32
- version = "0.6.18"
32
+ version = "0.6.20"
33
33
  release = version
34
34
  github_username = "helmut-hoffer-von-ankershoffen"
35
35
  github_repository = "oe-python-template"
@@ -10,7 +10,7 @@ def _():
10
10
 
11
11
  service = Service()
12
12
  message = service.get_hello_world()
13
- message # type: ignore
13
+ print(message)
14
14
  return Service, message, service
15
15
 
16
16
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "oe-python-template"
3
- version = "0.6.18"
3
+ version = "0.6.20"
4
4
  description = "🧠 Copier template to scaffold Python projects compliant with best practices and modern tooling."
5
5
  readme = "README.md"
6
6
  authors = [
@@ -242,7 +242,7 @@ source = ["src/"]
242
242
 
243
243
 
244
244
  [tool.bumpversion]
245
- current_version = "0.6.18"
245
+ current_version = "0.6.20"
246
246
  parse = "(?P<major>\\d+)\\.(?P<minor>\\d+)\\.(?P<patch>\\d+)"
247
247
  serialize = ["{major}.{minor}.{patch}"]
248
248
  search = "{current_version}"
@@ -1,6 +1,6 @@
1
1
  sonar.projectKey=helmut-hoffer-von-ankershoffen_oe-python-template
2
2
  sonar.organization=helmut-hoffer-von-ankershoffen
3
- sonar.projectVersion=0.6.18
3
+ sonar.projectVersion=0.6.20
4
4
  sonar.projectDescription=🧠 Copier template to scaffold Python projects compliant with best practices and modern tooling.
5
5
  sonar.links.homepage=https://oe-python-template.readthedocs.io/en/latest/
6
6
  sonar.links.scm=https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template
@@ -21,18 +21,18 @@ jobs:
21
21
  id-token: write
22
22
  steps:
23
23
  - name: Checkout
24
- uses: actions/checkout@v4
24
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
25
25
 
26
26
  - name: Set up QEMU
27
- uses: docker/setup-qemu-action@v3
27
+ uses: docker/setup-qemu-action@29109295f81e9208d7d86ff1c6c12d2833863392 # v3.6.0
28
28
 
29
29
  - name: Set up Docker Buildx
30
- uses: docker/setup-buildx-action@v3
30
+ uses: docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2 # v3.10.0
31
31
 
32
32
 
33
33
  {% if docker_io_enabled %}
34
34
  - name: Log in to Docker Hub
35
- uses: docker/login-action@v3
35
+ uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3.4.0
36
36
  with:
37
37
  {% raw %}
38
38
  username: ${{ secrets.DOCKER_USERNAME }}
@@ -41,7 +41,7 @@ jobs:
41
41
  {% endif %}
42
42
 
43
43
  - name: Log in to GitHub container registry
44
- uses: docker/login-action@v3
44
+ uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3.4.0
45
45
  with:
46
46
  registry: ghcr.io
47
47
  {% raw %}
@@ -51,7 +51,7 @@ jobs:
51
51
 
52
52
  - name: Extract metadata (tags, labels) for Docker
53
53
  id: meta
54
- uses: docker/metadata-action@v5
54
+ uses: docker/metadata-action@902fa8ec7d6ecbf8d84d538b9b233a880e428804 # v5.7.0
55
55
  with:
56
56
  {% if docker_io_enabled %}
57
57
  {% raw %}
@@ -78,7 +78,7 @@ jobs:
78
78
  {% raw %}
79
79
  - name: Build and push Docker image
80
80
  id: push
81
- uses: docker/build-push-action@v6
81
+ uses: docker/build-push-action@471d1dc4e07e5cdedd4c2171150001c434f0b7a4 # v6.15.0
82
82
  with:
83
83
  context: .
84
84
  file: ./Dockerfile
@@ -91,7 +91,7 @@ jobs:
91
91
  {% if docker_io_enabled %}
92
92
  {% raw %}
93
93
  - name: Generate artifact attestation
94
- uses: actions/attest-build-provenance@v2
94
+ uses: actions/attest-build-provenance@c074443f1aee8d4aeeae555aebba3282517141b2 # v2.2.3
95
95
  with:
96
96
  subject-name: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
97
97
  subject-digest: ${{ steps.push.outputs.digest }}
@@ -15,12 +15,12 @@ jobs:
15
15
  packages: read
16
16
  steps:
17
17
  - name: Checkout
18
- uses: actions/checkout@v4
18
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
19
19
  with:
20
20
  fetch-depth: 0
21
21
 
22
22
  - name: Generate release notes
23
- uses: orhun/git-cliff-action@v4
23
+ uses: orhun/git-cliff-action@4a4a951bc43fafe41cd2348d181853f52356bee7 # v4.4.2
24
24
  id: git-cliff
25
25
  with:
26
26
  config: pyproject.toml
@@ -34,9 +34,9 @@ jobs:
34
34
 
35
35
 
36
36
  - name: Install uv
37
- uses: astral-sh/setup-uv@v5
37
+ uses: astral-sh/setup-uv@f94ec6bedd8674c4426838e6b50417d36b6ab231 # v5.3.1
38
38
  with:
39
- version: "0.5.9"
39
+ version: "0.6.7"
40
40
  cache-dependency-glob: uv.lock
41
41
  enable-cache: true
42
42