Skip to content
AI/LLM-Powered Pipeline Analysis
On this page

AI/LLM-Powered Pipeline Analysis

⚠️

This is a Technology Preview feature only. Technology Preview features are not currently supported and might not be functionally complete. We do not recommend using them in production. These features provide early access to upcoming Pipelines-as-Code features, enabling you to test functionality and provide feedback during the development process.

Pipelines-as-Code can analyze your CI/CD pipeline runs using Large Language Models (LLMs). An LLM is an AI service (such as OpenAI or Google Gemini) that reads pipeline logs and failure data, then posts human-readable analysis directly on your pull requests.

Use this feature when you want automated root-cause analysis of pipeline failures without manually reading through logs.

Overview

LLM-powered analysis lets you:

  • Analyze failed pipelines automatically and get root-cause analysis
  • Generate actionable recommendations for fixing issues
  • Post insights as PR comments so your team sees them immediately
  • Configure custom analysis scenarios using different prompts and triggers
Additional output destinations (check-run and annotation) and structured JSON output are planned for future releases.

Supported LLM Providers

Pipelines-as-Code supports two LLM providers:

  • OpenAI – Default model: gpt-5-mini
  • Google Gemini – Default model: gemini-2.5-flash-lite

You can specify any model your chosen provider supports. See Model Selection for guidance on choosing the right model.

Configuration

To enable LLM-powered analysis, configure the spec.settings.ai section in your Repository CR:

apiVersion: pipelinesascode.tekton.dev/v1alpha1
kind: Repository
metadata:
  name: my-repo
spec:
  url: "https://github.com/org/repo"
  settings:
    ai:
      enabled: true
      provider: "openai"
      timeout_seconds: 30
      max_tokens: 1000
      secret_ref:
        name: "openai-api-key"
        key: "token"
      roles:
        - name: "failure-analysis"
          model: "gpt-5-mini"  # Optional: specify model (uses provider default if omitted)
          prompt: |
            You are a DevOps expert. Analyze this failed pipeline and:
            1. Identify the root cause
            2. Suggest specific fixes
            3. Recommend preventive measures
          on_cel: 'body.pipelineRun.status.conditions[0].reason == "Failed"'
          context_items:
            error_content: true
            container_logs:
              enabled: true
              max_lines: 100
          output: "pr-comment"

Configuration Fields

The following tables describe every field available in the spec.settings.ai configuration block.

Top-Level Settings

Field Type Required Description
enabled boolean Yes Enable/disable LLM analysis
provider string Yes LLM provider: openai or gemini
api_url string No Custom API endpoint URL (overrides provider default)
timeout_seconds integer No Request timeout (1-300, default: 30)
max_tokens integer No Maximum response tokens (1-4000, default: 1000)
secret_ref object Yes Reference to Kubernetes secret with API key
roles array Yes List of analysis scenarios (minimum 1)

Analysis Roles

Each role defines a specific analysis scenario. You can configure multiple roles to handle different types of pipeline events (for example, one role for security failures and another for general build failures).

Field Type Required Description
name string Yes Unique identifier for this role
prompt string Yes Prompt template for the LLM
model string No Model name (consult provider documentation for available models). Uses provider default if not specified.
on_cel string No CEL expression for conditional triggering. If not specified, the role will always run.
output string Yes Output destination (currently only pr-comment is supported)
context_items object No Configuration for context inclusion

Context Items

Context items control what information Pipelines-as-Code sends to the LLM provider. Choose carefully, because more context means higher token usage and cost.

Field Type Description
commit_content boolean Include commit information (see Commit Fields below)
pr_content boolean Include PR title, description, metadata
error_content boolean Include error messages and failures
container_logs.enabled boolean Include container/task logs
container_logs.max_lines integer Limit log lines (1-1000, default: 50). ⚠️ High values may impact performance

Commit Fields

When you set commit_content: true, Pipelines-as-Code includes the following fields in the data sent to the LLM provider:

Field Type Description Example
commit.sha string Commit SHA hash "abc123def456..."
commit.message string Commit title (first line/paragraph) "feat: add new feature"
commit.url string Web URL to view the commit "https://github.com/org/repo/commit/abc123"
commit.full_message string Complete commit message (if different from title) "feat: add new feature\n\nDetailed description..."
commit.author.name string Author’s name "John Doe"
commit.author.date timestamp When the commit was authored "2024-01-15T10:30:00Z"
commit.committer.name string Committer’s name (may differ from author) "GitHub"
commit.committer.date timestamp When the commit was committed "2024-01-15T10:31:00Z"

Privacy and Security Notes:

  • Pipelines-as-Code intentionally excludes email addresses from the commit context to protect personally identifiable information (PII) when sending data to external LLM providers.
  • Fields appear only if your Git provider makes them available. Some providers supply limited information (for example, Bitbucket Cloud provides only the author name).
  • Author and committer may be the same person or different (for example, when using git commit --amend or rebasing).