cici-tools 0.19.0__tar.gz → 0.19.1__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 (216) hide show
  1. {cici_tools-0.19.0 → cici_tools-0.19.1}/.gitlab-ci.yml +2 -2
  2. {cici_tools-0.19.0 → cici_tools-0.19.1}/.pre-commit-config.yaml +3 -3
  3. {cici_tools-0.19.0 → cici_tools-0.19.1}/PKG-INFO +1 -1
  4. {cici_tools-0.19.0 → cici_tools-0.19.1}/cici/_version.py +3 -3
  5. {cici_tools-0.19.0 → cici_tools-0.19.1}/cici/providers/gitlab/models.py +1 -1
  6. {cici_tools-0.19.0 → cici_tools-0.19.1}/cici_tools.egg-info/PKG-INFO +1 -1
  7. {cici_tools-0.19.0 → cici_tools-0.19.1}/cici_tools.egg-info/SOURCES.txt +3 -0
  8. cici_tools-0.19.1/tests/fixtures/gitlab/image/.cici/.gitlab-ci.yml +27 -0
  9. cici_tools-0.19.1/tests/fixtures/gitlab/image/.cici/config.yaml +14 -0
  10. cici_tools-0.19.1/tests/fixtures/gitlab/image/image-check.yml +31 -0
  11. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/test_cli.py +4 -1
  12. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/test_resolve_targets.py +2 -4
  13. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/test_yaml_style.py +96 -1
  14. {cici_tools-0.19.0 → cici_tools-0.19.1}/.cici/.gitlab-ci.yml +0 -0
  15. {cici_tools-0.19.0 → cici_tools-0.19.1}/.cici/README.md.j2 +0 -0
  16. {cici_tools-0.19.0 → cici_tools-0.19.1}/.cici/config.yaml +0 -0
  17. {cici_tools-0.19.0 → cici_tools-0.19.1}/.dockerignore +0 -0
  18. {cici_tools-0.19.0 → cici_tools-0.19.1}/.gitignore +0 -0
  19. {cici_tools-0.19.0 → cici_tools-0.19.1}/.licenserc.yaml +0 -0
  20. {cici_tools-0.19.0 → cici_tools-0.19.1}/.pre-commit-hooks.yaml +0 -0
  21. {cici_tools-0.19.0 → cici_tools-0.19.1}/.prettierignore +0 -0
  22. {cici_tools-0.19.0 → cici_tools-0.19.1}/.prettierrc.yaml +0 -0
  23. {cici_tools-0.19.0 → cici_tools-0.19.1}/.secrets.baseline +0 -0
  24. {cici_tools-0.19.0 → cici_tools-0.19.1}/Dockerfile +0 -0
  25. {cici_tools-0.19.0 → cici_tools-0.19.1}/LICENSE +0 -0
  26. {cici_tools-0.19.0 → cici_tools-0.19.1}/MANIFEST.in +0 -0
  27. {cici_tools-0.19.0 → cici_tools-0.19.1}/NOTICE +0 -0
  28. {cici_tools-0.19.0 → cici_tools-0.19.1}/README.md +0 -0
  29. {cici_tools-0.19.0 → cici_tools-0.19.1}/cici/__init__.py +0 -0
  30. {cici_tools-0.19.0 → cici_tools-0.19.1}/cici/__main__.py +0 -0
  31. {cici_tools-0.19.0 → cici_tools-0.19.1}/cici/cli/__init__.py +0 -0
  32. {cici_tools-0.19.0 → cici_tools-0.19.1}/cici/cli/bundle.py +0 -0
  33. {cici_tools-0.19.0 → cici_tools-0.19.1}/cici/cli/readme.py +0 -0
  34. {cici_tools-0.19.0 → cici_tools-0.19.1}/cici/cli/schema.py +0 -0
  35. {cici_tools-0.19.0 → cici_tools-0.19.1}/cici/cli/update.py +0 -0
  36. {cici_tools-0.19.0 → cici_tools-0.19.1}/cici/config/__init__.py +0 -0
  37. {cici_tools-0.19.0 → cici_tools-0.19.1}/cici/config/project/__init__.py +0 -0
  38. {cici_tools-0.19.0 → cici_tools-0.19.1}/cici/config/project/models.py +0 -0
  39. {cici_tools-0.19.0 → cici_tools-0.19.1}/cici/config/project/serializers.py +0 -0
  40. {cici_tools-0.19.0 → cici_tools-0.19.1}/cici/config/user.py +0 -0
  41. {cici_tools-0.19.0 → cici_tools-0.19.1}/cici/constants.py +0 -0
  42. {cici_tools-0.19.0 → cici_tools-0.19.1}/cici/exceptions.py +0 -0
  43. {cici_tools-0.19.0 → cici_tools-0.19.1}/cici/main.py +0 -0
  44. {cici_tools-0.19.0 → cici_tools-0.19.1}/cici/paths.py +0 -0
  45. {cici_tools-0.19.0 → cici_tools-0.19.1}/cici/providers/__init__.py +0 -0
  46. {cici_tools-0.19.0 → cici_tools-0.19.1}/cici/providers/gitlab/__init__.py +0 -0
  47. {cici_tools-0.19.0 → cici_tools-0.19.1}/cici/providers/gitlab/constants.py +0 -0
  48. {cici_tools-0.19.0 → cici_tools-0.19.1}/cici/providers/gitlab/normalizers.py +0 -0
  49. {cici_tools-0.19.0 → cici_tools-0.19.1}/cici/providers/gitlab/serializers.py +0 -0
  50. {cici_tools-0.19.0 → cici_tools-0.19.1}/cici/providers/gitlab/utils.py +0 -0
  51. {cici_tools-0.19.0 → cici_tools-0.19.1}/cici/providers/gitlab/yaml_style.py +0 -0
  52. {cici_tools-0.19.0 → cici_tools-0.19.1}/cici/py.typed +0 -0
  53. {cici_tools-0.19.0 → cici_tools-0.19.1}/cici/schema/LICENSE.gitlab +0 -0
  54. {cici_tools-0.19.0 → cici_tools-0.19.1}/cici/schema/__init__.py +0 -0
  55. {cici_tools-0.19.0 → cici_tools-0.19.1}/cici/schema/gitlab-ci.json +0 -0
  56. {cici_tools-0.19.0 → cici_tools-0.19.1}/cici/templates/README.md.j2 +0 -0
  57. {cici_tools-0.19.0 → cici_tools-0.19.1}/cici/templates/__init__.py +0 -0
  58. {cici_tools-0.19.0 → cici_tools-0.19.1}/cici/templates/brief.md.j2 +0 -0
  59. {cici_tools-0.19.0 → cici_tools-0.19.1}/cici/templates/description.md.j2 +0 -0
  60. {cici_tools-0.19.0 → cici_tools-0.19.1}/cici/templates/group-list.j2 +0 -0
  61. {cici_tools-0.19.0 → cici_tools-0.19.1}/cici/templates/groups.md.j2 +0 -0
  62. {cici_tools-0.19.0 → cici_tools-0.19.1}/cici/templates/target-list.md.j2 +0 -0
  63. {cici_tools-0.19.0 → cici_tools-0.19.1}/cici/templates/target-table.md.j2 +0 -0
  64. {cici_tools-0.19.0 → cici_tools-0.19.1}/cici/templates/targets.md.j2 +0 -0
  65. {cici_tools-0.19.0 → cici_tools-0.19.1}/cici/templates/variable-list.md.j2 +0 -0
  66. {cici_tools-0.19.0 → cici_tools-0.19.1}/cici/templates/variables.md.j2 +0 -0
  67. {cici_tools-0.19.0 → cici_tools-0.19.1}/cici/utils.py +0 -0
  68. {cici_tools-0.19.0 → cici_tools-0.19.1}/cici-bundle.yml +0 -0
  69. {cici_tools-0.19.0 → cici_tools-0.19.1}/cici-readme.yml +0 -0
  70. {cici_tools-0.19.0 → cici_tools-0.19.1}/cici-update.yml +0 -0
  71. {cici_tools-0.19.0 → cici_tools-0.19.1}/cici_tools.egg-info/dependency_links.txt +0 -0
  72. {cici_tools-0.19.0 → cici_tools-0.19.1}/cici_tools.egg-info/entry_points.txt +0 -0
  73. {cici_tools-0.19.0 → cici_tools-0.19.1}/cici_tools.egg-info/requires.txt +0 -0
  74. {cici_tools-0.19.0 → cici_tools-0.19.1}/cici_tools.egg-info/top_level.txt +0 -0
  75. {cici_tools-0.19.0 → cici_tools-0.19.1}/docs/bundle.md +0 -0
  76. {cici_tools-0.19.0 → cici_tools-0.19.1}/docs/config-file.md +0 -0
  77. {cici_tools-0.19.0 → cici_tools-0.19.1}/docs/getting-started.md +0 -0
  78. {cici_tools-0.19.0 → cici_tools-0.19.1}/docs/gitlab-includes.md +0 -0
  79. {cici_tools-0.19.0 → cici_tools-0.19.1}/docs/index.md +0 -0
  80. {cici_tools-0.19.0 → cici_tools-0.19.1}/docs/install.md +0 -0
  81. {cici_tools-0.19.0 → cici_tools-0.19.1}/docs/readme.md +0 -0
  82. {cici_tools-0.19.0 → cici_tools-0.19.1}/docs/style.css +0 -0
  83. {cici_tools-0.19.0 → cici_tools-0.19.1}/docs/update.md +0 -0
  84. {cici_tools-0.19.0 → cici_tools-0.19.1}/makefile +0 -0
  85. {cici_tools-0.19.0 → cici_tools-0.19.1}/mkdocs.yml +0 -0
  86. {cici_tools-0.19.0 → cici_tools-0.19.1}/pyproject.toml +0 -0
  87. {cici_tools-0.19.0 → cici_tools-0.19.1}/requirements.txt +0 -0
  88. {cici_tools-0.19.0 → cici_tools-0.19.1}/scripts/gen-api-doc.py +0 -0
  89. {cici_tools-0.19.0 → cici_tools-0.19.1}/setup.cfg +0 -0
  90. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/extends/.cici/.gitlab-ci.yml +0 -0
  91. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/extends/simple-job.yml +0 -0
  92. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/helm/.cici/.gitlab-ci.yml +0 -0
  93. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/helm/helm-cm-push.yml +0 -0
  94. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/helm/helm-docs.yml +0 -0
  95. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/helm/helm-lint.yml +0 -0
  96. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/job-variables/.cici/.gitlab-ci.yml +0 -0
  97. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/job-variables/.cici/config.yaml +0 -0
  98. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/job-variables/opentofu-development-apply.yml +0 -0
  99. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/job-variables/opentofu-development-auto-apply.yml +0 -0
  100. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/job-variables/opentofu-development-destroy.yml +0 -0
  101. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/job-variables/opentofu-development-plan.yml +0 -0
  102. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/job-variables/opentofu-development-trivy.yml +0 -0
  103. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/job-variables/opentofu-development-validate.yml +0 -0
  104. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/job-variables/opentofu-fmt.yml +0 -0
  105. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/job-variables/opentofu-module-build.yml +0 -0
  106. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/job-variables/opentofu-module-release.yml +0 -0
  107. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/job-variables/opentofu-production-apply.yml +0 -0
  108. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/job-variables/opentofu-production-auto-apply.yml +0 -0
  109. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/job-variables/opentofu-production-destroy.yml +0 -0
  110. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/job-variables/opentofu-production-plan.yml +0 -0
  111. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/job-variables/opentofu-production-trivy.yml +0 -0
  112. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/job-variables/opentofu-production-validate.yml +0 -0
  113. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/job-variables/opentofu-staging-apply.yml +0 -0
  114. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/job-variables/opentofu-staging-auto-apply.yml +0 -0
  115. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/job-variables/opentofu-staging-destroy.yml +0 -0
  116. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/job-variables/opentofu-staging-plan.yml +0 -0
  117. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/job-variables/opentofu-staging-trivy.yml +0 -0
  118. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/job-variables/opentofu-staging-validate.yml +0 -0
  119. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/job-variables/opentofu-trivy.yml +0 -0
  120. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/job-variables/opentofu-validate.yml +0 -0
  121. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/keyword-pages/.cici/.gitlab-ci.yml +0 -0
  122. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/keyword-pages/no-pages.yml +0 -0
  123. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/keyword-pages/pages-all.yml +0 -0
  124. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/keyword-pages/pages-expire-in.yml +0 -0
  125. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/keyword-pages/pages-expires-in.yml +0 -0
  126. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/keyword-pages/pages-path-prefix.yml +0 -0
  127. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/keyword-pages/pages-publish.yml +0 -0
  128. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/keyword-pages/pages.yml +0 -0
  129. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/library-validator/.cici/README.md.j2 +0 -0
  130. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/library-validator/.cici/config.yaml +0 -0
  131. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/library-validator/README.md +0 -0
  132. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/list-anchors/.cici/.gitlab-ci.yml +0 -0
  133. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/list-anchors/install.yml +0 -0
  134. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/nested-extends/.cici/.gitlab-ci.yml +0 -0
  135. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/nested-extends/simple-job.yml +0 -0
  136. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/reports/.cici/.gitlab-ci.yml +0 -0
  137. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/reports/reports-container-scanning.yml +0 -0
  138. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/reports/reports-coverage.yml +0 -0
  139. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/reports/reports-junit.yml +0 -0
  140. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/reports/reports-terraform.yml +0 -0
  141. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/service-key/.cici/.gitlab-ci.yml +0 -0
  142. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/service-key/.cici/config.yaml +0 -0
  143. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/service-key/container-docker-multiarch-amd64.yml +0 -0
  144. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/service-key/container-docker-multiarch-arm32v6.yml +0 -0
  145. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/service-key/container-docker-multiarch-arm32v7.yml +0 -0
  146. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/service-key/container-docker-multiarch-arm64v8.yml +0 -0
  147. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/service-key/container-docker-multiarch-i386.yml +0 -0
  148. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/service-key/container-docker-multiarch-manifest.yml +0 -0
  149. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/service-key/container-docker-multiarch.yml +0 -0
  150. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/service-key/container-docker.yml +0 -0
  151. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/service-key/container-hadolint.yml +0 -0
  152. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/service-key/container-trivy.yml +0 -0
  153. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/simple/.cici/.gitlab-ci.yml +0 -0
  154. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/simple/simple-job.yml +0 -0
  155. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/stages/.cici/.gitlab-ci.yml +0 -0
  156. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/stages/simple-job.yml +0 -0
  157. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/targets-dir/.cici/.gitlab-ci.yml +0 -0
  158. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/targets-dir/.cici/config.yaml +0 -0
  159. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/targets-dir/.cici/targets/opentofu-development-apply.yaml +0 -0
  160. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/targets-dir/.cici/targets/opentofu-development-auto-apply.yaml +0 -0
  161. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/targets-dir/.cici/targets/opentofu-development-destroy.yaml +0 -0
  162. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/targets-dir/.cici/targets/opentofu-development-plan.yaml +0 -0
  163. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/targets-dir/.cici/targets/opentofu-development-validate.yaml +0 -0
  164. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/targets-dir/.cici/targets/opentofu-fmt.yaml +0 -0
  165. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/targets-dir/.cici/targets/opentofu-module-build.yaml +0 -0
  166. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/targets-dir/.cici/targets/opentofu-module-release.yaml +0 -0
  167. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/targets-dir/.cici/targets/opentofu-production-apply.yaml +0 -0
  168. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/targets-dir/.cici/targets/opentofu-production-auto-apply.yaml +0 -0
  169. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/targets-dir/.cici/targets/opentofu-production-destroy.yaml +0 -0
  170. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/targets-dir/.cici/targets/opentofu-production-plan.yaml +0 -0
  171. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/targets-dir/.cici/targets/opentofu-production-trivy.yaml +0 -0
  172. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/targets-dir/.cici/targets/opentofu-production-validate.yaml +0 -0
  173. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/targets-dir/.cici/targets/opentofu-staging-apply.yaml +0 -0
  174. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/targets-dir/.cici/targets/opentofu-staging-auto-apply.yaml +0 -0
  175. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/targets-dir/.cici/targets/opentofu-staging-destroy.yaml +0 -0
  176. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/targets-dir/.cici/targets/opentofu-staging-plan.yaml +0 -0
  177. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/targets-dir/.cici/targets/opentofu-staging-trivy.yaml +0 -0
  178. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/targets-dir/.cici/targets/opentofu-staging-validate.yaml +0 -0
  179. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/targets-dir/.cici/targets/opentofu-trivy.yaml +0 -0
  180. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/targets-dir/.cici/targets/opentofu-validate.yaml +0 -0
  181. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/targets-dir/.cici/targets/tofu-development-trivy.yaml +0 -0
  182. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/targets-dir/opentofu-development-apply.yml +0 -0
  183. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/targets-dir/opentofu-development-auto-apply.yml +0 -0
  184. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/targets-dir/opentofu-development-destroy.yml +0 -0
  185. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/targets-dir/opentofu-development-plan.yml +0 -0
  186. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/targets-dir/opentofu-development-trivy.yml +0 -0
  187. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/targets-dir/opentofu-development-validate.yml +0 -0
  188. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/targets-dir/opentofu-fmt.yml +0 -0
  189. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/targets-dir/opentofu-module-build.yml +0 -0
  190. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/targets-dir/opentofu-module-release.yml +0 -0
  191. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/targets-dir/opentofu-production-apply.yml +0 -0
  192. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/targets-dir/opentofu-production-auto-apply.yml +0 -0
  193. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/targets-dir/opentofu-production-destroy.yml +0 -0
  194. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/targets-dir/opentofu-production-plan.yml +0 -0
  195. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/targets-dir/opentofu-production-trivy.yml +0 -0
  196. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/targets-dir/opentofu-production-validate.yml +0 -0
  197. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/targets-dir/opentofu-staging-apply.yml +0 -0
  198. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/targets-dir/opentofu-staging-auto-apply.yml +0 -0
  199. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/targets-dir/opentofu-staging-destroy.yml +0 -0
  200. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/targets-dir/opentofu-staging-plan.yml +0 -0
  201. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/targets-dir/opentofu-staging-trivy.yml +0 -0
  202. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/targets-dir/opentofu-staging-validate.yml +0 -0
  203. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/targets-dir/opentofu-trivy.yml +0 -0
  204. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/targets-dir/opentofu-validate.yml +0 -0
  205. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/terraform/.cici/.gitlab-ci.yml +0 -0
  206. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/terraform/terraform-fmt.yml +0 -0
  207. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/terraform/terraform-production-apply.yml +0 -0
  208. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/terraform/terraform-production-plan.yml +0 -0
  209. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/terraform/terraform-staging-apply.yml +0 -0
  210. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/terraform/terraform-staging-destroy.yml +0 -0
  211. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/variables/.cici/.gitlab-ci.yml +0 -0
  212. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/fixtures/gitlab/variables/simple-job.yml +0 -0
  213. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/test_build.py +0 -0
  214. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/test_expand_job_extends.py +0 -0
  215. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/test_import.py +0 -0
  216. {cici_tools-0.19.0 → cici_tools-0.19.1}/tests/test_precommit_hook_injection.py +0 -0
@@ -33,11 +33,11 @@ include:
33
33
  file:
34
34
  - mkdocs-build.yml
35
35
  - project: saferatday0/library/pages
36
- ref: 0.5.0
36
+ ref: 0.6.0
37
37
  file:
38
38
  - pages.yml
39
39
  - project: saferatday0/library/prettier
40
- ref: 0.7.1
40
+ ref: 0.8.0
41
41
  file:
42
42
  - prettier.yml
43
43
  - project: saferatday0/library/python
@@ -30,18 +30,18 @@ repos:
30
30
  ]
31
31
 
32
32
  - repo: https://gitlab.com/saferatday0/library/container
33
- rev: "0.8.1"
33
+ rev: "0.9.2"
34
34
  hooks:
35
35
  - id: container-hadolint
36
36
 
37
37
  - repo: https://gitlab.com/saferatday0/library/prettier
38
- rev: "0.7.1"
38
+ rev: "0.8.0"
39
39
  hooks:
40
40
  - id: prettier
41
41
  exclude: "^\\.gitlab-ci\\.yml$"
42
42
 
43
43
  - repo: https://gitlab.com/saferatday0/badgie
44
- rev: "0.14.2"
44
+ rev: "0.14.4"
45
45
  hooks:
46
46
  - id: badgie
