Skip to content

Testing ConfigMap Tagging - #424

Open
tommyd450 wants to merge 2 commits into
release-1.3from
tagtest
Open

Testing ConfigMap Tagging#424
tommyd450 wants to merge 2 commits into
release-1.3from
tagtest

Conversation

@tommyd450

Copy link
Copy Markdown

No description provided.

@qodo-for-securesign

Copy link
Copy Markdown

PR Summary by Qodo

Point Tekton Fulcio PR pipeline to SECURESIGN-4640 branch

⚙️ Configuration changes 🕐 Less than 5 minutes

Grey Divider

AI Description

• Switch Fulcio pull-request pipeline to use a non-main pipelines.git revision.
• Enables testing ConfigMap tagging behavior from the SECURESIGN-4640 work branch.
Diagram

graph TD
  A["Pull request event"] --> B["Tekton PipelineRun"] --> C["pipelines.git repo"] --> D["Use revision: SECURESIGN-4640"]
  subgraph Legend
    direction LR
    _evt([Trigger]) ~~~ _cfg["Tekton config"] ~~~ _repo[(Git repo)]
  end
Loading
High-Level Assessment

The following are alternative approaches to this PR:

1. Parameterize the revision (default: main)
  • ➕ Avoids hardcoding a personal/temporary branch in shared CI config
  • ➕ Allows testing feature branches without committing config changes
  • ➕ Makes it easier to revert to main behavior automatically
  • ➖ Requires wiring a parameter through triggers/templates
  • ➖ Slightly more configuration upfront
2. Pin to an immutable ref (tag or commit SHA)
  • ➕ Reproducible builds; avoids unexpected changes if branch moves
  • ➕ Clear audit trail for what pipeline code ran
  • ➖ Less convenient for rapid iteration than a branch
  • ➖ Needs updates when new pipeline changes are required

Recommendation: If this is temporary testing, consider parameterizing the revision or pinning to a commit SHA to avoid leaving CI pointed at a personal branch. If the intent is longer-lived, switch to a shared feature branch name (or tag) and document the purpose in the Tekton config.

Files changed (1) +1 / -1

Other (1) +1 / -1
fulcio-pull-request.yamlUpdate pipeline git revision for Fulcio PR runs +1/-1

Update pipeline git revision for Fulcio PR runs

• Changes the referenced pipelines.git revision from 'main' to 'jkopriva/SECURESIGN-4640', causing the Tekton PR pipeline to source its task definition from that branch.

.tekton/fulcio-pull-request.yaml

@qodo-for-securesign

qodo-for-securesign Bot commented Jul 27, 2026

Copy link
Copy Markdown

Code Review by Qodo

🐞 Bugs (1) 📘 Rule violations (0) 📎 Requirement gaps (0) 🎨 UX issues (0) 🔗 Cross-repo conflicts (0) 📜 Skill insights (0)

Grey Divider


Action required

1. Mutable pipeline git revision 🐞 Bug ⛨ Security
Description
The PR PipelineRun now resolves its pipeline definition from the mutable branch
jkopriva/SECURESIGN-4640 in securesign/pipelines.git, which can silently change CI behavior over
time or break builds if the branch is deleted/unavailable. This also increases supply-chain risk
because PR CI will execute whatever pipeline logic that branch points to, unlike the push pipeline
which remains on main.
Code

.tekton/fulcio-pull-request.yaml[55]

+        value: 'jkopriva/SECURESIGN-4640'
Evidence
The pull-request PipelineRun’s git resolver revision was changed to a feature branch, while the
push PipelineRun still references main, demonstrating a newly introduced divergence and reliance
on a mutable ref for PR CI execution.

.tekton/fulcio-pull-request.yaml[49-57]
.tekton/fulcio-push.yaml[47-55]
.tekton/fulcio-pull-request.yaml[9-10]

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

