Skip to content

Add new collect keyless params task#3186

Open
simonbaird wants to merge 4 commits intoconforma:mainfrom
simonbaird:keyless-params-task-redo
Open

Add new collect keyless params task#3186
simonbaird wants to merge 4 commits intoconforma:mainfrom
simonbaird:keyless-params-task-redo

Conversation

@simonbaird
Copy link
Member

The task will look in a ConfigMap container Konflux cluster config related to keyless signing. The idea is to use the task results as input params to the Conforma task so it can perform keyless signature verification using the correct params.

Ref: https://redhat.atlassian.net/browse/EC-1695

Note: This was split out from #3171 which has been blocked on some unrelated acceptance test problems because I was doing too much in the one PR. This PR has the task only, so should be green and ready to merge.

@coderabbitai
Copy link

coderabbitai bot commented Mar 20, 2026

📝 Walkthrough

Walkthrough

Adds a new Tekton Task collect-keyless-params that reads keyless signing configuration from a Kubernetes ConfigMap and exposes results, plus bundle/workflow inclusion, acceptance-test support (cluster APIs and steps), BDD scenarios, and documentation.

Changes

Cohort / File(s) Summary
Tekton Bundle & Release Workflow
.github/workflows/release.yaml, .tekton/cli-main-pull-request.yaml, .tekton/cli-main-push.yaml
Appended tasks/collect-keyless-params/0.1/collect-keyless-params.yaml to TASKS/CONTEXT used when building/pushing Tekton bundles; added an inline deprecation comment for enterprise-contract bundle step.
New Tekton Task
tasks/collect-keyless-params/0.1/collect-keyless-params.yaml
Added Task collect-keyless-params with params configMapName/configMapNamespace and results (defaultOIDCIssuer, rekorExternalUrl, fulcioExternalUrl, tufExternalUrl, buildIdentity, buildIdentityRegexp, keylessSigningEnabled); step runs a container that uses kubectl + jq to read/parse the ConfigMap and set results.
Acceptance test cluster API & impl
acceptance/kubernetes/types/types.go, acceptance/kubernetes/kind/kubernetes.go, acceptance/kubernetes/stub/stub.go
Extended Cluster interface with CreateNamedNamespace and CreateConfigMap. kindCluster implements namespace creation, JSON-aware ConfigMap create-or-update (with RBAC setup). stubCluster returns unsupported errors for these methods.
Acceptance test step bindings
acceptance/kubernetes/kubernetes.go
Added BDD step handlers that call cluster methods: steps for creating a named namespace and creating/updating a ConfigMap from provided content.
BDD Scenarios & Docs
features/task_validate_image.feature, docs/modules/ROOT/partials/tasks_nav.adoc, docs/modules/ROOT/pages/collect-keyless-params.adoc
Added five Gherkin scenarios validating collect-keyless-params behavior under enabled/disabled/malformed/missing ConfigMap cases; added navigation entry and a docs page describing task behavior, params, and results.

Sequence Diagram(s)

sequenceDiagram
    participant Pipeline as Pipeline/Bundle
    participant TektonTask as Tekton Task (collect-keyless-params)
    participant Container as Task Container (cli:latest)
    participant K8sAPI as Kubernetes API (ConfigMap)
    Pipeline->>TektonTask: invoke task with params
    TektonTask->>Container: start step (bash script)
    Container->>K8sAPI: kubectl get configmap -o json
    K8sAPI-->>Container: JSON (or empty / not found)
    Container->>Container: parse with jq, compute results
    Container-->>TektonTask: write tekton results
    TektonTask-->>Pipeline: publish results
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 20.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title 'Add new collect keyless params task' accurately summarizes the main change: introducing a new Tekton task for collecting keyless signing parameters.
Description check ✅ Passed The description is directly related to the changeset, explaining the task's purpose, ConfigMap usage for keyless signing, and providing context and justification for the work.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Warning

There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.

🔧 golangci-lint (2.11.3)

Error: can't load config: unsupported version of the configuration: "" See https://golangci-lint.run/docs/product/migration-guide for migration instructions
The command is terminated due to an error: can't load config: unsupported version of the configuration: "" See https://golangci-lint.run/docs/product/migration-guide for migration instructions


Comment @coderabbitai help to get the list of available commands and usage tips.

@qodo-code-review
Copy link
Contributor

Review Summary by Qodo

Add collect-keyless-params task with ConfigMap support and acceptance tests

✨ Enhancement 🧪 Tests

Grey Divider

Walkthroughs

Description
• Add new collect-keyless-params Tekton task for reading keyless signing configuration from
  ConfigMaps
• Implement ConfigMap and namespace creation support in acceptance test framework with RBAC
  permissions
• Add comprehensive acceptance test scenarios covering multiple ConfigMap states and edge cases
• Include new task in bundle pushes for both Konflux and deprecated GitHub repositories
Diagram
flowchart LR
  A["New Task: collect-keyless-params"] -->|reads config from| B["ConfigMap in konflux-info namespace"]
  B -->|extracts parameters| C["Keyless signing configuration"]
  D["Test Framework Enhancements"] -->|supports| E["ConfigMap creation"]
  D -->|supports| F["Namespace creation"]
  D -->|manages| G["RBAC permissions"]
  H["Bundle Workflows"] -->|include| A
Loading

Grey Divider

File Changes

1. tasks/collect-keyless-params/0.1/collect-keyless-params.yaml ✨ Enhancement +176/-0

New Tekton task for collecting keyless signing parameters

tasks/collect-keyless-params/0.1/collect-keyless-params.yaml


2. acceptance/kubernetes/kind/kubernetes.go ✨ Enhancement +133/-0

Add ConfigMap and namespace creation with RBAC support

acceptance/kubernetes/kind/kubernetes.go


3. acceptance/kubernetes/kubernetes.go ✨ Enhancement +22/-0

Add step definitions for ConfigMap and namespace creation

acceptance/kubernetes/kubernetes.go


View more (7)
4. acceptance/kubernetes/types/types.go ✨ Enhancement +2/-0

Add interface methods for ConfigMap and namespace operations

acceptance/kubernetes/types/types.go


5. acceptance/kubernetes/stub/stub.go ✨ Enhancement +8/-0

Add stub implementations for ConfigMap and namespace creation

acceptance/kubernetes/stub/stub.go


6. features/task_validate_image.feature 🧪 Tests +118/-0

Add acceptance test scenarios for collect-keyless-params task

features/task_validate_image.feature


7. .github/workflows/release.yaml ⚙️ Configuration changes +3/-2

Include collect-keyless-params task in bundle pushes

.github/workflows/release.yaml


8. .tekton/cli-main-pull-request.yaml ⚙️ Configuration changes +4/-1

Add collect-keyless-params to pull request bundle build

.tekton/cli-main-pull-request.yaml


9. .tekton/cli-main-push.yaml ⚙️ Configuration changes +4/-1

Add collect-keyless-params to main push bundle build

.tekton/cli-main-push.yaml


10. docs/modules/ROOT/partials/tasks_nav.adoc 📝 Documentation +1/-0

Add collect-keyless-params to documentation navigation

docs/modules/ROOT/partials/tasks_nav.adoc


Grey Divider

Qodo Logo

@qodo-code-review
Copy link
Contributor

qodo-code-review bot commented Mar 20, 2026

Code Review by Qodo

🐞 Bugs (3) 📘 Rule violations (0) 📎 Requirement gaps (0) 📐 Spec deviations (0)

Grey Divider


Action required

1. Broken docs xref 🐞 Bug ✓ Correctness
Description
The docs navigation links to collect-keyless-params.adoc, but that page is not present in the docs
pages directory, causing a broken navigation entry (and often a docs build failure under strict
Antora settings).
Code