47
47
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cici-tools
3
- Version: 0.19.0
3
+ Version: 0.19.1
4
4
  Summary: Continuous Integration Catalog Interface
5
5
  Author-email: Digital Safety Research Institute <contact@dsri.org>
6
6
  License: Apache-2.0
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
28
28
  commit_id: COMMIT_ID
29
29
  __commit_id__: COMMIT_ID
30
30
 
31
- __version__ = version = '0.19.0'
32
- __version_tuple__ = version_tuple = (0, 19, 0)
31
+ __version__ = version = '0.19.1'
32
+ __version_tuple__ = version_tuple = (0, 19, 1)
33
33
 
34
- __commit_id__ = commit_id = 'g2f00c2fa8'
34
+ __commit_id__ = commit_id = 'ga17385576'
@@ -85,7 +85,7 @@ class IDToken(msgspec.Struct, omit_defaults=True, frozen=True, kw_only=True):
85
85
  aud: Union[str, list[str]] = field(default_factory=list)
86
86
 
87
87
 
88
- class Image(msgspec.Struct, omit_defaults=True, frozen=True, kw_only=True, tag="image"):
88
+ class Image(msgspec.Struct, omit_defaults=True, frozen=True, kw_only=True, tag=False):
89
89
  name: str
90
90
  entrypoint: Union[str, list[str]] = field(default_factory=list)
91
91
  pull_policy: Union[str, list[str]] = field(default_factory=list)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cici-tools
3
- Version: 0.19.0
3
+ Version: 0.19.1
4
4
  Summary: Continuous Integration Catalog Interface
5
5
  Author-email: Digital Safety Research Institute <contact@dsri.org>
6
6
  License: Apache-2.0
@@ -92,6 +92,9 @@ tests/fixtures/gitlab/helm/helm-cm-push.yml
92
92
  tests/fixtures/gitlab/helm/helm-docs.yml
93
93
  tests/fixtures/gitlab/helm/helm-lint.yml
94
94
  tests/fixtures/gitlab/helm/.cici/.gitlab-ci.yml
95
+ tests/fixtures/gitlab/image/image-check.yml
96
+ tests/fixtures/gitlab/image/.cici/.gitlab-ci.yml
97
+ tests/fixtures/gitlab/image/.cici/config.yaml
95
98
  tests/fixtures/gitlab/job-variables/opentofu-development-apply.yml
96
99
  tests/fixtures/gitlab/job-variables/opentofu-development-auto-apply.yml
97
100
  tests/fixtures/gitlab/job-variables/opentofu-development-destroy.yml
@@ -0,0 +1,27 @@
1
+ # SPDX-FileCopyrightText: UL Research Institutes
2
+ # SPDX-License-Identifier: Apache-2.0
3
+
4
+ stages:
5
+ - test
6
+ - build
7
+ - deploy
8
+
9
+ workflow:
10
+ rules:
11
+ - if: $CI_PIPELINE_SOURCE == "push" && $CI_OPEN_MERGE_REQUESTS
12
+ when: never
13
+ - when: always
14
+
15
+ image-check:
16
+ stage: test
17
+ image:
18
+ name: "${CONTAINER_PROXY}apache/skywalking-eyes"
19
+ entrypoint: ["/bin/sh", "-ce"]
20
+ cache: {}
21
+ dependencies: []
22
+ variables:
23
+ GIT_DEPTH: "1"
24
+ GIT_SUBMODULE_STRATEGY: "none"
25
+ script:
26
+ - license-eye header check
27
+ needs: []
@@ -0,0 +1,14 @@
1
+ # SPDX-FileCopyrightText: UL Research Institutes
2
+ # SPDX-License-Identifier: Apache-2.0
3
+
4
+ name: image-check
5
+
6
+ brief: >-
7
+ Check image keyword.
8
+
9
+ targets:
10
+ - name: image-check
11
+ brief: >-
12
+ check image keyword works
13
+ groups:
14
+ - format
@@ -0,0 +1,31 @@
1
+ #
2
+ # This file is generated by cici-tools with the following command:
3
+ #
4
+ # cici bundle
5
+ #
6
+ stages:
7
+ - test
8
+ - build
9
+ - deploy
10
+
11
+ workflow:
12
+ rules:
13
+ - if: $CI_PIPELINE_SOURCE == "push" && $CI_OPEN_MERGE_REQUESTS
14
+ when: never
15
+ - when: always
16
+
17
+ image-check:
18
+ stage: test
19
+ image:
20
+ name: ${CONTAINER_PROXY}apache/skywalking-eyes
21
+ entrypoint:
22
+ - "/bin/sh"
23
+ - "-ce"
24
+ variables:
25
+ GIT_DEPTH: "1"
26
+ GIT_SUBMODULE_STRATEGY: none
27
+ script:
28
+ - license-eye header check
29
+ cache: {}
30
+ dependencies: []
31
+ needs: []
@@ -53,6 +53,10 @@ def pushd(path):
53
53
  "gitlab",
54
54
  "job-variables",
55
55
  ),
56
+ (
57
+ "gitlab",
58
+ "image",
59
+ ),
56
60
  ],
57
61
  )
58
62
  def test_end_to_end_bundle(platform, name, tmp_path):
@@ -70,7 +74,6 @@ def test_end_to_end_bundle(platform, name, tmp_path):
70
74
  for file in files:
71
75
  shutil.copyfile(fixture_dir / file, test_dir / file)
72
76
  with pushd(test_dir):
73
- print([path.name for path in Path.cwd().glob("*")])
74
77
  cici(["bundle"])
75
78
 
76
79
  for file in files:
@@ -45,13 +45,11 @@ def strip_proxy(image: Optional[str]) -> Optional[str]:
45
45
  container:
46
46
  image: busybox
47
47
  """,
48
- {
49
- "gamma.yaml": """
48
+ {"gamma.yaml": """
50
49
  name: gamma
51
50
  container:
52
51
  image: alpine:latest
53
- """
54
- },
52
+ """},
55
53
  ["theta", "delta", "gamma"],
56
54
  ["old:version", "busybox", "alpine:latest"],
57
55
  ),
@@ -7,7 +7,7 @@ import pytest
7
7
  import ruamel.yaml
8
8
  from ruamel.yaml.scalarstring import FoldedScalarString
9
9
 
10
- from cici.providers.gitlab.yaml_style import make_scalar_string
10
+ from cici.providers.gitlab.yaml_style import make_scalar_string, style_scalars
11
11
 
12
12
 
13
13
  # test the folding when handling string literals
@@ -145,3 +145,98 @@ def test_folded_scalar_does_not_insert_blank_lines(command):
145
145
  # 5. The command must still appear intact
146
146
  for part in command.split():
147
147
  assert part in output
148
+
149
+
150
+ def get_path(obj, path: str):
151
+ """Traverse dict/list using dotted paths and [index] access.
152
+
153
+ Examples:
154
+ - "job.image"
155
+ - "job.rules[0].if"
156
+ - "job.script[1]"
157
+ - "job.variables.GIT_DEPTH"
158
+ """
159
+ cur = obj
160
+ for part in path.split("."):
161
+ if "[" in part:
162
+ # e.g. rules[0]
163
+ key, rest = part.split("[", 1)
164
+ idx = int(rest.rstrip("]"))
165
+ cur = cur[key][idx]
166
+ else:
167
+ cur = cur[part]
168
+ return cur
169
+
170
+
171
+ @pytest.mark.parametrize(
172
+ "input_data, expected_paths",
173
+ [
174
+ pytest.param(
175
+ {
176
+ "job": {
177
+ "image": "alpine:3.19",
178
+ "variables": {
179
+ "GIT_DEPTH": {"value": "1"},
180
+ "TOKEN": {"value": "$TOKEN"},
181
+ "PATHS": {"value": "/certs"},
182
+ },
183
+ "script": [
184
+ 'echo "token" | docker login registry -u user --password-stdin',
185
+ "FOO=bar",
186
+ "echo ok",
187
+ ],
188
+ "rules": [{"if": '$CI_COMMIT_BRANCH == "main"', "when": "always"}],
189
+ "environment": {"name": "$STATE/apply", "action": "stop"},
190
+ }
191
+ },
192
+ {
193
+ "job.image": "alpine:3.19",
194
+ "job.variables.GIT_DEPTH": "1",
195
+ "job.variables.TOKEN": "$TOKEN",
196
+ "job.variables.PATHS": "/certs",
197
+ "job.script[1]": "FOO=bar",
198
+ "job.rules[0].if": '$CI_COMMIT_BRANCH == "main"',
199
+ "job.environment.name": "$STATE/apply",
200
+ "job.environment.action": "stop",
201
+ },
202
+ id="generic-job-case",
203
+ ),
204
+ pytest.param(
205
+ {
206
+ "job": {
207
+ "image": "alpine",
208
+ "script": ["echo hello"],
209
+ }
210
+ },
211
+ {
212
+ "job.image": "alpine",
213
+ "job.script[0]": "echo hello",
214
+ },
215
+ id="minimal-generic-case",
216
+ ),
217
+ ],
218
+ )
219
+ def test_style_scalars(input_data, expected_paths):
220
+
221
+ # send input_data through style_scalars() function
222
+ styled = style_scalars(input_data)
223
+
224
+ # send the now styled input_data through the dump() function
225
+ y = ruamel.yaml.YAML()
226
+ y.width = 120
227
+ y.indent(mapping=2, sequence=4, offset=2)
228
+
229
+ buf = io.StringIO()
230
+ y.dump(styled, buf)
231
+ emitted = buf.getvalue()
232
+
233
+ # parse back the dumped output like GitLab would
234
+ parsed = ruamel.yaml.YAML(typ="safe").load(emitted)
235
+
236
+ # read the nested values and compare to expected
237
+ for path, expected in expected_paths.items():
238
+ assert get_path(parsed, path) == expected, f"path {path!r} mismatched"
239
+
240
+ # just make sure no blank lines in any folded blocks
241
+ # I already test for this in test_folded_scalar_does_not_insert_blank_lines()
242
+ assert "\n\n" not in emitted
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes