Workflow Engine for Kubernetes
This report summarizes scanner evidence for argoproj/argo-workflows, a Go project with 17,072 GitHub stars. SynthScan examined 477,509 lines of code across 3282 source files, recording 321 pattern matches distributed across 14 syntactic categories. The legacy adjusted pattern signal is 1.9 (Low pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.
Can maintainers explain intent, assumptions, and trade-offs? 265 finding(s).
Are imports declared and package/API names verified? 42 finding(s).
Are wrappers, guards, and repeated structures necessary? 37 finding(s).
Which changes need focused human review? 321 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 321 distinct pattern matches across 14 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | …rkflow/controller/engine_regression_r4_helpers_test.go | 354 | if n := r.woc.wf.Status.Nodes.FindByDisplayName(display); n != nil { | CODE |
| CRITICAL | workflow/controller/operator.go | 4337 | return woc.wf.Status.FinishedAt.Time.Sub(woc.wf.Status.StartedAt.Time).Seconds() | CODE |
| CRITICAL | workflow/controller/steps_test.go | 1175 | stuck := r.woc.wf.Status.Nodes.FindByDisplayName("stuck") | CODE |
| CRITICAL | workflow/controller/steps_test.go | 1190 | group := r.woc.wf.Status.Nodes.FindByDisplayName("[0]") | CODE |
| CRITICAL⚡ | workflow/controller/steps_test.go | 1312 | inner := r.woc.wf.Status.Nodes.FindByDisplayName("inner") | CODE |
| CRITICAL⚡ | workflow/controller/steps_test.go | 1315 | second := r.woc.wf.Status.Nodes.FindByDisplayName("second") | CODE |
| CRITICAL⚡ | workflow/controller/steps_test.go | 1320 | dependant := r.woc.wf.Status.Nodes.FindByDisplayName("dependant") | CODE |
| CRITICAL | workflow/controller/engine.go | 188 | e.woc.wf.Status.Nodes.Set(ctx, taskNode.ID, *taskNode) | CODE |
| CRITICAL | workflow/controller/engine.go | 932 | e.woc.wf.Status.Nodes.Set(ctx, parent.ID, *parent) | CODE |
| CRITICAL | workflow/controller/engine.go | 1189 | if _, getErr := e.woc.wf.Status.Nodes.Get(depNodeID); getErr != nil { | CODE |
| CRITICAL | workflow/controller/engine.go | 1193 | if outNode, getErr := e.woc.wf.Status.Nodes.Get(outID); getErr == nil { | CODE |
| CRITICAL | workflow/controller/engine.go | 1229 | if outNode, err := e.woc.wf.Status.Nodes.Get(outID); err == nil { | CODE |
| CRITICAL | workflow/controller/engine.go | 1414 | e.woc.wf.Status.Nodes.Set(ctx, node.ID, *node) | CODE |
| CRITICAL | workflow/controller/engine.go | 1433 | e.woc.wf.Status.Nodes.Set(ctx, node.ID, *node) | CODE |
| CRITICAL⚡ | workflow/controller/engine_regression_r4_test.go | 8452 | attempt := r.woc.wf.Status.Nodes.FindByDisplayName("server(0)") | CODE |
| CRITICAL⚡ | workflow/controller/engine_regression_r4_test.go | 8455 | require.NotNil(t, r.woc.wf.Status.Nodes.FindByDisplayName("client")) | CODE |
| CRITICAL⚡ | workflow/controller/engine_regression_r4_test.go | 8464 | server := r.woc.wf.Status.Nodes.FindByDisplayName("server") | CODE |
| CRITICAL⚡ | workflow/controller/engine_regression_r4_test.go | 12295 | require.NotNil(t, r.woc.wf.Status.Nodes.FindByDisplayName(aPod), "a runs first") | CODE |
| CRITICAL⚡ | workflow/controller/engine_regression_r4_test.go | 12296 | b := r.woc.wf.Status.Nodes.FindByDisplayName("b") | CODE |
| CRITICAL⚡ | workflow/controller/engine_regression_r4_test.go | 12299 | a := r.woc.wf.Status.Nodes.FindByDisplayName(aPod) | CODE |
| CRITICAL | workflow/controller/engine_regression_r4_test.go | 5199 | for i := 0; i < rounds && !r.woc.wf.Status.Phase.Completed(); i++ { | CODE |
| CRITICAL | workflow/controller/engine_regression_r4_test.go | 5350 | for i := 0; i < 8 && !r.woc.wf.Status.Phase.Completed(); i++ { | CODE |
| CRITICAL | workflow/controller/engine_regression_r4_test.go | 5542 | for i := 0; i < 4 && !r.woc.wf.Status.Phase.Completed(); i++ { | CODE |
| CRITICAL | workflow/controller/engine_regression_r4_test.go | 8221 | a := r.woc.wf.Status.Nodes.FindByDisplayName("A") | CODE |
| CRITICAL | workflow/controller/engine_regression_r4_test.go | 8485 | server := r.woc.wf.Status.Nodes.FindByDisplayName("server") | CODE |
| CRITICAL | workflow/controller/engine_regression_r4_test.go | 8487 | attempt := r.woc.wf.Status.Nodes.FindByDisplayName("server(0)") | CODE |
| CRITICAL | workflow/controller/engine_regression_r4_test.go | 8562 | deploy := r.woc.wf.Status.Nodes.FindByDisplayName("deploy") | CODE |
| CRITICAL | workflow/controller/engine_regression_r4_test.go | 8613 | call := r.woc.wf.Status.Nodes.FindByDisplayName("call") | CODE |
| CRITICAL | workflow/controller/engine_regression_r4_test.go | 8619 | after := r.woc.wf.Status.Nodes.FindByDisplayName("after") | CODE |
| CRITICAL | workflow/controller/engine_regression_r4_test.go | 8759 | assert.True(t, r.woc.wf.Status.Phase.Completed(), "workflow phase %s, unfulfilled: %v", r.woc.wf.Status.Phase, r4Unfulf | CODE |
| CRITICAL | workflow/controller/engine_regression_r4_test.go | 8889 | for i := 0; i < 4 && !r.woc.wf.Status.Phase.Completed(); i++ { | CODE |
| CRITICAL | workflow/controller/engine_regression_r4_test.go | 9349 | n := r.woc.wf.Status.Nodes.FindByDisplayName(display) | CODE |
| CRITICAL | workflow/controller/engine_regression_r4_test.go | 9357 | for i := 0; i < 4 && !r.woc.wf.Status.Phase.Completed(); i++ { | CODE |
| CRITICAL | workflow/controller/engine_regression_r4_test.go | 11415 | for i := 0; i < 12 && !r.woc.wf.Status.Phase.Completed(); i++ { | CODE |
| CRITICAL | workflow/controller/engine_regression_r4_test.go | 11422 | for i := 0; i < 12 && !r.woc.wf.Status.Phase.Completed(); i++ { | CODE |
| CRITICAL | workflow/controller/engine_regression_r4_test.go | 11479 | for i := 0; i < 8 && !r.woc.wf.Status.Phase.Completed(); i++ { | CODE |
| CRITICAL | workflow/controller/engine_regression_r4_test.go | 11719 | for i := 0; i < 8 && !r.woc.wf.Status.Phase.Completed(); i++ { | CODE |
| CRITICAL | workflow/controller/engine_regression_r4_test.go | 11925 | require.True(t, r.woc.wf.Status.Phase.Completed(), "workflow %s", r.woc.wf.Status.Phase) | CODE |
| CRITICAL | workflow/controller/engine_regression_r4_test.go | 12425 | b := r.woc.wf.Status.Nodes.FindByDisplayName("b") | CODE |
| CRITICAL | workflow/controller/engine_regression_r4_test.go | 12428 | a := r.woc.wf.Status.Nodes.FindByDisplayName("a") | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .golangci.yml | 161 | # Check Go toolchain directives such as //go:debug. | COMMENT |
| LOW | cmd/argoexec/commands/supervisor.go | 21 | // The first line of the marker is one of these tokens; for statusFailed the | COMMENT |
| LOW | cmd/argoexec/commands/supervisor.go | 61 | }, | COMMENT |
| LOW | cmd/argoexec/commands/auxiliary.go | 21 | // LogStats, in LIFO defer order). | COMMENT |
| LOW | cmd/argoexec/commands/emissary.go | 121 | osspecific.AllowGrantingAccessToEveryone() | COMMENT |
| LOW | cmd/argoexec/commands/emissary.go | 361 | // linkInputArtifactsAt creates a symlink at each input artifact's path | COMMENT |
| LOW | cmd/argoexec/commands/emissary.go | 401 | // MkdirAll above only ever creates — so even when art.Path resolves into a | COMMENT |
| LOW | cmd/argoexec/commands/emissary.go | 441 | COMMENT | |
| LOW | test/e2e/manifests/kubelet-configuration.yaml | 1 | # hack/tilt/k3d-up.sh passes this file to k3s using "--kubelet-arg=config=". | COMMENT |
| LOW | test/e2e/functional/secrets.yaml | 1 | # This example demonstrates how to reference kubernetes secrets in a workflow. | COMMENT |
| LOW | test/e2e/functional/dag-targets.yaml | 1 | # This workflow illustrates the use of DAG "targets". Targets can be thought of similarly to make | COMMENT |
| LOW | test/e2e/functional/dag-diamond-steps.yaml | 1 | # The following workflow executes a diamond workflow, with each | COMMENT |
| LOW | test/e2e/functional/output-parameter.yaml | 1 | # Output parameters provide a way to use the contents of a file, | COMMENT |
| LOW | util/variables/kind.go | 61 | var AllTemplateKinds = []TemplateKind{ | COMMENT |
| LOW | util/variables/doc.go | 1 | // Package variables is the catalog of every Argo Workflows expression | COMMENT |
| LOW | util/variables/keys/retries.go | 1 | package keys | COMMENT |
| LOW | util/variables/keys/inputs.go | 21 | COMMENT | |
| LOW | util/sqldb/sqldb.go | 121 | return "require" | COMMENT |
| LOW | util/sqldb/sqldb.go | 241 | COMMENT | |
| LOW | config/config.go | 41 | // KubeConfig specifies a kube config file for the wait & init containers | COMMENT |
| LOW | config/config.go | 121 | // Synchronization via databases config | COMMENT |
| LOW | hack/manifests/crds.go | 41 | } | COMMENT |
| LOW | hack/manifests/crds.go | 101 | // steps: | COMMENT |
| LOW | hack/embeddoc/main.go | 1 | // embeddoc is a tool that extracts code snippets from source files and embeds them into documentation. | COMMENT |
| LOW | server/auth/sso/sso.go | 401 | http.Redirect(w, r, finalRedirectURL, http.StatusFound) | COMMENT |
| LOW | docs/workflow-controller-configmap.yaml | 1 | # This file describes the config settings available in the workflow controller configmap | COMMENT |
| LOW | docs/workflow-controller-configmap.yaml | 21 | parallelism: "10" | COMMENT |
| LOW | docs/workflow-controller-configmap.yaml | 41 | enabled: true | COMMENT |
| LOW | docs/workflow-controller-configmap.yaml | 101 | COMMENT | |
| LOW | docs/workflow-controller-configmap.yaml | 161 | # A valid kms key id. If this value is set, the object stored in s3 will be encrypted with SSE-KMS | COMMENT |
| LOW | docs/workflow-controller-configmap.yaml | 301 | name: argo-postgres-config | COMMENT |
| LOW | docs/workflow-controller-configmap.yaml | 321 | # tableName: argo_workflows | COMMENT |
| LOW | docs/workflow-controller-configmap.yaml | 381 | key: password | COMMENT |
| LOW | docs/workflow-controller-configmap.yaml | 401 | # passwordSecret: | COMMENT |
| LOW | docs/workflow-controller-configmap.yaml | 481 | # RBAC Config. | COMMENT |
| LOW | docs/workflow-controller-configmap.yaml | 501 | # This is useful when external agents are responsible for executing these templates and the controller should not crea | COMMENT |
| LOW | docs/argo-server-sso.md | 101 | COMMENT | |
| LOW | examples/secrets.yaml | 1 | # This example demonstrates how to reference kubernetes secrets in a workflow. | COMMENT |
| LOW | examples/dag-targets.yaml | 1 | # This workflow illustrates the use of DAG "targets". Targets can be thought of similarly to make | COMMENT |
| LOW | examples/dag-diamond-steps.yaml | 1 | # The following workflow executes a diamond workflow, with each | COMMENT |
| LOW | examples/synchronization-wf-level.yaml | 1 | # This example demonstrates the use of a Synchronization lock on workflow execution. Synchronization lock limits | COMMENT |
| LOW | examples/hdfs-artifact.yaml | 41 | hdfsUser: root | COMMENT |
| LOW | examples/hdfs-artifact.yaml | 61 | path: /tmp/message | COMMENT |
| LOW | examples/input-artifact-git.yaml | 21 | # reference the secret keys in the secret selectors: usernameSecret, passwordSecret, | COMMENT |
| LOW | examples/input-artifact-git.yaml | 41 | # Ensure the templated Secret has `username: x-access-token`, `password: "{{ .token }}"` | COMMENT |
| LOW | examples/input-artifact-git.yaml | 61 | # | COMMENT |
| LOW | examples/buildkit-template.yaml | 1 | # SUMMARY: | COMMENT |
| LOW | examples/resource-claims.yaml | 1 | # This example demonstrates requesting a device through Kubernetes Dynamic | COMMENT |
| LOW | examples/template-on-exit.yaml | 1 | # Example showing a Step with an onExit template. The onExit template ("exitContainer") | COMMENT |
| LOW | examples/output-artifact-azure.yaml | 21 | path: /tmp | COMMENT |
| LOW | examples/input-artifact-s3.yaml | 21 | path: /my-artifact | COMMENT |
| LOW | examples/output-artifact-gcs.yaml | 21 | - name: message | COMMENT |
| LOW | examples/memoize-simple.yaml | 1 | # This example demonstrates the ability to memoize a template. | COMMENT |
| LOW | examples/output-artifact-s3.yaml | 21 | path: /tmp | COMMENT |
| LOW | examples/dag-custom-metrics.yaml | 1 | # The following workflow executes the tasks in parallel and emit the data for each task | COMMENT |
| LOW | examples/output-parameter.yaml | 1 | # Output parameters provide a way to use the contents of a file, | COMMENT |
| LOW | examples/variables-showcase.yaml | 1 | # Companion to variables.md — exercises every non-cron-workflow variable | COMMENT |
| LOW | examples/variables-showcase.yaml | 121 | - - name: dag-stage | COMMENT |
| LOW | examples/variables-showcase.yaml | 201 | echo "params.target = {{workflow.parameters.target}}" | COMMENT |
| LOW | workflow/artifacts/plugin/plugin.go | 221 | // 2MiB stays well under gRPC's default 4MiB max message size while keeping the | COMMENT |
| 107 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | test/e2e/functional/arguments-artifacts.yaml | 2 | # In this example, the 'kubectl-input-artifact' template requires | COMMENT |
| HIGH | test/e2e/functional/suspend-template.yaml | 9 | # suspended template after the specified amount of time in seconds. In this example it is used to delay | COMMENT |
| HIGH | test/e2e/functional/global-outputs-dag.yaml | 41 | # In this example, the consume-globals template is invoked after the generate-globals step, as | COMMENT |
| HIGH | test/e2e/functional/steps.yaml | 2 | # In this example, the hello1 completes before the hello2a, and hello2b steps, which run in parallel. | COMMENT |
| HIGH | test/e2e/functional/conditionals.yaml | 2 | # workflow at runtime, depending on parameters. In this example | COMMENT |
| HIGH | test/e2e/functional/coinflip.yaml | 3 | # workflow. In this example, depending on the result of the | COMMENT |
| HIGH | test/e2e/functional/global-outputs.yaml | 39 | # In this example, the consume-globals template is invoked after the generate-globals step, as | COMMENT |
| HIGH | test/e2e/functional/output-parameter.yaml | 9 | # In this example, the 'hello-world-to-file' template produces an output | COMMENT |
| HIGH | examples/arguments-artifacts.yaml | 2 | # In this example, the 'kubectl-input-artifact' template requires | COMMENT |
| HIGH | examples/suspend-template.yaml | 9 | # suspended template after the specified amount of time in seconds. In this example it is used to delay | COMMENT |
| HIGH | examples/steps.yaml | 2 | # In this example, the hello1 completes before the hello2a, and hello2b steps, which run in parallel. | COMMENT |
| HIGH | examples/status-reference.yaml | 3 | # workflow. In this example, depending on the status of 'flakey-container' | COMMENT |
| HIGH | examples/conditionals.yaml | 2 | # workflow at runtime, depending on parameters. In this example | COMMENT |
| HIGH | examples/coinflip.yaml | 3 | # workflow. In this example, depending on the result of the | COMMENT |
| HIGH | examples/global-outputs.yaml | 39 | # In this example, the consume-globals template is invoked after the generate-globals step, as | COMMENT |
| HIGH | examples/conditionals-complex.yaml | 1 | # In this example we flip 2 times a coin. First time we | COMMENT |
| HIGH | examples/output-parameter.yaml | 9 | # In this example, the 'hello-world-to-file' template produces an output | COMMENT |
| HIGH | …t-binding/github-path-filter-workfloweventbinding.yaml | 4 | # In this example, the Workflow will only be run if the commit affects files | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | examples/variables-showcase.yaml | 58 | # ============================================================ | COMMENT |
| MEDIUM | examples/variables-showcase.yaml | 69 | # ============================================================ | COMMENT |
| MEDIUM | examples/variables-showcase.yaml | 124 | # ============================================================ | COMMENT |
| MEDIUM | examples/variables-showcase.yaml | 141 | # ============================================================ | COMMENT |
| MEDIUM | examples/variables-showcase.yaml | 214 | # ============================================================ | COMMENT |
| MEDIUM | examples/variables-showcase.yaml | 223 | # ============================================================ | COMMENT |
| MEDIUM | examples/variables-showcase.yaml | 275 | # ============================================================ | COMMENT |
| MEDIUM | examples/variables-showcase.yaml | 278 | # ============================================================ | COMMENT |
| MEDIUM | examples/variables-showcase.yaml | 319 | # ============================================================ | COMMENT |
| MEDIUM | examples/variables-showcase.yaml | 326 | # ============================================================ | COMMENT |
| MEDIUM | examples/variables-showcase.yaml | 442 | # ============================================================ | COMMENT |
| MEDIUM | examples/variables-showcase.yaml | 445 | # ============================================================ | COMMENT |
| MEDIUM | examples/variables-showcase.yaml | 458 | # ============================================================ | COMMENT |
| MEDIUM | examples/variables-showcase.yaml | 467 | # ============================================================ | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | sdks/go/workflow-template/main.go | 44 | // Step 1: Create a WorkflowTemplate | COMMENT |
| LOW | sdks/go/workflow-template/main.go | 102 | // Step 2: Submit workflow from template with default parameters | COMMENT |
| LOW | sdks/go/workflow-template/main.go | 125 | // Step 3: Submit workflow with custom parameters | COMMENT |
| LOW | sdks/go/workflow-template/main.go | 154 | // Step 4: List workflows created from this template | COMMENT |
| LOW | sdks/go/workflow-template/main.go | 174 | // Step 5: Get template details | COMMENT |
| LOW | docs/telemetry-getting-started.md | 35 | ## Step 1: Deploy Argo Workflows with the Observability Stack | COMMENT |
| LOW | docs/telemetry-getting-started.md | 60 | ## Step 2: Access Grafana | COMMENT |
| LOW | docs/telemetry-getting-started.md | 72 | ## Step 3: Run a Workflow and View Traces | COMMENT |
| LOW | docs/telemetry-getting-started.md | 99 | ## Step 4: View Metrics | COMMENT |
| LOW | workflow/controller/engine_hooks_test.go | 571 | // Step 1: Run and succeed the main task | COMMENT |
| LOW | workflow/controller/engine_hooks_test.go | 584 | // Step 2: Complete the exit handler | COMMENT |
| LOW⚡ | workflow/controller/engine_hooks_test.go | 679 | // Step 1: Start the task | COMMENT |
| LOW⚡ | workflow/controller/engine_hooks_test.go | 683 | // Step 2: Transition to Running to trigger lifecycle hook | COMMENT |
| LOW | workflow/controller/engine_hooks_test.go | 697 | // Step 3: Complete the task to trigger exit hook | COMMENT |
| LOW⚡ | workflow/controller/engine_hooks_test.go | 753 | // Step 1: Start - task-a runs | COMMENT |
| LOW⚡ | workflow/controller/engine_hooks_test.go | 757 | // Step 2: Complete task-a → exit hook fires + task-b starts | COMMENT |
| LOW⚡ | workflow/controller/engine_hooks_test.go | 762 | // Step 3: Complete task-a's exit hook + task-b | COMMENT |
| LOW⚡ | workflow/controller/engine_hooks_test.go | 767 | // Step 4: task-b's exit hook should fire now; complete it | COMMENT |
| LOW | workflow/controller/exit_handler.go | 50 | // Step 2: replace all artifact references | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | sdks/go/workflow-template/main.go | 44 | // Step 1: Create a WorkflowTemplate | COMMENT |
| LOW | sdks/go/workflow-template/main.go | 102 | // Step 2: Submit workflow from template with default parameters | COMMENT |
| LOW | sdks/go/workflow-template/main.go | 125 | // Step 3: Submit workflow with custom parameters | COMMENT |
| LOW | sdks/go/workflow-template/main.go | 154 | // Step 4: List workflows created from this template | COMMENT |
| LOW | sdks/go/workflow-template/main.go | 174 | // Step 5: Get template details | COMMENT |
| LOW | workflow/controller/operator.go | 1536 | // if the pod is succeeded, we need to check if it is a daemoned step or not | COMMENT |
| LOW | workflow/controller/engine_hooks_test.go | 571 | // Step 1: Run and succeed the main task | COMMENT |
| LOW | workflow/controller/engine_hooks_test.go | 584 | // Step 2: Complete the exit handler | COMMENT |
| LOW⚡ | workflow/controller/engine_hooks_test.go | 679 | // Step 1: Start the task | COMMENT |
| LOW⚡ | workflow/controller/engine_hooks_test.go | 683 | // Step 2: Transition to Running to trigger lifecycle hook | COMMENT |
| LOW | workflow/controller/engine_hooks_test.go | 697 | // Step 3: Complete the task to trigger exit hook | COMMENT |
| LOW⚡ | workflow/controller/engine_hooks_test.go | 753 | // Step 1: Start - task-a runs | COMMENT |
| LOW⚡ | workflow/controller/engine_hooks_test.go | 757 | // Step 2: Complete task-a → exit hook fires + task-b starts | COMMENT |
| LOW⚡ | workflow/controller/engine_hooks_test.go | 762 | // Step 3: Complete task-a's exit hook + task-b | COMMENT |
| LOW⚡ | workflow/controller/engine_hooks_test.go | 767 | // Step 4: task-b's exit hook should fire now; complete it | COMMENT |
| LOW | workflow/controller/operator_template_execution.go | 283 | // We need to check if the node already exists in case we are re-processing | COMMENT |
| LOW | workflow/controller/exit_handler.go | 50 | // Step 2: replace all artifact references | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | ui/src/cron-workflows/cron-workflow-status-viewer.tsx | 42 | function getCronWorkflowActiveWorkflowList(active: kubernetes.ObjectReference[]) { | CODE |
| LOW | …nts/workflow-dag/workflow-dag-render-options-panel.tsx | 5 | export function WorkflowDagRenderOptionsPanel(props: WorkflowDagRenderOptions & {onChange: (changed: WorkflowDagRenderOp | CODE |
| LOW | …lows-summary-container/workflows-summary-container.tsx | 11 | export function WorkflowsSummaryContainer(props: {workflows: Workflow[]}) { | CODE |
| LOW | …rkflows/components/workflow-details/suspend-inputs.tsx | 68 | function renderInputContentIfApplicable() { | CODE |
| LOW | …flows/components/workflow-details/workflow-details.tsx | 137 | function getInputParametersForNode(selectedWorkflowNodeId: string): Parameter[] { | CODE |
| LOW | …flows/components/workflow-details/workflow-details.tsx | 456 | function getParametersAsJsonString() { | CODE |
| LOW | …flows/components/workflow-details/workflow-details.tsx | 464 | function updateOutputParametersForNodeIfRequired() { | CODE |
| LOW | …ows/components/workflows-toolbar/workflows-toolbar.tsx | 69 | async function performActionOnSelectedWorkflows(title: string, action: WorkflowOperationAction, deleteArchived: bool | CODE |
| LOW | ui/src/shared/pod-name.ts | 48 | export function ensurePodNamePrefixLength(prefix: string): string { | CODE |
| LOW | ui/src/shared/get_workflow_params.ts | 18 | export function getWorkflowParametersFromQuery(history: History): {[key: string]: string} { | CODE |
| LOW | ui/src/shared/components/parameters-input.tsx | 29 | function displaySelectFieldForEnumValues(parameter: Parameter) { | CODE |
| LOW | ui/src/shared/components/parameters-input.tsx | 43 | function displayInputFieldForSingleValue(parameter: Parameter) { | CODE |
| LOW | ui/src/shared/components/links.tsx | 26 | function splitWithMetadataKnowledge(replaceable: string) { | CODE |
| LOW | ui/src/shared/components/editors/graph-viewer.tsx | 69 | export function convertWorkflowFromReference(workflowDefinition: Workflow | WorkflowTemplate | ClusterWorkflowTemplate): | CODE |
| LOW | ui/src/shared/components/editors/graph-viewer.tsx | 88 | export function populateGraphFromWorkflow(workflow: Workflow | WorkflowTemplate | ClusterWorkflowTemplate): Graph { | CODE |
| LOW | …d/components/editors/labels-and-annotations-editor.tsx | 6 | export function LabelsAndAnnotationsEditor({value, onChange}: {value: kubernetes.ObjectMeta; onChange: (value: kubernete | CODE |
| LOW | ui/src/shared/components/graph/graph-panel.tsx | 104 | function getNodeMapWithAllNodesSetToValue(nodeSelectionMap: INodeSelectionMap, value: boolean) { | CODE |
| LOW | …rkflow-templates/cluster-workflow-template-creator.tsx | 14 | export function ClusterWorkflowTemplateCreator({onCreate}: {onCreate: (workflow: ClusterWorkflowTemplate) => void}) { | CODE |
| LOW | …rkflow-templates/cluster-workflow-template-details.tsx | 27 | export function ClusterWorkflowTemplateDetails({history, location, match}: RouteComponentProps<any>) { | CODE |
| LOW | …kflow-templates/cluster-workflow-template-markdown.tsx | 14 | export function ClusterWorkflowTemplateMarkdown(props: ClusterWorkflowTemplateMarkdownProps) { | CODE |
| LOW | …-workflow-templates/cluster-workflow-template-list.tsx | 26 | export function ClusterWorkflowTemplateList({history, location}: RouteComponentProps<any>) { | CODE |
| LOW | …-workflow-templates/cluster-workflow-template-list.tsx | 33 | async function fetchClusterWorkflowTemplates() { | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | cmd/argo/commands/clustertemplate/create.go | 24 | Example: `# Create a Cluster Workflow Template: | CODE |
| MEDIUM⚡ | cmd/argo/commands/clustertemplate/create.go | 27 | # Create a Cluster Workflow Template and print it as YAML: | COMMENT |
| MEDIUM⚡ | cmd/argo/commands/clustertemplate/create.go | 30 | # Create a Cluster Workflow Template with relaxed validation: | COMMENT |
| MEDIUM | cmd/argo/commands/sync/create.go | 29 | # Create a database sync limit: | COMMENT |
| MEDIUM | cmd/argo/commands/sync/create.go | 32 | # Create a configmap sync limit: | COMMENT |
| MEDIUM | hack/tilt/k3d-up.sh | 2 | # Create the k3d cluster used by Tilt for local dev and CI, if it does not | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | test/e2e/functional/testvolume.yaml | 1 | # This PVC manifest is to be used in conjunction with the | COMMENT |
| MEDIUM | hack/proto-export/main.go | 84 | // Sequence for robust shallow fetch of a specific ref (branch, tag, or SHA) | COMMENT |
| MEDIUM | examples/testvolume.yaml | 1 | # This PVC manifest is to be used in conjunction with the | COMMENT |
| MEDIUM | examples/cron-backfill.yaml | 81 | # making this more robust | COMMENT |
| MEDIUM | pkg/apis/workflow/v1alpha1/workflow_types.go | 2626 | // For every invocation of a template, there are nodes which we considered as "outbound". Essentially, | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | ui/test/ui/ui-wacky-workflow.yaml | 29 | # Iterate over the list of numbers generated by the generate step above | COMMENT |
| LOW | cmd/argo/commands/node.go | 29 | Example: `# Set outputs to a node within a workflow: | CODE |
| LOW | hack/test-go-sdk.sh | 27 | # Check if this example should be skipped | COMMENT |
| LOW | hack/test-go-sdk.sh | 33 | # Check if this example has custom configurations | COMMENT |
| LOW | hack/docs/clean_swagger_md.py | 147 | # Check if this is a table row | COMMENT |
| LOW | .github/workflows/cherry-pick-single.yml | 85 | # Check if target branch exists | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …java/client/docs/IoArgoprojWorkflowV1alpha1Template.md | 40 | **resourceClaims** | [**List<PodResourceClaim>**](PodResourceClaim.md) | ResourceClaims defines the ResourceClaims | CODE |
| MEDIUM | docs/executor_swagger.md | 4026 | | resourceClaims | [][PodResourceClaim](#pod-resource-claim)| `[]*PodResourceClaim` | | | ResourceClaims defines the Re | CODE |
| MEDIUM | docs/fields.md | 2336 | |`resourceClaims`|`Array<`[`PodResourceClaim`](#podresourceclaim)`>`|ResourceClaims defines the ResourceClaims that must | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | examples/k8s-resource-log-selector.yaml | 43 | # For example, you can use `argo logs -c tensorflow -l replica-index=0` to see the first worker pod's | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | workflow/validate/validate_test.go | 1415 | // name contains the word "placeholder". Before the fix, the substring check | COMMENT |
| LOW | workflow/validate/validate_test.go | 3479 | if strings.Contains(tmpl.Script.Source, "placeholder") { | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | hack/docs/clean_swagger_md.py | 203 | CODE |