docs/modules/ROOT/partials/tasks_nav.adoc[2]

+** xref:collect-keyless-params.adoc[collect-keyless-params]
Evidence
tasks_nav adds an xref to collect-keyless-params.adoc and this partial is included in the published
nav, so the missing page directly affects rendered documentation navigation.

docs/modules/ROOT/partials/tasks_nav.adoc[1-5]
docs/modules/ROOT/nav.adoc[1-4]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
Docs navigation references `xref:collect-keyless-params.adoc`, but there is no corresponding page file, creating a broken xref (and potentially breaking docs builds).

## Issue Context
The tasks navigation partial is included in the global Antora nav.

## Fix Focus Areas
- docs/modules/ROOT/partials/tasks_nav.adoc[1-5]
- docs/modules/ROOT/nav.adoc[1-4]

## Expected fix
- Add `docs/modules/ROOT/pages/collect-keyless-params.adoc` describing the new task (inputs/results/example usage), OR
- Remove/hold back the nav entry until the page exists.

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools



Remediation recommended

2. MinVersion annotation mismatch 🐞 Bug ✓ Correctness
Description
The new task declares apiVersion: tekton.dev/v1 but sets tekton.dev/pipelines.minVersion to
0.12.1, which is inconsistent with other v1 tasks in this repo and can mislead users/tooling about
compatibility.
Code

tasks/collect-keyless-params/0.1/collect-keyless-params.yaml[R18-25]

+apiVersion: tekton.dev/v1
+kind: Task
+metadata:
+  name: collect-keyless-params
+  annotations:
+    tekton.dev/displayName: Collect Keyless Signing Parameters
+    tekton.dev/pipelines.minVersion: "0.12.1"
+    tekton.dev/tags: ec, keyless, signing, configuration
Evidence
The new task’s minVersion differs from the established pattern used by existing tekton.dev/v1
tasks in this repo, indicating the new value is likely incorrect or at least inconsistent.

tasks/collect-keyless-params/0.1/collect-keyless-params.yaml[18-25]
tasks/verify-enterprise-contract/0.1/verify-enterprise-contract.yaml[18-25]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
`tasks/collect-keyless-params` sets `tekton.dev/pipelines.minVersion: "0.12.1"` while using `apiVersion: tekton.dev/v1`. This is inconsistent with other tasks in this repository and may cause incorrect compatibility signaling.

## Issue Context
Other tasks in `tasks/*/0.1/*.yaml` using `tekton.dev/v1` declare `tekton.dev/pipelines.minVersion: "0.19"`.

## Fix Focus Areas
- tasks/collect-keyless-params/0.1/collect-keyless-params.yaml[18-25]
- tasks/verify-enterprise-contract/0.1/verify-enterprise-contract.yaml[18-25]

## Expected fix
- Update `tekton.dev/pipelines.minVersion` for `collect-keyless-params` to match the repo’s convention (likely `"0.19"`), or otherwise set it to the minimum version that actually supports the features/apiVersion used by this task.

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


3. Brittle AlreadyExists checks 🐞 Bug ⛯ Reliability
Description
Acceptance Kind helpers detect AlreadyExists by matching the error message text, which can cause
flaky failures if Kubernetes error strings change; typed checks are already used elsewhere in the
same file.
Code

acceptance/kubernetes/kind/kubernetes.go[R273-276]

+	if _, err := k.client.RbacV1().ClusterRoles().Create(ctx, clusterRole, metav1.CreateOptions{}); err != nil {
+		// Ignore error if ClusterRole already exists
+		if !strings.Contains(err.Error(), "already exists") {
+			return fmt.Errorf("failed to create ClusterRole: %w", err)
Evidence
RBAC and namespace creation use strings.Contains(err.Error(), "already exists"), while ConfigMap
creation in the same file correctly uses apierrors.IsAlreadyExists(err), showing a safer,
consistent approach is already available.

acceptance/kubernetes/kind/kubernetes.go[273-277]
acceptance/kubernetes/kind/kubernetes.go[299-304]
acceptance/kubernetes/kind/kubernetes.go[309-323]
acceptance/kubernetes/kind/kubernetes.go[229-232]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
`ensureConfigMapRBAC` and `CreateNamedNamespace` ignore AlreadyExists errors by string-matching `err.Error()`. This is fragile and can break acceptance runs.

## Issue Context
The file already imports and uses `k8s.io/apimachinery/pkg/api/errors` (`apierrors.IsAlreadyExists`) for ConfigMap creation.

## Fix Focus Areas
- acceptance/kubernetes/kind/kubernetes.go[257-307]
- acceptance/kubernetes/kind/kubernetes.go[309-323]
- acceptance/kubernetes/kind/kubernetes.go[229-232]

## Expected fix
- Replace `strings.Contains(err.Error(), "already exists")` with `apierrors.IsAlreadyExists(err)` for:
 - ClusterRole create
 - ClusterRoleBinding create
 - Namespace create
- Keep returning wrapped errors for non-AlreadyExists cases.

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


Grey Divider

ⓘ The new review experience is currently in Beta. Learn more

Grey Divider

Qodo Logo

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (3)
features/task_validate_image.feature (1)

495-517: Add missing buildIdentity assertion in the “ConfigMap does not exist” scenario.

Line [516]-[517] validates buildIdentityRegexp but this scenario does not assert buildIdentity, leaving one result unchecked in this failure path.

Proposed test assertion patch
     And the task result "tufExternalUrl" should equal ""
+    And the task result "buildIdentity" should equal ""
     And the task result "buildIdentityRegexp" should equal ""
     And the task result "keylessSigningEnabled" should equal "false"
As per coding guidelines, "-Focus on major issues impacting performance, readability, maintainability and security. Avoid nitpicks and avoid verbosity."
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@features/task_validate_image.feature` around lines 495 - 517, The "ConfigMap
does not exist" scenario for the task "collect-keyless-params" is missing an
assertion for the task result "buildIdentity", leaving that output unchecked;
add a new step asserting That the task result "buildIdentity" should equal ""
(empty string) alongside the existing assertions (e.g., after the
"buildIdentityRegexp" and before "keylessSigningEnabled") so the failure path
verifies all keyless signing fields produced by the "collect-signing-params"
step.
acceptance/kubernetes/kind/kubernetes.go (2)

317-320: Same issue: use apierrors.IsAlreadyExists instead of string matching.

♻️ Proposed fix
 	// Ignore error if namespace already exists
-	if err != nil && strings.Contains(err.Error(), "already exists") {
+	if err != nil && apierrors.IsAlreadyExists(err) {
 		return nil
 	}
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@acceptance/kubernetes/kind/kubernetes.go` around lines 317 - 320, Replace the
string-match check for an existing namespace with the Kubernetes API helper: use
apierrors.IsAlreadyExists(err) instead of strings.Contains(err.Error(), "already
exists") in the function that handles namespace creation (the block currently
checking err != nil && strings.Contains(...)); also add the import for
"k8s.io/apimachinery/pkg/api/errors" aliased as apierrors if not already present
so the check becomes apierrors.IsAlreadyExists(err) and returns nil when true.

273-278: Use apierrors.IsAlreadyExists consistently for error checking.

Lines 275 and 301 use string matching on the error message, while line 231 correctly uses apierrors.IsAlreadyExists(err). The string-based approach is fragile and inconsistent with the rest of this file.

♻️ Proposed fix
 	if _, err := k.client.RbacV1().ClusterRoles().Create(ctx, clusterRole, metav1.CreateOptions{}); err != nil {
 		// Ignore error if ClusterRole already exists
-		if !strings.Contains(err.Error(), "already exists") {
+		if !apierrors.IsAlreadyExists(err) {
 			return fmt.Errorf("failed to create ClusterRole: %w", err)
 		}
 	}
 	if _, err := k.client.RbacV1().ClusterRoleBindings().Create(ctx, clusterRoleBinding, metav1.CreateOptions{}); err != nil {
 		// Ignore error if ClusterRoleBinding already exists
-		if !strings.Contains(err.Error(), "already exists") {
+		if !apierrors.IsAlreadyExists(err) {
 			return fmt.Errorf("failed to create ClusterRoleBinding: %w", err)
 		}
 	}

Also applies to: 299-304

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@acceptance/kubernetes/kind/kubernetes.go` around lines 273 - 278, Replace
fragile string matching on err.Error() with Kubernetes API error helper: call
apierrors.IsAlreadyExists(err) to detect already-existing resources;
specifically update the error checks after
k.client.RbacV1().ClusterRoles().Create (and the similar check after
k.client.RbacV1().ClusterRoleBindings().Create) to use
apierrors.IsAlreadyExists(err) and only return an error when that helper returns
false, ensuring import of "k8s.io/apimachinery/pkg/api/errors" (alias apierrors)
is present.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@acceptance/kubernetes/kind/kubernetes.go`:
- Around line 317-320: Replace the string-match check for an existing namespace
with the Kubernetes API helper: use apierrors.IsAlreadyExists(err) instead of
strings.Contains(err.Error(), "already exists") in the function that handles
namespace creation (the block currently checking err != nil &&
strings.Contains(...)); also add the import for
"k8s.io/apimachinery/pkg/api/errors" aliased as apierrors if not already present
so the check becomes apierrors.IsAlreadyExists(err) and returns nil when true.
- Around line 273-278: Replace fragile string matching on err.Error() with
Kubernetes API error helper: call apierrors.IsAlreadyExists(err) to detect
already-existing resources; specifically update the error checks after
k.client.RbacV1().ClusterRoles().Create (and the similar check after
k.client.RbacV1().ClusterRoleBindings().Create) to use
apierrors.IsAlreadyExists(err) and only return an error when that helper returns
false, ensuring import of "k8s.io/apimachinery/pkg/api/errors" (alias apierrors)
is present.

In `@features/task_validate_image.feature`:
- Around line 495-517: The "ConfigMap does not exist" scenario for the task
"collect-keyless-params" is missing an assertion for the task result
"buildIdentity", leaving that output unchecked; add a new step asserting That
the task result "buildIdentity" should equal "" (empty string) alongside the
existing assertions (e.g., after the "buildIdentityRegexp" and before
"keylessSigningEnabled") so the failure path verifies all keyless signing fields
produced by the "collect-signing-params" step.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: d989645f-b73b-44ac-bade-1a27a46a9f83

📥 Commits

Reviewing files that changed from the base of the PR and between e46c21e and e05fc8f.

⛔ Files ignored due to path filters (1)
  • features/__snapshots__/task_validate_image.snap is excluded by !**/*.snap
📒 Files selected for processing (10)
  • .github/workflows/release.yaml
  • .tekton/cli-main-pull-request.yaml
  • .tekton/cli-main-push.yaml
  • acceptance/kubernetes/kind/kubernetes.go
  • acceptance/kubernetes/kubernetes.go
  • acceptance/kubernetes/stub/stub.go
  • acceptance/kubernetes/types/types.go
  • docs/modules/ROOT/partials/tasks_nav.adoc
  • features/task_validate_image.feature
  • tasks/collect-keyless-params/0.1/collect-keyless-params.yaml

@codecov
Copy link

codecov bot commented Mar 20, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.

Flag Coverage Δ
acceptance 55.17% <ø> (+<0.01%) ⬆️
generative 17.90% <ø> (ø)
integration 26.63% <ø> (ø)
unit 69.01% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

simonbaird and others added 4 commits March 20, 2026 13:50
(A test will be added in some upcoming commits.)

Ref: https://redhat.atlassian.net/browse/EC-1695
Co-authored-by: Claude Code <noreply@anthropic.com>
Also namespaces, since we want the ConfigMap in a particular
namespace. An RBAC is created also so the ConfigMap is readable by
every service account.

This will be used in the acceptance test added in an upcoming
commit.

Ref: https://issues.redhat.com/browse/EC-1695
Co-authored-by: Claude Code <noreply@anthropic.com>
There are pushes happening in both Konflux and GitHub, and each of
those pushes to the new and old locations. I added the new task
everywhere, even the deprecated repo.

Ref: https://redhat.atlassian.net/browse/EC-1695
@simonbaird simonbaird force-pushed the keyless-params-task-redo branch from e05fc8f to 19b48d2 Compare March 20, 2026 17:54
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
tasks/collect-keyless-params/0.1/collect-keyless-params.yaml (1)

142-146: Minor: Log message could be more precise.

The message states "enableKeylessSigning is not set" but the condition triggers when the value is anything other than "true" (including explicit "false"). Consider clarifying:

✏️ Suggested improvement
           else
             # Otherwise we ignore the rest of the ConfigMap
-            echo "enableKeylessSigning is not set, using default empty values"
+            echo "enableKeylessSigning is not 'true', using default empty values"
 
           fi
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@tasks/collect-keyless-params/0.1/collect-keyless-params.yaml` around lines
142 - 146, The log is misleading because the else branch runs for any value
other than "true"; update the echo in the else branch that mentions
enableKeylessSigning so it clearly states the value isn't "true" (and ideally
print the actual variable), e.g. change the message currently printed by the
else branch to indicate enableKeylessSigning != "true" and include the variable
value (e.g., enableKeylessSigning="$enableKeylessSigning") while keeping the
note about using default empty values.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@tasks/collect-keyless-params/0.1/collect-keyless-params.yaml`:
- Around line 142-146: The log is misleading because the else branch runs for
any value other than "true"; update the echo in the else branch that mentions
enableKeylessSigning so it clearly states the value isn't "true" (and ideally
print the actual variable), e.g. change the message currently printed by the
else branch to indicate enableKeylessSigning != "true" and include the variable
value (e.g., enableKeylessSigning="$enableKeylessSigning") while keeping the
note about using default empty values.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: caacea4b-f132-4178-821d-44b0d74c7866

📥 Commits

Reviewing files that changed from the base of the PR and between e05fc8f and 19b48d2.

⛔ Files ignored due to path filters (1)
  • features/__snapshots__/task_validate_image.snap is excluded by !**/*.snap
📒 Files selected for processing (11)
  • .github/workflows/release.yaml
  • .tekton/cli-main-pull-request.yaml
  • .tekton/cli-main-push.yaml
  • acceptance/kubernetes/kind/kubernetes.go
  • acceptance/kubernetes/kubernetes.go
  • acceptance/kubernetes/stub/stub.go
  • acceptance/kubernetes/types/types.go
  • docs/modules/ROOT/pages/collect-keyless-params.adoc
  • docs/modules/ROOT/partials/tasks_nav.adoc
  • features/task_validate_image.feature
  • tasks/collect-keyless-params/0.1/collect-keyless-params.yaml
✅ Files skipped from review due to trivial changes (3)
  • docs/modules/ROOT/partials/tasks_nav.adoc
  • docs/modules/ROOT/pages/collect-keyless-params.adoc
  • acceptance/kubernetes/kind/kubernetes.go
🚧 Files skipped from review as they are similar to previous changes (5)
  • acceptance/kubernetes/types/types.go
  • .tekton/cli-main-pull-request.yaml
  • acceptance/kubernetes/stub/stub.go
  • .github/workflows/release.yaml
  • features/task_validate_image.feature

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant