cici-tools 0.18.0__tar.gz → 0.18.2__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 (205) hide show
  1. {cici_tools-0.18.0 → cici_tools-0.18.2}/PKG-INFO +7 -2
  2. {cici_tools-0.18.0 → cici_tools-0.18.2}/cici/_version.py +3 -3
  3. {cici_tools-0.18.0 → cici_tools-0.18.2}/cici/providers/gitlab/yaml_style.py +13 -5
  4. {cici_tools-0.18.0 → cici_tools-0.18.2}/cici_tools.egg-info/PKG-INFO +7 -2
  5. {cici_tools-0.18.0 → cici_tools-0.18.2}/cici_tools.egg-info/requires.txt +8 -0
  6. {cici_tools-0.18.0 → cici_tools-0.18.2}/makefile +4 -4
  7. {cici_tools-0.18.0 → cici_tools-0.18.2}/pyproject.toml +9 -6
  8. {cici_tools-0.18.0 → cici_tools-0.18.2}/tests/fixtures/gitlab/service-key/container-docker-multiarch-amd64.yml +6 -5
  9. {cici_tools-0.18.0 → cici_tools-0.18.2}/tests/fixtures/gitlab/service-key/container-docker-multiarch-arm32v6.yml +6 -5
  10. {cici_tools-0.18.0 → cici_tools-0.18.2}/tests/fixtures/gitlab/service-key/container-docker-multiarch-arm32v7.yml +6 -5
  11. {cici_tools-0.18.0 → cici_tools-0.18.2}/tests/fixtures/gitlab/service-key/container-docker-multiarch-arm64v8.yml +6 -5
  12. {cici_tools-0.18.0 → cici_tools-0.18.2}/tests/fixtures/gitlab/service-key/container-docker-multiarch-i386.yml +6 -5
  13. {cici_tools-0.18.0 → cici_tools-0.18.2}/tests/fixtures/gitlab/service-key/container-docker-multiarch-manifest.yml +6 -5
  14. {cici_tools-0.18.0 → cici_tools-0.18.2}/tests/fixtures/gitlab/service-key/container-docker-multiarch.yml +6 -5
  15. {cici_tools-0.18.0 → cici_tools-0.18.2}/tests/fixtures/gitlab/service-key/container-docker.yml +6 -5
  16. {cici_tools-0.18.0 → cici_tools-0.18.2}/tests/fixtures/gitlab/service-key/container-trivy.yml +6 -5
  17. {cici_tools-0.18.0 → cici_tools-0.18.2}/tests/test_yaml_style.py +51 -0
  18. {cici_tools-0.18.0 → cici_tools-0.18.2}/.cici/.gitlab-ci.yml +0 -0
  19. {cici_tools-0.18.0 → cici_tools-0.18.2}/.cici/README.md.j2 +0 -0
  20. {cici_tools-0.18.0 → cici_tools-0.18.2}/.cici/config.yaml +0 -0
  21. {cici_tools-0.18.0 → cici_tools-0.18.2}/.dockerignore +0 -0
  22. {cici_tools-0.18.0 → cici_tools-0.18.2}/.gitignore +0 -0
  23. {cici_tools-0.18.0 → cici_tools-0.18.2}/.gitlab-ci.yml +0 -0
  24. {cici_tools-0.18.0 → cici_tools-0.18.2}/.licenserc.yaml +0 -0
  25. {cici_tools-0.18.0 → cici_tools-0.18.2}/.pre-commit-config.yaml +0 -0
  26. {cici_tools-0.18.0 → cici_tools-0.18.2}/.pre-commit-hooks.yaml +0 -0
  27. {cici_tools-0.18.0 → cici_tools-0.18.2}/.prettierignore +0 -0
  28. {cici_tools-0.18.0 → cici_tools-0.18.2}/.prettierrc.yaml +0 -0
  29. {cici_tools-0.18.0 → cici_tools-0.18.2}/.secrets.baseline +0 -0
  30. {cici_tools-0.18.0 → cici_tools-0.18.2}/Dockerfile +0 -0
  31. {cici_tools-0.18.0 → cici_tools-0.18.2}/LICENSE +0 -0
  32. {cici_tools-0.18.0 → cici_tools-0.18.2}/MANIFEST.in +0 -0
  33. {cici_tools-0.18.0 → cici_tools-0.18.2}/NOTICE +0 -0
  34. {cici_tools-0.18.0 → cici_tools-0.18.2}/README.md +0 -0
  35. {cici_tools-0.18.0/cici/templates → cici_tools-0.18.2/cici}/__init__.py +0 -0
  36. {cici_tools-0.18.0 → cici_tools-0.18.2}/cici/__main__.py +0 -0
  37. {cici_tools-0.18.0/cici/schema → cici_tools-0.18.2/cici/cli}/__init__.py +0 -0
  38. {cici_tools-0.18.0 → cici_tools-0.18.2}/cici/cli/bundle.py +0 -0
  39. {cici_tools-0.18.0 → cici_tools-0.18.2}/cici/cli/readme.py +0 -0
  40. {cici_tools-0.18.0 → cici_tools-0.18.2}/cici/cli/schema.py +0 -0
  41. {cici_tools-0.18.0 → cici_tools-0.18.2}/cici/cli/update.py +0 -0
  42. {cici_tools-0.18.0 → cici_tools-0.18.2}/cici/config/__init__.py +0 -0
  43. {cici_tools-0.18.0/cici/providers → cici_tools-0.18.2/cici/config/project}/__init__.py +0 -0
  44. {cici_tools-0.18.0 → cici_tools-0.18.2}/cici/config/project/models.py +0 -0
  45. {cici_tools-0.18.0 → cici_tools-0.18.2}/cici/config/project/serializers.py +0 -0
  46. {cici_tools-0.18.0 → cici_tools-0.18.2}/cici/config/user.py +0 -0
  47. {cici_tools-0.18.0 → cici_tools-0.18.2}/cici/constants.py +0 -0
  48. {cici_tools-0.18.0 → cici_tools-0.18.2}/cici/exceptions.py +0 -0
  49. {cici_tools-0.18.0 → cici_tools-0.18.2}/cici/main.py +0 -0
  50. {cici_tools-0.18.0 → cici_tools-0.18.2}/cici/paths.py +0 -0
  51. {cici_tools-0.18.0/cici/config/project → cici_tools-0.18.2/cici/providers}/__init__.py +0 -0
  52. {cici_tools-0.18.0 → cici_tools-0.18.2}/cici/providers/gitlab/__init__.py +0 -0
  53. {cici_tools-0.18.0 → cici_tools-0.18.2}/cici/providers/gitlab/constants.py +0 -0
  54. {cici_tools-0.18.0 → cici_tools-0.18.2}/cici/providers/gitlab/models.py +0 -0
  55. {cici_tools-0.18.0 → cici_tools-0.18.2}/cici/providers/gitlab/normalizers.py +0 -0
  56. {cici_tools-0.18.0 → cici_tools-0.18.2}/cici/providers/gitlab/serializers.py +0 -0
  57. {cici_tools-0.18.0 → cici_tools-0.18.2}/cici/providers/gitlab/utils.py +0 -0
  58. {cici_tools-0.18.0 → cici_tools-0.18.2}/cici/py.typed +0 -0
  59. {cici_tools-0.18.0 → cici_tools-0.18.2}/cici/schema/LICENSE.gitlab +0 -0
  60. {cici_tools-0.18.0/cici/cli → cici_tools-0.18.2/cici/schema}/__init__.py +0 -0
  61. {cici_tools-0.18.0 → cici_tools-0.18.2}/cici/schema/gitlab-ci.json +0 -0
  62. {cici_tools-0.18.0 → cici_tools-0.18.2}/cici/templates/README.md.j2 +0 -0
  63. {cici_tools-0.18.0/cici → cici_tools-0.18.2/cici/templates}/__init__.py +0 -0
  64. {cici_tools-0.18.0 → cici_tools-0.18.2}/cici/templates/brief.md.j2 +0 -0
  65. {cici_tools-0.18.0 → cici_tools-0.18.2}/cici/templates/description.md.j2 +0 -0
  66. {cici_tools-0.18.0 → cici_tools-0.18.2}/cici/templates/group-list.j2 +0 -0
  67. {cici_tools-0.18.0 → cici_tools-0.18.2}/cici/templates/groups.md.j2 +0 -0
  68. {cici_tools-0.18.0 → cici_tools-0.18.2}/cici/templates/target-list.md.j2 +0 -0
  69. {cici_tools-0.18.0 → cici_tools-0.18.2}/cici/templates/target-table.md.j2 +0 -0
  70. {cici_tools-0.18.0 → cici_tools-0.18.2}/cici/templates/targets.md.j2 +0 -0
  71. {cici_tools-0.18.0 → cici_tools-0.18.2}/cici/templates/variable-list.md.j2 +0 -0
  72. {cici_tools-0.18.0 → cici_tools-0.18.2}/cici/templates/variables.md.j2 +0 -0
  73. {cici_tools-0.18.0 → cici_tools-0.18.2}/cici/utils.py +0 -0
  74. {cici_tools-0.18.0 → cici_tools-0.18.2}/cici-bundle.yml +0 -0
  75. {cici_tools-0.18.0 → cici_tools-0.18.2}/cici-readme.yml +0 -0
  76. {cici_tools-0.18.0 → cici_tools-0.18.2}/cici-update.yml +0 -0
  77. {cici_tools-0.18.0 → cici_tools-0.18.2}/cici_tools.egg-info/SOURCES.txt +0 -0
  78. {cici_tools-0.18.0 → cici_tools-0.18.2}/cici_tools.egg-info/dependency_links.txt +0 -0
  79. {cici_tools-0.18.0 → cici_tools-0.18.2}/cici_tools.egg-info/entry_points.txt +0 -0
  80. {cici_tools-0.18.0 → cici_tools-0.18.2}/cici_tools.egg-info/top_level.txt +0 -0
  81. {cici_tools-0.18.0 → cici_tools-0.18.2}/docs/bundle.md +0 -0
  82. {cici_tools-0.18.0 → cici_tools-0.18.2}/docs/config-file.md +0 -0
  83. {cici_tools-0.18.0 → cici_tools-0.18.2}/docs/getting-started.md +0 -0
  84. {cici_tools-0.18.0 → cici_tools-0.18.2}/docs/gitlab-includes.md +0 -0
  85. {cici_tools-0.18.0 → cici_tools-0.18.2}/docs/index.md +0 -0
  86. {cici_tools-0.18.0 → cici_tools-0.18.2}/docs/install.md +0 -0
  87. {cici_tools-0.18.0 → cici_tools-0.18.2}/docs/readme.md +0 -0
  88. {cici_tools-0.18.0 → cici_tools-0.18.2}/docs/style.css +0 -0
  89. {cici_tools-0.18.0 → cici_tools-0.18.2}/docs/update.md +0 -0
  90. {cici_tools-0.18.0 → cici_tools-0.18.2}/mkdocs.yml +0 -0
  91. {cici_tools-0.18.0 → cici_tools-0.18.2}/requirements.txt +0 -0
  92. {cici_tools-0.18.0 → cici_tools-0.18.2}/scripts/gen-api-doc.py +0 -0
  93. {cici_tools-0.18.0 → cici_tools-0.18.2}/setup.cfg +0 -0
  94. {cici_tools-0.18.0 → cici_tools-0.18.2}/tests/fixtures/gitlab/extends/.cici/.gitlab-ci.yml +0 -0
  95. {cici_tools-0.18.0 → cici_tools-0.18.2}/tests/fixtures/gitlab/extends/simple-job.yml +0 -0
  96. {cici_tools-0.18.0 → cici_tools-0.18.2}/tests/fixtures/gitlab/helm/.cici/.gitlab-ci.yml +0 -0
  97. {cici_tools-0.18.0 → cici_tools-0.18.2}/tests/fixtures/gitlab/helm/helm-cm-push.yml +0 -0
  98. {cici_tools-0.18.0 → cici_tools-0.18.2}/tests/fixtures/gitlab/helm/helm-docs.yml +0 -0
  99. {cici_tools-0.18.0 → cici_tools-0.18.2}/tests/fixtures/gitlab/helm/helm-lint.yml +0 -0
  100. {cici_tools-0.18.0/tests/fixtures/gitlab/targets-dir → cici_tools-0.18.2/tests/fixtures/gitlab/job-variables}/.cici/.gitlab-ci.yml +0 -0
  101. {cici_tools-0.18.0 → cici_tools-0.18.2}/tests/fixtures/gitlab/job-variables/.cici/config.yaml +0 -0
  102. {cici_tools-0.18.0/tests/fixtures/gitlab/targets-dir → cici_tools-0.18.2/tests/fixtures/gitlab/job-variables}/opentofu-development-apply.yml +0 -0
  103. {cici_tools-0.18.0/tests/fixtures/gitlab/targets-dir → cici_tools-0.18.2/tests/fixtures/gitlab/job-variables}/opentofu-development-auto-apply.yml +0 -0
  104. {cici_tools-0.18.0/tests/fixtures/gitlab/targets-dir → cici_tools-0.18.2/tests/fixtures/gitlab/job-variables}/opentofu-development-destroy.yml +0 -0
  105. {cici_tools-0.18.0/tests/fixtures/gitlab/targets-dir → cici_tools-0.18.2/tests/fixtures/gitlab/job-variables}/opentofu-development-plan.yml +0 -0
  106. {cici_tools-0.18.0/tests/fixtures/gitlab/targets-dir → cici_tools-0.18.2/tests/fixtures/gitlab/job-variables}/opentofu-development-trivy.yml +0 -0
  107. {cici_tools-0.18.0/tests/fixtures/gitlab/targets-dir → cici_tools-0.18.2/tests/fixtures/gitlab/job-variables}/opentofu-development-validate.yml +0 -0
  108. {cici_tools-0.18.0/tests/fixtures/gitlab/targets-dir → cici_tools-0.18.2/tests/fixtures/gitlab/job-variables}/opentofu-fmt.yml +0 -0
  109. {cici_tools-0.18.0/tests/fixtures/gitlab/targets-dir → cici_tools-0.18.2/tests/fixtures/gitlab/job-variables}/opentofu-module-build.yml +0 -0
  110. {cici_tools-0.18.0/tests/fixtures/gitlab/targets-dir → cici_tools-0.18.2/tests/fixtures/gitlab/job-variables}/opentofu-module-release.yml +0 -0
  111. {cici_tools-0.18.0/tests/fixtures/gitlab/targets-dir → cici_tools-0.18.2/tests/fixtures/gitlab/job-variables}/opentofu-production-apply.yml +0 -0
  112. {cici_tools-0.18.0/tests/fixtures/gitlab/targets-dir → cici_tools-0.18.2/tests/fixtures/gitlab/job-variables}/opentofu-production-auto-apply.yml +0 -0
  113. {cici_tools-0.18.0/tests/fixtures/gitlab/targets-dir → cici_tools-0.18.2/tests/fixtures/gitlab/job-variables}/opentofu-production-destroy.yml +0 -0
  114. {cici_tools-0.18.0/tests/fixtures/gitlab/targets-dir → cici_tools-0.18.2/tests/fixtures/gitlab/job-variables}/opentofu-production-plan.yml +0 -0
  115. {cici_tools-0.18.0/tests/fixtures/gitlab/targets-dir → cici_tools-0.18.2/tests/fixtures/gitlab/job-variables}/opentofu-production-trivy.yml +0 -0
  116. {cici_tools-0.18.0/tests/fixtures/gitlab/targets-dir → cici_tools-0.18.2/tests/fixtures/gitlab/job-variables}/opentofu-production-validate.yml +0 -0
  117. {cici_tools-0.18.0/tests/fixtures/gitlab/targets-dir → cici_tools-0.18.2/tests/fixtures/gitlab/job-variables}/opentofu-staging-apply.yml +0 -0
  118. {cici_tools-0.18.0/tests/fixtures/gitlab/targets-dir → cici_tools-0.18.2/tests/fixtures/gitlab/job-variables}/opentofu-staging-auto-apply.yml +0 -0
  119. {cici_tools-0.18.0/tests/fixtures/gitlab/targets-dir → cici_tools-0.18.2/tests/fixtures/gitlab/job-variables}/opentofu-staging-destroy.yml +0 -0
  120. {cici_tools-0.18.0/tests/fixtures/gitlab/targets-dir → cici_tools-0.18.2/tests/fixtures/gitlab/job-variables}/opentofu-staging-plan.yml +0 -0
  121. {cici_tools-0.18.0/tests/fixtures/gitlab/targets-dir → cici_tools-0.18.2/tests/fixtures/gitlab/job-variables}/opentofu-staging-trivy.yml +0 -0
  122. {cici_tools-0.18.0/tests/fixtures/gitlab/targets-dir → cici_tools-0.18.2/tests/fixtures/gitlab/job-variables}/opentofu-staging-validate.yml +0 -0
  123. {cici_tools-0.18.0/tests/fixtures/gitlab/targets-dir → cici_tools-0.18.2/tests/fixtures/gitlab/job-variables}/opentofu-trivy.yml +0 -0
  124. {cici_tools-0.18.0/tests/fixtures/gitlab/targets-dir → cici_tools-0.18.2/tests/fixtures/gitlab/job-variables}/opentofu-validate.yml +0 -0
  125. {cici_tools-0.18.0 → cici_tools-0.18.2}/tests/fixtures/gitlab/library-validator/.cici/README.md.j2 +0 -0
  126. {cici_tools-0.18.0 → cici_tools-0.18.2}/tests/fixtures/gitlab/library-validator/.cici/config.yaml +0 -0
  127. {cici_tools-0.18.0 → cici_tools-0.18.2}/tests/fixtures/gitlab/library-validator/README.md +0 -0
  128. {cici_tools-0.18.0 → cici_tools-0.18.2}/tests/fixtures/gitlab/list-anchors/.cici/.gitlab-ci.yml +0 -0
  129. {cici_tools-0.18.0 → cici_tools-0.18.2}/tests/fixtures/gitlab/list-anchors/install.yml +0 -0
  130. {cici_tools-0.18.0 → cici_tools-0.18.2}/tests/fixtures/gitlab/nested-extends/.cici/.gitlab-ci.yml +0 -0
  131. {cici_tools-0.18.0 → cici_tools-0.18.2}/tests/fixtures/gitlab/nested-extends/simple-job.yml +0 -0
  132. {cici_tools-0.18.0 → cici_tools-0.18.2}/tests/fixtures/gitlab/reports/.cici/.gitlab-ci.yml +0 -0
  133. {cici_tools-0.18.0 → cici_tools-0.18.2}/tests/fixtures/gitlab/reports/reports-container-scanning.yml +0 -0
  134. {cici_tools-0.18.0 → cici_tools-0.18.2}/tests/fixtures/gitlab/reports/reports-coverage.yml +0 -0
  135. {cici_tools-0.18.0 → cici_tools-0.18.2}/tests/fixtures/gitlab/reports/reports-junit.yml +0 -0
  136. {cici_tools-0.18.0 → cici_tools-0.18.2}/tests/fixtures/gitlab/reports/reports-terraform.yml +0 -0
  137. {cici_tools-0.18.0 → cici_tools-0.18.2}/tests/fixtures/gitlab/service-key/.cici/.gitlab-ci.yml +0 -0
  138. {cici_tools-0.18.0 → cici_tools-0.18.2}/tests/fixtures/gitlab/service-key/.cici/config.yaml +0 -0
  139. {cici_tools-0.18.0 → cici_tools-0.18.2}/tests/fixtures/gitlab/service-key/container-hadolint.yml +0 -0
  140. {cici_tools-0.18.0 → cici_tools-0.18.2}/tests/fixtures/gitlab/simple/.cici/.gitlab-ci.yml +0 -0
  141. {cici_tools-0.18.0 → cici_tools-0.18.2}/tests/fixtures/gitlab/simple/simple-job.yml +0 -0
  142. {cici_tools-0.18.0 → cici_tools-0.18.2}/tests/fixtures/gitlab/stages/.cici/.gitlab-ci.yml +0 -0
  143. {cici_tools-0.18.0 → cici_tools-0.18.2}/tests/fixtures/gitlab/stages/simple-job.yml +0 -0
  144. {cici_tools-0.18.0/tests/fixtures/gitlab/job-variables → cici_tools-0.18.2/tests/fixtures/gitlab/targets-dir}/.cici/.gitlab-ci.yml +0 -0
  145. {cici_tools-0.18.0 → cici_tools-0.18.2}/tests/fixtures/gitlab/targets-dir/.cici/config.yaml +0 -0
  146. {cici_tools-0.18.0 → cici_tools-0.18.2}/tests/fixtures/gitlab/targets-dir/.cici/targets/opentofu-development-apply.yaml +0 -0
  147. {cici_tools-0.18.0 → cici_tools-0.18.2}/tests/fixtures/gitlab/targets-dir/.cici/targets/opentofu-development-auto-apply.yaml +0 -0
  148. {cici_tools-0.18.0 → cici_tools-0.18.2}/tests/fixtures/gitlab/targets-dir/.cici/targets/opentofu-development-destroy.yaml +0 -0
  149. {cici_tools-0.18.0 → cici_tools-0.18.2}/tests/fixtures/gitlab/targets-dir/.cici/targets/opentofu-development-plan.yaml +0 -0
  150. {cici_tools-0.18.0 → cici_tools-0.18.2}/tests/fixtures/gitlab/targets-dir/.cici/targets/opentofu-development-validate.yaml +0 -0
  151. {cici_tools-0.18.0 → cici_tools-0.18.2}/tests/fixtures/gitlab/targets-dir/.cici/targets/opentofu-fmt.yaml +0 -0
  152. {cici_tools-0.18.0 → cici_tools-0.18.2}/tests/fixtures/gitlab/targets-dir/.cici/targets/opentofu-module-build.yaml +0 -0
  153. {cici_tools-0.18.0 → cici_tools-0.18.2}/tests/fixtures/gitlab/targets-dir/.cici/targets/opentofu-module-release.yaml +0 -0
  154. {cici_tools-0.18.0 → cici_tools-0.18.2}/tests/fixtures/gitlab/targets-dir/.cici/targets/opentofu-production-apply.yaml +0 -0
  155. {cici_tools-0.18.0 → cici_tools-0.18.2}/tests/fixtures/gitlab/targets-dir/.cici/targets/opentofu-production-auto-apply.yaml +0 -0
  156. {cici_tools-0.18.0 → cici_tools-0.18.2}/tests/fixtures/gitlab/targets-dir/.cici/targets/opentofu-production-destroy.yaml +0 -0
  157. {cici_tools-0.18.0 → cici_tools-0.18.2}/tests/fixtures/gitlab/targets-dir/.cici/targets/opentofu-production-plan.yaml +0 -0
  158. {cici_tools-0.18.0 → cici_tools-0.18.2}/tests/fixtures/gitlab/targets-dir/.cici/targets/opentofu-production-trivy.yaml +0 -0
  159. {cici_tools-0.18.0 → cici_tools-0.18.2}/tests/fixtures/gitlab/targets-dir/.cici/targets/opentofu-production-validate.yaml +0 -0
  160. {cici_tools-0.18.0 → cici_tools-0.18.2}/tests/fixtures/gitlab/targets-dir/.cici/targets/opentofu-staging-apply.yaml +0 -0
  161. {cici_tools-0.18.0 → cici_tools-0.18.2}/tests/fixtures/gitlab/targets-dir/.cici/targets/opentofu-staging-auto-apply.yaml +0 -0
  162. {cici_tools-0.18.0 → cici_tools-0.18.2}/tests/fixtures/gitlab/targets-dir/.cici/targets/opentofu-staging-destroy.yaml +0 -0
  163. {cici_tools-0.18.0 → cici_tools-0.18.2}/tests/fixtures/gitlab/targets-dir/.cici/targets/opentofu-staging-plan.yaml +0 -0
  164. {cici_tools-0.18.0 → cici_tools-0.18.2}/tests/fixtures/gitlab/targets-dir/.cici/targets/opentofu-staging-trivy.yaml +0 -0
  165. {cici_tools-0.18.0 → cici_tools-0.18.2}/tests/fixtures/gitlab/targets-dir/.cici/targets/opentofu-staging-validate.yaml +0 -0
  166. {cici_tools-0.18.0 → cici_tools-0.18.2}/tests/fixtures/gitlab/targets-dir/.cici/targets/opentofu-trivy.yaml +0 -0
  167. {cici_tools-0.18.0 → cici_tools-0.18.2}/tests/fixtures/gitlab/targets-dir/.cici/targets/opentofu-validate.yaml +0 -0
  168. {cici_tools-0.18.0 → cici_tools-0.18.2}/tests/fixtures/gitlab/targets-dir/.cici/targets/tofu-development-trivy.yaml +0 -0
  169. {cici_tools-0.18.0/tests/fixtures/gitlab/job-variables → cici_tools-0.18.2/tests/fixtures/gitlab/targets-dir}/opentofu-development-apply.yml +0 -0
  170. {cici_tools-0.18.0/tests/fixtures/gitlab/job-variables → cici_tools-0.18.2/tests/fixtures/gitlab/targets-dir}/opentofu-development-auto-apply.yml +0 -0
  171. {cici_tools-0.18.0/tests/fixtures/gitlab/job-variables → cici_tools-0.18.2/tests/fixtures/gitlab/targets-dir}/opentofu-development-destroy.yml +0 -0
  172. {cici_tools-0.18.0/tests/fixtures/gitlab/job-variables → cici_tools-0.18.2/tests/fixtures/gitlab/targets-dir}/opentofu-development-plan.yml +0 -0
  173. {cici_tools-0.18.0/tests/fixtures/gitlab/job-variables → cici_tools-0.18.2/tests/fixtures/gitlab/targets-dir}/opentofu-development-trivy.yml +0 -0
  174. {cici_tools-0.18.0/tests/fixtures/gitlab/job-variables → cici_tools-0.18.2/tests/fixtures/gitlab/targets-dir}/opentofu-development-validate.yml +0 -0
  175. {cici_tools-0.18.0/tests/fixtures/gitlab/job-variables → cici_tools-0.18.2/tests/fixtures/gitlab/targets-dir}/opentofu-fmt.yml +0 -0
  176. {cici_tools-0.18.0/tests/fixtures/gitlab/job-variables → cici_tools-0.18.2/tests/fixtures/gitlab/targets-dir}/opentofu-module-build.yml +0 -0
  177. {cici_tools-0.18.0/tests/fixtures/gitlab/job-variables → cici_tools-0.18.2/tests/fixtures/gitlab/targets-dir}/opentofu-module-release.yml +0 -0
  178. {cici_tools-0.18.0/tests/fixtures/gitlab/job-variables → cici_tools-0.18.2/tests/fixtures/gitlab/targets-dir}/opentofu-production-apply.yml +0 -0
  179. {cici_tools-0.18.0/tests/fixtures/gitlab/job-variables → cici_tools-0.18.2/tests/fixtures/gitlab/targets-dir}/opentofu-production-auto-apply.yml +0 -0
  180. {cici_tools-0.18.0/tests/fixtures/gitlab/job-variables → cici_tools-0.18.2/tests/fixtures/gitlab/targets-dir}/opentofu-production-destroy.yml +0 -0
  181. {cici_tools-0.18.0/tests/fixtures/gitlab/job-variables → cici_tools-0.18.2/tests/fixtures/gitlab/targets-dir}/opentofu-production-plan.yml +0 -0
  182. {cici_tools-0.18.0/tests/fixtures/gitlab/job-variables → cici_tools-0.18.2/tests/fixtures/gitlab/targets-dir}/opentofu-production-trivy.yml +0 -0
  183. {cici_tools-0.18.0/tests/fixtures/gitlab/job-variables → cici_tools-0.18.2/tests/fixtures/gitlab/targets-dir}/opentofu-production-validate.yml +0 -0
  184. {cici_tools-0.18.0/tests/fixtures/gitlab/job-variables → cici_tools-0.18.2/tests/fixtures/gitlab/targets-dir}/opentofu-staging-apply.yml +0 -0
  185. {cici_tools-0.18.0/tests/fixtures/gitlab/job-variables → cici_tools-0.18.2/tests/fixtures/gitlab/targets-dir}/opentofu-staging-auto-apply.yml +0 -0
  186. {cici_tools-0.18.0/tests/fixtures/gitlab/job-variables → cici_tools-0.18.2/tests/fixtures/gitlab/targets-dir}/opentofu-staging-destroy.yml +0 -0
  187. {cici_tools-0.18.0/tests/fixtures/gitlab/job-variables → cici_tools-0.18.2/tests/fixtures/gitlab/targets-dir}/opentofu-staging-plan.yml +0 -0
  188. {cici_tools-0.18.0/tests/fixtures/gitlab/job-variables → cici_tools-0.18.2/tests/fixtures/gitlab/targets-dir}/opentofu-staging-trivy.yml +0 -0
  189. {cici_tools-0.18.0/tests/fixtures/gitlab/job-variables → cici_tools-0.18.2/tests/fixtures/gitlab/targets-dir}/opentofu-staging-validate.yml +0 -0
  190. {cici_tools-0.18.0/tests/fixtures/gitlab/job-variables → cici_tools-0.18.2/tests/fixtures/gitlab/targets-dir}/opentofu-trivy.yml +0 -0
  191. {cici_tools-0.18.0/tests/fixtures/gitlab/job-variables → cici_tools-0.18.2/tests/fixtures/gitlab/targets-dir}/opentofu-validate.yml +0 -0
  192. {cici_tools-0.18.0 → cici_tools-0.18.2}/tests/fixtures/gitlab/terraform/.cici/.gitlab-ci.yml +0 -0
  193. {cici_tools-0.18.0 → cici_tools-0.18.2}/tests/fixtures/gitlab/terraform/terraform-fmt.yml +0 -0
  194. {cici_tools-0.18.0 → cici_tools-0.18.2}/tests/fixtures/gitlab/terraform/terraform-production-apply.yml +0 -0
  195. {cici_tools-0.18.0 → cici_tools-0.18.2}/tests/fixtures/gitlab/terraform/terraform-production-plan.yml +0 -0
  196. {cici_tools-0.18.0 → cici_tools-0.18.2}/tests/fixtures/gitlab/terraform/terraform-staging-apply.yml +0 -0
  197. {cici_tools-0.18.0 → cici_tools-0.18.2}/tests/fixtures/gitlab/terraform/terraform-staging-destroy.yml +0 -0
  198. {cici_tools-0.18.0 → cici_tools-0.18.2}/tests/fixtures/gitlab/variables/.cici/.gitlab-ci.yml +0 -0
  199. {cici_tools-0.18.0 → cici_tools-0.18.2}/tests/fixtures/gitlab/variables/simple-job.yml +0 -0
  200. {cici_tools-0.18.0 → cici_tools-0.18.2}/tests/test_build.py +0 -0
  201. {cici_tools-0.18.0 → cici_tools-0.18.2}/tests/test_cli.py +0 -0
  202. {cici_tools-0.18.0 → cici_tools-0.18.2}/tests/test_expand_job_extends.py +0 -0
  203. {cici_tools-0.18.0 → cici_tools-0.18.2}/tests/test_import.py +0 -0
  204. {cici_tools-0.18.0 → cici_tools-0.18.2}/tests/test_precommit_hook_injection.py +0 -0
  205. {cici_tools-0.18.0 → cici_tools-0.18.2}/tests/test_resolve_targets.py +0 -0
@@ -1,12 +1,11 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cici-tools
3
- Version: 0.18.0
3
+ Version: 0.18.2
4
4
  Summary: Continuous Integration Catalog Interface
5
5
  Author-email: Digital Safety Research Institute <contact@dsri.org>
6
6
  License: Apache-2.0
7
7
  Project-URL: Home, https://gitlab.com/saferatday0/cici
8
8
  Project-URL: Issues, https://gitlab.com/saferatday0/cici/-/issues
9
- Keywords: ci,pipeline,python
10
9
  Classifier: Development Status :: 1 - Planning
11
10
  Classifier: Intended Audience :: Developers
12
11
  Classifier: Topic :: Software Development :: Build Tools
@@ -28,6 +27,12 @@ Requires-Dist: msgspec
28
27
  Requires-Dist: python-decouple
29
28
  Requires-Dist: ruamel.yaml
30
29
  Requires-Dist: termcolor
30
+ Provides-Extra: test
31
+ Requires-Dist: pytest; extra == "test"
32
+ Provides-Extra: keywords
33
+ Requires-Dist: ci; extra == "keywords"
34
+ Requires-Dist: pipeline; extra == "keywords"
35
+ Requires-Dist: python; extra == "keywords"
31
36
  Dynamic: license-file
32
37
 
33
38
  # saferatday0 cici
@@ -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.18.0'
32
- __version_tuple__ = version_tuple = (0, 18, 0)
31
+ __version__ = version = '0.18.2'
32
+ __version_tuple__ = version_tuple = (0, 18, 2)
33
33
 
34
- __commit_id__ = commit_id = 'g36384f791'
34
+ __commit_id__ = commit_id = 'g683345939'
@@ -46,13 +46,21 @@ def make_scalar_string(line: str, quote: bool = False):
46
46
 
47
47
  # fix extra - >- between lines accidentally created with echo commands
48
48
  if unindented.startswith("echo "):
49
- # inline if short and simple
50
- if len(unindented) < 100 and not any(
51
- sym in unindented for sym in ("&&", ";", "\\", "|")
49
+ stripped = unindented.strip()
50
+
51
+ if len(stripped) < 100 and not any(
52
+ sym in stripped for sym in ("&&", ";", "\\", "|")
52
53
  ):
53
- return unindented
54
+ return stripped
54
55
 
55
- return FoldedScalarString(wrap_if_long(unindented))
56
+ folded_scalar = FoldedScalarString(stripped)
57
+
58
+ # If its piping "echo... | docker login ...", fold at the pipe for correct display
59
+ if " | " in stripped:
60
+ pipe_position = stripped.index(" | ")
61
+ folded_scalar.fold_pos = [pipe_position] # type: ignore[attr-defined]
62
+
63
+ return folded_scalar
56
64
 
57
65
  # Folding long lines logic (like a script that is super long so that it does not do anything weird in the folding process)
58
66
  if unindented.startswith(("docker ", "helm ", "tar ", "curl ")):
@@ -1,12 +1,11 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cici-tools
3
- Version: 0.18.0
3
+ Version: 0.18.2
4
4
  Summary: Continuous Integration Catalog Interface
5
5
  Author-email: Digital Safety Research Institute <contact@dsri.org>
6
6
  License: Apache-2.0
7
7
  Project-URL: Home, https://gitlab.com/saferatday0/cici
8
8
  Project-URL: Issues, https://gitlab.com/saferatday0/cici/-/issues
9
- Keywords: ci,pipeline,python
10
9
  Classifier: Development Status :: 1 - Planning
11
10
  Classifier: Intended Audience :: Developers
12
11
  Classifier: Topic :: Software Development :: Build Tools
@@ -28,6 +27,12 @@ Requires-Dist: msgspec
28
27
  Requires-Dist: python-decouple
29
28
  Requires-Dist: ruamel.yaml
30
29
  Requires-Dist: termcolor
30
+ Provides-Extra: test
31
+ Requires-Dist: pytest; extra == "test"
32
+ Provides-Extra: keywords
33
+ Requires-Dist: ci; extra == "keywords"
34
+ Requires-Dist: pipeline; extra == "keywords"
35
+ Requires-Dist: python; extra == "keywords"
31
36
  Dynamic: license-file
32
37
 
33
38
  # saferatday0 cici
@@ -6,3 +6,11 @@ msgspec
6
6
  python-decouple
7
7
  ruamel.yaml
8
8
  termcolor
9
+
10
+ [keywords]
11
+ ci
12
+ pipeline
13
+ python
14
+
15
+ [test]
16
+ pytest
@@ -10,13 +10,13 @@ MANAGE ?= $(PYTHON) ./manage.py
10
10
  all: setup
11
11
 
12
12
  .PHONY: setup
13
- setup: $(VENV)/requirements.txt
13
+ setup: $(VENV)/requirements.txt editable
14
14
 
15
15
  requirements.txt: pyproject.toml | $(VENV)
16
- uv pip compile --python-version $(PYTHON_VERSION) --upgrade -o requirements.txt pyproject.toml
16
+ uv pip compile --python-version $(PYTHON_VERSION) --extra test --upgrade -o requirements.txt pyproject.toml
17
17
 
18
18
  $(VENV)/requirements.txt: requirements.txt | $(VENV)
19
- VIRTUAL_ENV=$(VENV) uv pip install -r requirements.txt
19
+ uv pip install --python $(PYTHON) -r requirements.txt
20
20
  cp -f requirements.txt $(VENV)/requirements.txt
21
21
 
22
22
  $(VENV):
@@ -33,7 +33,7 @@ distclean:
33
33
 
34
34
  .PHONY: editable
35
35
  editable:
36
- VIRTUAL_ENV=$(VENV) uv pip install -e .
36
+ uv pip install --python $(PYTHON) -e .
37
37
 
38
38
  .PHONY: schema
39
39
  schema:
@@ -40,20 +40,23 @@ dependencies = [
40
40
  "termcolor",
41
41
  ]
42
42
 
43
+ license = { text = "Apache-2.0"}
44
+ readme = "README.md"
45
+ requires-python = ">=3.9"
46
+
43
47
  dynamic = ["version"]
44
48
 
49
+ [project.optional-dependencies]
50
+ test = [
51
+ "pytest",
52
+ ]
53
+
45
54
  keywords = [
46
55
  "ci",
47
56
  "pipeline",
48
57
  "python",
49
58
  ]
50
59
 
51
- license = {"text" = "Apache-2.0"}
52
-
53
- readme = "README.md"
54
-
55
- requires-python = ">=3.9"
56
-
57
60
  [project.scripts]
58
61
  cici = "cici.__main__:main"
59
62
 
@@ -91,13 +91,14 @@ container-docker-multiarch-amd64:
91
91
  - >-
92
92
  docker --version
93
93
  - >-
94
- echo "$CONTAINER_REGISTRY_PASSWORD" | docker login "$CONTAINER_REGISTRY" -u "$CONTAINER_REGISTRY_USER" --password-stdin
94
+ echo "$CONTAINER_REGISTRY_PASSWORD"
95
+ | docker login "$CONTAINER_REGISTRY" -u "$CONTAINER_REGISTRY_USER" --password-stdin
95
96
  - >-
96
- echo "$CI_DEPENDENCY_PROXY_PASSWORD" | docker login "$CI_DEPENDENCY_PROXY_SERVER" -u "$CI_DEPENDENCY_PROXY_USER"
97
-
98
- --password-stdin
97
+ echo "$CI_DEPENDENCY_PROXY_PASSWORD"
98
+ | docker login "$CI_DEPENDENCY_PROXY_SERVER" -u "$CI_DEPENDENCY_PROXY_USER" --password-stdin
99
99
  - >-
100
- echo "$CI_DEPENDENCY_PROXY_PASSWORD" | docker login "$CI_SERVER_HOST" -u "$CI_DEPENDENCY_PROXY_USER" --password-stdin
100
+ echo "$CI_DEPENDENCY_PROXY_PASSWORD"
101
+ | docker login "$CI_SERVER_HOST" -u "$CI_DEPENDENCY_PROXY_USER" --password-stdin
101
102
  - apk add --no-cache cosign
102
103
  - _CONTAINER_OPTS="$CONTAINER_BUILD_OPTS"
103
104
  - _CONTAINER_OPTS="$_CONTAINER_OPTS --tag ${CONTAINER_IMAGE}-${CONTAINER_COMMIT_SHORT_SHA}-${CONTAINER_DOCKER_ARCH}"
@@ -91,13 +91,14 @@ container-docker-multiarch-arm32v6:
91
91
  - >-
92
92
  docker --version
93
93
  - >-
94
- echo "$CONTAINER_REGISTRY_PASSWORD" | docker login "$CONTAINER_REGISTRY" -u "$CONTAINER_REGISTRY_USER" --password-stdin
94
+ echo "$CONTAINER_REGISTRY_PASSWORD"
95
+ | docker login "$CONTAINER_REGISTRY" -u "$CONTAINER_REGISTRY_USER" --password-stdin
95
96
  - >-
96
- echo "$CI_DEPENDENCY_PROXY_PASSWORD" | docker login "$CI_DEPENDENCY_PROXY_SERVER" -u "$CI_DEPENDENCY_PROXY_USER"
97
-
98
- --password-stdin
97
+ echo "$CI_DEPENDENCY_PROXY_PASSWORD"
98
+ | docker login "$CI_DEPENDENCY_PROXY_SERVER" -u "$CI_DEPENDENCY_PROXY_USER" --password-stdin
99
99
  - >-
100
- echo "$CI_DEPENDENCY_PROXY_PASSWORD" | docker login "$CI_SERVER_HOST" -u "$CI_DEPENDENCY_PROXY_USER" --password-stdin
100
+ echo "$CI_DEPENDENCY_PROXY_PASSWORD"
101
+ | docker login "$CI_SERVER_HOST" -u "$CI_DEPENDENCY_PROXY_USER" --password-stdin
101
102
  - apk add --no-cache cosign
102
103
  - _CONTAINER_OPTS="$CONTAINER_BUILD_OPTS"
103
104
  - _CONTAINER_OPTS="$_CONTAINER_OPTS --tag ${CONTAINER_IMAGE}-${CONTAINER_COMMIT_SHORT_SHA}-${CONTAINER_DOCKER_ARCH}"
@@ -91,13 +91,14 @@ container-docker-multiarch-arm32v7:
91
91
  - >-
92
92
  docker --version
93
93
  - >-
94
- echo "$CONTAINER_REGISTRY_PASSWORD" | docker login "$CONTAINER_REGISTRY" -u "$CONTAINER_REGISTRY_USER" --password-stdin
94
+ echo "$CONTAINER_REGISTRY_PASSWORD"
95
+ | docker login "$CONTAINER_REGISTRY" -u "$CONTAINER_REGISTRY_USER" --password-stdin
95
96
  - >-
96
- echo "$CI_DEPENDENCY_PROXY_PASSWORD" | docker login "$CI_DEPENDENCY_PROXY_SERVER" -u "$CI_DEPENDENCY_PROXY_USER"
97
-
98
- --password-stdin
97
+ echo "$CI_DEPENDENCY_PROXY_PASSWORD"
98
+ | docker login "$CI_DEPENDENCY_PROXY_SERVER" -u "$CI_DEPENDENCY_PROXY_USER" --password-stdin
99
99
  - >-
100
- echo "$CI_DEPENDENCY_PROXY_PASSWORD" | docker login "$CI_SERVER_HOST" -u "$CI_DEPENDENCY_PROXY_USER" --password-stdin
100
+ echo "$CI_DEPENDENCY_PROXY_PASSWORD"
101
+ | docker login "$CI_SERVER_HOST" -u "$CI_DEPENDENCY_PROXY_USER" --password-stdin
101
102
  - apk add --no-cache cosign
102
103
  - _CONTAINER_OPTS="$CONTAINER_BUILD_OPTS"
103
104
  - _CONTAINER_OPTS="$_CONTAINER_OPTS --tag ${CONTAINER_IMAGE}-${CONTAINER_COMMIT_SHORT_SHA}-${CONTAINER_DOCKER_ARCH}"
@@ -91,13 +91,14 @@ container-docker-multiarch-arm64v8:
91
91
  - >-
92
92
  docker --version
93
93
  - >-
94
- echo "$CONTAINER_REGISTRY_PASSWORD" | docker login "$CONTAINER_REGISTRY" -u "$CONTAINER_REGISTRY_USER" --password-stdin
94
+ echo "$CONTAINER_REGISTRY_PASSWORD"
95
+ | docker login "$CONTAINER_REGISTRY" -u "$CONTAINER_REGISTRY_USER" --password-stdin
95
96
  - >-
96
- echo "$CI_DEPENDENCY_PROXY_PASSWORD" | docker login "$CI_DEPENDENCY_PROXY_SERVER" -u "$CI_DEPENDENCY_PROXY_USER"
97
-
98
- --password-stdin
97
+ echo "$CI_DEPENDENCY_PROXY_PASSWORD"
98
+ | docker login "$CI_DEPENDENCY_PROXY_SERVER" -u "$CI_DEPENDENCY_PROXY_USER" --password-stdin
99
99
  - >-
100
- echo "$CI_DEPENDENCY_PROXY_PASSWORD" | docker login "$CI_SERVER_HOST" -u "$CI_DEPENDENCY_PROXY_USER" --password-stdin
100
+ echo "$CI_DEPENDENCY_PROXY_PASSWORD"
101
+ | docker login "$CI_SERVER_HOST" -u "$CI_DEPENDENCY_PROXY_USER" --password-stdin
101
102
  - apk add --no-cache cosign
102
103
  - _CONTAINER_OPTS="$CONTAINER_BUILD_OPTS"
103
104
  - _CONTAINER_OPTS="$_CONTAINER_OPTS --tag ${CONTAINER_IMAGE}-${CONTAINER_COMMIT_SHORT_SHA}-${CONTAINER_DOCKER_ARCH}"
@@ -91,13 +91,14 @@ container-docker-multiarch-i386:
91
91
  - >-
92
92
  docker --version
93
93
  - >-
94
- echo "$CONTAINER_REGISTRY_PASSWORD" | docker login "$CONTAINER_REGISTRY" -u "$CONTAINER_REGISTRY_USER" --password-stdin
94
+ echo "$CONTAINER_REGISTRY_PASSWORD"
95
+ | docker login "$CONTAINER_REGISTRY" -u "$CONTAINER_REGISTRY_USER" --password-stdin
95
96
  - >-
96
- echo "$CI_DEPENDENCY_PROXY_PASSWORD" | docker login "$CI_DEPENDENCY_PROXY_SERVER" -u "$CI_DEPENDENCY_PROXY_USER"
97
-
98
- --password-stdin
97
+ echo "$CI_DEPENDENCY_PROXY_PASSWORD"
98
+ | docker login "$CI_DEPENDENCY_PROXY_SERVER" -u "$CI_DEPENDENCY_PROXY_USER" --password-stdin
99
99
  - >-
100
- echo "$CI_DEPENDENCY_PROXY_PASSWORD" | docker login "$CI_SERVER_HOST" -u "$CI_DEPENDENCY_PROXY_USER" --password-stdin
100
+ echo "$CI_DEPENDENCY_PROXY_PASSWORD"
101
+ | docker login "$CI_SERVER_HOST" -u "$CI_DEPENDENCY_PROXY_USER" --password-stdin
101
102
  - apk add --no-cache cosign
102
103
  - _CONTAINER_OPTS="$CONTAINER_BUILD_OPTS"
103
104
  - _CONTAINER_OPTS="$_CONTAINER_OPTS --tag ${CONTAINER_IMAGE}-${CONTAINER_COMMIT_SHORT_SHA}-${CONTAINER_DOCKER_ARCH}"
@@ -88,13 +88,14 @@ container-docker-multiarch-manifest:
88
88
  - >-
89
89
  docker --version
90
90
  - >-
91
- echo "$CONTAINER_REGISTRY_PASSWORD" | docker login "$CONTAINER_REGISTRY" -u "$CONTAINER_REGISTRY_USER" --password-stdin
91
+ echo "$CONTAINER_REGISTRY_PASSWORD"
92
+ | docker login "$CONTAINER_REGISTRY" -u "$CONTAINER_REGISTRY_USER" --password-stdin
92
93
  - >-
93
- echo "$CI_DEPENDENCY_PROXY_PASSWORD" | docker login "$CI_DEPENDENCY_PROXY_SERVER" -u "$CI_DEPENDENCY_PROXY_USER"
94
-
95
- --password-stdin
94
+ echo "$CI_DEPENDENCY_PROXY_PASSWORD"
95
+ | docker login "$CI_DEPENDENCY_PROXY_SERVER" -u "$CI_DEPENDENCY_PROXY_USER" --password-stdin
96
96
  - >-
97
- echo "$CI_DEPENDENCY_PROXY_PASSWORD" | docker login "$CI_SERVER_HOST" -u "$CI_DEPENDENCY_PROXY_USER" --password-stdin
97
+ echo "$CI_DEPENDENCY_PROXY_PASSWORD"
98
+ | docker login "$CI_SERVER_HOST" -u "$CI_DEPENDENCY_PROXY_USER" --password-stdin
98
99
  - apk add --no-cache cosign
99
100
  - amend_list=""
100
101
  - |-
@@ -88,13 +88,14 @@ container-docker-multiarch:
88
88
  - >-
89
89
  docker --version
90
90
  - >-
91
- echo "$CONTAINER_REGISTRY_PASSWORD" | docker login "$CONTAINER_REGISTRY" -u "$CONTAINER_REGISTRY_USER" --password-stdin
91
+ echo "$CONTAINER_REGISTRY_PASSWORD"
92
+ | docker login "$CONTAINER_REGISTRY" -u "$CONTAINER_REGISTRY_USER" --password-stdin
92
93
  - >-
93
- echo "$CI_DEPENDENCY_PROXY_PASSWORD" | docker login "$CI_DEPENDENCY_PROXY_SERVER" -u "$CI_DEPENDENCY_PROXY_USER"
94
-
95
- --password-stdin
94
+ echo "$CI_DEPENDENCY_PROXY_PASSWORD"
95
+ | docker login "$CI_DEPENDENCY_PROXY_SERVER" -u "$CI_DEPENDENCY_PROXY_USER" --password-stdin
96
96
  - >-
97
- echo "$CI_DEPENDENCY_PROXY_PASSWORD" | docker login "$CI_SERVER_HOST" -u "$CI_DEPENDENCY_PROXY_USER" --password-stdin
97
+ echo "$CI_DEPENDENCY_PROXY_PASSWORD"
98
+ | docker login "$CI_SERVER_HOST" -u "$CI_DEPENDENCY_PROXY_USER" --password-stdin
98
99
  - apk add --no-cache cosign
99
100
  - _CONTAINER_OPTS="$CONTAINER_BUILD_OPTS"
100
101
  - _CONTAINER_OPTS="$_CONTAINER_OPTS --tag ${CONTAINER_IMAGE}-${CONTAINER_COMMIT_SHORT_SHA}-${CONTAINER_DOCKER_ARCH}"
@@ -88,13 +88,14 @@ container-docker:
88
88
  - >-
89
89
  docker --version
90
90
  - >-
91
- echo "$CONTAINER_REGISTRY_PASSWORD" | docker login "$CONTAINER_REGISTRY" -u "$CONTAINER_REGISTRY_USER" --password-stdin
91
+ echo "$CONTAINER_REGISTRY_PASSWORD"
92
+ | docker login "$CONTAINER_REGISTRY" -u "$CONTAINER_REGISTRY_USER" --password-stdin
92
93
  - >-
93
- echo "$CI_DEPENDENCY_PROXY_PASSWORD" | docker login "$CI_DEPENDENCY_PROXY_SERVER" -u "$CI_DEPENDENCY_PROXY_USER"
94
-
95
- --password-stdin
94
+ echo "$CI_DEPENDENCY_PROXY_PASSWORD"
95
+ | docker login "$CI_DEPENDENCY_PROXY_SERVER" -u "$CI_DEPENDENCY_PROXY_USER" --password-stdin
96
96
  - >-
97
- echo "$CI_DEPENDENCY_PROXY_PASSWORD" | docker login "$CI_SERVER_HOST" -u "$CI_DEPENDENCY_PROXY_USER" --password-stdin
97
+ echo "$CI_DEPENDENCY_PROXY_PASSWORD"
98
+ | docker login "$CI_SERVER_HOST" -u "$CI_DEPENDENCY_PROXY_USER" --password-stdin
98
99
  - apk add --no-cache cosign
99
100
  - _CONTAINER_OPTS="$CONTAINER_BUILD_OPTS"
100
101
  - _CONTAINER_OPTS="$_CONTAINER_OPTS --tag ${CONTAINER_IMAGE}-${CONTAINER_COMMIT_SHORT_SHA}"
@@ -88,13 +88,14 @@ container-trivy:
88
88
  - >-
89
89
  docker --version
90
90
  - >-
91
- echo "$CONTAINER_REGISTRY_PASSWORD" | docker login "$CONTAINER_REGISTRY" -u "$CONTAINER_REGISTRY_USER" --password-stdin
91
+ echo "$CONTAINER_REGISTRY_PASSWORD"
92
+ | docker login "$CONTAINER_REGISTRY" -u "$CONTAINER_REGISTRY_USER" --password-stdin
92
93
  - >-
93
- echo "$CI_DEPENDENCY_PROXY_PASSWORD" | docker login "$CI_DEPENDENCY_PROXY_SERVER" -u "$CI_DEPENDENCY_PROXY_USER"
94
-
95
- --password-stdin
94
+ echo "$CI_DEPENDENCY_PROXY_PASSWORD"
95
+ | docker login "$CI_DEPENDENCY_PROXY_SERVER" -u "$CI_DEPENDENCY_PROXY_USER" --password-stdin
96
96
  - >-
97
- echo "$CI_DEPENDENCY_PROXY_PASSWORD" | docker login "$CI_SERVER_HOST" -u "$CI_DEPENDENCY_PROXY_USER" --password-stdin
97
+ echo "$CI_DEPENDENCY_PROXY_PASSWORD"
98
+ | docker login "$CI_SERVER_HOST" -u "$CI_DEPENDENCY_PROXY_USER" --password-stdin
98
99
  - apk add --no-cache curl
99
100
  - >-
100
101
  curl -sSL https://github.com/aquasecurity/trivy/releases/download/v0.49.1/trivy_0.49.1_Linux-64bit.tar.gz
@@ -94,3 +94,54 @@ def test_yaml_dump_has_no_blank_line_in_folded_scalar(command_text):
94
94
  assert not any(line.strip() == "" for line in folded_block[1:]), "\n".join(
95
95
  folded_block
96
96
  )
97
+
98
+
99
+ @pytest.mark.parametrize(
100
+ "command",
101
+ [
102
+ # generic echo | docker login case
103
+ 'echo "password" | docker login "registry" -u "user" --password-stdin',
104
+ # generic long piped command
105
+ 'echo "token" | some-tool login --flag-a --flag-b --flag-c --flag-d',
106
+ # generic curl | tar example
107
+ "curl https://example.com/archive.tar.gz | tar -C /usr/local/bin -xzf -",
108
+ ],
109
+ ids=[
110
+ "echo-pipe-docker-login",
111
+ "echo-pipe-generic-tool",
112
+ "curl-pipe-tar",
113
+ ],
114
+ )
115
+ def test_folded_scalar_does_not_insert_blank_lines(command):
116
+ """
117
+ Folded scalars should:
118
+ - contain no semantic newlines
119
+ - fold visually using >-
120
+ - not introduce blank lines in YAML output
121
+ """
122
+
123
+ scalar = make_scalar_string(command)
124
+
125
+ # 1. Value must not contain semantic newlines
126
+ assert isinstance(scalar, FoldedScalarString)
127
+ assert "\n" not in str(scalar)
128
+
129
+ # 2. Dump YAML
130
+ yaml = ruamel.yaml.YAML()
131
+ yaml.width = 120
132
+
133
+ data = {"script": [scalar]}
134
+ stream = io.StringIO()
135
+ yaml.dump(data, stream)
136
+ output = stream.getvalue()
137
+
138
+ # 3. Must be folded
139
+ assert ">-" in output
140
+
141
+ # 4. Must not contain blank line inside folded block
142
+ # (blank line would show up as double newline)
143
+ assert "\n\n" not in output
144
+
145
+ # 5. The command must still appear intact
146
+ for part in command.split():
147
+ assert part in output
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