## Issue description
`.tekton/fulcio-pull-request.yaml` uses the Tekton `git` resolver to fetch a pipeline definition from `https://github.com/securesign/pipelines.git`, but the referenced `revision` was changed from `main` to a mutable feature branch (`jkopriva/SECURESIGN-4640`). This makes PR builds non-reproducible and fragile (branch can be force-pushed/deleted) and can cause PR CI to execute unexpected pipeline logic.

## Issue Context
The push PipelineRun still references `main`, so pull-request and push builds would run different pipeline definitions.

## Fix Focus Areas
- .tekton/fulcio-pull-request.yaml[49-57]

## Recommended fix
Change `pipelineRef.params.revision` back to a stable reference (e.g., `main`, a release branch, or preferably an immutable commit SHA/tag) consistent with the push pipeline configuration.

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


Grey Divider

Qodo Logo

Comment thread .tekton/fulcio-pull-request.yaml Outdated
value: 'https://github.com/securesign/pipelines.git'
- name: revision
value: 'main'
value: 'jkopriva/SECURESIGN-4640'

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Action required

1. Mutable pipeline git revision 🐞 Bug ⛨ Security

The PR PipelineRun now resolves its pipeline definition from the mutable branch
jkopriva/SECURESIGN-4640 in securesign/pipelines.git, which can silently change CI behavior over
time or break builds if the branch is deleted/unavailable. This also increases supply-chain risk
because PR CI will execute whatever pipeline logic that branch points to, unlike the push pipeline
which remains on main.
Agent Prompt
## Issue description
`.tekton/fulcio-pull-request.yaml` uses the Tekton `git` resolver to fetch a pipeline definition from `https://github.com/securesign/pipelines.git`, but the referenced `revision` was changed from `main` to a mutable feature branch (`jkopriva/SECURESIGN-4640`). This makes PR builds non-reproducible and fragile (branch can be force-pushed/deleted) and can cause PR CI to execute unexpected pipeline logic.

## Issue Context
The push PipelineRun still references `main`, so pull-request and push builds would run different pipeline definitions.

## Fix Focus Areas
- .tekton/fulcio-pull-request.yaml[49-57]

## Recommended fix
Change `pipelineRef.params.revision` back to a stable reference (e.g., `main`, a release branch, or preferably an immutable commit SHA/tag) consistent with the push pipeline configuration.

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

@tommyd450

Copy link
Copy Markdown
Author

/retest

@red-hat-konflux

Copy link
Copy Markdown

All PipelineRuns for this commit have already succeeded. Use /retest <pipeline-name> to re-run a specific pipeline or /test to re-run all pipelines.

@tommyd450

Copy link
Copy Markdown
Author

/test

@qodo-for-securesign

Copy link
Copy Markdown

PR-Agent: Missing component name in test command: /test <component_name>.
Running automatically on the largest changed component.


✨ Test tool usage guide:

The test tool generate tests for a selected component, based on the PR code changes.
It can be invoked manually by commenting on any PR:

/test component_name

where 'component_name' is the name of a specific component in the PR. To get a list of the components that changed in the PR, use the analyze tool.
Language that are currently supported: Python, Java, C++, JavaScript, TypeScript.

Configuration options:

  • num_tests: number of tests to generate. Default is 3.
  • testing_framework: the testing framework to use. If not set, for Python it will use pytest, for Java it will use JUnit, for C++ it will use Catch2, and for JavaScript and TypeScript it will use jest.
  • avoid_mocks: if set to true, the tool will try to avoid using mocks in the generated tests. Note that even if this option is set to true, the tool might still use mocks if it cannot generate a test without them. Default is true.
  • extra_instructions: Optional extra instructions to the tool. For example: "use the following mock injection scheme: ...".
  • file: in case there are several components with the same name, you can specify the relevant file.
  • class_name: in case there are several components with the same name in the same file, you can specify the relevant class name.

See more information about the test tool in the docs.

@tommyd450

Copy link
Copy Markdown
Author

/test

@qodo-for-securesign

Copy link
Copy Markdown

PR-Agent: Missing component name in test command: /test <component_name>.
Running automatically on the largest changed component.


✨ Test tool usage guide:

The test tool generate tests for a selected component, based on the PR code changes.
It can be invoked manually by commenting on any PR:

/test component_name

where 'component_name' is the name of a specific component in the PR. To get a list of the components that changed in the PR, use the analyze tool.
Language that are currently supported: Python, Java, C++, JavaScript, TypeScript.

Configuration options:

  • num_tests: number of tests to generate. Default is 3.
  • testing_framework: the testing framework to use. If not set, for Python it will use pytest, for Java it will use JUnit, for C++ it will use Catch2, and for JavaScript and TypeScript it will use jest.
  • avoid_mocks: if set to true, the tool will try to avoid using mocks in the generated tests. Note that even if this option is set to true, the tool might still use mocks if it cannot generate a test without them. Default is true.
  • extra_instructions: Optional extra instructions to the tool. For example: "use the following mock injection scheme: ...".
  • file: in case there are several components with the same name, you can specify the relevant file.
  • class_name: in case there are several components with the same name in the same file, you can specify the relevant class name.

See more information about the test tool in the docs.

@tommyd450

Copy link
Copy Markdown
Author

/test

@qodo-for-securesign

Copy link
Copy Markdown

PR-Agent: Missing component name in test command: /test <component_name>.
Running automatically on the largest changed component.


✨ Test tool usage guide:

The test tool generate tests for a selected component, based on the PR code changes.
It can be invoked manually by commenting on any PR:

/test component_name

where 'component_name' is the name of a specific component in the PR. To get a list of the components that changed in the PR, use the analyze tool.
Language that are currently supported: Python, Java, C++, JavaScript, TypeScript.

Configuration options:

  • num_tests: number of tests to generate. Default is 3.
  • testing_framework: the testing framework to use. If not set, for Python it will use pytest, for Java it will use JUnit, for C++ it will use Catch2, and for JavaScript and TypeScript it will use jest.
  • avoid_mocks: if set to true, the tool will try to avoid using mocks in the generated tests. Note that even if this option is set to true, the tool might still use mocks if it cannot generate a test without them. Default is true.
  • extra_instructions: Optional extra instructions to the tool. For example: "use the following mock injection scheme: ...".
  • file: in case there are several components with the same name, you can specify the relevant file.
  • class_name: in case there are several components with the same name in the same file, you can specify the relevant class name.

See more information about the test tool in the docs.

@tommyd450

Copy link
Copy Markdown
Author

/test

@qodo-for-securesign

Copy link
Copy Markdown

PR-Agent: Missing component name in test command: /test <component_name>.
Running automatically on the largest changed component.


✨ Test tool usage guide:

The test tool generate tests for a selected component, based on the PR code changes.
It can be invoked manually by commenting on any PR:

/test component_name

where 'component_name' is the name of a specific component in the PR. To get a list of the components that changed in the PR, use the analyze tool.
Language that are currently supported: Python, Java, C++, JavaScript, TypeScript.

Configuration options:

  • num_tests: number of tests to generate. Default is 3.
  • testing_framework: the testing framework to use. If not set, for Python it will use pytest, for Java it will use JUnit, for C++ it will use Catch2, and for JavaScript and TypeScript it will use jest.
  • avoid_mocks: if set to true, the tool will try to avoid using mocks in the generated tests. Note that even if this option is set to true, the tool might still use mocks if it cannot generate a test without them. Default is true.
  • extra_instructions: Optional extra instructions to the tool. For example: "use the following mock injection scheme: ...".
  • file: in case there are several components with the same name, you can specify the relevant file.
  • class_name: in case there are several components with the same name in the same file, you can specify the relevant class name.

See more information about the test tool in the docs.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant