<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Tekton – Triggers and EventListeners</title>
    <link>https://deploy-preview-726--tekton.netlify.app/vault/triggers-v0.32.x-lts/</link>
    <description>Recent content in Triggers and EventListeners on Tekton</description>
    <generator>Hugo -- gohugo.io</generator>
    
	  <atom:link href="https://deploy-preview-726--tekton.netlify.app/vault/triggers-v0.32.x-lts/index.xml" rel="self" type="application/rss+xml" />
    
    
      
        
      
    
    
    <item>
      <title>Vault: Install and set up Tekton Triggers</title>
      <link>https://deploy-preview-726--tekton.netlify.app/vault/triggers-v0.32.x-lts/install/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://deploy-preview-726--tekton.netlify.app/vault/triggers-v0.32.x-lts/install/</guid>
      <description>
        
        
        &lt;p&gt;This document shows you how to install and set up Tekton Triggers.&lt;/p&gt;
&lt;h2 id=&#34;prerequisites&#34;&gt;Prerequisites&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/&#34;&gt;Kubernetes&lt;/a&gt; cluster version 1.18 or later.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://kubernetes.io/docs/tasks/tools/#kubectl&#34;&gt;Kubectl&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/tektoncd/pipeline/blob/main/docs/install.md&#34;&gt;Tekton Pipelines&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Grant &lt;code&gt;cluster-admin&lt;/code&gt; privileges to the user that installed Tekton Pipelines. See
the &lt;a href=&#34;https://kubernetes.io/docs/reference/access-authn-authz/rbac/&#34;&gt;kubernetes role-based access control (RBAC) docs&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;installation&#34;&gt;Installation&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Log on to your Kubernetes cluster with the same user account that installed
Tekton Pipelines.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Depending on which version of Tekton Triggers you want to install, run one
of the following commands:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Latest official release&lt;/strong&gt;&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;kubectl apply --filename &lt;span style=&#34;color:#c30;font-weight:bold&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30;font-weight:bold&#34;&gt;&lt;/span&gt;https://storage.googleapis.com/tekton-releases/triggers/latest/release.yaml
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;kubectl apply --filename &lt;span style=&#34;color:#c30;font-weight:bold&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30;font-weight:bold&#34;&gt;&lt;/span&gt;https://storage.googleapis.com/tekton-releases/triggers/latest/interceptors.yaml
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Nightly release&lt;/strong&gt;&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;kubectl apply --filename &lt;span style=&#34;color:#c30;font-weight:bold&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30;font-weight:bold&#34;&gt;&lt;/span&gt;https://storage.googleapis.com/tekton-releases-nightly/triggers/latest/release.yaml
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;kubectl apply --filename &lt;span style=&#34;color:#c30;font-weight:bold&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30;font-weight:bold&#34;&gt;&lt;/span&gt;https://storage.googleapis.com/tekton-releases-nightly/triggers/latest/interceptors.yaml
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Specific Release&lt;/strong&gt;&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;kubectl apply --filename &lt;span style=&#34;color:#c30;font-weight:bold&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30;font-weight:bold&#34;&gt;&lt;/span&gt;https://storage.googleapis.com/tekton-releases/triggers/previous/VERSION_NUMBER/release.yaml
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;kubectl apply --filename &lt;span style=&#34;color:#c30;font-weight:bold&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30;font-weight:bold&#34;&gt;&lt;/span&gt;https://storage.googleapis.com/tekton-releases/triggers/previous/VERSION_NUMBER/interceptors.yaml
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Replace &lt;code&gt;VERSION_NUMBER&lt;/code&gt; with the numbered version you want to install.
For example, &lt;code&gt;v0.19.1&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Untagged Release&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;If your container runtime does not support &lt;code&gt;image-reference:tag@digest&lt;/code&gt; (for
example, &lt;code&gt;cri-o&lt;/code&gt; used in OpenShift 4.x):&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;kubectl apply --filename &lt;span style=&#34;color:#c30;font-weight:bold&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30;font-weight:bold&#34;&gt;&lt;/span&gt;https://storage.googleapis.com/tekton-releases/triggers/latest/release.notags.yaml
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;kubectl apply --filename &lt;span style=&#34;color:#c30;font-weight:bold&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30;font-weight:bold&#34;&gt;&lt;/span&gt;https://storage.googleapis.com/tekton-releases/triggers/latest/interceptors.notags.yaml
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;To monitor the installation, run:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;kubectl get pods --namespace tekton-pipelines --watch
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;When all components show &lt;code&gt;1/1&lt;/code&gt; under the &lt;code&gt;READY&lt;/code&gt; column, the installation is
complete. Hit &lt;em&gt;Ctrl + C&lt;/em&gt; to stop monitoring.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;customization-options&#34;&gt;Customization options&lt;/h2&gt;
&lt;p&gt;You can customize the behavior of the Triggers Controller changing some values
in the &lt;code&gt;config/feature-flags-triggers.yaml&lt;/code&gt; file.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Enable alpha features. Set the value of &lt;code&gt;enable-api-fields:&lt;/code&gt; to &lt;code&gt;&amp;quot;alpha&amp;quot;&lt;/code&gt;, the
default value is &lt;code&gt;&amp;quot;stable&amp;quot;&lt;/code&gt;. This flag only applies to the v1beta1 API
version.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Exclude labels. Set the &lt;code&gt;labels-exclusion-pattern:&lt;/code&gt; field to a regex  pattern.
Labels that match this pattern are excluded from getting added to the
resources created by the EventListener. By default this field is empty, so all
labels added to the EventListener are propagated down.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;further-reading&#34;&gt;Further reading&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/tektoncd/triggers/blob/main/docs/getting-started&#34;&gt;Get started with Tekton Triggers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/tektoncd/triggers/tree/main/examples&#34;&gt;Explore Tekton Triggers code examples&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

      </description>
    </item>
    
    <item>
      <title>Vault: </title>
      <link>https://deploy-preview-726--tekton.netlify.app/vault/triggers-v0.32.x-lts/eventlisteners/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://deploy-preview-726--tekton.netlify.app/vault/triggers-v0.32.x-lts/eventlisteners/</guid>
      <description>
        
        
        &lt;h1 id=&#34;eventlisteners&#34;&gt;&lt;code&gt;EventListeners&lt;/code&gt;&lt;/h1&gt;
&lt;p&gt;An &lt;code&gt;EventListener&lt;/code&gt; is a Kubernetes object that listens for events at a specified port on your Kubernetes cluster.
It exposes an addressable sink that receives incoming event and specifies one or more &lt;a href=&#34;https://deploy-preview-726--tekton.netlify.app/vault/Triggers-v0.32.x-LTS/triggers/&#34;&gt;&lt;code&gt;Triggers&lt;/code&gt;&lt;/a&gt;.
The sink is a Kubernetes service running the sink logic inside a dedicated Pod.&lt;/p&gt;
&lt;p&gt;Each &lt;code&gt;Trigger&lt;/code&gt;, in turn, allows you to specify one or more &lt;a href=&#34;https://deploy-preview-726--tekton.netlify.app/vault/Triggers-v0.32.x-LTS/triggerbindings/&#34;&gt;&lt;code&gt;TriggerBindings&lt;/code&gt;&lt;/a&gt; that allow
you to extract fields and their values from event payloads, and one or more &lt;a href=&#34;https://deploy-preview-726--tekton.netlify.app/vault/Triggers-v0.32.x-LTS/triggertemplates/&#34;&gt;&lt;code&gt;TriggerTemplates&lt;/code&gt;&lt;/a&gt;
that receive field values from the corresponding &lt;code&gt;TriggerBindings&lt;/code&gt; and allow Tekton Triggers to instantiate resources
such as &lt;code&gt;TaskRuns&lt;/code&gt; and &lt;code&gt;PipelineRuns&lt;/code&gt; with that data.&lt;/p&gt;
&lt;p&gt;If you need to modify, filter, or validate the event payload data before passing it to a &lt;code&gt;TriggerBinding&lt;/code&gt;, you can optionally specify one
or more &lt;a href=&#34;https://deploy-preview-726--tekton.netlify.app/vault/Triggers-v0.32.x-LTS/interceptors/&#34;&gt;&lt;code&gt;Interceptors&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;#structure-of-an-eventlistener&#34;&gt;Structure of an &lt;code&gt;EventListener&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#specifying-the-kubernetes-service-account&#34;&gt;Specifying the Kubernetes service account&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#specifying-triggers&#34;&gt;Specifying &lt;code&gt;Triggers&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#specifying-triggergroups&#34;&gt;Specifying &lt;code&gt;TriggerGroups&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#specifying-resources&#34;&gt;Specifying &lt;code&gt;Resources&lt;/code&gt;&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;#specifying-a-kubernetesresource-object&#34;&gt;Specifying a &lt;code&gt;kubernetesResource&lt;/code&gt; object&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;#specifying-service-configuration&#34;&gt;Specifying &lt;code&gt;Service&lt;/code&gt; configuration&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#specifying-replicas&#34;&gt;Specifying &lt;code&gt;Replicas&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#specifying-a-customresource-object&#34;&gt;Specifying a &lt;code&gt;CustomResource&lt;/code&gt; object&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;#contract-for-the-customresource-object&#34;&gt;Contract for the &lt;code&gt;CustomResource&lt;/code&gt; object&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#specifying-interceptors&#34;&gt;Specifying &lt;code&gt;Interceptors&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#specifying-cloudeventuri&#34;&gt;Specifying &lt;code&gt;cloudEventURI&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#constraining-eventlisteners-to-specific-namespaces&#34;&gt;Constraining &lt;code&gt;EventListeners&lt;/code&gt; to specific namespaces&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#constraining-eventlisteners-to-specific-labels&#34;&gt;Constraining &lt;code&gt;EventListeners&lt;/code&gt; to specific labels&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#disabling-payload-validation&#34;&gt;Disabling Payload Validation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#labels-in-eventlisteners&#34;&gt;Labels in &lt;code&gt;EventListeners&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#specifying-eventlistener-timeouts&#34;&gt;Specifying &lt;code&gt;EventListener&lt;/code&gt; timeouts&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#annotations-in-eventlisteners&#34;&gt;Annotations in &lt;code&gt;EventListeners&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#understanding-eventlistener-response&#34;&gt;Understanding &lt;code&gt;EventListener&lt;/code&gt; response&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;#response-to-cloudevents&#34;&gt;Response to CloudEvents&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#tls-https-support-in-eventlisteners&#34;&gt;TLS HTTPS support in &lt;code&gt;EventListeners&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#obtaining-the-status-of-deployed-eventlisteners&#34;&gt;Obtaining the status of deployed &lt;code&gt;EventListeners&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#configuring-logging-for-eventlisteners&#34;&gt;Configuring logging for &lt;code&gt;EventListeners&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#exposing-an-eventlistener-outside-of-the-cluster&#34;&gt;Exposing an &lt;code&gt;EventListener&lt;/code&gt; outside of the cluster&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;#exposing-an-eventlistener-using-a-kubernetes-ingress-object&#34;&gt;Exposing an &lt;code&gt;EventListener&lt;/code&gt; using a Kubernetes &lt;code&gt;Ingress&lt;/code&gt; object&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#exposing-an-eventlistener-using-openshift-route&#34;&gt;Exposing an &lt;code&gt;EventListener&lt;/code&gt; using OpenShift Route&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#understanding-the-deployment-of-an-eventlistener&#34;&gt;Understanding the deployment of an &lt;code&gt;EventListener&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#deploying-eventlisteners-in-multi-tenant-scenarios&#34;&gt;Deploying &lt;code&gt;EventListeners&lt;/code&gt; in multi-tenant scenarios&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;#deploying-each-eventlistener-in-its-own-namespace&#34;&gt;Deploying each &lt;code&gt;EventListener&lt;/code&gt; in its own namespace&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#deploying-multiple-eventlisteners-in-the-same-namespace&#34;&gt;Deploying multiple &lt;code&gt;EventListeners&lt;/code&gt; in the same namespace&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#cloud-events-during-trigger-processing&#34;&gt;CloudEvents during Trigger Processing&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;structure-of-an-eventlistener&#34;&gt;Structure of an &lt;code&gt;EventListener&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;An &lt;code&gt;EventListener&lt;/code&gt; definition consists of the following fields:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Required:
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://kubernetes.io/docs/concepts/overview/working-with-objects/kubernetes-objects/#required-fields&#34;&gt;&lt;code&gt;apiVersion&lt;/code&gt;&lt;/a&gt; - specifies the target API version, for example &lt;code&gt;triggers.tekton.dev/v1alpha1&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://kubernetes.io/docs/concepts/overview/working-with-objects/kubernetes-objects/#required-fields&#34;&gt;&lt;code&gt;kind&lt;/code&gt;&lt;/a&gt; - specifies that this Kubernetes resource is an &lt;code&gt;EventListener&lt;/code&gt; object&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://kubernetes.io/docs/concepts/overview/working-with-objects/kubernetes-objects/#required-fields&#34;&gt;&lt;code&gt;metadata&lt;/code&gt;&lt;/a&gt; - specifies data that uniquely identifies this &lt;code&gt;EventListener&lt;/code&gt; object, for example a &lt;code&gt;name&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://kubernetes.io/docs/concepts/overview/working-with-objects/kubernetes-objects/#required-fields&#34;&gt;&lt;code&gt;spec&lt;/code&gt;&lt;/a&gt; - specifies the configuration of your &lt;code&gt;EventListener&lt;/code&gt;:
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;#specifying-the-kubernetes-service-account&#34;&gt;&lt;code&gt;serviceAccountName&lt;/code&gt;&lt;/a&gt; - Specifies the &lt;code&gt;ServiceAccount&lt;/code&gt; the &lt;code&gt;EventListener&lt;/code&gt; will use to instantiate Tekton resources&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Optional:
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;#specifying-triggers&#34;&gt;&lt;code&gt;triggers&lt;/code&gt;&lt;/a&gt; - specifies a list of &lt;code&gt;Triggers&lt;/code&gt; to execute upon event detection&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#specifying-cloudeventuri&#34;&gt;&lt;code&gt;cloudEventURI&lt;/code&gt;&lt;/a&gt; - specifies the URI for cloudevent sink&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#specifying-resources&#34;&gt;&lt;code&gt;resources&lt;/code&gt;&lt;/a&gt; - specifies the resources that will be available to the event listening service&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#constraining-eventlisteners-to-specific-namespaces&#34;&gt;&lt;code&gt;namespaceSelector&lt;/code&gt;&lt;/a&gt; - specifies the namespace for the &lt;code&gt;EventListener&lt;/code&gt;; this is where the &lt;code&gt;EventListener&lt;/code&gt; looks for the specified &lt;code&gt;Triggers&lt;/code&gt; and stores the Tekton objects it instantiates upon event detection&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#constraining-eventlisteners-to-specific-labels&#34;&gt;&lt;code&gt;labelSelector&lt;/code&gt;&lt;/a&gt; - specifies the labels for which your &lt;code&gt;EventListener&lt;/code&gt; recognizes &lt;code&gt;Triggers&lt;/code&gt; and instantiates the specified Tekton objects&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;See our &lt;a href=&#34;https://github.com/tektoncd/triggers/tree/main/examples&#34;&gt;Tekton Triggers examples&lt;/a&gt; for ready-to-use example &lt;code&gt;EventListener&lt;/code&gt; definitions.&lt;/p&gt;
&lt;h2 id=&#34;specifying-the-kubernetes-service-account&#34;&gt;Specifying the Kubernetes service account&lt;/h2&gt;
&lt;p&gt;You must specify a Kubernetes service account in the &lt;code&gt;serviceAccountName&lt;/code&gt; field that the &lt;code&gt;EventListener&lt;/code&gt; will use to instantiate Tekton objects.&lt;/p&gt;
&lt;p&gt;Tekton Trigger creates 2 clusterroles while installing with necessary permissions required for an eventlistener. You can directly create bindings for your serviceaccount with the clusterroles.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;A Kubernetes RoleBinding with &lt;code&gt;tekton-triggers-eventlistener-roles&lt;/code&gt; clusterrole.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;A Kubernetes ClusterRoleBinding with &lt;code&gt;tekton-triggers-eventlistener-clusterroles&lt;/code&gt; clusterrole.&lt;/p&gt;
&lt;p&gt;You can checkout an example &lt;a href=&#34;https://github.com/tektoncd/triggers/tree/release-v0.32.x/examples/rbac.yaml&#34;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;If you&amp;rsquo;re using &lt;code&gt;namespaceSelectors&lt;/code&gt; in your &lt;code&gt;EventListener&lt;/code&gt;, you will have to create an additional &lt;code&gt;ClusterRoleBinding &lt;/code&gt;
with &lt;code&gt;tekton-triggers-eventlistener-roles&lt;/code&gt; clusterrole.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;specifying-triggers&#34;&gt;Specifying &lt;code&gt;Triggers&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;You can optionally specify one or more &lt;code&gt;Triggers&lt;/code&gt; that define the actions to take when the &lt;code&gt;EventListener&lt;/code&gt; detects a qualifying event. You can specify &lt;em&gt;either&lt;/em&gt; a reference to an
external &lt;code&gt;Trigger&lt;/code&gt; object &lt;em&gt;or&lt;/em&gt; reference/define the &lt;code&gt;TriggerBindings&lt;/code&gt;, &lt;code&gt;TriggerTemplates&lt;/code&gt;, and &lt;code&gt;Interceptors&lt;/code&gt; in the &lt;code&gt;Trigger&lt;/code&gt; definition. A &lt;code&gt;Trigger&lt;/code&gt; definition
specifies the following fields:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;name&lt;/code&gt; - (optional) a valid &lt;a href=&#34;https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#syntax-and-character-set&#34;&gt;Kubernetes name&lt;/a&gt; that uniquely identifies the &lt;code&gt;Trigger&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;interceptors&lt;/code&gt; - (optional) a list of &lt;a href=&#34;#specifying-interceptors&#34;&gt;&lt;code&gt;Interceptors&lt;/code&gt;&lt;/a&gt; that will process event payload data before passing it to the associated &lt;code&gt;TriggerBinding&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;bindings&lt;/code&gt; - (optional) a list of &lt;code&gt;TriggerBindings&lt;/code&gt; for this &lt;code&gt;Trigger&lt;/code&gt;; you can either reference existing &lt;code&gt;TriggerBindings&lt;/code&gt; or embed their definitions directly&lt;/li&gt;
&lt;li&gt;&lt;code&gt;template&lt;/code&gt; - (optional) a &lt;code&gt;TriggerTemplate&lt;/code&gt; for this &lt;code&gt;Trigger&lt;/code&gt;; you can either reference an existing &lt;code&gt;TriggerTemplate&lt;/code&gt; or embed its definition directly&lt;/li&gt;
&lt;li&gt;&lt;code&gt;triggerRef&lt;/code&gt; - (optional) a reference to an external &lt;a href=&#34;https://deploy-preview-726--tekton.netlify.app/vault/Triggers-v0.32.x-LTS/triggers/&#34;&gt;&lt;code&gt;Trigger&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Below is an example &lt;code&gt;Trigger&lt;/code&gt; definition that references the desired &lt;code&gt;TriggerBindings&lt;/code&gt;, &lt;code&gt;TriggerTemplates&lt;/code&gt;, and &lt;code&gt;Interceptors&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;triggers&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;trigger-1&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;interceptors&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;github&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;eventTypes&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;[&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;pull_request&amp;#34;&lt;/span&gt;]&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;bindings&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;ref&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;pipeline-binding&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#09f;font-style:italic&#34;&gt;# Reference to a TriggerBinding object&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;message&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#09f;font-style:italic&#34;&gt;# Embedded Binding&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;value&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;Hello from the Triggers EventListener!&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;template&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;ref&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;pipeline-template&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Below is an example &lt;code&gt;Trigger&lt;/code&gt; definition that specifies a reference to an external &lt;code&gt;Trigger&lt;/code&gt; object:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;triggers&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;triggerRef&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;trigger&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Below is an example &lt;code&gt;Trigger&lt;/code&gt; definition that embeds a &lt;code&gt;triggerTemplate&lt;/code&gt; definition directly:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;triggers&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;my-trigger&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;template&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;spec&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;params&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;          &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;my-param-name&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;resourceTemplates&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;apiVersion&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;tekton.dev/v1beta1&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;kind&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;TaskRun&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;metadata&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;generateName&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;pr-run-&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;spec&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;taskSpec&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;              &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;steps&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;              &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;image&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;ubuntu&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;                &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;script&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;echo &amp;#34;hello there&amp;#34;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Below is an example &lt;code&gt;Trigger&lt;/code&gt; definition tailored to a multi-tenant scenario in which you may not
want all of your &lt;code&gt;Trigger&lt;/code&gt; objects to have the same permissions as the &lt;code&gt;EventListener&lt;/code&gt;. In such case,
you can specify a different service account at the &lt;code&gt;Trigger&lt;/code&gt; level. This service account overrides
the service account specified in the &lt;code&gt;EventListener&lt;/code&gt;.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;triggers&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;trigger-1&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;serviceAccountName&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;trigger-1-sa&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;interceptors&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;github&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;eventTypes&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;[&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;pull_request&amp;#34;&lt;/span&gt;]&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;bindings&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;ref&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;pipeline-binding&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;ref&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;message-binding&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;template&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;ref&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;pipeline-template&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;You must update the &lt;code&gt;Role&lt;/code&gt; assigned to the service account specified in the &lt;code&gt;EventListener&lt;/code&gt; as shown below
to allow it to impersonate the service account specified in the &lt;code&gt;Trigger&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;rules&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;apiGroups&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;[&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;]&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;resources&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;[&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;serviceaccounts&amp;#34;&lt;/span&gt;]&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;verbs&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;[&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;impersonate&amp;#34;&lt;/span&gt;]&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;specifying-cloudeventuri&#34;&gt;Specifying &lt;code&gt;cloudEventURI&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;Specifying the URI for cloud event sink which receives &lt;a href=&#34;#cloud-events-during-trigger-processing&#34;&gt;cloud events during Trigger Processing&lt;/a&gt;.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;spec&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;cloudEventURI&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;http://eventlistener.free.beeceptor.com&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;specifying-triggergroups&#34;&gt;Specifying &lt;code&gt;TriggerGroups&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;TriggerGroups&lt;/code&gt; is a feature that allows you to specify a set of interceptors that will process before a set of
&lt;code&gt;Trigger&lt;/code&gt; resources are processed by the eventlistener. The goal of this feature is described in
&lt;a href=&#34;https://github.com/tektoncd/community/blob/main/teps/0053-nested-triggers.md&#34;&gt;TEP-0053&lt;/a&gt;. &lt;code&gt;TriggerGroups&lt;/code&gt; allow for
a common set of interceptors to be defined inline in the &lt;code&gt;EventListenerSpec&lt;/code&gt; before &lt;code&gt;Triggers&lt;/code&gt; are invoked.&lt;/p&gt;
&lt;p&gt;A &lt;code&gt;TriggerGroup&lt;/code&gt; definition specifies the following fields:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;name&lt;/code&gt; - (optional) a valid &lt;a href=&#34;https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#syntax-and-character-set&#34;&gt;Kubernetes name&lt;/a&gt; that uniquely identifies the &lt;code&gt;TriggerGroup&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;interceptors&lt;/code&gt; - a list of &lt;a href=&#34;#specifying-interceptors&#34;&gt;&lt;code&gt;Interceptors&lt;/code&gt;&lt;/a&gt; that will process event payload data before passing it to the downstream &lt;code&gt;Triggers&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;triggerSelector&lt;/code&gt; - a combination of a Kubernetes &lt;code&gt;labelSelector&lt;/code&gt; and a &lt;code&gt;namespaceSelector&lt;/code&gt; as defined later &lt;a href=&#34;#constraining-eventlisteners-to-specific-namespaces&#34;&gt;in this document&lt;/a&gt;. These two fields work together to define the &lt;code&gt;Triggers&lt;/code&gt; that will be processed once &lt;code&gt;Interceptors&lt;/code&gt; processing completes.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Below is an example EventListener that defines an inline &lt;code&gt;triggerGroup&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;apiVersion&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;triggers.tekton.dev/v1beta1&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;kind&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;EventListener&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;metadata&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;eventlistener&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;spec&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;triggerGroups&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;github-pr-group&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;interceptors&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;validate GitHub payload and filter on eventType&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;ref&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;github&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;params&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;secretRef&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;value&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;secretName&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;github-secret&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;secretKey&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;secretToken&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;eventTypes&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;value&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;[&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;pull_request&amp;#34;&lt;/span&gt;]&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;triggerSelector&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;labelSelector&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;matchLabels&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;type&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;github-pr&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This configuration would first process any event that is sent to the &lt;code&gt;EventListener&lt;/code&gt; and determine if it matches
the outlined conditions. If it passes these conditions, it will use the &lt;code&gt;triggerSelector&lt;/code&gt; matching criteria to determine
the target &lt;code&gt;Trigger&lt;/code&gt; resources to continue processing.&lt;/p&gt;
&lt;p&gt;Any &lt;code&gt;extensions&lt;/code&gt; fields added during &lt;code&gt;triggerGroup&lt;/code&gt; processing are passed to the downstream &lt;code&gt;Trigger&lt;/code&gt; execution. This allows
for shared data across all Triggers that are processed after group execution completes. As an example, &lt;code&gt;extensions.myfield&lt;/code&gt; would
be available to all &lt;code&gt;Trigger&lt;/code&gt; resources matched by this group:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;apiVersion&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;triggers.tekton.dev/v1beta1&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;kind&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;EventListener&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;metadata&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;eventlistener&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;spec&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;triggerGroups&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;cel-filter-group&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;interceptors&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;validate body and add field&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;ref&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;cel&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;params&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;filter&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;value&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;body.action in [&amp;#39;opened&amp;#39;, &amp;#39;reopened&amp;#39;]&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;overlays&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;value&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;key&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;myfield&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;expression&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;body.pull_request.head.sha.truncate(7)&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;triggerSelector&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;namespaceSelector&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;matchNames&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;- foo&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;labelSelector&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;matchLabels&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;type&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;cel-preprocessed&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;At this time, each &lt;code&gt;TriggerGroup&lt;/code&gt; determines its own downstream Triggers, so if two separate groups select the same
downstream &lt;code&gt;Trigger&lt;/code&gt; resources, it may be executed multiple times. If you use this feature, ensure that &lt;code&gt;Trigger&lt;/code&gt; resources
are labeled to be queried by the appropriate set of &lt;code&gt;TriggerGroups&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;specifying-resources&#34;&gt;Specifying &lt;code&gt;Resources&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;You can optionally customize the sink deployment for your &lt;code&gt;EventListener&lt;/code&gt; using the &lt;code&gt;resources&lt;/code&gt; field. It accepts the following types of objects:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Kubernetes Resource using the &lt;code&gt;kubernetesResource&lt;/code&gt; field&lt;/li&gt;
&lt;li&gt;Custom Resource objects via the &lt;code&gt;CustomResource&lt;/code&gt; field&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Legal values for the &lt;code&gt;PodSpec&lt;/code&gt; sub-fields for both &lt;code&gt;kubernetesResource&lt;/code&gt; and &lt;code&gt;CustomResource&lt;/code&gt; are:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;ServiceAccountName
NodeSelector
Tolerations
Containers
Affinity
TopologySpreadConstraints
SecurityContext
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Legal values for the &lt;code&gt;Containers&lt;/code&gt; sub-field for &lt;code&gt;kubernetesResource&lt;/code&gt; and &lt;code&gt;CustomResource&lt;/code&gt; are:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;kubernetesResource:&lt;/strong&gt;&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;Resources
Env
LivenessProbe
ReadinessProbe
StartupProbe
SecurityContext
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;CustomResource:&lt;/strong&gt;&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;Resources
Env
SecurityContext
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;specifying-a-kubernetesresource-object&#34;&gt;Specifying a &lt;code&gt;kubernetesResource&lt;/code&gt; object&lt;/h3&gt;
&lt;p&gt;Below is an example &lt;code&gt;resources:&lt;/code&gt; field definition specifying a &lt;code&gt;kubernetesResource&lt;/code&gt; object:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;spec&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;resources&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;kubernetesResource&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;serviceType&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;NodePort&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;servicePort&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#f60&#34;&gt;80&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;spec&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;template&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;metadata&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;labels&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;              &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;key&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;value&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;annotations&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;              &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;key&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;value&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;spec&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;serviceAccountName&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;tekton-triggers-github-sa&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;securityContext&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;              &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;runAsNonRoot&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#069;font-weight:bold&#34;&gt;true&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;nodeSelector&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;              &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;app&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;test&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;tolerations&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;key&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;key&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;              &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;value&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;value&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;              &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;operator&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;Equal&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;              &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;effect&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;NoSchedule&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;containers&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;securityContext&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;                &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;readOnlyRootFilesystem&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#069;font-weight:bold&#34;&gt;true&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id=&#34;specifying-service-configuration&#34;&gt;Specifying &lt;code&gt;Service&lt;/code&gt; configuration&lt;/h4&gt;
&lt;p&gt;The type and port for the &lt;code&gt;Service&lt;/code&gt; created for the &lt;code&gt;EventListener&lt;/code&gt; can be configured via the &lt;code&gt;ServiceType&lt;/code&gt; and &lt;code&gt;ServicePort&lt;/code&gt;
specifications respectively. By default, the &lt;code&gt;Service&lt;/code&gt; type is set to &lt;code&gt;ClusterIP&lt;/code&gt; and port is set to &lt;code&gt;8080&lt;/code&gt;.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;spec&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;resources&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;kubernetesResource&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;serviceType&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;LoadBalancer&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;servicePort&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#f60&#34;&gt;8128&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;If you use a loadbalancer service, you can optionally define a &lt;a href=&#34;https://kubernetes.io/docs/concepts/services-networking/service/#load-balancer-class&#34;&gt;LoadBalancerClass&lt;/a&gt; with the &lt;code&gt;ServiceLoadBalancerClass&lt;/code&gt; attribute.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;spec&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;resources&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;kubernetesResource&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;serviceType&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;LoadBalancer&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;serviceLoadBalancerClass&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;internal&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id=&#34;specifying-replicas&#34;&gt;Specifying &lt;code&gt;Replicas&lt;/code&gt;&lt;/h4&gt;
&lt;p&gt;You can optionally use the &lt;code&gt;replicas&lt;/code&gt; field to instruct Tekton Triggers to deploy more than one instance of your &lt;code&gt;EventListener&lt;/code&gt; in individual Kubernetes Pods.
If you do not specify this value, the default number of instances (and thus, the number of respective Pods) per &lt;code&gt;EventListener&lt;/code&gt; is 1. If you set a value for the &lt;code&gt;replicas&lt;/code&gt; field
while creating or upgrading the &lt;code&gt;EventListener&#39;s&lt;/code&gt; YAML file, that value overrides any value you set manually later as well as a value set by any other deployment
mechanism, such as HPA.&lt;/p&gt;
&lt;h3 id=&#34;specifying-a-customresource-object&#34;&gt;Specifying a &lt;code&gt;CustomResource&lt;/code&gt; object&lt;/h3&gt;
&lt;p&gt;You can specify a Kubernetes Custom Resource object using the &lt;code&gt;CustomResource&lt;/code&gt; field. This field has one sub-field, &lt;code&gt;runtime.RawExtension&lt;/code&gt; that allows you to specify dynamic objects.&lt;/p&gt;
&lt;h4 id=&#34;contract-for-the-customresource-object&#34;&gt;Contract for the &lt;code&gt;CustomResource&lt;/code&gt; object&lt;/h4&gt;
&lt;p&gt;The &lt;code&gt;CustomResource&lt;/code&gt; object must abide by the contract shown below.&lt;/p&gt;
&lt;p&gt;Contract-mandated CRD structure for the &lt;code&gt;spec&lt;/code&gt; field:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code class=&#34;language-spec&#34; data-lang=&#34;spec&#34;&gt;   spec:
     template:
       metadata:
       spec:
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Contract-mandated CRD structure for the &lt;code&gt;status&lt;/code&gt; field:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code class=&#34;language-status&#34; data-lang=&#34;status&#34;&gt;type EventListenerStatus struct {
  duckv1beta1.Status `json:&amp;#34;,inline&amp;#34;`

  // EventListener is addressable via the DNS address of the sink.
  duckv1alpha1.AddressStatus `json:&amp;#34;,inline&amp;#34;`
}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; The CRD must follow the &lt;a href=&#34;https://github.com/knative/pkg/blob/main/apis/duck/v1/podspec_types.go#L41&#34;&gt;WithPod{}&lt;/a&gt; spec.&lt;/p&gt;
&lt;p&gt;Below is an example &lt;code&gt;resources:&lt;/code&gt; field definition specifying a &lt;code&gt;CustomResource&lt;/code&gt; object using a &lt;a href=&#34;https://knative.dev/docs/&#34;&gt;Knative Service&lt;/a&gt;:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; This example assumes that &lt;a href=&#34;https://github.com/tektoncd/community/blob/main/teps/0008-support-knative-service-for-triggers-eventlistener-pod.md#note&#34;&gt;Knative is installed&lt;/a&gt; on your cluster.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;spec&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;resources&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;customResource&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;apiVersion&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;serving.knative.dev/v1&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;kind&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;Service&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#09f;font-style:italic&#34;&gt;#      metadata:&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#09f;font-style:italic&#34;&gt;#        name: knativeservice # name is optional; if not specified, Triggers substitutes the EventListener&amp;#39;s name with an &amp;#34;el-&amp;#34; prefix, for example: el-github-knative-listener&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;spec&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;template&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;spec&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;serviceAccountName&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;tekton-triggers-example-sa&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;containers&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;resources&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;                &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;requests&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;                  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;memory&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;64Mi&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;                  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;cpu&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;250m&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;                &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;limits&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;                  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;memory&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;128Mi&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;                  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;cpu&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;500m&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;specifying-interceptors&#34;&gt;Specifying &lt;code&gt;Interceptors&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;An &lt;code&gt;Interceptor&lt;/code&gt; is a &amp;ldquo;catch-all&amp;rdquo; event processor for a specific platform that runs before the &lt;code&gt;TriggerBinding&lt;/code&gt;. It allows you to perform payload filtering,
verification (using a secret), transformation, define and test trigger conditions, and implement other useful processing. Once the event data passes through
an &lt;code&gt;Interceptor&lt;/code&gt;, it then goes to the &lt;code&gt;Trigger&lt;/code&gt; before you pass the payload data to the &lt;code&gt;TriggerBinding&lt;/code&gt;. You can also use an &lt;code&gt;Interceptor&lt;/code&gt; to modify the
behavior of the associated &lt;code&gt;Trigger&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;For more information, see &lt;a href=&#34;https://deploy-preview-726--tekton.netlify.app/vault/Triggers-v0.32.x-LTS/interceptors/&#34;&gt;&lt;code&gt;Interceptors&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;constraining-eventlisteners-to-specific-namespaces&#34;&gt;Constraining &lt;code&gt;EventListeners&lt;/code&gt; to specific namespaces&lt;/h2&gt;
&lt;p&gt;You can optionally specify a list of namespaces in which your &lt;code&gt;EventListener&lt;/code&gt; will search for &lt;code&gt;Triggers&lt;/code&gt; and instantiate the specified Tekton objects using the &lt;code&gt;namespaceSelector&lt;/code&gt; field.&lt;/p&gt;
&lt;p&gt;If you omit this field, your &lt;code&gt;EventListener&lt;/code&gt; will only recognize &lt;code&gt;Triggers&lt;/code&gt; specified in its definition or found under one or more specified target labels.&lt;/p&gt;
&lt;p&gt;Below is an example &lt;code&gt;namespaceSelector&lt;/code&gt; field that configures the &lt;code&gt;EventListener&lt;/code&gt; to use the &lt;code&gt;foo&lt;/code&gt; and &lt;code&gt;bar&lt;/code&gt; namespaces:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;namespaceSelector&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;matchNames&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;- foo&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;- bar&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;If you want your &lt;code&gt;EventListener&lt;/code&gt; to recognize &lt;code&gt;Triggers&lt;/code&gt; across your entire cluster, use a wildcard  between quote as the only namespace:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;namespaceSelector&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;matchNames&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;- &lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;*&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;At present, if an EventListeners has &lt;code&gt;Triggers&lt;/code&gt; inside its own spec as well as &lt;code&gt;namespace-selector&lt;/code&gt;, &lt;code&gt;Triggers&lt;/code&gt; in spec as well as in selected namespaces will be processed for a request. &lt;code&gt;Triggers&lt;/code&gt; inside EventListener spec when using &lt;code&gt;namespace-selector&lt;/code&gt; mode is deprecated and ability to specify both will be removed.&lt;/p&gt;
&lt;h2 id=&#34;constraining-eventlisteners-to-specific-labels&#34;&gt;Constraining &lt;code&gt;EventListeners&lt;/code&gt; to specific labels&lt;/h2&gt;
&lt;p&gt;You can optionally specify the labels for which your &lt;code&gt;EventListener&lt;/code&gt; recognizes &lt;code&gt;Triggers&lt;/code&gt; and instantiates the specified Tekton objects using the &lt;code&gt;labelSelector&lt;/code&gt; field.
This field uses the standard Kubernetes &lt;code&gt;labelSelector&lt;/code&gt; mechanism and supports the &lt;code&gt;matchExpressions&lt;/code&gt; sub-field. If you omit the &lt;code&gt;labelSelector&lt;/code&gt; field, the &lt;code&gt;EventListener&lt;/code&gt;
accepts all resource labels.&lt;/p&gt;
&lt;p&gt;Below is an example &lt;code&gt;labelSelector&lt;/code&gt; field definition that constrains your &lt;code&gt;EventListener&lt;/code&gt; to only recognize &lt;code&gt;Triggers&lt;/code&gt; within its own namespace that are labeled &lt;code&gt;foo=bar&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;labelSelector&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;matchLabels&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;foo&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;bar&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Below is an example &lt;code&gt;labelSelector&lt;/code&gt; field definition that uses the &lt;code&gt;matchExpression&lt;/code&gt; sub-field to specify expressions that allow the &lt;code&gt;EventListener&lt;/code&gt; to recognize &lt;code&gt;Triggers&lt;/code&gt;
across all namespaces in the cluster:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;namespaceSelector&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;matchNames&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;- *&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;labelSelector&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;matchExpressions&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;- {&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;key: environment, operator: In, values&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;[dev,stage]}&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;- {&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;key: trigger-phase, operator: NotIn, values&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;[testing]}&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;specifying-eventlistener-timeouts&#34;&gt;Specifying &lt;code&gt;EventListener&lt;/code&gt; timeouts&lt;/h2&gt;
&lt;p&gt;An &lt;code&gt;EventListener&lt;/code&gt; times out if it cannot process an event request within a timeout specified in &lt;a href=&#34;https://github.com/tektoncd/triggers/tree/release-v0.32.x/config/controller.yaml&#34;&gt;controller.yaml&lt;/a&gt;. The timeouts are as follows:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;-el-readtimeout&lt;/code&gt;: Read timeout; default is 5 seconds.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-el-writetimeout&lt;/code&gt;: Write timeout; default is 40 seconds.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-el-idletimeout&lt;/code&gt;: Idle timeout; default is 120 seconds.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-el-timeouthandler&lt;/code&gt;: Server route handler timeout; default is 30 seconds.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;disabling-payload-validation&#34;&gt;Disabling Payload Validation&lt;/h2&gt;
&lt;p&gt;To disable incoming payload validation for an EventListener, you can define an annotation &lt;code&gt;tekton.dev/payload-validation: false&lt;/code&gt;
on EventListener.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;apiVersion: triggers.tekton.dev/v1alpha1
kind: EventListener
metadata:
  name: eventlistener
  annotations:
    tekton.dev/payload-validation: &amp;#34;false&amp;#34;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;By default, payload validation is enabled and will be disabled only if the annotation is defined. Removing the annotation will enable
the payload validation.&lt;/p&gt;
&lt;h2 id=&#34;labels-in-eventlisteners&#34;&gt;Labels in &lt;code&gt;EventListeners&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;By default, each &lt;code&gt;EventListener&lt;/code&gt; automatically attaches the following labels to all resources it instantiates:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Name&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;triggers.tekton.dev/eventlistener&lt;/td&gt;
&lt;td&gt;Name of the &lt;code&gt;EventListener&lt;/code&gt; that instantiated the resource.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;triggers.tekton.dev/trigger&lt;/td&gt;
&lt;td&gt;Name of the &lt;code&gt;Trigger&lt;/code&gt; that instantiated the resource.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;triggers.tekton.dev/eventid&lt;/td&gt;
&lt;td&gt;UID of the incoming event.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Because they&amp;rsquo;re used as labels, &lt;code&gt;EventListener&lt;/code&gt; and &lt;code&gt;Trigger&lt;/code&gt; names must conform to the &lt;a href=&#34;https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#syntax-and-character-set&#34;&gt;Kubernetes syntax and character set requirements&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;annotations-in-eventlisteners&#34;&gt;Annotations in &lt;code&gt;EventListeners&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;Tekton Triggers propagates all annotations that you include in your &lt;code&gt;EventListener&lt;/code&gt; to the Kubernetes service and deployment created by that &lt;code&gt;EventListener&lt;/code&gt;.
Keep in mind that annotations propagated from the &lt;code&gt;EventListener&lt;/code&gt; override annotations already present in its Kubernetes service and deployment.&lt;/p&gt;
&lt;p&gt;Below is an example load balancer protocol annotation in an &lt;code&gt;EventListener&lt;/code&gt; definition that automatically propagates to the &lt;code&gt;EventListener&#39;s&lt;/code&gt; service:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;apiVersion: triggers.tekton.dev/v1alpha1
kind: EventListener
metadata:
  name: eventlistener
  annotations:
    service.beta.kubernetes.io/aws-load-balancer-backend-protocol: https
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;understanding-eventlistener-response&#34;&gt;Understanding &lt;code&gt;EventListener&lt;/code&gt; response&lt;/h2&gt;
&lt;p&gt;An &lt;code&gt;EventListener&lt;/code&gt; responds with a &lt;code&gt;202 ACCEPTED&lt;/code&gt; HTTP response when the &lt;code&gt;EventListener&lt;/code&gt;
has been able to process the request and selected the appropriate triggers to process
based off the &lt;code&gt;EventListener&lt;/code&gt; configuration.&lt;/p&gt;
&lt;p&gt;After detecting an event, the &lt;code&gt;EventListener&lt;/code&gt; responds with the following message:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;&amp;#34;eventListener&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;listener&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;&amp;#34;namespace&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;default&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;&amp;#34;eventListenerUID&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;ea71a6e4-9531-43a1-94fe-6136515d938c&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;&amp;#34;eventID&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;14a657c3-6816-45bf-b214-4afdaefc4ebd&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;eventListenerUID&lt;/code&gt; - &lt;a href=&#34;https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids&#34;&gt;UID&lt;/a&gt; of the target EventListener.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;eventID&lt;/code&gt; - UID assigned to this event request&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;response-to-cloudevents&#34;&gt;Response to CloudEvents&lt;/h3&gt;
&lt;p&gt;EventListener can acts as sink for CloudEvents. When it acts as such, then its response is different from above.&lt;/p&gt;
&lt;p&gt;EventListener sends out this cloudevent as response assuming an EventListener with name &lt;code&gt;listener&lt;/code&gt; in the &lt;code&gt;default&lt;/code&gt; namespace with uuid &lt;code&gt;ea71a6e4-9531-43a1-94fe-6136515d938c&lt;/code&gt;:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;type: dev.tekton.event.triggers.accepted.v1
source: listener
subject: default.listener accepted eventID
id: 14a657c3-6816-45bf-b214-4afdaefc4ebd
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;id&lt;/code&gt; is assigned &lt;code&gt;eventID&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;It also has following data:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;&amp;#34;eventListener&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;listener&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;&amp;#34;namespace&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;default&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;&amp;#34;eventListenerUID&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;ea71a6e4-9531-43a1-94fe-6136515d938c&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;&amp;#34;eventID&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;14a657c3-6816-45bf-b214-4afdaefc4ebd&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;eventID&lt;/code&gt; - UID assigned to this event request&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;deprecated-fields&#34;&gt;Deprecated Fields&lt;/h3&gt;
&lt;p&gt;These fields are included in &lt;code&gt;EventListener&lt;/code&gt; responses, but will be removed in a future release.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;eventListener&lt;/code&gt; - name of the target EventListener. Use &lt;code&gt;eventListenerUID&lt;/code&gt; instead.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;namespace&lt;/code&gt; - namespace of the target EventListener. Use &lt;code&gt;eventListenerUID&lt;/code&gt; instead.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;tls-https-support-in-eventlisteners&#34;&gt;TLS HTTPS support in &lt;code&gt;EventListeners&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;Tekton Triggers supports both HTTP and TLS-based HTTPS connections. To configure your &lt;code&gt;EventListener&lt;/code&gt; for TLS,
add the &lt;code&gt;TLS_CERT&lt;/code&gt; and &lt;code&gt;TLS_KEY&lt;/code&gt; reserved environment variables using the &lt;code&gt;secretKeyRef&lt;/code&gt; variable type, then
specify a &lt;code&gt;secret&lt;/code&gt; containing the &lt;code&gt;cert&lt;/code&gt; and &lt;code&gt;key&lt;/code&gt; files. See &lt;a href=&#34;https://github.com/tektoncd/community/blob/main/teps/0027-https-connection-to-triggers-eventlistener.md&#34;&gt;TEP-0027&lt;/a&gt;
and our &lt;a href=&#34;https://github.com/tektoncd/triggers/tree/release-v0.32.x/examples/v1beta1/eventlistener-tls-connection/README.md&#34;&gt;TLS configuration example&lt;/a&gt; for more information.&lt;/p&gt;
&lt;h2 id=&#34;obtaining-the-status-of-deployed-eventlisteners&#34;&gt;Obtaining the status of deployed &lt;code&gt;EventListeners&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;Use the following command to get a list of &lt;code&gt;EventListeners&lt;/code&gt; deployed on your cluster along with their statuses:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;kubectl get el
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;You will get a response similar to the following:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;NAME                       ADDRESS                                                             AVAILABLE   REASON                     READY   REASON
tls-listener-interceptor   http://el-tls-listener-interceptor.default.svc.cluster.local        True        MinimumReplicasAvailable
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Where for each returned line, the column values are, from left to right:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;NAME&lt;/code&gt; - name of the &lt;code&gt;EventListener&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ADDRESS&lt;/code&gt; - IP address or URL of the &lt;code&gt;EventListener&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;AVAILABLE&lt;/code&gt; - readiness state of the associated &lt;code&gt;Deployment&lt;/code&gt; and &lt;code&gt;Service&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;REASON&lt;/code&gt; - reason for the value displayed in the &lt;code&gt;AVAILABLE&lt;/code&gt; column&lt;/li&gt;
&lt;li&gt;&lt;code&gt;READY&lt;/code&gt; - readiness state of the Kubernetes Custom Resource object specified in the &lt;code&gt;EventListener&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;REASON&lt;/code&gt; - reason for the value displayed in the &lt;code&gt;READY&lt;/code&gt; column&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; The status messaging described above is being refactored. For more information, see &lt;a href=&#34;https://github.com/tektoncd/triggers/issues/932&#34;&gt;Issue 932&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;configuring-logging-for-eventlisteners&#34;&gt;Configuring logging for &lt;code&gt;EventListeners&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;You can configure logging for your &lt;code&gt;EventListener&lt;/code&gt;s using the &lt;code&gt;config-logging-triggers&lt;/code&gt;
&lt;code&gt;ConfigMap&lt;/code&gt; located in the &lt;code&gt;tekton-pipelines&lt;/code&gt; namespace (&lt;a href=&#34;https://github.com/tektoncd/triggers/tree/release-v0.32.x/config/config-logging.yaml&#34;&gt;config-logging.yaml&lt;/a&gt;).
Tekton Triggers automatically reconciles this configmap into environment variables on your
event listener deployment.&lt;/p&gt;
&lt;p&gt;To access your &lt;code&gt;EventListener&lt;/code&gt; logs, query your cluster for Pods whose &lt;code&gt;eventlistener&lt;/code&gt; label matches the name of your &lt;code&gt;EventListener&lt;/code&gt; object. For example:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;kubectl get pods --selector &lt;span style=&#34;color:#033&#34;&gt;eventlistener&lt;/span&gt;&lt;span style=&#34;color:#555&#34;&gt;=&lt;/span&gt;my-eventlistener
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;configuring-metrics-for-eventlisteners&#34;&gt;Configuring metrics for &lt;code&gt;EventListeners&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;The following pipeline metrics are available on the &lt;code&gt;eventlistener&lt;/code&gt; Service on port &lt;code&gt;9000&lt;/code&gt;.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Name&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th style=&#34;text-align:center&#34;&gt;Labels/Tags&lt;/th&gt;
&lt;th&gt;Status&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;eventlistener_triggered_resources&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Counter&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;&lt;code&gt;kind&lt;/code&gt;=&amp;lt;kind&amp;gt;&lt;/td&gt;
&lt;td&gt;experimental&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;eventlistener_event_received_count&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Counter&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;&lt;code&gt;status&lt;/code&gt;=&amp;lt;status&amp;gt;&lt;/td&gt;
&lt;td&gt;experimental&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;eventlistener_http_duration_seconds_[bucket, sum, count]&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Histogram&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;-&lt;/td&gt;
&lt;td&gt;experimental&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Several kinds of exporters can be configured for an &lt;code&gt;EventListener&lt;/code&gt;, including Prometheus, Google Stackdriver, and many others.
You can configure metrics using the &lt;a href=&#34;https://github.com/tektoncd/triggers/tree/release-v0.32.x/config/config-observability.yaml&#34;&gt;&lt;code&gt;config-observability-triggers&lt;/code&gt; config map&lt;/a&gt; in the &lt;code&gt;EventListener&lt;/code&gt; namespaces.
There is a &lt;code&gt;config-observability-triggers&lt;/code&gt; configmap in the &lt;code&gt;tekton-pipelines&lt;/code&gt; namespace that can be configured for the operation of the Triggers
webhook and controller components.&lt;/p&gt;
&lt;p&gt;See &lt;a href=&#34;https://github.com/knative/pkg/blob/main/metrics/README.md&#34;&gt;the Knative documentation&lt;/a&gt; for more information about available exporters and configuration values.&lt;/p&gt;
&lt;h2 id=&#34;exposing-an-eventlistener-outside-of-the-cluster&#34;&gt;Exposing an &lt;code&gt;EventListener&lt;/code&gt; outside of the cluster&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;EventListeners&lt;/code&gt; create an underlying Kubernetes service (unless a user specifies a &lt;code&gt;customResource&lt;/code&gt; EventListener deployment).
By convention, this service is the same name as the EventListener prefixed with &lt;code&gt;el&lt;/code&gt;. So, an EventListener named &lt;code&gt;foo&lt;/code&gt;
will create a service called &lt;code&gt;el-foo&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;This service, by default is of type &lt;code&gt;ClusterIP&lt;/code&gt; which means it is only accessible within the cluster on which it is running.
You can expose this service as you would with any regular Kubernetes service. A few ways are highlighted below:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Using a &lt;code&gt;LoadBalancer&lt;/code&gt; Service type&lt;/li&gt;
&lt;li&gt;Using a Kubernetes &lt;code&gt;Ingress&lt;/code&gt; object&lt;/li&gt;
&lt;li&gt;Using the NGINX Ingress Controller&lt;/li&gt;
&lt;li&gt;Using OpenShift Route&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;exposing-an-eventlistener-using-a-loadbalancer-service&#34;&gt;Exposing an &lt;code&gt;EventListener&lt;/code&gt; using a &lt;code&gt;LoadBalancer&lt;/code&gt; Service&lt;/h3&gt;
&lt;p&gt;If your Kubernetes cluster supports &lt;a href=&#34;https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer&#34;&gt;external load balancers&lt;/a&gt;,
you can set the &lt;code&gt;serviceType&lt;/code&gt; field to &lt;code&gt;LoadBalancer&lt;/code&gt; to switch the Kubernetes service type:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;spec&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;resources&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;kubernetesResource&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;serviceType&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;LoadBalancer&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; You can find the external IP of this service by running &lt;code&gt;kubectl get svc/el-${EVENTLISTENER-NAME} -o=jsonpath=&#39;{.status.loadBalancer.ingress[0].ip}&#39;&lt;/code&gt;&lt;/p&gt;
&lt;h3 id=&#34;exposing-an-eventlistener-using-a-kubernetes-ingress-object&#34;&gt;Exposing an &lt;code&gt;EventListener&lt;/code&gt; using a Kubernetes &lt;code&gt;Ingress&lt;/code&gt; object&lt;/h3&gt;
&lt;p&gt;You can expose the service created by the EventListener using a regular &lt;a href=&#34;https://kubernetes.io/docs/concepts/services-networking/ingress/&#34;&gt;Kubernetes Ingress&lt;/a&gt;.
To do this, you may first have to change the &lt;code&gt;serviceType&lt;/code&gt; to &lt;code&gt;NodePort&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;spec&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;resources&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;kubernetesResource&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;serviceType&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;NodePort&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;You can also use the Tekton &lt;a href=&#34;https://deploy-preview-726--tekton.netlify.app/vault/Triggers-v0.32.x-LTS/getting-started/create-ingress.yaml&#34;&gt;&lt;code&gt;create-ingress&lt;/code&gt;&lt;/a&gt; task to configure an &lt;code&gt;Ingress&lt;/code&gt; object using self-signed certificates.&lt;/p&gt;
&lt;h2 id=&#34;exposing-an-eventlistener-using-openshift-route&#34;&gt;Exposing an &lt;code&gt;EventListener&lt;/code&gt; using Openshift Route&lt;/h2&gt;
&lt;p&gt;Below are instructions for configuring an OpenShift 4.2 cluster running API version &lt;code&gt;v1.14.6+32dc4a0&lt;/code&gt;. For more information,
see &lt;a href=&#34;https://docs.openshift.com/container-platform/4.2/networking/routes/route-configuration.html&#34;&gt;Route Configuration&lt;/a&gt;.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Obtain the name of your &lt;code&gt;EventListener&lt;/code&gt; service:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; oc get el &amp;lt;EVENTLISTENR_NAME&amp;gt; -o&lt;span style=&#34;color:#555&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#033&#34;&gt;jsonpath&lt;/span&gt;&lt;span style=&#34;color:#555&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#39;{.status.configuration.generatedName}&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Expose the &lt;code&gt;EventListener&lt;/code&gt; service:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; oc expose svc/&lt;span style=&#34;color:#555&#34;&gt;[&lt;/span&gt;el-listener&lt;span style=&#34;color:#555&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#09f;font-style:italic&#34;&gt;# REPLACE el-listener WITH YOUR SERVICE NAME FROM STEP 1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Obtain the IP address of the exposed route:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; oc get route el-listener  -o&lt;span style=&#34;color:#555&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#033&#34;&gt;jsonpath&lt;/span&gt;&lt;span style=&#34;color:#555&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#39;{.spec.host}&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#09f;font-style:italic&#34;&gt;# REPLACE el-listener WITH YOUR SERVICE NAME FROM STEP 1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Test the configuration with &lt;code&gt;curl&lt;/code&gt; or set up a GitHub Webhook that sends events to it.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;understanding-the-deployment-of-an-eventlistener&#34;&gt;Understanding the deployment of an &lt;code&gt;EventListener&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;Below is a high-level walkthrough through the deployment of an &lt;code&gt;EventListener&lt;/code&gt; using a GitHub example provided by Tekton Triggers.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Instantiate the example &lt;code&gt;EventListener&lt;/code&gt; on your cluster:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;kubectl create -f https://github.com/tektoncd/triggers/tree/main/examples/v1beta1/github
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Tekton Triggers creates a new &lt;code&gt;Deployment&lt;/code&gt; and &lt;code&gt;Service&lt;/code&gt; for the &lt;code&gt;EventListener&lt;/code&gt;. using the &lt;code&gt;EventListener&lt;/code&gt; definition,
&lt;a href=&#34;https://github.com/tektoncd/triggers/blob/main/docs/eventlisteners.md#labels&#34;&gt;&lt;code&gt;metadata.labels&lt;/code&gt;&lt;/a&gt;, and pre-existing values
such as container &lt;code&gt;Image&lt;/code&gt;, &lt;code&gt;Name&lt;/code&gt;, and &lt;code&gt;Port&lt;/code&gt;. Tekton Triggers uses the &lt;code&gt;EventListener&lt;/code&gt; name prefixed with &lt;code&gt;el-&lt;/code&gt; to name the
&lt;code&gt;Deployment&lt;/code&gt; and &lt;code&gt;Service&lt;/code&gt; when instantiating them. For example, if the &lt;code&gt;EventListener&lt;/code&gt; name is &lt;code&gt;foo&lt;/code&gt;, the &lt;code&gt;Deployment&lt;/code&gt; and
&lt;code&gt;Service&lt;/code&gt; names are named &lt;code&gt;el-foo&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Use &lt;code&gt;kubectl&lt;/code&gt; to verify the &lt;code&gt;Deployment&lt;/code&gt; is running on your cluster:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;kubectl get deployment
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;NAME                             READY   UP-TO-DATE   AVAILABLE   AGE
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;el-github-listener-interceptor   1/1     &lt;span style=&#34;color:#f60&#34;&gt;1&lt;/span&gt;            &lt;span style=&#34;color:#f60&#34;&gt;1&lt;/span&gt;           11s
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Use &lt;code&gt;kubectl&lt;/code&gt; to verify the &lt;code&gt;Service&lt;/code&gt; is running on your cluster:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;kubectl get svc
NAME                             TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)    AGE
el-github-listener-interceptor   ClusterIP   10.99.188.140   &amp;lt;none&amp;gt;        8080/TCP   52s
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Obtain the URL on which the &lt;code&gt;EventListener&lt;/code&gt; is listening for events:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;kubectl get eventlistener
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;NAME                          ADDRESS                                                              AVAILABLE   REASON
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;github-listener-interceptor   http://el-github-listener-interceptor.ptest.svc.cluster.local:8080   True        MinimumReplicasAvailable
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;See our &lt;a href=&#34;https://github.com/tektoncd/triggers/blob/main/examples/v1beta1/github/README.md&#34;&gt;GitHub &lt;code&gt;EventListener&lt;/code&gt; example&lt;/a&gt; to try instantiating an &lt;code&gt;EventListener&lt;/code&gt; locally.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;deploying-eventlisteners-in-multi-tenant-scenarios&#34;&gt;Deploying &lt;code&gt;EventListeners&lt;/code&gt; in multi-tenant scenarios&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;EventListeners&lt;/code&gt; are effectively Tekton clients that use HTTP to bypass the normal Kubernetes authentication
mechanism established through &lt;code&gt;kubeconfig&lt;/code&gt; files and the &lt;code&gt;kubectl config&lt;/code&gt; command tree. Because of this,
you must be conscious of your configuration decisions, such as:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;How to securely expose each &lt;code&gt;EventListener&lt;/code&gt; to the outside of your cluster,&lt;/li&gt;
&lt;li&gt;How to securely control how each &lt;code&gt;EventListener&lt;/code&gt; and its associated objects, such as &lt;a href=&#34;https://deploy-preview-726--tekton.netlify.app/vault/Triggers-v0.32.x-LTS/interceptors/&#34;&gt;&lt;code&gt;Interceptors&lt;/code&gt;&lt;/a&gt;,
interact with data on your cluster.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;At the minimum, each &lt;code&gt;EventListener&lt;/code&gt; specifies its own Kubernetes Service account as explained earlier, and
it acts on all events it receives with the permissions of that service account. If your business needs mandate
more granular permission control across the &lt;code&gt;Triggers&lt;/code&gt; and &lt;code&gt;Interceptors&lt;/code&gt; specified in your &lt;code&gt;EventListeners&lt;/code&gt;,
you have the following options:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Deploy each &lt;code&gt;EventListener&lt;/code&gt; in its own namespace&lt;/li&gt;
&lt;li&gt;Deploy multiple &lt;code&gt;EventListeners&lt;/code&gt; in the same namespace&lt;/li&gt;
&lt;li&gt;Specify a separate service account for each &lt;code&gt;Trigger&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;deploying-each-eventlistener-in-its-own-namespace&#34;&gt;Deploying each &lt;code&gt;EventListener&lt;/code&gt; in its own namespace&lt;/h3&gt;
&lt;p&gt;In this scenario, you create multiple &lt;code&gt;EventListeners&lt;/code&gt; that in turn use a variety of &lt;code&gt;Triggers&lt;/code&gt; and &lt;code&gt;Interceptors&lt;/code&gt;,
each &lt;code&gt;EventListener&lt;/code&gt; gets its own namespace. This way, you can use a different service account for each namespace
and tailor the permissions of those accounts to the functionality of their corresponding &lt;code&gt;EventListeners&lt;/code&gt;. Because
creating a namespace often instantiates the necessary service accounts based on pre-configured permissions, this
also simplifies the deployment process as you simply need to update the permissions associated with those accounts.&lt;/p&gt;
&lt;p&gt;However, this approach has the following drawbacks:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Namespaces with separately associated &lt;code&gt;Secrets&lt;/code&gt; and &lt;code&gt;ServiceAccounts&lt;/code&gt; can be the most expensive items in the
Kubernetes &lt;code&gt;etcd&lt;/code&gt; store; on large clusters, the capacity of the &lt;code&gt;etcd&lt;/code&gt; store can become a concern.&lt;/li&gt;
&lt;li&gt;Since each &lt;code&gt;EventListener&lt;/code&gt; requires its own HTTP port to listen for events, you must configure your network
to allow access to each corresponding IP address and port combination unless you configure an ingress abstraction
layer, such as the Kubernetes &lt;code&gt;Ingress&lt;/code&gt; object,or OpenShift Route.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;deploying-multiple-eventlisteners-in-the-same-namespace&#34;&gt;Deploying multiple &lt;code&gt;EventListeners&lt;/code&gt; in the same namespace&lt;/h3&gt;
&lt;p&gt;In this scenario, you create multiple &lt;code&gt;EventListeners&lt;/code&gt; in the same namespace. This will require customization of
the associated service account(s), secret(s), and RBAC, since the automatically generated defaults are not always
ideal, but you will not incur a significant &lt;code&gt;etcd&lt;/code&gt; store cost as in the multiple namespace scenario. Network security
and configuration overhead concerns, however, still apply as described earlier. You can also achieve a similar result
by specifying a separate service account for each &lt;code&gt;Trigger&lt;/code&gt; used across your &lt;code&gt;EventListener&lt;/code&gt; pool at the cost of
increased administration overhead.&lt;/p&gt;
&lt;h2 id=&#34;cloud-events-during-trigger-processing&#34;&gt;Cloud Events during Trigger Processing&lt;/h2&gt;
&lt;p&gt;The &lt;a href=&#34;https://github.com/cloudevents/spec&#34;&gt;cloud event&lt;/a&gt; that is sent to a target &lt;code&gt;URI&lt;/code&gt; during Trigger processing. The types of events send for now are:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;dev.tekton.event.triggers.started.v1&lt;/td&gt;
&lt;td&gt;triggers processing started in eventlistener&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;dev.tekton.event.triggers.successful.v1&lt;/td&gt;
&lt;td&gt;triggers processing successful and a resource created&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;dev.tekton.event.triggers.failed.v1&lt;/td&gt;
&lt;td&gt;triggers failed in eventlistener&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;dev.tekton.event.triggers.done.v1&lt;/td&gt;
&lt;td&gt;triggers processing done in eventlistener handle&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;

      </description>
    </item>
    
    <item>
      <title>Vault: </title>
      <link>https://deploy-preview-726--tekton.netlify.app/vault/triggers-v0.32.x-lts/triggertemplates/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://deploy-preview-726--tekton.netlify.app/vault/triggers-v0.32.x-lts/triggertemplates/</guid>
      <description>
        
        
        &lt;h1 id=&#34;triggertemplates&#34;&gt;&lt;code&gt;TriggerTemplates&lt;/code&gt;&lt;/h1&gt;
&lt;p&gt;A &lt;code&gt;TriggerTemplate&lt;/code&gt; is a resource that specifies a blueprint for the resource, such as a &lt;code&gt;TaskRun&lt;/code&gt; or &lt;code&gt;PipelineRun&lt;/code&gt;, that you want to instantiate
and/or execute when your &lt;code&gt;EventListener&lt;/code&gt; detects an event. It exposes parameters that you can use anywhere within your resource&amp;rsquo;s template.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;TriggerTemplates&lt;/code&gt; currently support the following &lt;a href=&#34;https://github.com/tektoncd/pipeline&#34;&gt;Tekton Pipelines&lt;/a&gt; resources:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;code&gt;v1alpha1 &lt;/code&gt;&lt;/th&gt;
&lt;th&gt;&lt;code&gt;v1beta1&lt;/code&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Pipeline&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Pipeline&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;PipelineRun&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;PipelineRun&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Task&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Task&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;TaskRun&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;TaskRun&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ClusterTask&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;ClusterTask&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Condition&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;PipelineResource&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;structure-of-a-triggertemplate&#34;&gt;Structure of a &lt;code&gt;TriggerTemplate&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;Below is an example &lt;code&gt;TriggerTemplate&lt;/code&gt; definition:&lt;/p&gt;
&lt;!-- FILE: examples/v1beta1/triggertemplates/triggertemplate.yaml --&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-YAML&#34; data-lang=&#34;YAML&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;apiVersion&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;triggers.tekton.dev/v1beta1&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;kind&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;TriggerTemplate&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;metadata&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;pipeline-template&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;spec&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;params&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;gitrevision&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;description&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;The git revision&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;default&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;main&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;gitrepositoryurl&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;description&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;The git repository url&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;message&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;description&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;The message to print&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;default&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;This is the default message&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;contenttype&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;description&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;The Content-Type of the event&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;default&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;text/plain&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;resourcetemplates&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;apiVersion&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;tekton.dev/v1beta1&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;kind&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;PipelineRun&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;metadata&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;generateName&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;simple-pipeline-run-&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;spec&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;pipelineRef&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;simple-pipeline&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;params&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;message&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;value&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;$(tt.params.message)&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;contenttype&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;value&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;$(tt.params.contenttype)&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;git-revision&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;value&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;$(tt.params.gitrevision)&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;git-url&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;value&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;$(tt.params.gitrepositoryurl)&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;workspaces&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;git-source&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;emptyDir&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;{}&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Keep the following in mind:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;If you don&amp;rsquo;t specify the namespace, Tekton resolves it to the namespace of the &lt;code&gt;EventListener&lt;/code&gt; that specifies the given &lt;code&gt;TriggerTemplate&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The &lt;code&gt;$(uid)&lt;/code&gt; variable is implicitly available to the resource templates you specify in your &lt;code&gt;TriggerTemplate&lt;/code&gt; with a random value, just like
the postfix generated by the Kubernetes &lt;code&gt;generateName&lt;/code&gt; metadata field. This can be useful for resource templates that use internal references.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Tekton adds the following labels to all resource templates within a &lt;code&gt;TriggerTemplate&lt;/code&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;tekton.dev/eventlistenter&lt;/code&gt;:&lt;code&gt;&amp;lt;EventListenerName&amp;gt;&lt;/code&gt; to help with housekeeping and garbage collection.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;tekton.dev/triggers-eventid&lt;/code&gt;:&lt;code&gt;&amp;lt;EventID&amp;gt;&lt;/code&gt; to track resources created by a specific event.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;To support arbitrary resource types, Tekton resolves resource templates internally as byte blobs. Because of this, Tekton only validates these
resources when processing an event rather than at the creation of the &lt;code&gt;TriggerTemplate&lt;/code&gt;. The default assigned cluster role to the &lt;code&gt;EventListener&lt;/code&gt;
service account only allows creating Tekton resources. You will need to add the appropriate roles to the &lt;code&gt;EventListener&lt;/code&gt;&amp;rsquo;s service account to be able to create other
non Tekton resources.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;As of Tekton Pipelines &lt;a href=&#34;https://github.com/tektoncd/pipeline/releases/tag/v0.8.0&#34;&gt;0.8.0&lt;/a&gt;, you can embed resource definitions directly in
your &lt;code&gt;TriggerTemplate&lt;/code&gt; definition. To prevent a race condition between creating and using resources, you &lt;strong&gt;must&lt;/strong&gt; embed each resource definition
within the &lt;code&gt;PipelineRun&lt;/code&gt; or &lt;code&gt;TaskRun&lt;/code&gt; that uses that resource.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;specifying-parameters&#34;&gt;Specifying parameters&lt;/h2&gt;
&lt;p&gt;A &lt;code&gt;TriggerTemplate&lt;/code&gt; allows you to declare parameters supplied by the associated &lt;code&gt;TriggerBinding&lt;/code&gt; and/or &lt;code&gt;EventListener&lt;/code&gt; as follows:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Declare your parameters in the &lt;code&gt;params&lt;/code&gt; section of the &lt;code&gt;TriggerTemplate&lt;/code&gt; definition.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;You must specify a &lt;code&gt;name&lt;/code&gt; and can optionally specify a &lt;code&gt;description&lt;/code&gt; and a &lt;code&gt;default&lt;/code&gt; value.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Tekton applies the value of the &lt;code&gt;default&lt;/code&gt; field for each entry in the &lt;code&gt;params&lt;/code&gt; array of your &lt;code&gt;TriggerTemplate&lt;/code&gt; if it can&amp;rsquo;t find a corresponding
value in the associated &lt;code&gt;TriggerBinding&lt;/code&gt; or cannot successfully extract the value from an HTTP header or body payload.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;You can reference &lt;code&gt;tt.params&lt;/code&gt; in the &lt;code&gt;resourcetemplates&lt;/code&gt; section of your &lt;code&gt;TriggerTemplate&lt;/code&gt; to make your &lt;code&gt;TriggerTemplate&lt;/code&gt; reusable.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;When you specify parameters in your resource template definitions, Tekton replaces the specified string with the parameter name, for example &lt;code&gt;$(tt.params.name)&lt;/code&gt;.
Therefore, simple string and number value replacements work fine directly in your YAML file. However, if a string has a numerical prefix, such as &lt;code&gt;123abcd&lt;/code&gt;,
Tekton can misinterpret it to be a number and throw an error. In such cases, enclose the affected parameter key in quotes (&lt;code&gt;&amp;quot;&lt;/code&gt;).&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;embedding-json-objects-within-resource-templates&#34;&gt;Embedding JSON objects within resource templates&lt;/h2&gt;
&lt;p&gt;Tekton no longer replaces quotes (&lt;code&gt;&amp;quot;&lt;/code&gt;) with escaped quotes (&lt;code&gt;\&amp;quot;&lt;/code&gt;) and does not perform any escaping on variables in your resource templates.
If you are embedding JSON objects as variables in your templates, you &lt;strong&gt;must not&lt;/strong&gt; enclose them with quotes (&lt;code&gt;&amp;quot;&lt;/code&gt;). If you have existing &lt;code&gt;TriggerTemplates&lt;/code&gt;
that use escaped quotes, add an annotation to work around this behavior change.&lt;/p&gt;
&lt;p&gt;For example, consider the following JSON object:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;&amp;#34;title&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;this is \&amp;#34;demo\&amp;#34; body&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;&amp;#34;object&amp;#34;&lt;/span&gt;: {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;&amp;#34;name&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;testing&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;If your &lt;code&gt;TriggerBinding&lt;/code&gt; extracts &lt;code&gt;$(body.title)&lt;/code&gt; then Tekton inserts it into your &lt;code&gt;TriggerTemplate&lt;/code&gt; as &lt;code&gt;this is a \&amp;quot;demo\&amp;quot; body&lt;/code&gt;.
To work around this, annotate the &lt;code&gt;TriggerTemplate&lt;/code&gt; as follows:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;apiVersion&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;triggers.tekton.dev/v1alpha1&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;kind&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;TriggerTemplate&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;metadata&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;escaped-tt&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;annotations&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;triggers.tekton.dev/old-escape-quotes&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;true&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;spec&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;params&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;title&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;description&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;The title from the incoming body&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This way, Tekton passes the value as &lt;code&gt;this is a \&amp;quot;&amp;quot;demo\&amp;quot;&amp;quot; body&lt;/code&gt;, which in itself is not valid JSON code; however, if you use a value with &lt;code&gt;$(body.object)&lt;/code&gt;
in a resource template that specifically passes it as a quoted string, then this workaround restores normal operation. This can also be useful for parsing
a string containing JSON code in a command.&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Vault: </title>
      <link>https://deploy-preview-726--tekton.netlify.app/vault/triggers-v0.32.x-lts/triggerbindings/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://deploy-preview-726--tekton.netlify.app/vault/triggers-v0.32.x-lts/triggerbindings/</guid>
      <description>
        
        
        &lt;h1 id=&#34;triggerbindings&#34;&gt;&lt;code&gt;TriggerBindings&lt;/code&gt;&lt;/h1&gt;
&lt;p&gt;A &lt;code&gt;TriggerBinding&lt;/code&gt; allows you to extract fields from an event payload and bind them to named parameters that can then be
used in a &lt;a href=&#34;https://deploy-preview-726--tekton.netlify.app/vault/Triggers-v0.32.x-LTS/triggertemplates/&#34;&gt;&lt;code&gt;TriggerTemplate&lt;/code&gt;&lt;/a&gt;. For instance, one can extract the commit SHA from an incoming event
and pass it on to create a TaskRun that clones a repo at that particular commit.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Trigger uses the parameter name to match TriggerBinding params to TriggerTemplate params. In order to pass
information, the param name used in the binding must match the param name used in the template.&lt;/p&gt;
&lt;h2 id=&#34;structure-of-a-triggerbinding&#34;&gt;Structure of a &lt;code&gt;TriggerBinding&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;There are 3 way of declaring a &lt;code&gt;TriggerBinding&lt;/code&gt;:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Inline or embedded inside a &lt;code&gt;Trigger&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Using the &lt;code&gt;TriggerBinding&lt;/code&gt; custom resource so that the binding params can be reused across multiple trigger&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Using the &lt;code&gt;ClusterTriggerBinding&lt;/code&gt; custom resource in order to promote reuse within an entire cluster&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;inline-bindings&#34;&gt;Inline bindings&lt;/h3&gt;
&lt;p&gt;The simplest way to declare bindings is within a Trigger itself:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;apiVersion&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;triggers.tekton.dev/v1beta1&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;kind&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;Trigger&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;metadata&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;push-trigger&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;spec&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;bindings&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;gitrevision&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;value&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;$(body.head_commit.id)&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;gitrepositoryurl&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;value&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;$(body.repository.url)&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;template&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;ref&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;git-clone-template&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;triggerbindings-1&#34;&gt;&lt;code&gt;TriggerBindings&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The binding used above can be put in a &lt;code&gt;TriggerBinding&lt;/code&gt; CRD in order to be reused across multiple triggers:&lt;/p&gt;
&lt;!-- FILE: examples/v1beta1/triggerbindings/triggerbinding.yaml --&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-YAML&#34; data-lang=&#34;YAML&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;apiVersion&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;triggers.tekton.dev/v1beta1&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;kind&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;TriggerBinding&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;metadata&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;pipeline-binding&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;spec&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;params&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;gitrevision&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;value&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;$(body.head_commit.id)&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;gitrepositoryurl&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;value&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;$(body.repository.url)&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;contenttype&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;value&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;$(header.Content-Type)&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;A &lt;code&gt;Trigger&lt;/code&gt; resource can then refer to this binding:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;apiVersion&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;triggers.tekton.dev/v1beta1&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;kind&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;Trigger&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;metadata&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;push-trigger&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;spec&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;bindings&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;ref&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;pipeline-binding&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;template&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;ref&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;git-clone-template&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;clustertriggerbindings&#34;&gt;&lt;code&gt;ClusterTriggerBindings&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;A &lt;code&gt;ClusterTriggerBinding&lt;/code&gt; is a cluster-scoped &lt;code&gt;TriggerBinding&lt;/code&gt; that you can reuse across your entire cluster.
You can reference a &lt;code&gt;ClusterTriggerBinding&lt;/code&gt; in any &lt;code&gt;Trigger&lt;/code&gt; in any namespace. You can specify multiple
&lt;code&gt;ClusterTriggerBindings&lt;/code&gt; within your &lt;code&gt;Trigger&lt;/code&gt; as well as specify the same &lt;code&gt;ClusterTriggerBinding&lt;/code&gt; in multiple
&lt;code&gt;Triggers&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Below is an example &lt;code&gt;ClusterTriggerBinding&lt;/code&gt; definition:&lt;/p&gt;
&lt;!-- FILE: examples/v1beta1/clustertriggerbindings/clustertriggerbinding.yaml --&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-YAML&#34; data-lang=&#34;YAML&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;apiVersion&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;triggers.tekton.dev/v1beta1&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;kind&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;ClusterTriggerBinding&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;metadata&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;pipeline-clusterbinding&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;spec&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;params&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;gitrevision&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;value&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;$(body.head_commit.id)&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;gitrepositoryurl&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;value&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;$(body.repository.url)&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;contenttype&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;value&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;$(header.Content-Type)&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;When referencing a &lt;code&gt;ClusterTriggerBinding&lt;/code&gt;, you must specify a &lt;code&gt;kind&lt;/code&gt; value within the &lt;code&gt;bindings&lt;/code&gt; field.
The default is &lt;code&gt;TriggerBinding&lt;/code&gt; which denotes a namespaced &lt;code&gt;TriggerBinding&lt;/code&gt;. For example:&lt;/p&gt;
&lt;!-- FILE: examples/v1beta1/eventlisteners/eventlistener-clustertriggerbinding.yaml --&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-YAML&#34; data-lang=&#34;YAML&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#0cf;font-weight:bold&#34;&gt;---&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;apiVersion&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;triggers.tekton.dev/v1beta1&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;kind&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;EventListener&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;metadata&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;listener-clustertriggerbinding&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;spec&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;serviceAccountName&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;tekton-triggers-example-sa&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;triggers&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;foo-trig&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;bindings&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;ref&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;pipeline-clusterbinding&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;kind&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;ClusterTriggerBinding&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;ref&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;message-clusterbinding&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;kind&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;ClusterTriggerBinding&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;template&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;ref&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;pipeline-template&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;specifying-parameters&#34;&gt;Specifying parameters&lt;/h2&gt;
&lt;p&gt;A &lt;code&gt;TriggerBinding&lt;/code&gt; allows you to specify parameters (&lt;code&gt;params&lt;/code&gt;) that Tekton passes to the corresponding &lt;code&gt;TriggerTemplate&lt;/code&gt;.
For each parameter, you must specify a &lt;code&gt;name&lt;/code&gt; and a &lt;code&gt;value&lt;/code&gt; field with the appropriate values.&lt;/p&gt;
&lt;h2 id=&#34;accessing-data-in-http-json-payloads&#34;&gt;Accessing data in HTTP JSON payloads&lt;/h2&gt;
&lt;p&gt;Tekton can use a &lt;code&gt;TriggerBinding&lt;/code&gt; to access data in the headers and body of an HTTP JSON payload. To do so, it uses
JSONPath expressions encapsulated within a &lt;code&gt;$()&lt;/code&gt; wrapper. Keys in HTTP JSON headers are case-sensitive.&lt;/p&gt;
&lt;p&gt;For example, below is a valid expression:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#069;font-weight:bold&#34;&gt;$(&lt;/span&gt;body.key1&lt;span style=&#34;color:#069;font-weight:bold&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#069;font-weight:bold&#34;&gt;$(&lt;/span&gt;.body.key&lt;span style=&#34;color:#069;font-weight:bold&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;On the other hand, the expressions below are invalid:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;.body.key1 &lt;span style=&#34;color:#09f;font-style:italic&#34;&gt;# INVALID - Expression is not wrapped in `$()`.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#069;font-weight:bold&#34;&gt;$(&lt;/span&gt;&lt;span style=&#34;color:#555&#34;&gt;{&lt;/span&gt;body&lt;span style=&#34;color:#069;font-weight:bold&#34;&gt;)&lt;/span&gt; &lt;span style=&#34;color:#09f;font-style:italic&#34;&gt;# INVALID - Trailing curly brace is missing.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;If a &lt;code&gt;$()&lt;/code&gt; wrapper is embedded inside another &lt;code&gt;$()&lt;/code&gt; wrapper, Tekton parses the contents of the innermost wrapper
as the JSONPath expression. For example:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#069;font-weight:bold&#34;&gt;$($(&lt;/span&gt;body.b&lt;span style=&#34;color:#069;font-weight:bold&#34;&gt;))&lt;/span&gt; &lt;span style=&#34;color:#09f;font-style:italic&#34;&gt;# Parsed as $(body.b)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#069;font-weight:bold&#34;&gt;$($($(&lt;/span&gt;body.b&lt;span style=&#34;color:#069;font-weight:bold&#34;&gt;)))&lt;/span&gt; &lt;span style=&#34;color:#09f;font-style:italic&#34;&gt;# Parsed as $(body.b)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;accessing-data-added-by-interceptorsvaulttriggers-v032x-ltsinterceptors&#34;&gt;Accessing data added by &lt;a href=&#34;https://deploy-preview-726--tekton.netlify.app/vault/Triggers-v0.32.x-LTS/interceptors/&#34;&gt;&lt;code&gt;Interceptors&lt;/code&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;An &lt;code&gt;interceptor&lt;/code&gt; can add additional useful data that can be used by a &lt;code&gt;TriggerBinding&lt;/code&gt;. Data added by interceptors can be
accessed under the top-level &lt;code&gt;extensions&lt;/code&gt; field e.g. &lt;code&gt;$(extensions.field-name)&lt;/code&gt;. In the following example, the CEL
interceptor adds a field that is then accessed by the trigger binding:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;apiVersion&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;triggers.tekton.dev/v1beta1&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;kind&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;Trigger&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;metadata&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;push-trigger&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;spec&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;interceptors&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;add-truncated-sha&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;ref&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;cel&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;params&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;overlays&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;value&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;          &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;key&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;truncated_sha&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;expression&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;body.pull_request.head.sha.truncate(7)&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;bindings&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;truncated_sha&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;value&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;$(extensions.truncated_sha)&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;template&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;ref&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;git-clone-template&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;accessing-eventlistener-event-context&#34;&gt;Accessing EventListener Event Context&lt;/h2&gt;
&lt;p&gt;The EventListener has a set of internal data points that are maintained for the complete processing
of a single event. These values are available for use in &lt;code&gt;TriggerBinding&lt;/code&gt; objects.&lt;/p&gt;
&lt;p&gt;This data can be accessed on the &lt;code&gt;context&lt;/code&gt; parameter, as an example:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#069;font-weight:bold&#34;&gt;$(&lt;/span&gt;context.eventID&lt;span style=&#34;color:#069;font-weight:bold&#34;&gt;)&lt;/span&gt; &lt;span style=&#34;color:#09f;font-style:italic&#34;&gt;# access the internal eventID of the request&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;accessing-json-keys-containing-special-characters-like--or-&#34;&gt;Accessing JSON keys containing special characters like (&lt;code&gt;.&lt;/code&gt;) or (&lt;code&gt;/&lt;/code&gt;)&lt;/h2&gt;
&lt;p&gt;To access a JSON key that contains a period (&lt;code&gt;.&lt;/code&gt;), you must escape the period with a backslash (&lt;code&gt;\.&lt;/code&gt;). For example:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#09f;font-style:italic&#34;&gt;# Body contains a `tekton.dev` field: {&amp;#34;body&amp;#34;: {&amp;#34;dev.tekton.dev/foo&amp;#34;: &amp;#34;triggers&amp;#34;}}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#069;font-weight:bold&#34;&gt;$(&lt;/span&gt;body.dev&lt;span style=&#34;color:#c30;font-weight:bold&#34;&gt;\.&lt;/span&gt;tekton&lt;span style=&#34;color:#c30;font-weight:bold&#34;&gt;\.&lt;/span&gt;dev&lt;span style=&#34;color:#c30;font-weight:bold&#34;&gt;\/&lt;/span&gt;foo&lt;span style=&#34;color:#069;font-weight:bold&#34;&gt;)&lt;/span&gt; -&amp;gt; &lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;triggers&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;fallback-to-default-values&#34;&gt;Fallback to default values&lt;/h2&gt;
&lt;p&gt;If Tekton fails to resolve the JSONPath expressions you have configured against the HTTP JSON payload, it
falls back to the &lt;code&gt;default&lt;/code&gt; value in the corresponding &lt;code&gt;TriggerTemplate&lt;/code&gt;, if specified.&lt;/p&gt;
&lt;h2 id=&#34;field-binding-examples&#34;&gt;Field binding examples&lt;/h2&gt;
&lt;p&gt;Below are some examples of Tekton performing field binding based on the most commonly used field definitions:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30&#34;&gt;`&lt;/span&gt;&lt;span style=&#34;color:#069;font-weight:bold&#34;&gt;$(&lt;/span&gt;body&lt;span style=&#34;color:#069;font-weight:bold&#34;&gt;)&lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;`&lt;/span&gt; -&amp;gt; replaced by the entire body
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#069;font-weight:bold&#34;&gt;$(&lt;/span&gt;body&lt;span style=&#34;color:#069;font-weight:bold&#34;&gt;)&lt;/span&gt; -&amp;gt; &lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;{&amp;#34;&lt;/span&gt;key1&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;: &amp;#34;&lt;/span&gt;value1&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;, &amp;#34;&lt;/span&gt;key2&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;: {&amp;#34;&lt;/span&gt;key3&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;: &amp;#34;&lt;/span&gt;value3&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;}, &amp;#34;&lt;/span&gt;key4&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;: [&amp;#34;&lt;/span&gt;value4&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;, &amp;#34;&lt;/span&gt;value5&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;, &amp;#34;&lt;/span&gt;value6&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;]}&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#069;font-weight:bold&#34;&gt;$(&lt;/span&gt;body.key1&lt;span style=&#34;color:#069;font-weight:bold&#34;&gt;)&lt;/span&gt; -&amp;gt; &lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;value1&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#069;font-weight:bold&#34;&gt;$(&lt;/span&gt;body.key2&lt;span style=&#34;color:#069;font-weight:bold&#34;&gt;)&lt;/span&gt; -&amp;gt; &lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;{&amp;#34;&lt;/span&gt;key3&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;: &amp;#34;&lt;/span&gt;value3&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;}&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#069;font-weight:bold&#34;&gt;$(&lt;/span&gt;body.key2.key3&lt;span style=&#34;color:#069;font-weight:bold&#34;&gt;)&lt;/span&gt; -&amp;gt; &lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;value3&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#069;font-weight:bold&#34;&gt;$(&lt;/span&gt;body.key4&lt;span style=&#34;color:#555&#34;&gt;[&lt;/span&gt;0&lt;span style=&#34;color:#555&#34;&gt;]&lt;/span&gt;&lt;span style=&#34;color:#069;font-weight:bold&#34;&gt;)&lt;/span&gt; -&amp;gt; &lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;value4&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#069;font-weight:bold&#34;&gt;$(&lt;/span&gt;body.key4&lt;span style=&#34;color:#555&#34;&gt;[&lt;/span&gt;0:2&lt;span style=&#34;color:#555&#34;&gt;]&lt;/span&gt;&lt;span style=&#34;color:#069;font-weight:bold&#34;&gt;)&lt;/span&gt; -&amp;gt; &lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;{&amp;#34;&lt;/span&gt;value4&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;, &amp;#34;&lt;/span&gt;value5&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;}&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#09f;font-style:italic&#34;&gt;# $(header) -&amp;gt; replaced by all headers from the event&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#069;font-weight:bold&#34;&gt;$(&lt;/span&gt;header&lt;span style=&#34;color:#069;font-weight:bold&#34;&gt;)&lt;/span&gt; -&amp;gt; &lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;{&amp;#34;&lt;/span&gt;One&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;:[&amp;#34;&lt;/span&gt;one&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;], &amp;#34;&lt;/span&gt;Two&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;:[&amp;#34;&lt;/span&gt;one&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;,&amp;#34;&lt;/span&gt;two&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;,&amp;#34;&lt;/span&gt;three&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;]}&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#069;font-weight:bold&#34;&gt;$(&lt;/span&gt;header.One&lt;span style=&#34;color:#069;font-weight:bold&#34;&gt;)&lt;/span&gt; -&amp;gt; &lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;one&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#069;font-weight:bold&#34;&gt;$(&lt;/span&gt;header.one&lt;span style=&#34;color:#069;font-weight:bold&#34;&gt;)&lt;/span&gt; -&amp;gt; &lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;one&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#069;font-weight:bold&#34;&gt;$(&lt;/span&gt;header.Two&lt;span style=&#34;color:#069;font-weight:bold&#34;&gt;)&lt;/span&gt; -&amp;gt; &lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;one two three&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#069;font-weight:bold&#34;&gt;$(&lt;/span&gt;header.Two&lt;span style=&#34;color:#555&#34;&gt;[&lt;/span&gt;1&lt;span style=&#34;color:#555&#34;&gt;]&lt;/span&gt;&lt;span style=&#34;color:#069;font-weight:bold&#34;&gt;)&lt;/span&gt; -&amp;gt; &lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;two&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;specifying-multiple-bindings&#34;&gt;Specifying multiple bindings&lt;/h2&gt;
&lt;p&gt;You can specify multiple bindings within the &lt;code&gt;Trigger&lt;/code&gt; definition in your &lt;a href=&#34;https://deploy-preview-726--tekton.netlify.app/vault/Triggers-v0.32.x-LTS/eventlisteners/&#34;&gt;&lt;code&gt;EventListener&lt;/code&gt;&lt;/a&gt;.
This allows you to reuse as well as mix-and-match your bindings across multiple &lt;code&gt;Trigger&lt;/code&gt; definitions. For
example, you can create a &lt;code&gt;Trigger&lt;/code&gt; with a binding that extracts event data and another binding that provides
information on the deployment environment:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;apiVersion&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;triggers.tekton.dev/v1alpha1&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;kind&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;TriggerBinding&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;metadata&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;event-binding&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;spec&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;params&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;gitrevision&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;value&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;$(body.head_commit.id)&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;gitrepositoryurl&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;value&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;$(body.repository.url)&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#0cf;font-weight:bold&#34;&gt;---&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;apiVersion&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;triggers.tekton.dev/v1alpha1&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;kind&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;TriggerBinding&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;metadata&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;prod-env&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;spec&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;params&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;environment&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;value&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;prod&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#0cf;font-weight:bold&#34;&gt;---&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;apiVersion&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;triggers.tekton.dev/v1alpha1&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;kind&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;TriggerBinding&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;metadata&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;staging-env&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;spec&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;params&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;environment&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;value&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;staging&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#0cf;font-weight:bold&#34;&gt;---&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;apiVersion&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;triggers.tekton.dev/v1alpha1&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;kind&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;EventListener&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;metadata&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;listener&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;spec&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;triggers&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;prod-trigger&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;bindings&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;ref&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;event-binding&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;ref&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;prod-env&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;template&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;ref&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;pipeline-template&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;staging-trigger&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;bindings&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;ref&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;event-binding&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;ref&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;staging-env&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;template&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;ref&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;pipeline-template&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;troubleshooting-triggerbindings&#34;&gt;Troubleshooting &lt;code&gt;TriggerBindings&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;You can use the &lt;code&gt;binding-eval&lt;/code&gt; tool to evaluate your &lt;code&gt;TriggerBinding&lt;/code&gt; against a specific HTTP request
to determine the parameters that Tekton generates from that request when your corresponding &lt;code&gt;Trigger&lt;/code&gt; executes.&lt;/p&gt;
&lt;p&gt;To install the &lt;code&gt;binding-eval&lt;/code&gt; tool use the following command:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ go install github.com/tektoncd/triggers/cmd/binding-eval@&lt;span style=&#34;color:#555&#34;&gt;{&lt;/span&gt;version&lt;span style=&#34;color:#555&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Below is an example of using the tool to evaluate a &lt;code&gt;TriggerBinding&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ cat testdata/triggerbinding.yaml
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;apiVersion: tekton.dev/v1alpha1
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;kind: TriggerBinding
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;metadata:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  name: pipeline-binding
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;spec:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  params:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  - name: foo
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    value: &lt;span style=&#34;color:#069;font-weight:bold&#34;&gt;$(&lt;/span&gt;body.test&lt;span style=&#34;color:#069;font-weight:bold&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  - name: bar
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    value: &lt;span style=&#34;color:#069;font-weight:bold&#34;&gt;$(&lt;/span&gt;header.X-Header&lt;span style=&#34;color:#069;font-weight:bold&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ cat testdata/http.txt
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;POST /foo HTTP/1.1
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Content-Length: &lt;span style=&#34;color:#f60&#34;&gt;16&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Content-Type: application/json
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;X-Header: tacocat
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#555&#34;&gt;{&lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;test&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;body&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#555&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ binding-eval -b testdata/triggerbinding.yaml -r testdata/http.txt
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#555&#34;&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#555&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;name&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;foo&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;value&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;body&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#555&#34;&gt;}&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#555&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;name&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;bar&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;value&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;tacocat&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#555&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#555&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
      </description>
    </item>
    
    <item>
      <title>Vault: </title>
      <link>https://deploy-preview-726--tekton.netlify.app/vault/triggers-v0.32.x-lts/clusterinterceptors/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://deploy-preview-726--tekton.netlify.app/vault/triggers-v0.32.x-lts/clusterinterceptors/</guid>
      <description>
        
        
        &lt;h1 id=&#34;clusterinterceptors&#34;&gt;&lt;code&gt;ClusterInterceptors&lt;/code&gt;&lt;/h1&gt;
&lt;p&gt;Tekton Triggers ships with the &lt;code&gt;ClusterInterceptor&lt;/code&gt; Custom Resource Definition (CRD), which allows you to implement a custom cluster-scoped Webhook-style &lt;code&gt;Interceptor&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;A &lt;code&gt;ClusterInterceptor&lt;/code&gt; specifies an external Kubernetes v1 Service running custom business logic that receives the event payload from the
&lt;code&gt;EventListener&lt;/code&gt; via an HTTP request and returns a processed version of the payload along with an HTTP 200 response. The &lt;code&gt;ClusterInterceptor&lt;/code&gt; can also
halt processing if the event payload does not meet criteria you have configured as well as add extra fields that are accessible in the &lt;code&gt;EventListener&#39;s&lt;/code&gt;
top-level &lt;code&gt;extensions&lt;/code&gt; field to other &lt;a href=&#34;https://deploy-preview-726--tekton.netlify.app/vault/Triggers-v0.32.x-LTS/interceptors/&#34;&gt;&lt;code&gt;Interceptors&lt;/code&gt;&lt;/a&gt; and &lt;code&gt;ClusterInterceptors&lt;/code&gt; chained with it and the associated &lt;code&gt;TriggerBinding&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;structure-of-a-clusterinterceptor&#34;&gt;Structure of a &lt;code&gt;ClusterInterceptor&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;A &lt;code&gt;ClusterInterceptor&lt;/code&gt; definition consists of the following fields:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Required:
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://kubernetes.io/docs/concepts/overview/working-with-objects/kubernetes-objects/#required-fields&#34;&gt;&lt;code&gt;apiVersion&lt;/code&gt;&lt;/a&gt; - specifies the target API version, for example &lt;code&gt;triggers.tekton.dev/v1alpha1&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://kubernetes.io/docs/concepts/overview/working-with-objects/kubernetes-objects/#required-fields&#34;&gt;&lt;code&gt;kind&lt;/code&gt;&lt;/a&gt; - specifies that this Kubernetes resource is a &lt;code&gt;ClusterInterceptor&lt;/code&gt; object&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://kubernetes.io/docs/concepts/overview/working-with-objects/kubernetes-objects/#required-fields&#34;&gt;&lt;code&gt;metadata&lt;/code&gt;&lt;/a&gt; - specifies data that uniquely identifies this &lt;code&gt;ClusterInterceptor&lt;/code&gt; object, for example a &lt;code&gt;name&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://kubernetes.io/docs/concepts/overview/working-with-objects/kubernetes-objects/#required-fields&#34;&gt;&lt;code&gt;spec&lt;/code&gt;&lt;/a&gt; - specifies the configuration information for this &lt;code&gt;ClusterInterceptor&lt;/code&gt; object, including:
&lt;ul&gt;
&lt;li&gt;[&lt;code&gt;clientConfig&lt;/code&gt;] -  specifies how a client, such as an &lt;code&gt;EventListener&lt;/code&gt; communicates with this &lt;code&gt;ClusterInterceptor&lt;/code&gt; object&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;configuring-the-client-of-the-clusterinterceptor&#34;&gt;Configuring the client of the &lt;code&gt;ClusterInterceptor&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;The &lt;code&gt;clientConfig&lt;/code&gt; field specifies the client, such as an &lt;code&gt;EventListener&lt;/code&gt; and how it communicates with the &lt;code&gt;ClusterInterceptor&lt;/code&gt; to exchange
event payload and other data. You can configure this field in one of the following ways:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Specify the &lt;code&gt;url&lt;/code&gt; field and as its value a URL at which the corresponding Kubernetes service listens for incoming requests from this &lt;code&gt;ClusterInterceptor&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Specify the &lt;code&gt;service&lt;/code&gt; field and within it reference the corresponding Kubernetes service that&amp;rsquo;s listening for incoming requests from this &lt;code&gt;ClusterInterceptor&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For example:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;spec&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;clientConfig&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;url&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;http://interceptor-svc.default.svc/&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#0cf;font-weight:bold&#34;&gt;---&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;spec&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;clientConfig&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;service&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;my-interceptor-svc&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;namespace&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;default&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;path&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;/optional-path&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#09f;font-style:italic&#34;&gt;# optional&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;port&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#f60&#34;&gt;8081&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#09f;font-style:italic&#34;&gt;# defaults to 80&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;configuring-a-kubernetes-service-for-the-clusterinterceptor&#34;&gt;Configuring a Kubernetes Service for the &lt;code&gt;ClusterInterceptor&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;The Kubernetes object running the custom business logic for your &lt;code&gt;ClusterInterceptor&lt;/code&gt; must meet the following criteria:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Fronted by a regular Kubernetes v1 Service listening on an HTTP port (default port is 80)&lt;/li&gt;
&lt;li&gt;Accepts an HTTP &lt;code&gt;POST&lt;/code&gt; request that contains an &lt;a href=&#34;https://pkg.go.dev/github.com/tektoncd/triggers/pkg/apis/triggers/v1alpha1#InterceptorRequest&#34;&gt;&lt;code&gt;InterceptorRequest&lt;/code&gt;&lt;/a&gt;
as a JSON body&lt;/li&gt;
&lt;li&gt;Returns an HTTP 200 OK response that contains an &lt;a href=&#34;https://pkg.go.dev/github.com/tektoncd/triggers/pkg/apis/triggers/v1alpha1#InterceptorResponse&#34;&gt;&lt;code&gt;InterceptorResponse&lt;/code&gt;&lt;/a&gt;
as a JSON body. If the trigger processing should continue, the interceptor should set the &lt;code&gt;continue&lt;/code&gt; field in the response to &lt;code&gt;true&lt;/code&gt;. If the processing should be stopped, the interceptor should set the &lt;code&gt;continue&lt;/code&gt; field to &lt;code&gt;false&lt;/code&gt; and also provide additional information detailing the error in the &lt;code&gt;status&lt;/code&gt; field.&lt;/li&gt;
&lt;li&gt;Returns a response other than HTTP 200 OK only if payload processing halts due to a catastrophic failure.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;running-clusterinterceptor-as-https&#34;&gt;Running ClusterInterceptor as HTTPS&lt;/h3&gt;
&lt;p&gt;Triggers now run clusterinterceptor as &lt;code&gt;https&lt;/code&gt; server in order to support end to end secure connection and here is a &lt;a href=&#34;https://github.com/tektoncd/community/blob/main/teps/0102-https-connection-to-triggers-interceptor.md&#34;&gt;TEP&lt;/a&gt; which gives more detail about this support.&lt;/p&gt;
&lt;p&gt;By default Triggers run all core interceptor (GitHub, GitLab, BitBucket, CEL) as &lt;code&gt;HTTPS&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Triggers expose a new optional field &lt;code&gt;caBundle&lt;/code&gt; as part of clusterinterceptor spec.&lt;/p&gt;
&lt;p&gt;Example:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;spec&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;clientConfig&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;caBundle&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&amp;lt;cert data&amp;gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;service&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;my-interceptor-svc&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;namespace&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;default&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;path&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;/optional-path&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#09f;font-style:italic&#34;&gt;# optional&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;port&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#f60&#34;&gt;8443&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Triggers uses knative pkg to generate key, cert, cacert and fill caBundle for core interceptors (GitHub, GitLab, BitBucket, CEL).&lt;/p&gt;
&lt;p&gt;Triggers now support writing custom interceptor for both &lt;code&gt;http&lt;/code&gt; and &lt;code&gt;https&lt;/code&gt;. Support of &lt;code&gt;http&lt;/code&gt; for custom interceptor will be there for 1-2 releases, later it will be removed and only &lt;code&gt;https&lt;/code&gt; will be supported.&lt;/p&gt;
&lt;p&gt;End user who write &lt;code&gt;https&lt;/code&gt; custom interceptor need to pass &lt;code&gt;caBundle&lt;/code&gt; as well as label&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;labels&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;server/type&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;https&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;to &lt;code&gt;ClusterInterceptor&lt;/code&gt; in order to make secure connection with eventlistener.&lt;/p&gt;
&lt;p&gt;Here is the reference for writing &lt;a href=&#34;https://github.com/tektoncd/triggers/blob/main/cmd/interceptors/main.go&#34;&gt;https server for custom interceptor&lt;/a&gt;.&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Vault: </title>
      <link>https://deploy-preview-726--tekton.netlify.app/vault/triggers-v0.32.x-lts/interceptors/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://deploy-preview-726--tekton.netlify.app/vault/triggers-v0.32.x-lts/interceptors/</guid>
      <description>
        
        
        &lt;h1 id=&#34;configuring-interceptors&#34;&gt;Configuring &lt;code&gt;Interceptors&lt;/code&gt;&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;#overview&#34;&gt;Overview&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#specifying-an-interceptor&#34;&gt;Specifying an &lt;code&gt;Interceptor&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#webhook-interceptors&#34;&gt;Webhook &lt;code&gt;Interceptors&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#github-interceptors&#34;&gt;GitHub &lt;code&gt;Interceptors&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#gitlab-interceptors&#34;&gt;GitLab &lt;code&gt;Interceptors&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#bitbucket-interceptors&#34;&gt;Bitbucket &lt;code&gt;Interceptors&lt;/code&gt;&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;#bitbucket-server&#34;&gt;Bitbucket Server&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#bitbucket-cloud&#34;&gt;Bitbucket Cloud&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#slack-interceptors&#34;&gt;slack &lt;code&gt;Interceptors&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#cel-interceptors&#34;&gt;CEL &lt;code&gt;Interceptors&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#implementing-custom-interceptors&#34;&gt;Implementing custom &lt;code&gt;Interceptors&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;overview&#34;&gt;Overview&lt;/h2&gt;
&lt;p&gt;An &lt;code&gt;Interceptor&lt;/code&gt; is a &amp;ldquo;catch-all&amp;rdquo; event processor for a specific platform that runs before the &lt;code&gt;TriggerBinding.&lt;/code&gt; It allows you to perform payload filtering, verification (using a secret),
transformation, define and test trigger conditions, and implement other useful processing. Once the event data passes through an &lt;code&gt;Interceptor&lt;/code&gt;, it then goes to the &lt;code&gt;Trigger&lt;/code&gt; before you pass
the payload data to the &lt;code&gt;TriggerBinding&lt;/code&gt;. You can also use an &lt;code&gt;Interceptor&lt;/code&gt; to modify the behavior of the associated &lt;code&gt;Trigger&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Tekton Triggers currently supports two distinct &lt;code&gt;Interceptor&lt;/code&gt; implementations:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Standalone &lt;code&gt;Interceptors&lt;/code&gt;, which are instances of the &lt;a href=&#34;https://github.com/tektoncd/triggers/tree/release-v0.32.x/docs/namespacedinterceptor&#34;&gt;&lt;code&gt;Interceptor&lt;/code&gt;&lt;/a&gt; or the &lt;a href=&#34;https://deploy-preview-726--tekton.netlify.app/vault/Triggers-v0.32.x-LTS/clusterinterceptors/&#34;&gt;&lt;code&gt;ClusterInterceptor&lt;/code&gt;&lt;/a&gt; Custom Resource Definition (CRD). You specify these &lt;code&gt;Interceptors&lt;/code&gt; by referencing them,
along with the desired parameters, within your  &lt;code&gt;EventListener&lt;/code&gt;. You can use the &lt;code&gt;ClusterInterceptor&lt;/code&gt; CRD to implement your own custom &lt;code&gt;Interceptors&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Legacy &lt;code&gt;Interceptors&lt;/code&gt;, which you define entirely as part of the &lt;code&gt;EventListener&lt;/code&gt; definition. This implementation will eventually be deprecated, so please consider
transitioning to standalone &lt;code&gt;Interceptors&lt;/code&gt; as soon as possible. See &lt;a href=&#34;https://github.com/tektoncd/community/blob/main/teps/0026-interceptor-plugins.md&#34;&gt;TEP-0026&lt;/a&gt; for more context on this change.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Tekton Triggers ships with the following &lt;code&gt;Interceptors&lt;/code&gt; to help you get started:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;#webhook-interceptors&#34;&gt;Webhook &lt;code&gt;Interceptors&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#github-interceptors&#34;&gt;GitHub &lt;code&gt;Interceptors&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#gitlab-interceptors&#34;&gt;GitLab &lt;code&gt;Interceptors&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#bitbucket-interceptors&#34;&gt;Bitbucket &lt;code&gt;Interceptors&lt;/code&gt;&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;#bitbucket-server&#34;&gt;Bitbucket Server&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#bitbucket-cloud&#34;&gt;Bitbucket Cloud&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#cel-interceptors&#34;&gt;CEL &lt;code&gt;Interceptors&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;specifying-an-interceptor&#34;&gt;Specifying an &lt;code&gt;Interceptor&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;To specify an &lt;code&gt;Interceptor&lt;/code&gt; within your &lt;code&gt;EventListener&lt;/code&gt;, create an &lt;code&gt;interceptors:&lt;/code&gt; field with the following sub-fields:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;name&lt;/code&gt; - (optional) a name that uniquely identifies this &lt;code&gt;Interceptor&lt;/code&gt; definition&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ref&lt;/code&gt; - a reference to a &lt;a href=&#34;https://deploy-preview-726--tekton.netlify.app/vault/Triggers-v0.32.x-LTS/clusterinterceptors/&#34;&gt;&lt;code&gt;ClusterInterceptor&lt;/code&gt;&lt;/a&gt; or &lt;a href=&#34;https://deploy-preview-726--tekton.netlify.app/vault/Triggers-v0.32.x-LTS/namespacedinterceptors/&#34;&gt;&lt;code&gt;Interceptor&lt;/code&gt;&lt;/a&gt; object with the following fields:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;name&lt;/code&gt; - the name of the referenced &lt;code&gt;ClusterInterceptor&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;kind&lt;/code&gt; - (optional) specifies that whether the referenced Kubernetes object is a &lt;code&gt;ClusterInterceptor&lt;/code&gt; object or &lt;code&gt;NamespacedInterceptor&lt;/code&gt;. Default value is &lt;code&gt;ClusterInterceptor&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;apiVersion&lt;/code&gt; - (optional) specifies the target API version, for example &lt;code&gt;triggers.tekton.dev/v1alpha1&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;params&lt;/code&gt; - &lt;code&gt;name&lt;/code&gt;/&lt;code&gt;value&lt;/code&gt; pairs that specify the parameters you want to pass to the &lt;code&gt;ClusterInterceptor&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;params&lt;/code&gt; - (optional) &lt;code&gt;name&lt;/code&gt;/&lt;code&gt;value&lt;/code&gt; pairs that specify the desired parameters for the &lt;code&gt;Interceptor&lt;/code&gt;;
the &lt;code&gt;name&lt;/code&gt; field takes a string, while the &lt;code&gt;value&lt;/code&gt; field takes a valid JSON object&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Below is an example standalone &lt;code&gt;Interceptor&lt;/code&gt; reference within an &lt;code&gt;EventListener&lt;/code&gt; definition:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;interceptors&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;validate GitHub payload and filter on eventType&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;ref&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;github&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;params&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;secretRef&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;value&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;secretName&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;github-secret&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;secretKey&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;secretToken&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;eventTypes&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;value&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;[&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;pull_request&amp;#34;&lt;/span&gt;]&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;CEL filter: only when PRs are opened&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;ref&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;cel&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;params&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;filter&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;value&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;body.action in [&amp;#39;opened&amp;#39;, &amp;#39;reopened&amp;#39;]&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;webhook-interceptors&#34;&gt;Webhook &lt;code&gt;Interceptors&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Tekton Triggers ships with only a legacy Webhook &lt;code&gt;Interceptor&lt;/code&gt;. If you want to implement it using
the standalone model, see &lt;a href=&#34;#implementing-custom-interceptors&#34;&gt;Implementing custom &lt;code&gt;Interceptors&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;A Webhook &lt;code&gt;Interceptor&lt;/code&gt; allows you to process your event payload by an external Kubernetes object containing
custom business logic. The Kubernetes object, exposed via a Kubernetes Service, receives event payload
data from your &lt;code&gt;EventListener&lt;/code&gt; via HTTP, applies its business logic to it, and returns the processed payload
(both headers plus body) via a HTTP 200 response to the &lt;code&gt;EventListener&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;This payload can then continue on to the &lt;code&gt;TriggerBinding&lt;/code&gt; specified in the &lt;code&gt;EventListener&lt;/code&gt;. If processing
is not successful, the &lt;code&gt;Interceptor&lt;/code&gt; recognizes that the returned HTTP response code is not 200 and halts
further processing of the event payload.&lt;/p&gt;
&lt;p&gt;You can optionally specify additional data to merge with the event payload before sending out for processing
by adding the data as &lt;a href=&#34;https://golang.org/pkg/net/textproto/#CanonicalMIMEHeaderKey&#34;&gt;canonical&lt;/a&gt; key/value pairs
in the &lt;code&gt;Interceptor&#39;s&lt;/code&gt; &lt;code&gt;header&lt;/code&gt; field.&lt;/p&gt;
&lt;p&gt;Your external Kubernetes object must meet the following criteria:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Fronted by a regular Kubernetes v1 Service running on HTTP port 80,&lt;/li&gt;
&lt;li&gt;Accepts JSON payloads over HTTP,&lt;/li&gt;
&lt;li&gt;Accepts HTTP POST requests with JSON payloads,&lt;/li&gt;
&lt;li&gt;Returns an HTTP 200 OK response when you want the &lt;code&gt;EventListener&lt;/code&gt; to continue processing the event,&lt;/li&gt;
&lt;li&gt;Returns a JSON object in the HTTP response body.&lt;/li&gt;
&lt;li&gt;Returns headers expected by subsequently chained &lt;code&gt;Interceptors&lt;/code&gt; and the associated &lt;code&gt;TriggerBinding&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; If your business logic does not modify either the HTTP payload&amp;rsquo;s header or body, simply return the same HTTP
header or body that you received.&lt;/p&gt;
&lt;p&gt;Below is an example Webhook &lt;code&gt;Interceptor&lt;/code&gt; definition:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#0cf;font-weight:bold&#34;&gt;---&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;apiVersion&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;triggers.tekton.dev/v1alpha1&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;kind&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;EventListener&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;metadata&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;listener-interceptor&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;spec&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;serviceAccountName&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;tekton-triggers-example-sa&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;triggers&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;foo-trig&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;interceptors&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;webhook&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;header&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;              &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;Foo-Trig-Header1&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;                &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;value&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;string-value&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;              &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;Foo-Trig-Header2&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;                &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;value&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;                  &lt;/span&gt;- array-val1&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;                  &lt;/span&gt;- array-val2&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;objectRef&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;              &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;kind&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;Service&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;              &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;gh-validate&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;              &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;apiVersion&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;v1&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;              &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;namespace&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;default&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;bindings&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;ref&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;pipeline-binding&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;template&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;ref&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;pipeline-template&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;github-interceptors&#34;&gt;GitHub Interceptors&lt;/h3&gt;
&lt;p&gt;A GitHub &lt;code&gt;Interceptor&lt;/code&gt; contains logic that validates and filters GitHub webhooks.
It can validate the webhook&amp;rsquo;s origin as described in &lt;a href=&#34;https://developer.github.com/webhooks/securing/&#34;&gt;Securing your webhooks&lt;/a&gt;
as well as filter incoming events by the criteria you specify. The GitHub &lt;code&gt;Interceptor&lt;/code&gt;
always preserves the payload data (both header and body) in its responses.&lt;/p&gt;
&lt;p&gt;To use a GitHub &lt;code&gt;Interceptor&lt;/code&gt; as a GitHub webhook validator, do the following:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Create a secret string value.&lt;/li&gt;
&lt;li&gt;Configure the &lt;code&gt;GitHub&lt;/code&gt; webhook with that value.&lt;/li&gt;
&lt;li&gt;Create a Kubernetes secret containing your secret value.&lt;/li&gt;
&lt;li&gt;Pass the Kubernetes secret as a reference to your GitHub &lt;code&gt;Interceptor&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;To use a GitHub &lt;code&gt;Interceptor&lt;/code&gt; as a filter for event data, specify the event types
you want the &lt;code&gt;Interceptor&lt;/code&gt; to accept in the &lt;code&gt;eventTypes&lt;/code&gt; field. The &lt;code&gt;Interceptor&lt;/code&gt;
accepts data event types listed in &lt;a href=&#34;https://docs.github.com/en/developers/webhooks-and-events/webhook-events-and-payloads&#34;&gt;Event types and payloads&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Below is an example GitHub &lt;code&gt;Interceptor&lt;/code&gt; reference:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;triggers&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;github-listener&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;interceptors&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;ref&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;github&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;kind&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;ClusterInterceptor&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;apiVersion&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;triggers.tekton.dev&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;params&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;          &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;secretRef&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;value&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;              &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;secretName&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;github-secret&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;              &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;secretKey&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;secretToken&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;          &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;eventTypes&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;value&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;[&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;pull_request&amp;#34;&lt;/span&gt;]&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;For reference, below is an example legacy GitHub &lt;code&gt;Interceptor&lt;/code&gt; definition:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;triggers&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;github-listener&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;interceptors&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;github&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;secretRef&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;              &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;secretName&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;github-secret&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;              &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;secretKey&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;secretToken&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;eventTypes&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;For more information, see our &lt;a href=&#34;https://github.com/tektoncd/triggers/tree/release-v0.32.x/examples/v1beta1/github&#34;&gt;example&lt;/a&gt; of using this &lt;code&gt;Interceptor&lt;/code&gt;.&lt;/p&gt;
&lt;h4 id=&#34;adding-changed-files&#34;&gt;Adding Changed Files&lt;/h4&gt;
&lt;p&gt;The GitHub &lt;code&gt;Interceptor&lt;/code&gt; also has the ability to add a comma delimited list of all files that have changed (added, modified or deleted) for the &lt;code&gt;push&lt;/code&gt; and &lt;code&gt;pull_request&lt;/code&gt; events. The list of changed files are added to the &lt;code&gt;changed_files&lt;/code&gt; property of the event payload in the top-level &lt;code&gt;extensions&lt;/code&gt; field&lt;/p&gt;
&lt;p&gt;Below is an example GitHub &lt;code&gt;Interceptor&lt;/code&gt; that enables the &lt;code&gt;addChangedFiles&lt;/code&gt; feature and uses the CEL &lt;code&gt;Interceptor&lt;/code&gt; to filter incoming events by the files changed&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;triggers&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;github-listener&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;interceptors&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;ref&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;github&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;kind&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;ClusterInterceptor&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;apiVersion&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;triggers.tekton.dev&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;params&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;          &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;secretRef&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;value&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;              &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;secretName&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;github-secret&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;              &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;secretKey&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;secretToken&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;          &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;eventTypes&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;value&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;[&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;pull_request&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;push&amp;#34;&lt;/span&gt;]&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;          &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;addChangedFiles&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;value&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;              &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;enabled&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#069;font-weight:bold&#34;&gt;true&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;ref&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;cel&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;params&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;          &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;filter&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#09f;font-style:italic&#34;&gt;# execute only when a file within the controllers directory has changed&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;value&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;extensions.changed_files.matches(&amp;#39;controllers/&amp;#39;)&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h5 id=&#34;adding-changed-files---private-repository&#34;&gt;Adding Changed Files - Private Repository&lt;/h5&gt;
&lt;p&gt;The ability to add changed files can also work with private repositories by supplying a &lt;a href=&#34;https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token&#34;&gt;GitHub personal access token&lt;/a&gt; in the &lt;code&gt;personalAccessToken&lt;/code&gt; field. In the example below, the &lt;code&gt;personalAccessToken&lt;/code&gt; uses the &lt;code&gt;github-pat&lt;/code&gt; secret to get the GitHub personal access token used to make the API calls to get the list of changed files.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;triggers&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;github-listener&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;interceptors&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;ref&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;github&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;kind&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;ClusterInterceptor&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;apiVersion&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;triggers.tekton.dev&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;params&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;          &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;secretRef&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;value&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;              &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;secretName&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;github-secret&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;              &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;secretKey&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;secretToken&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;          &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;eventTypes&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;value&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;[&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;pull_request&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;push&amp;#34;&lt;/span&gt;]&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;          &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;addChangedFiles&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;value&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;              &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;enabled&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#069;font-weight:bold&#34;&gt;true&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;              &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;personalAccessToken&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;                &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;secretName&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;github-pat&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;                &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;secretKey&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;token&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;ref&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;cel&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;params&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;          &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;filter&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#09f;font-style:italic&#34;&gt;# execute only when a file within the controllers directory has changed&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;value&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;extensions.changed_files.matches(&amp;#39;controllers/&amp;#39;)&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;For more information around adding changed files, see the following examples&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/tektoncd/triggers/tree/release-v0.32.x/examples/v1beta1/github-add-changed-files-pr&#34;&gt;github-add-changed-files-pr&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/tektoncd/triggers/tree/release-v0.32.x/examples/v1beta1/github-add-changed-files-push-cel&#34;&gt;github-add-changed-files-push-cel&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;owners-validation-for-pull-requests&#34;&gt;Owners validation for pull requests&lt;/h4&gt;
&lt;p&gt;The GitHub &lt;code&gt;Interceptor&lt;/code&gt; supports the ability to halt processing on a pull request if the user is not listed in the &lt;a href=&#34;https://www.kubernetes.dev/docs/guide/owners/&#34;&gt;owners&lt;/a&gt; file or is not a repository/organization member/owner. This feature can be used to prevent unnecessary execution of a PipelineRun or TaskRun. The GitHub &lt;code&gt;Interceptor&lt;/code&gt; also supports the ability to trigger a PipelineRun/TaskRun through a comment that contains &lt;code&gt;/ok-to-test&lt;/code&gt; on a pull request by an owner.&lt;/p&gt;
&lt;p&gt;This feature will also work against private GitHub repositories by supplying a &lt;a href=&#34;https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token&#34;&gt;GitHub personal access token&lt;/a&gt; in the &lt;code&gt;personalAccessToken&lt;/code&gt; field.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;NOTE: Owners validation requires (at a minimum) the &lt;code&gt;pull_request&lt;/code&gt; and &lt;code&gt;issue_comment&lt;/code&gt; GitHub event types.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;To use the GitHub &lt;code&gt;Interceptor&lt;/code&gt; as a GitHub owners validator, do the following:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Create a secret string value.&lt;/li&gt;
&lt;li&gt;Configure the &lt;code&gt;GitHub&lt;/code&gt; webhook with that value.&lt;/li&gt;
&lt;li&gt;Create a Kubernetes secret containing your secret value called &lt;code&gt;SecretRef&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Pass the Kubernetes secret as a reference to your GitHub &lt;code&gt;Interceptor&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Create an owners file and add the list of approvers into the approvers section.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Below is an example GitHub &lt;code&gt;Interceptor&lt;/code&gt; using owners validation:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;triggers&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;github-listener&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;interceptors&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;ref&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;github&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;kind&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;ClusterInterceptor&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;apiVersion&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;triggers.tekton.dev&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;params&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;secretRef&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;              &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;value&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;                &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;secretName&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;github-secret&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;                &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;secretKey&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;secretToken&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;eventTypes&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;              &lt;/span&gt;&lt;span style=&#34;color:#09f;font-style:italic&#34;&gt;# Owners validation requires (at a minimum) the `pull_request` and `issue_comment` GitHub event types&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;              &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;value&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;[&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;pull_request&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;issue_comment&amp;#34;&lt;/span&gt;]&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;githubOwners&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;              &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;value&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;                &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;enabled&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#069;font-weight:bold&#34;&gt;true&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;                &lt;/span&gt;&lt;span style=&#34;color:#09f;font-style:italic&#34;&gt;# This value is needed for private repos or when checkType is set to orgMembers or repoMembers or all&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;                &lt;/span&gt;&lt;span style=&#34;color:#09f;font-style:italic&#34;&gt;# personalAccessToken:&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;                &lt;/span&gt;&lt;span style=&#34;color:#09f;font-style:italic&#34;&gt;#   secretName: github-token&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;                &lt;/span&gt;&lt;span style=&#34;color:#09f;font-style:italic&#34;&gt;#   secretKey: secretToken&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;                &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;checkType&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;none&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;For more information around owners file validation, see the following example&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/tektoncd/triggers/tree/release-v0.32.x/examples/v1beta1/github-owners&#34;&gt;github-owners&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;gitlab-interceptors&#34;&gt;GitLab Interceptors&lt;/h3&gt;
&lt;p&gt;A GitLab &lt;code&gt;Interceptor&lt;/code&gt; contains logic that validates and filters GitLab webhooks.
It can validate the webhook&amp;rsquo;s origin as described in &lt;a href=&#34;https://docs.gitlab.com/ee/user/project/integrations/webhooks.html&#34;&gt;Webhooks&lt;/a&gt;
as well as filter incoming events by the criteria you specify. The GitLab &lt;code&gt;Interceptor&lt;/code&gt;
always preserves the payload data (both header and body) in its responses.&lt;/p&gt;
&lt;p&gt;To use a GitLab &lt;code&gt;Interceptor&lt;/code&gt; as a GitLab webhook validator, do the following:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Create a secret string value.&lt;/li&gt;
&lt;li&gt;Configure the GitLab webhook with that value.&lt;/li&gt;
&lt;li&gt;Create a Kubernetes secret containing your secret value.&lt;/li&gt;
&lt;li&gt;Pass the Kubernetes secret as a reference to your GitLab &lt;code&gt;Interceptor&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;To use a GitLab &lt;code&gt;Interceptor&lt;/code&gt; as a filter for event data, specify the event types
you want the &lt;code&gt;Interceptor&lt;/code&gt; to accept in the &lt;code&gt;eventTypes&lt;/code&gt; field. The &lt;code&gt;Interceptor&lt;/code&gt;
accepts data event types listed in &lt;a href=&#34;https://docs.gitlab.com/ee/user/project/integrations/webhook_events.html&#34;&gt;Events&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Below is an example GitLab &lt;code&gt;Interceptor&lt;/code&gt; reference:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;interceptors&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;ref&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;gitlab&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;params&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;secretRef&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;value&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;secretName&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;foo&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;secretKey&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;bar&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;eventTypes&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;value&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;[&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;Push Hook&amp;#34;&lt;/span&gt;]&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;For reference, below is an example legacy GitLab &lt;code&gt;Interceptor&lt;/code&gt; definition:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;apiVersion&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;triggers.tekton.dev/v1alpha1&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;kind&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;EventListener&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;metadata&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;gitlab-listener-interceptor&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;spec&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;serviceAccountName&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;tekton-triggers-example-sa&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;triggers&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;foo-trig&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;interceptors&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;gitlab&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;secretRef&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;              &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;secretName&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;foo&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;              &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;secretKey&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;bar&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;eventTypes&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;              &lt;/span&gt;- Push Hook&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;bindings&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;ref&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;pipeline-binding&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;template&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;ref&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;pipeline-template&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;bitbucket-interceptors&#34;&gt;Bitbucket &lt;code&gt;Interceptors&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;Bitbucket &lt;code&gt;Interceptors&lt;/code&gt; has support for both Bitbucket server (which does secret validation and event filtering) and Bitbucket cloud (which does event filtering).&lt;/p&gt;
&lt;h3 id=&#34;bitbucket-server&#34;&gt;Bitbucket Server&lt;/h3&gt;
&lt;p&gt;A Bitbucket server contains logic that validates and filters &lt;a href=&#34;https://confluence.atlassian.com/bitbucketserver&#34;&gt;Bitbucket server&lt;/a&gt; webhooks.
It can validate the webhook&amp;rsquo;s origin as described in &lt;a href=&#34;https://docs.gitlab.com/ee/user/project/integrations/webhooks.html&#34;&gt;Webhooks&lt;/a&gt;. The Bitbucket &lt;code&gt;Interceptor&lt;/code&gt; always preserves the payload
data (both header and body) in its responses.&lt;/p&gt;
&lt;p&gt;To use a Bitbucket &lt;code&gt;Interceptor&lt;/code&gt; as a Bitbucket server webhook validator, do the following:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Create a secret string value.&lt;/li&gt;
&lt;li&gt;Configure the Bitbucket server webhook with that value.&lt;/li&gt;
&lt;li&gt;Create a Kubernetes secret containing your secret value.&lt;/li&gt;
&lt;li&gt;Pass the Kubernetes secret as a reference to your Bitbucket &lt;code&gt;Interceptor&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;To use a Bitbucket &lt;code&gt;Interceptor&lt;/code&gt; as a filter for event data, specify the event types
you want the &lt;code&gt;Interceptor&lt;/code&gt; to accept in the &lt;code&gt;eventTypes&lt;/code&gt; field. The &lt;code&gt;Interceptor&lt;/code&gt;
accepts data event types listed in &lt;a href=&#34;https://confluence.atlassian.com/bitbucketserver/event-payload-938025882.html&#34;&gt;Event payload&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Below is an example Bitbucket &lt;code&gt;Interceptor&lt;/code&gt; reference for server:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;interceptors&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;ref&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;bitbucket&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;params&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;secretRef&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;value&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;secretName&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;bitbucket-server-secret&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;secretKey&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;secretToken&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;eventTypes&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;value&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;- repo:refs_changed&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;For reference, below is an example legacy Bitbucket &lt;code&gt;Interceptor&lt;/code&gt; definition:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#0cf;font-weight:bold&#34;&gt;---&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;apiVersion&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;triggers.tekton.dev/v1alpha1&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;kind&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;EventListener&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;metadata&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;bitbucket-server-listener&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;spec&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;serviceAccountName&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;tekton-triggers-example-sa&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;triggers&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;bitbucket-server-triggers&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;interceptors&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;ref&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;bitbucket&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;params&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;secretRef&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;              &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;value&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;                &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;secretName&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;bitbucket-server-secret&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;                &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;secretKey&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;secretToken&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;eventTypes&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;              &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;value&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;                &lt;/span&gt;- repo:refs_changed&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;bindings&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;ref&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;bitbucket-server-binding&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;template&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;ref&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;bitbucket-server-template&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;bitbucket-cloud&#34;&gt;Bitbucket Cloud&lt;/h3&gt;
&lt;p&gt;At the moment, Bitbucket cloud does not support validating webhook payloads using shared secrets.
See the &lt;a href=&#34;https://support.atlassian.com/bitbucket-cloud/docs/manage-webhooks/&#34;&gt;Secure Webhooks section&lt;/a&gt; of Bitbucket cloud docs for more information on securing your Bitbucket webhooks.&lt;/p&gt;
&lt;p&gt;To use a Bitbucket &lt;code&gt;Interceptor&lt;/code&gt; as a filter for event data, specify the event types
you want the &lt;code&gt;Interceptor&lt;/code&gt; to accept in the &lt;code&gt;eventTypes&lt;/code&gt; field. The &lt;code&gt;Interceptor&lt;/code&gt;
accepts data event types listed in &lt;a href=&#34;https://support.atlassian.com/bitbucket-cloud/docs/event-payloads/&#34;&gt;Event payload&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Below is an example Bitbucket &lt;code&gt;Interceptor&lt;/code&gt; reference for cloud:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;interceptors&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;ref&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;bitbucket&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;params&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;eventTypes&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;value&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;- repo:push&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;For reference, below is an example legacy Bitbucket &lt;code&gt;Interceptor&lt;/code&gt; definition:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#0cf;font-weight:bold&#34;&gt;---&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;apiVersion&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;triggers.tekton.dev/v1beta1&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;kind&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;EventListener&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;metadata&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;bitbucket-cloud-listener&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;spec&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;serviceAccountName&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;tekton-triggers-example-sa&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;triggers&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;bitbucket-cloud-triggers&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;interceptors&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;ref&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;bitbucket&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;params&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;eventTypes&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;              &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;value&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;                &lt;/span&gt;- repo:push&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;bindings&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;ref&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;bitbucket-cloud-binding&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;template&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;ref&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;bitbucket-cloud-template&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;slack-interceptors&#34;&gt;Slack Interceptors&lt;/h3&gt;
&lt;p&gt;A Slack &lt;code&gt;Interceptor&lt;/code&gt; allows you to extract fields from a slack slash command &lt;a href=&#34;https://api.slack.com/interactivity/slash-commands#app_command_handling&#34;&gt;payload&lt;/a&gt; which are sent in the  http form-data section.
the &lt;code&gt;Interceptor&lt;/code&gt; requests fields extracts the requested fields and appends them to the &lt;code&gt;extensions&lt;/code&gt;.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;apiVersion&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;triggers.tekton.dev/v1beta1&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;kind&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;EventListener&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;metadata&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;slack-listener&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;annotations&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;tekton.dev/payload-validation&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;false&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;spec&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;triggers&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;slack-trigger&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;interceptors&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;ref&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;slack&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;kind&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;ClusterInterceptor&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;params&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;requestedFields&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;              &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;value&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;                &lt;/span&gt;- text   &lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Note: payload-validation must be disabled by add adding the following annotation&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;annotations&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;tekton.dev/payload-validation&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;false&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;cel-interceptors&#34;&gt;CEL Interceptors&lt;/h3&gt;
&lt;p&gt;A CEL &lt;code&gt;Interceptor&lt;/code&gt; allows you to filter and modify the payloads of incoming events using
the &lt;a href=&#34;https://github.com/google/cel-spec/blob/master/doc/langdef.md&#34;&gt;CEL&lt;/a&gt; expression language.&lt;/p&gt;
&lt;p&gt;CEL &lt;code&gt;Interceptors&lt;/code&gt; support &lt;code&gt;overlays&lt;/code&gt;, which are CEL expressions that Tekton Triggers adds
to the event payload in the top-level &lt;code&gt;extensions&lt;/code&gt; field. &lt;code&gt;overlays&lt;/code&gt; are accessible from
&lt;code&gt;TriggerBindings&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;In the example &lt;code&gt;overlays&lt;/code&gt; definition below, the &lt;code&gt;Interceptor&lt;/code&gt; adds two new fields to the
event payload that the corresponding &lt;code&gt;TriggerBinding&lt;/code&gt; will receive in addition to the standard
&lt;code&gt;header&lt;/code&gt; and &lt;code&gt;body fields&lt;/code&gt;: &lt;code&gt;extensions.truncated_sha&lt;/code&gt; and &lt;code&gt;extensions.branch_name&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;triggers&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;cel-trig&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;interceptors&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;ref&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;cel&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;params&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;          &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;overlays&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;value&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;key&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;truncated_sha&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;              &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;expression&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;body.pull_request.head.sha.truncate(7)&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;key&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;branch_name&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;              &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;expression&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;body.ref.split(&amp;#39;/&amp;#39;)[2]&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Below is the same example as a legacy &lt;code&gt;Interceptor&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;triggers&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;cel-trig&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;interceptors&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;cel&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;overlays&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;key&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;truncated_sha&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;              &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;expression&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;body.pull_request.head.sha.truncate(7)&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;key&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;branch_name&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;              &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;expression&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;body.ref.split(&amp;#39;/&amp;#39;)[2]&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;You can use the &lt;code&gt;key&lt;/code&gt; element within the &lt;code&gt;overlays&lt;/code&gt; definition to create new or replace existing
elements within the &lt;code&gt;extensions&lt;/code&gt; field. This does not modify the body of the event payload, but instead
adds the extra fields to the top-level &lt;code&gt;extensions&lt;/code&gt; field.&lt;/p&gt;
&lt;p&gt;For example, the following expression:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;key&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;short_sha&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;expression&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;truncate(body.pull_request.head.sha, 7)&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;can access the &lt;code&gt;short_sha&lt;/code&gt; field and its value that have been created in &lt;code&gt;extensions&lt;/code&gt; field:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;&amp;#34;body&amp;#34;&lt;/span&gt;: {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;&amp;#34;ref&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;refs/heads/master&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;&amp;#34;pull_request&amp;#34;&lt;/span&gt;: {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;&amp;#34;head&amp;#34;&lt;/span&gt;: {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;&amp;#34;sha&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;6113728f27ae82c7b1a177c8d03f9e96e0adf246&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  },
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;&amp;#34;extensions&amp;#34;&lt;/span&gt;: {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;&amp;#34;short_sha&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;6113728&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; You can also replace existing fields by specifying a key that matches the path to an existing field/value pair.&lt;/p&gt;
&lt;p&gt;You can access the extra fields added by a CEL &lt;code&gt;Interceptor&lt;/code&gt; from your &lt;code&gt;TriggerBinding&lt;/code&gt; as follows:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;apiVersion&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;triggers.tekton.dev/v1alpha1&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;kind&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;TriggerBinding&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;metadata&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;pipeline-binding-with-cel-extensions&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;spec&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;params&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;gitrevision&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;value&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;$(extensions.short_sha)&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;branch&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;value&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;$(extensions.branch_name)&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;In the example CEL &lt;code&gt;Interceptor&lt;/code&gt; definition below, the &lt;code&gt;cel-trig-with-matches&lt;/code&gt; &lt;code&gt;Trigger&lt;/code&gt;
filters events that don&amp;rsquo;t have an &lt;code&gt;&#39;X-GitHub-Event&#39;&lt;/code&gt; header matching &lt;code&gt;&#39;pull_request&#39;&lt;/code&gt; and
adds an extra key to the JSON body of the payload with a truncated string derived from the hook
body:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;triggers&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;cel-trig-with-matches&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;interceptors&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;ref&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;cel&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;params&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;          &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;filter&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;value&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;header.match(&amp;#39;X-GitHub-Event&amp;#39;, &amp;#39;pull_request&amp;#39;)&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;          &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;overlays&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;value&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;              &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;key&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;truncated_sha&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;                &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;expression&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;body.pull_request.head.sha.truncate(7)&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;bindings&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;sha&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;value&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;$(extensions.truncated_sha)&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Below is the same example as a legacy &lt;code&gt;Interceptor&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;triggers&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;cel-trig-with-matches&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;interceptors&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;cel&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;filter&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;header.match(&amp;#39;X-GitHub-Event&amp;#39;, &amp;#39;pull_request&amp;#39;)&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;overlays&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;key&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;truncated_sha&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;              &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;expression&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;body.pull_request.head.sha.truncate(7)&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;bindings&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;sha&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;value&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;$(extensions.truncated_sha)&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;In the example CEL &lt;code&gt;Interceptor&lt;/code&gt; definition below, the &lt;code&gt;filter&lt;/code&gt; expression must
return a &lt;code&gt;true&lt;/code&gt; value for this &lt;code&gt;Trigger&lt;/code&gt; to execute and apply the specified &lt;code&gt;overlays&lt;/code&gt;:&lt;/p&gt;
&lt;p&gt;You also have the option to omit the &lt;code&gt;filter&lt;/code&gt; expression entirely, in which case the &lt;code&gt;Interceptor&lt;/code&gt;
applies the specified &lt;code&gt;overlays&lt;/code&gt; to the payload&amp;rsquo;s body:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;apiVersion&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;triggers.tekton.dev/v1alpha1&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;kind&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;EventListener&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;metadata&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;cel-eventlistener-no-filter&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;spec&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;serviceAccountName&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;tekton-triggers-example-sa&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;triggers&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;cel-trig&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;interceptors&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;ref&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;cel&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;params&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;overlays&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;              &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;value&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;                &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;key&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;extensions.truncated_sha&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;                  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;expression&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;body.pull_request.head.sha.truncate(7)&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;bindings&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;ref&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;pipeline-binding&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;template&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;ref&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;pipeline-template&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;chaining-interceptors&#34;&gt;Chaining &lt;code&gt;Interceptors&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;You can chain &lt;code&gt;Interceptors&lt;/code&gt; with the following constraints:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;ClusterInterceptors&lt;/code&gt; do not modify the body of the event payload; instead, they add extra fields to the top-level &lt;code&gt;extensions&lt;/code&gt; field.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Webhook &lt;code&gt;Interceptors&lt;/code&gt; can modify the body of the event payload, but cannot access the top-level &lt;code&gt;extensions&lt;/code&gt; field.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;chaining-clusterinterceptors&#34;&gt;Chaining ClusterInterceptors&lt;/h4&gt;
&lt;p&gt;Each ClusterInterceptor can return values in the InterceptorResponse within the &lt;code&gt;extensions&lt;/code&gt; field. These values are then added to the &lt;code&gt;extensions&lt;/code&gt; field of the InterceptorRequest that is sent to the next interceptor in the chain.&lt;/p&gt;
&lt;p&gt;If two interceptors return an extensions field with the same name, the latter one will overwrite the one from the previous one i.e. if interceptors A and B both return &lt;code&gt;foo&lt;/code&gt; in the Extensions field of the InterceptorResponse, the values written by B will overwrite the ones written by A. To prevent this, it is recommended that each cluster interceptor write to its own top level field i.e A returns &lt;code&gt;A.foo&lt;/code&gt; and B return &lt;code&gt;B.foo&lt;/code&gt; in the InterceptorResponse.&lt;/p&gt;
&lt;h4 id=&#34;chaining-webhook-interceptors&#34;&gt;Chaining Webhook Interceptors&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; We are working on changing the behavior of Webhook &lt;code&gt;Interceptors&lt;/code&gt; to match that of CEL &lt;code&gt;Interceptors&lt;/code&gt; so that both &lt;code&gt;Interceptor&lt;/code&gt; types can share data via the top-level &lt;code&gt;extensions&lt;/code&gt; field.&lt;/p&gt;
&lt;p&gt;Since Webhook &lt;code&gt;Interceptors&lt;/code&gt; cannot access the &lt;code&gt;extensions&lt;/code&gt; field, the &lt;code&gt;EventListener&lt;/code&gt; adds the &lt;code&gt;extensions&lt;/code&gt; field to the body of the event payload before passing it to any Webhook &lt;code&gt;Interceptor&lt;/code&gt;.
In the example &lt;code&gt;Interceptor&lt;/code&gt; chain shown below, the first CEL &lt;code&gt;Interceptor&lt;/code&gt; adds the &lt;code&gt;truncated_sha&lt;/code&gt; field to the &lt;code&gt;extensions&lt;/code&gt; field and the &lt;code&gt;EventListener&lt;/code&gt; adds it to the body of the payload so that
the Webhook &lt;code&gt;Interceptor&lt;/code&gt; can access that data:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;interceptors&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;cel&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;overlays&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;          &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;key&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;truncated_sha&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;expression&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;body.sha.truncate(5)&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;webhook&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;objectRef&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;kind&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;Service&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;some-interceptor&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;apiVersion&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;v1&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;cel&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;filter&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;body.extensions.truncated_sha == \&amp;#34;abcde\&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#09f;font-style:italic&#34;&gt;# Can also be extensions.truncated_sha == \&amp;#34;abcde\&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;As a result, the body of the payload sent to the Webhook &lt;code&gt;Interceptor&lt;/code&gt; is as follows:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;{
  &amp;#34;sha&amp;#34;: &amp;#34;abcdefghi&amp;#34;, // Original field
  &amp;#34;extensions&amp;#34;: {
     &amp;#34;truncated_sha&amp;#34;: &amp;#34;abcde&amp;#34; 
  }
}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;As long as the Webhook &lt;code&gt;Interceptor&lt;/code&gt; does not modify the body of the payload, the last CEL interceptor in the chain and the target &lt;code&gt;TriggerBinding&lt;/code&gt; can access the &lt;code&gt;truncated_sha&lt;/code&gt;
field both in the body of the payload as well as via the extra fields added to the top-level &lt;code&gt;extension&lt;/code&gt; field, namely &lt;code&gt;$(body.extensions.truncated_sha)&lt;/code&gt; as well as &lt;code&gt;$(extensions.truncated_sha)&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;implementing-custom-interceptors&#34;&gt;Implementing custom &lt;code&gt;Interceptors&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;Tekton Triggers ships with the &lt;code&gt;ClusterInterceptor&lt;/code&gt;and &lt;code&gt;Interceptor&lt;/code&gt; Custom Resource Definition (CRD), which you can use to implement custom &lt;code&gt;Interceptors&lt;/code&gt;. See &lt;a href=&#34;https://deploy-preview-726--tekton.netlify.app/vault/Triggers-v0.32.x-LTS/clusterinterceptors/&#34;&gt;&lt;code&gt;ClusterInterceptors&lt;/code&gt;&lt;/a&gt; and &lt;a href=&#34;https://deploy-preview-726--tekton.netlify.app/vault/Triggers-v0.32.x-LTS/namespacedinterceptors/&#34;&gt;&lt;code&gt;NamespacedInterceptors&lt;/code&gt;&lt;/a&gt;  for more information.&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Vault: </title>
      <link>https://deploy-preview-726--tekton.netlify.app/vault/triggers-v0.32.x-lts/namespacedinterceptors/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://deploy-preview-726--tekton.netlify.app/vault/triggers-v0.32.x-lts/namespacedinterceptors/</guid>
      <description>
        
        
        &lt;h1 id=&#34;interceptors&#34;&gt;&lt;code&gt;Interceptors&lt;/code&gt;&lt;/h1&gt;
&lt;p&gt;Tekton Triggers ships with the &lt;code&gt;Interceptor&lt;/code&gt; Custom Resource Definition (CRD), which allows you to implement a custom namespaced-scoped Webhook-style &lt;code&gt;Interceptor&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;A &lt;code&gt;Interceptor&lt;/code&gt; specifies an external Kubernetes v1 Service running custom business logic that receives the event payload from the
&lt;code&gt;EventListener&lt;/code&gt; via an HTTP request and returns a processed version of the payload along with an HTTP 200 response. The &lt;code&gt;Interceptor&lt;/code&gt; can also
halt processing if the event payload does not meet criteria you have configured as well as add extra fields that are accessible in the &lt;code&gt;EventListener&#39;s&lt;/code&gt;
top-level &lt;code&gt;extensions&lt;/code&gt; field to other &lt;a href=&#34;https://deploy-preview-726--tekton.netlify.app/vault/Triggers-v0.32.x-LTS/interceptors/&#34;&gt;&lt;code&gt;Interceptors&lt;/code&gt;&lt;/a&gt; and &lt;code&gt;Interceptors&lt;/code&gt; chained with it and the associated &lt;code&gt;TriggerBinding&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;structure-of-a-interceptor&#34;&gt;Structure of a &lt;code&gt;Interceptor&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;A &lt;code&gt;Interceptor&lt;/code&gt; definition consists of the following fields:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Required:
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://kubernetes.io/docs/concepts/overview/working-with-objects/kubernetes-objects/#required-fields&#34;&gt;&lt;code&gt;apiVersion&lt;/code&gt;&lt;/a&gt; - specifies the target API version, for example &lt;code&gt;triggers.tekton.dev/v1alpha1&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://kubernetes.io/docs/concepts/overview/working-with-objects/kubernetes-objects/#required-fields&#34;&gt;&lt;code&gt;kind&lt;/code&gt;&lt;/a&gt; - specifies that this Kubernetes resource is a &lt;code&gt;Interceptor&lt;/code&gt; object&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://kubernetes.io/docs/concepts/overview/working-with-objects/kubernetes-objects/#required-fields&#34;&gt;&lt;code&gt;metadata&lt;/code&gt;&lt;/a&gt; - specifies data that uniquely identifies this &lt;code&gt;Interceptor&lt;/code&gt; object, for example a &lt;code&gt;name&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://kubernetes.io/docs/concepts/overview/working-with-objects/kubernetes-objects/#required-fields&#34;&gt;&lt;code&gt;spec&lt;/code&gt;&lt;/a&gt; - specifies the configuration information for this &lt;code&gt;Interceptor&lt;/code&gt; object, including:
&lt;ul&gt;
&lt;li&gt;[&lt;code&gt;clientConfig&lt;/code&gt;] -  specifies how a client, such as an &lt;code&gt;EventListener&lt;/code&gt; communicates with this &lt;code&gt;Interceptor&lt;/code&gt; object&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;configuring-the-client-of-the-interceptor&#34;&gt;Configuring the client of the &lt;code&gt;Interceptor&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;The &lt;code&gt;clientConfig&lt;/code&gt; field specifies the client, such as an &lt;code&gt;EventListener&lt;/code&gt; and how it communicates with the &lt;code&gt;Interceptor&lt;/code&gt; to exchange
event payload and other data. You can configure this field in one of the following ways:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Specify the &lt;code&gt;url&lt;/code&gt; field and as its value a URL at which the corresponding Kubernetes service listens for incoming requests from this &lt;code&gt;Interceptor&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Specify the &lt;code&gt;service&lt;/code&gt; field and within it reference the corresponding Kubernetes service that&amp;rsquo;s listening for incoming requests from this &lt;code&gt;Interceptor&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For example:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;spec&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;clientConfig&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;url&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;http://interceptor-svc.default.svc/&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#0cf;font-weight:bold&#34;&gt;---&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;spec&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;clientConfig&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;service&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;my-interceptor-svc&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;namespace&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;default&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;path&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;/optional-path&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#09f;font-style:italic&#34;&gt;# optional&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;port&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#f60&#34;&gt;8081&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#09f;font-style:italic&#34;&gt;# defaults to 80&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;configuring-a-kubernetes-service-for-the-interceptor&#34;&gt;Configuring a Kubernetes Service for the &lt;code&gt;Interceptor&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;The Kubernetes object running the custom business logic for your &lt;code&gt;Interceptor&lt;/code&gt; must meet the following criteria:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Fronted by a regular Kubernetes v1 Service listening on an HTTP port (default port is 80)&lt;/li&gt;
&lt;li&gt;Accepts an HTTP &lt;code&gt;POST&lt;/code&gt; request that contains an &lt;a href=&#34;https://pkg.go.dev/github.com/tektoncd/triggers/pkg/apis/triggers/v1alpha1#InterceptorRequest&#34;&gt;&lt;code&gt;InterceptorRequest&lt;/code&gt;&lt;/a&gt;
as a JSON body&lt;/li&gt;
&lt;li&gt;Returns an HTTP 200 OK response that contains an &lt;a href=&#34;https://pkg.go.dev/github.com/tektoncd/triggers/pkg/apis/triggers/v1alpha1#InterceptorResponse&#34;&gt;&lt;code&gt;InterceptorResponse&lt;/code&gt;&lt;/a&gt;
as a JSON body. If the trigger processing should continue, the interceptor should set the &lt;code&gt;continue&lt;/code&gt; field in the response to &lt;code&gt;true&lt;/code&gt;. If the processing should be stopped, the interceptor should set the &lt;code&gt;continue&lt;/code&gt; field to &lt;code&gt;false&lt;/code&gt; and also provide additional information detailing the error in the &lt;code&gt;status&lt;/code&gt; field.&lt;/li&gt;
&lt;li&gt;Returns a response other than HTTP 200 OK only if payload processing halts due to a catastrophic failure.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;running-interceptor-as-https&#34;&gt;Running Interceptor as HTTPS&lt;/h3&gt;
&lt;p&gt;Triggers support writing custom interceptor for both &lt;code&gt;http&lt;/code&gt; and &lt;code&gt;https&lt;/code&gt;. Support of &lt;code&gt;http&lt;/code&gt; for custom interceptor will be removed in future and only &lt;code&gt;https&lt;/code&gt; will be supported.&lt;/p&gt;
&lt;p&gt;End user who write &lt;code&gt;https&lt;/code&gt; custom interceptor need to pass &lt;code&gt;caBundle&lt;/code&gt; as well as label&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;labels&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;server/type&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;https&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;to &lt;code&gt;Interceptor&lt;/code&gt; in order to make secure connection with eventlistener.&lt;/p&gt;
&lt;p&gt;Here is the reference for writing &lt;a href=&#34;https://github.com/tektoncd/triggers/blob/main/cmd/interceptors/main.go&#34;&gt;https server for custom interceptor&lt;/a&gt;.&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Vault: </title>
      <link>https://deploy-preview-726--tekton.netlify.app/vault/triggers-v0.32.x-lts/cel_expressions/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://deploy-preview-726--tekton.netlify.app/vault/triggers-v0.32.x-lts/cel_expressions/</guid>
      <description>
        
        
        &lt;h1 id=&#34;cel-expression-extensions&#34;&gt;CEL expression extensions&lt;/h1&gt;
&lt;p&gt;The CEL expression is configured to expose parts of the request, and some custom
functions to make matching easier.&lt;/p&gt;
&lt;p&gt;In addition to the custom function extension listed below, you can craft any
valid CEL expression as defined by the
&lt;a href=&#34;https://github.com/google/cel-spec/blob/master/doc/langdef.md&#34;&gt;cel-spec language definition&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;string-functions&#34;&gt;String functions&lt;/h2&gt;
&lt;p&gt;The &lt;a href=&#34;https://github.com/google/cel-go/&#34;&gt;upstream CEL implementation&lt;/a&gt; provides
extensions to the CEL specification for manipulating strings.&lt;/p&gt;
&lt;p&gt;For example:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-javascript&#34; data-lang=&#34;javascript&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#39;refs/heads/main&amp;#39;&lt;/span&gt;.split(&lt;span style=&#34;color:#c30&#34;&gt;&amp;#39;/&amp;#39;&lt;/span&gt;) &lt;span style=&#34;color:#09f;font-style:italic&#34;&gt;// result = list [&amp;#39;refs&amp;#39;, &amp;#39;heads&amp;#39;, &amp;#39;main&amp;#39;]
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#09f;font-style:italic&#34;&gt;&lt;/span&gt;[&lt;span style=&#34;color:#c30&#34;&gt;&amp;#39;refs&amp;#39;&lt;/span&gt;, &lt;span style=&#34;color:#c30&#34;&gt;&amp;#39;heads&amp;#39;&lt;/span&gt;, &lt;span style=&#34;color:#c30&#34;&gt;&amp;#39;main&amp;#39;&lt;/span&gt;].join(&lt;span style=&#34;color:#c30&#34;&gt;&amp;#39;/&amp;#39;&lt;/span&gt;) &lt;span style=&#34;color:#09f;font-style:italic&#34;&gt;// result = string &amp;#39;refs/heads/main&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#09f;font-style:italic&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#39;my place&amp;#39;&lt;/span&gt;.replace(&lt;span style=&#34;color:#c30&#34;&gt;&amp;#39;my &amp;#39;&lt;/span&gt;,&lt;span style=&#34;color:#c30&#34;&gt;&amp;#39; &amp;#39;&lt;/span&gt;) &lt;span style=&#34;color:#09f;font-style:italic&#34;&gt;// result = string &amp;#39;place&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#09f;font-style:italic&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#39;this that another&amp;#39;&lt;/span&gt;.replace(&lt;span style=&#34;color:#c30&#34;&gt;&amp;#39;th &amp;#39;&lt;/span&gt;,&lt;span style=&#34;color:#c30&#34;&gt;&amp;#39; &amp;#39;&lt;/span&gt;, &lt;span style=&#34;color:#f60&#34;&gt;2&lt;/span&gt;) &lt;span style=&#34;color:#09f;font-style:italic&#34;&gt;// result = &amp;#39;is at another&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The &lt;code&gt;replace&lt;/code&gt; overload allows an optional limit on replacements.&lt;/p&gt;
&lt;h2 id=&#34;notes-on-numbers-in-cel-expressions&#34;&gt;Notes on numbers in CEL expressions&lt;/h2&gt;
&lt;p&gt;One thing to be aware of is how numeric values are treated in CEL expressions,
JSON numbers are decoded to
&lt;a href=&#34;https://github.com/google/cel-spec/blob/master/doc/langdef.md#values&#34;&gt;CEL double&lt;/a&gt;
values.&lt;/p&gt;
&lt;p&gt;For example:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;&amp;#34;count&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#f60&#34;&gt;2&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;&amp;#34;measure&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#f60&#34;&gt;1.7&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;In the JSON above, both numbers are parsed as CEL double (Go &lt;code&gt;float64&lt;/code&gt;) values.&lt;/p&gt;
&lt;p&gt;This means that if you want to do integer arithmetic, you&amp;rsquo;ll need to
&lt;a href=&#34;https://github.com/google/cel-spec/blob/master/doc/langdef.md#numeric-values&#34;&gt;use explicit conversion functions&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;From the CEL specification:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Note that currently there are no automatic arithmetic conversions for the
numeric types (int, uint, and double).&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;You can either explicitly convert the number, or add another double value e.g.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;interceptors&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;ref&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;cel&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;params&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;overlays&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;value&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;key&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;count_plus_1&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;expression&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;body.count + 1.0&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;key&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;count_plus_2&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;expression&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;int(body.count) + 2&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;key&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;measure_times_3&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;expression&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;body.measure * 3.0&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;These will be serialised back to JSON appropriately:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;&amp;#34;count_plus_1&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#f60&#34;&gt;2&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;&amp;#34;count_plus_2&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#f60&#34;&gt;3&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;&amp;#34;measure_times_3&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#f60&#34;&gt;5.1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;error-messages-in-conversions&#34;&gt;Error messages in conversions&lt;/h3&gt;
&lt;p&gt;The following example will generate an error with the JSON example.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;interceptors&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;ref&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;cel&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;params&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;overlays&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;value&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;          &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;key&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;bad_measure_times_3&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;expression&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;body.measure * 3&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;bad_measure_times_3&lt;/strong&gt; will fail with
&lt;code&gt;failed to evaluate overlay expression &#39;body.measure * 3&#39;: no such overload&lt;/code&gt;
because there&amp;rsquo;s no automatic conversion.&lt;/p&gt;
&lt;h2 id=&#34;cel-expression-examples&#34;&gt;CEL expression examples&lt;/h2&gt;
&lt;h3 id=&#34;matching-on-an-element-in-an-array&#34;&gt;Matching on an element in an array.&lt;/h3&gt;
&lt;p&gt;CEL provides several &lt;a href=&#34;https://github.com/google/cel-spec/blob/master/doc/langdef.md#macros&#34;&gt;macros&lt;/a&gt; which can operate on JSON objects.&lt;/p&gt;
&lt;p&gt;If you have a JSON body like this:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;&amp;#34;labels&amp;#34;&lt;/span&gt;: [
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;&amp;#34;name&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;test-a&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    },
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;&amp;#34;name&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;test-b&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  ]
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;You can use this in filters in the following ways:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;filter: body.labels.exists(x, x.name == &#39;test-b&#39;)&lt;/code&gt; is &lt;em&gt;true&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;filter: body.labels.exists(x, x.name == &#39;test-c&#39;)&lt;/code&gt; is &lt;em&gt;false&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;filter: body.labels.exists_one(x, x.name.endsWith(&#39;-b&#39;))&lt;/code&gt; is &lt;em&gt;true&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;filter: body.labels.exists_one(x, x.name.startsWith(&#39;test-&#39;))&lt;/code&gt; is &lt;em&gt;false&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;filter: body.labels.all(x, x.name.startsWith(&#39;test-&#39;))&lt;/code&gt; is &lt;em&gt;true&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;filter: body.labels.all(x, x.name.endsWith(&#39;-b&#39;))&lt;/code&gt; is &lt;em&gt;false&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can also parse additional data from each of the labels:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;overlays&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;value&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;key&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;suffixes&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;expression&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;body.labels.map(x, x.name.substring(x.name.lastIndexOf(&amp;#39;-&amp;#39;)+1))&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This yields an array of &lt;code&gt;[&amp;quot;a&amp;quot;, &amp;quot;b&amp;quot;]&lt;/code&gt; in the &lt;code&gt;suffixes&lt;/code&gt; extension key.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;overlays&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;value&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;key&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;filtered&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;expression&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;body.labels.filter(x, x.name.endsWith(&amp;#39;-b&amp;#39;))&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This would add an extensions key &lt;code&gt;filtered&lt;/code&gt; with only one of the labels.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;{&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;&amp;#34;name&amp;#34;: &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;test-b&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;}&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;]&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;cel-go-extensions&#34;&gt;cel-go extensions&lt;/h2&gt;
&lt;p&gt;All the functionality from the cel-go project&amp;rsquo;s &lt;a href=&#34;https://github.com/google/cel-go/tree/master/ext&#34;&gt;CEL extension&lt;/a&gt; is available in
your CEL expressions.&lt;/p&gt;
&lt;p&gt;The following extensions are available:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://pkg.go.dev/github.com/google/cel-go@v0.20.1/ext#Strings&#34;&gt;Strings&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://pkg.go.dev/github.com/google/cel-go@v0.20.1/ext#Encoders&#34;&gt;Encoders&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://pkg.go.dev/github.com/google/cel-go@v0.20.1/ext#Sets&#34;&gt;Sets&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://pkg.go.dev/github.com/google/cel-go@v0.20.1/ext#Lists&#34;&gt;Lists&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://pkg.go.dev/github.com/google/cel-go@v0.20.1/ext#Math&#34;&gt;Math&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;cel-go-bytes&#34;&gt;cel-go Bytes&lt;/h3&gt;
&lt;p&gt;The cel-go project function &lt;code&gt;base64.decode&lt;/code&gt; returns a &lt;a href=&#34;https://github.com/google/cel-spec/blob/master/doc/langdef.md#string-and-bytes-values&#34;&gt;CEL &lt;code&gt;Bytes&lt;/code&gt;&lt;/a&gt; value.&lt;/p&gt;
&lt;p&gt;To compare this to a string, you will need to convert it to a Bytes type:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;base64.decode(body.b64value) == b&amp;#39;hello&amp;#39; # compare to Bytes literal
base64.decode(body.b64value) == bytes(&amp;#39;hello&amp;#39;) # convert to bytes.
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;returning-bytes&#34;&gt;Returning Bytes&lt;/h3&gt;
&lt;p&gt;If you decode a base64 string with the cel-go base64 decoder, the result will
be a set of base64 decoded bytes. To ensure the result is encoded as a string
you will need to explicitly convert it to a CEL string.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;interceptors&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;ref&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;cel&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;params&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;overlays&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;value&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;key&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;base64_decoded&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;expression&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;string(base64.decode(body.b64Value))&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This will correctly appear in the extension as the decoded version.&lt;/p&gt;
&lt;h2 id=&#34;list-of-extensions&#34;&gt;List of extensions&lt;/h2&gt;
&lt;p&gt;The body from the &lt;code&gt;http.Request&lt;/code&gt; value is decoded to JSON and exposed, and the
headers are also available.&lt;/p&gt;
&lt;table style=&#34;width=100%&#34; border=&#34;1&#34;&gt;
  &lt;tr&gt;
    &lt;th&gt;Symbol&lt;/th&gt;
    &lt;th&gt;Type&lt;/th&gt;
    &lt;th&gt;Description&lt;/th&gt;
    &lt;th&gt;Example&lt;/th&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;th&gt;
      body
    &lt;/th&gt;
    &lt;td&gt;
      map(string, dynamic)
    &lt;/td&gt;
    &lt;td&gt;
      This is the decoded JSON body from the incoming http.Request exposed as a map of string keys to any value types.
    &lt;/td&gt;
    &lt;td&gt;
      &lt;pre&gt;body.value == &#39;test&#39;&lt;/pre&gt;
    &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;th&gt;
      header
    &lt;/th&gt;
    &lt;td&gt;
      map(string, list(string))
    &lt;/td&gt;
    &lt;td&gt;
      This is the request Header.
    &lt;/td&gt;
    &lt;td&gt;
      &lt;pre&gt;header[&#39;X-Test&#39;][0] == &#39;test-value&#39;&lt;/pre&gt;
    &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;th&gt;
      requestURL
    &lt;/th&gt;
    &lt;td&gt;
      string
    &lt;/td&gt;
    &lt;td&gt;
      This is the URL for the incoming HTTP request.
    &lt;/td&gt;
    &lt;td&gt;
      &lt;pre&gt;requestURL.parseURL().path&lt;/pre&gt;
    &lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
&lt;p&gt;NOTE: The header value is a Go &lt;code&gt;http.Header&lt;/code&gt;, which is
&lt;a href=&#34;https://golang.org/pkg/net/http/#Header&#34;&gt;defined&lt;/a&gt; as:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-go&#34; data-lang=&#34;go&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#069;font-weight:bold&#34;&gt;type&lt;/span&gt; Header &lt;span style=&#34;color:#069;font-weight:bold&#34;&gt;map&lt;/span&gt;[&lt;span style=&#34;color:#078;font-weight:bold&#34;&gt;string&lt;/span&gt;][]&lt;span style=&#34;color:#078;font-weight:bold&#34;&gt;string&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;i.e. the header is a mapping of strings, to arrays of strings, see the &lt;code&gt;match&lt;/code&gt;
function on headers below for an extension that makes looking up headers easier.&lt;/p&gt;
&lt;h2 id=&#34;list-of-extension-functions&#34;&gt;List of extension functions&lt;/h2&gt;
&lt;p&gt;This lists custom functions that can be used from CEL expressions in the CEL
interceptor.&lt;/p&gt;
&lt;table style=&#34;width=100%&#34; border=&#34;1&#34;&gt;
  &lt;tr&gt;
    &lt;th&gt;Symbol&lt;/th&gt;
    &lt;th&gt;Type&lt;/th&gt;
    &lt;th&gt;Description&lt;/th&gt;
    &lt;th&gt;Example&lt;/th&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;th&gt;
      match
    &lt;/th&gt;
    &lt;td&gt;
      header.match(string, string) -&gt; bool
    &lt;/td&gt;
    &lt;td&gt;
      Uses the canonical header matching from Go&#39;s http.Request to match the header against the value.
    &lt;/td&gt;
    &lt;td&gt;
     &lt;pre&gt;header.match(&#39;x-test&#39;, &#39;test-value&#39;)&lt;/pre&gt;
    &lt;/td&gt;
  &lt;/tr&gt;
  &lt;/tr&gt;
    &lt;th&gt;
      canonical
    &lt;/th&gt;
    &lt;td&gt;
      header.canonical(string) -&gt; string
    &lt;/td&gt;
    &lt;td&gt;
      Uses the canonical header matching from Go&#39;s http.Request to get the provided header name.
    &lt;/td&gt;
    &lt;td&gt;
     &lt;pre&gt;header.canonical(&#39;x-test&#39;)&lt;/pre&gt;
    &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;th&gt;
      truncate
    &lt;/th&gt;
    &lt;td&gt;
      &lt;pre&gt;&amp;lt;string&amp;gt;.truncate(uint) -&gt; string&lt;/pre&gt;
    &lt;/td&gt;
    &lt;td&gt;
      Truncates a string to no more than the specified length.
    &lt;/td&gt;
    &lt;td&gt;
     &lt;pre&gt;body.commit.sha.truncate(5)&lt;/pre&gt;
    &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;th&gt;
      split
    &lt;/th&gt;
    &lt;td&gt;
      &lt;pre&gt;&amp;lt;string&amp;gt;.split(string) -&gt; list(string)&lt;/pre&gt;
    &lt;/td&gt;
    &lt;td&gt;
      Splits a string on the provided separator value.
    &lt;/td&gt;
    &lt;td&gt;
     &lt;pre&gt;body.ref.split(&#39;/&#39;)&lt;/pre&gt;
    &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;th&gt;
      join
    &lt;/th&gt;
    &lt;td&gt;
      &lt;pre&gt;&amp;lt;list(string)&amp;gt;.join(string) -&gt; string&lt;/pre&gt;
    &lt;/td&gt;
    &lt;td&gt;
      Joins a list of strings on the provided separator value.
    &lt;/td&gt;
    &lt;td&gt;
     &lt;pre&gt;[&#39;body&#39;, &#39;refs&#39;, &#39;main&#39;].join(&#39;/&#39;)&lt;/pre&gt;
    &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;th&gt;
      decodeb64 &lt;b&gt;deprecated: please use base64.decode&lt;/b&gt;
    &lt;/th&gt;
    &lt;td&gt;
      &lt;pre&gt;&amp;lt;string&amp;gt;.decodeb64() -&gt; string&lt;/pre&gt;
    &lt;/td&gt;
    &lt;td&gt;
      Decodes a base64 encoded string.
    &lt;/td&gt;
    &lt;td&gt;
     &lt;pre&gt;body.message.data.decodeb64()&lt;/pre&gt;
    &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;th&gt;
     compareSecret
    &lt;/th&gt;
    &lt;td&gt;
      &lt;pre&gt;&amp;lt;string&amp;gt;.compareSecret(string, string, string) -&gt; bool&lt;/pre&gt;
    &lt;/td&gt;
    &lt;td&gt;
      Constant-time comparison of strings against secrets, this will fetch the secret using the combination of namespace/name and compare the token key to the string using a cryptographic constant-time comparison..&lt;p&gt;
      The event-listener service account must have access to the secret.
      The parameters to the function are 1. the key within the secret, 2. the secret name, and 3. the namespace for the secret (optional, defaults to the namespace of the EventListener).
    &lt;/td&gt;
    &lt;td&gt;
     &lt;pre&gt;header.canonical(&#39;X-Secret-Token&#39;).compareSecret(&#39;&#39;, &#39;secret-name&#39;, &#39;namespace&#39;)&lt;/pre&gt;
    &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;th&gt;
     compareSecret
    &lt;/th&gt;
    &lt;td&gt;
      &lt;pre&gt;&amp;lt;string&amp;gt;.compareSecret(string, string) -&gt; bool&lt;/pre&gt;
    &lt;/td&gt;
    &lt;td&gt;
     This is almost identical to the version above, but only requires two arguments, the namespace is assumed to be the namespace for the event-listener.
    &lt;/td&gt;
    &lt;td&gt;
     &lt;pre&gt;header.canonical(&#39;X-Secret-Token&#39;).compareSecret(&#39;key&#39;, &#39;secret-name&#39;)&lt;/pre&gt;
    &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;th&gt;
     parseJSON()
    &lt;/th&gt;
    &lt;td&gt;
     &lt;pre&gt;&amp;lt;string&amp;gt;.parseJSON() -&gt; map&amp;lt;string, dyn&amp;gt;&lt;/pre&gt;
    &lt;/td&gt;
    &lt;td&gt;
     This parses a string that contains a JSON body into a map which which can be subsequently used in other expressions.
    &lt;/td&gt;
    &lt;td&gt;
     &lt;pre&gt;&#39;{&#34;testing&#34;:&#34;value&#34;}&#39;.parseJSON().testing == &#34;value&#34;&lt;/pre&gt;
    &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;th&gt;
     parseYAML()
    &lt;/th&gt;
    &lt;td&gt;
     &lt;pre&gt;&amp;lt;string&amp;gt;.parseYAML() -&gt; map&amp;lt;string, dyn&amp;gt;&lt;/pre&gt;
    &lt;/td&gt;
    &lt;td&gt;
     This parses a string that contains a YAML body into a map which which can be subsequently used in other expressions.
    &lt;/td&gt;
    &lt;td&gt;
     &lt;pre&gt;&#39;key1: value1\nkey2: value2\n&#39;.parseYAML().key1 == &#34;value&#34;&lt;/pre&gt;
    &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;th&gt;
     parseURL()
    &lt;/th&gt;
    &lt;td&gt;
     &lt;pre&gt;&amp;lt;string&amp;gt;.parseURL() -&gt; map&amp;lt;string, dyn&amp;gt;&lt;/pre&gt;
    &lt;/td&gt;
    &lt;td&gt;
     This parses a string that contains a URL into a map with keys for the elements of the URL.&lt;br /&gt;
     The resulting map will contain the following keys for this URL &#34;https://user:pass@example.com/test/path?s=testing#first&#34;&lt;br /&gt;
     &lt;table&gt;
      &lt;tr&gt;&lt;th&gt;Field&lt;/th&gt;&lt;th&gt;Example&lt;/th&gt;
      &lt;tr&gt;&lt;td&gt;scheme&lt;/td&gt;&lt;td&gt;https&lt;/td&gt;&lt;/tr&gt;
      &lt;tr&gt;&lt;td&gt;host&lt;/td&gt;&lt;td&gt;example.com&lt;/td&gt;&lt;/tr&gt;
      &lt;tr&gt;&lt;td&gt;path&lt;/td&gt;&lt;td&gt;/test/path&lt;/td&gt;&lt;/tr&gt;
      &lt;tr&gt;&lt;td&gt;rawQuery&lt;/td&gt;&lt;td&gt;s=testing&lt;/td&gt;&lt;/tr&gt;
      &lt;tr&gt;&lt;td&gt;fragment&lt;/td&gt;&lt;td&gt;first&lt;/td&gt;&lt;/tr&gt;
      &lt;tr&gt;&lt;td&gt;query&lt;/td&gt;&lt;td&gt;{&#34;s&#34;: &#34;testing&#34;}&lt;/td&gt;&lt;/tr&gt;
      &lt;tr&gt;&lt;td&gt;queryStrings&lt;/td&gt;&lt;td&gt;{&#34;s&#34;: [&#34;testing&#34;]}&lt;/td&gt;&lt;/tr&gt;
      &lt;tr&gt;&lt;td&gt;auth&lt;/td&gt;&lt;td&gt;{&#34;username&#34;: &#34;user&#34;, &#34;password&#34;: &#34;pass&#34;}&lt;/td&gt;&lt;/tr&gt;
     &lt;/table&gt;
     Note the difference between &lt;b&gt;query&lt;/b&gt; and &lt;b&gt;queryStrings&lt;/b&gt;, in
&lt;b&gt;query&lt;/b&gt;, multiple query params with the same name would be comma separated, for
the case where a single string is provided, this will just be the single string
value.  For &lt;b&gt;queryString&lt;/b&gt; the query param values are provided as a list,
which can be accessed by indexing.
    &lt;/td&gt;
    &lt;td&gt;
     &lt;pre&gt;&#39;https://example.com/test?query=testing&#39;.parseURL().query[&#39;query&#39;] == &#34;testing&#34;&lt;/pre&gt;
    &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;th&gt;
     marshalJSON()
    &lt;/th&gt;
    &lt;td&gt;
     &lt;pre&gt;&amp;lt;jsonObjectOrList&amp;gt;.marshalJSON() -&gt; &amp;lt;string&amp;gt;&lt;/pre&gt;
    &lt;/td&gt;
    &lt;td&gt;
     Returns the JSON encoding of &#39;jsonObjectOrList&#39; as a string.
    &lt;/td&gt;
    &lt;td&gt;
     &lt;pre&gt;{&#34;testing&#34;:&#34;value&#34;}.marshalJSON() == &#34;{\&#34;testing\&#34;: \&#34;value\&#34;}&#34;&lt;/pre&gt;
    &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;th&gt;
     first()
    &lt;/th&gt;
    &lt;td&gt;
     &lt;pre&gt;&amp;lt;jsonArray&amp;gt;.first() -&gt; &amp;lt;jsonObject&amp;gt;&lt;/pre&gt;
    &lt;/td&gt;
    &lt;td&gt;
     Returns the first element in the array.
    &lt;/td&gt;
    &lt;td&gt;
     &lt;pre&gt;[1, 2, 3, 4, 5].first() == 1&lt;/pre&gt;
    &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;th&gt;
     last()
    &lt;/th&gt;
    &lt;td&gt;
     &lt;pre&gt;&amp;lt;jsonArray&amp;gt;.last() -&gt; &amp;lt;jsonObject&amp;gt;&lt;/pre&gt;
    &lt;/td&gt;
    &lt;td&gt;
     Returns the last element in the array.
    &lt;/td&gt;
    &lt;td&gt;
     &lt;pre&gt;[1, 2, 3, 4, 5].last() == 5&lt;/pre&gt;
    &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;th&gt;
     translate()
    &lt;/th&gt;
    &lt;td&gt;
     &lt;pre&gt;&amp;lt;string&amp;gt;.translate(string, string) -&gt; &amp;lt;string&amp;gt;&lt;/pre&gt;
    &lt;/td&gt;
    &lt;td&gt;
     Uses a regular expression to replace characters from the source string with characters from the replacements.
    &lt;/td&gt;
    &lt;td&gt;
     &lt;pre&gt;&#34;This is $an Invalid5String &#34;.translate(&#34;[^a-z0-9]+&#34;, &#34;&#34;) == &#34;hisisannvalid5tring&#34;&lt;/pre&gt;&lt;br /&gt;
     &lt;pre&gt;&#34;This is $an Invalid5String &#34;.translate(&#34;[^a-z0-9]+&#34;, &#34;ABC&#34;) == &#34;ABChisABCisABCanABCnvalid5ABCtring&#34;&lt;/pre&gt;
    &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;th&gt;
     lowerAscii()
    &lt;/th&gt;
    &lt;td&gt;
     &lt;pre&gt;&amp;lt;string&amp;gt;.lowerAscii() -&gt; &amp;lt;string&amp;gt;&lt;/pre&gt;
    &lt;/td&gt;
    &lt;td&gt;
     Returns a new string where all ASCII characters are lower-cased.
    &lt;/td&gt;
    &lt;td&gt;
     &lt;pre&gt;&#34;TacoCat&#34;.lowerAscii() == &#34;tacocat&#34;&lt;/pre&gt;&lt;br /&gt;
     &lt;pre&gt;&#34;TacoCÆt Xii&#34;.lowerAscii() == &#34;tacocÆt xii&#34;&lt;/pre&gt;
    &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;th&gt;
     upperAscii()
    &lt;/th&gt;
    &lt;td&gt;
     &lt;pre&gt;&amp;lt;string&amp;gt;.upperAscii() -&gt; &amp;lt;string&amp;gt;&lt;/pre&gt;
    &lt;/td&gt;
    &lt;td&gt;
     Returns a new string where all ASCII characters are upper-cased.
    &lt;/td&gt;
    &lt;td&gt;
     &lt;pre&gt;&#34;TacoCat&#34;.upperAscii() == &#34;TACOCAT&#34;&lt;/pre&gt;&lt;br /&gt;
     &lt;pre&gt;&#34;TacoCÆt Xii&#34;.upperAscii() == &#34;TACOCÆT XII&#34;&lt;/pre&gt;
    &lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
&lt;h2 id=&#34;troubleshooting-cel-expressions&#34;&gt;Troubleshooting CEL expressions&lt;/h2&gt;
&lt;p&gt;You can use the &lt;code&gt;cel-eval&lt;/code&gt; tool to evaluate your CEL expressions against a specific HTTP request.&lt;/p&gt;
&lt;p&gt;To install the &lt;code&gt;cel-eval&lt;/code&gt; tool use the following command:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ go install github.com/tektoncd/triggers/cmd/cel-eval@latest
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Below is an example of using the tool to evaluate a CEL expression:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ cat testdata/expression.txt
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;body.test.nested &lt;span style=&#34;color:#555&#34;&gt;==&lt;/span&gt; &lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;value&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ cat testdata/http.txt
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;POST /foo HTTP/1.1
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Content-Length: &lt;span style=&#34;color:#f60&#34;&gt;29&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Content-Type: application/json
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;X-Header: tacocat
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#555&#34;&gt;{&lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;test&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#555&#34;&gt;{&lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;nested&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;value&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#555&#34;&gt;}}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ cel-eval -e testdata/expression.txt -r testdata/http.txt
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#366&#34;&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
      </description>
    </item>
    
    <item>
      <title>Vault: </title>
      <link>https://deploy-preview-726--tekton.netlify.app/vault/triggers-v0.32.x-lts/triggers/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://deploy-preview-726--tekton.netlify.app/vault/triggers-v0.32.x-lts/triggers/</guid>
      <description>
        
        
        &lt;h1 id=&#34;triggers&#34;&gt;&lt;code&gt;Triggers&lt;/code&gt;&lt;/h1&gt;
&lt;p&gt;A &lt;code&gt;Trigger&lt;/code&gt; specifies what happens when the &lt;a href=&#34;https://deploy-preview-726--tekton.netlify.app/vault/Triggers-v0.32.x-LTS/eventlisteners/&#34;&gt;&lt;code&gt;EventListener&lt;/code&gt;&lt;/a&gt; detects an event. A &lt;code&gt;Trigger&lt;/code&gt; specifies a &lt;a href=&#34;https://deploy-preview-726--tekton.netlify.app/vault/Triggers-v0.32.x-LTS/triggertemplates/&#34;&gt;&lt;code&gt;TriggerTemplate&lt;/code&gt;&lt;/a&gt;,
a &lt;a href=&#34;https://deploy-preview-726--tekton.netlify.app/vault/Triggers-v0.32.x-LTS/triggerbindings/&#34;&gt;&lt;code&gt;TriggerBinding&lt;/code&gt;&lt;/a&gt;, and optionally an &lt;a href=&#34;https://deploy-preview-726--tekton.netlify.app/vault/Triggers-v0.32.x-LTS/interceptors/&#34;&gt;&lt;code&gt;Interceptor&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;structure-of-a-trigger&#34;&gt;Structure of a &lt;code&gt;Trigger&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;When creating a &lt;code&gt;Trigger&lt;/code&gt; definition you must specify the required fields and can also specify any of the optional fields listed below:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Required:
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://kubernetes.io/docs/concepts/overview/working-with-objects/kubernetes-objects/#required-fields&#34;&gt;&lt;code&gt;apiVersion&lt;/code&gt;&lt;/a&gt; - Specifies the API version; for example &lt;code&gt;triggers.tekton.dev/v1alpha1&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://kubernetes.io/docs/concepts/overview/working-with-objects/kubernetes-objects/#required-fields&#34;&gt;&lt;code&gt;kind&lt;/code&gt;&lt;/a&gt; - Specifies that this resource object is a &lt;code&gt;Trigger&lt;/code&gt; object.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://kubernetes.io/docs/concepts/overview/working-with-objects/kubernetes-objects/#required-fields&#34;&gt;&lt;code&gt;metadata&lt;/code&gt;&lt;/a&gt; - Specifies metadata to uniquely identify this &lt;code&gt;Trigger&lt;/code&gt; object; for example a &lt;code&gt;name&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://kubernetes.io/docs/concepts/overview/working-with-objects/kubernetes-objects/#required-fields&#34;&gt;&lt;code&gt;spec&lt;/code&gt;&lt;/a&gt; - Specifies the configuration information for this Trigger object, including:
&lt;ul&gt;
&lt;li&gt;[&lt;code&gt;bindings&lt;/code&gt;] - (Optional) Specifies a list of field bindings; each binding can either reference an existing &lt;code&gt;TriggerBinding&lt;/code&gt; or embedded a &lt;code&gt;TriggerBinding&lt;/code&gt;
definition using a &lt;code&gt;name&lt;/code&gt;/&lt;code&gt;value&lt;/code&gt; pair.&lt;/li&gt;
&lt;li&gt;[&lt;code&gt;template&lt;/code&gt;] - Specifies the corresponding &lt;code&gt;TriggerTemplate&lt;/code&gt; either as a reference as an embedded &lt;code&gt;TriggerTemplate&lt;/code&gt; definition.&lt;/li&gt;
&lt;li&gt;[&lt;code&gt;interceptors&lt;/code&gt;] - (Optional) specifies one or more &lt;code&gt;Interceptors&lt;/code&gt; that will process the payload data before passing it to the &lt;code&gt;TriggerTemplate&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ref&lt;/code&gt; - a reference to a &lt;a href=&#34;https://deploy-preview-726--tekton.netlify.app/vault/Triggers-v0.32.x-LTS/clusterinterceptors/&#34;&gt;&lt;code&gt;ClusterInterceptor&lt;/code&gt;&lt;/a&gt; or &lt;a href=&#34;https://deploy-preview-726--tekton.netlify.app/vault/Triggers-v0.32.x-LTS/namespacedinterceptors/&#34;&gt;&lt;code&gt;Interceptor&lt;/code&gt;&lt;/a&gt; object with the following fields:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;name&lt;/code&gt; - the name of the referenced &lt;code&gt;ClusterInterceptor&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;kind&lt;/code&gt; - (Optional) specifies that whether the referenced Kubernetes object is a &lt;code&gt;ClusterInterceptor&lt;/code&gt; object or &lt;code&gt;NamespacedInterceptor&lt;/code&gt;. Default value is &lt;code&gt;ClusterInterceptor&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;[&lt;code&gt;serviceAccountName&lt;/code&gt;] - (Optional) Specifies the &lt;code&gt;ServiceAccount&lt;/code&gt; to supply to the &lt;code&gt;EventListener&lt;/code&gt; to instantiate/execute the target resources.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Below is an example &lt;code&gt;Trigger&lt;/code&gt; definition:&lt;/p&gt;
&lt;!-- FILE: examples/v1beta1/trigger-ref/trigger.yaml --&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-YAML&#34; data-lang=&#34;YAML&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;apiVersion&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;triggers.tekton.dev/v1beta1&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;kind&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;Trigger&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;metadata&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;trigger&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;spec&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;interceptors&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;ref&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;cel&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;params&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;filter&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;value&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;header.match(&amp;#39;X-GitHub-Event&amp;#39;, &amp;#39;pull_request&amp;#39;)&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;overlays&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;value&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;key&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;extensions.truncated_sha&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;              &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;expression&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;body.pull_request.head.sha.truncate(7)&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;bindings&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;ref&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;pipeline-binding&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;template&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;ref&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;pipeline-template&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;specifying-the-corresponding-triggertemplate&#34;&gt;Specifying the corresponding &lt;code&gt;TriggerTemplate&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;In the &lt;code&gt;template&lt;/code&gt; field,  you can do one of the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Use the &lt;code&gt;name&lt;/code&gt; parameter to reference an external &lt;code&gt;TriggerTemplate&lt;/code&gt; object, or&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Use the &lt;code&gt;spec&lt;/code&gt; parameter to directly embed a &lt;code&gt;TriggerTemplate&lt;/code&gt; definition.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For example:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#09f;font-style:italic&#34;&gt;# Example: embedded TriggerTemplate definition&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;triggers&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;my-trigger&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;template&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;spec&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;params&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;          &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;my-param-name&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;resourcetemplates&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;apiVersion&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;tekton.dev/v1beta1&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;kind&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;TaskRun&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;metadata&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;generateName&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;pr-run-&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;spec&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;taskSpec&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;              &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;steps&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;              &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;image&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;ubuntu&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;                &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;script&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;echo &amp;#34;hello there&amp;#34;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
      </description>
    </item>
    
    <item>
      <title>Vault: </title>
      <link>https://deploy-preview-726--tekton.netlify.app/vault/triggers-v0.32.x-lts/events/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://deploy-preview-726--tekton.netlify.app/vault/triggers-v0.32.x-lts/events/</guid>
      <description>
        
        
        &lt;h1 id=&#34;events-in-tekton-triggers&#34;&gt;Events in Tekton Triggers&lt;/h1&gt;
&lt;p&gt;Triggers event controller emits &lt;a href=&#34;https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#event-v1-core&#34;&gt;Kubernetes events&lt;/a&gt;
when EventListener get request to process &lt;code&gt;Triggers&lt;/code&gt;. This allows you to monitor and react to what&amp;rsquo;s happening during execution by
retrieving those events using the &lt;code&gt;kubectl get events&lt;/code&gt; command.&lt;/p&gt;
&lt;h2 id=&#34;events-in-eventlistener&#34;&gt;Events in &lt;code&gt;EventListener&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;EventListener&lt;/code&gt; emit events for the following &lt;code&gt;Reasons&lt;/code&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Started&lt;/code&gt;: emitted the first time when the &lt;code&gt;EventListener&lt;/code&gt; received request.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Succeeded&lt;/code&gt;: emitted when eventlistener received request and process all triggers request.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Done&lt;/code&gt;: emitted when its done with eventlistener handler.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Failed&lt;/code&gt;: emitted if triggers failed to process the request.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;events-format&#34;&gt;Events format&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th style=&#34;text-align:left&#34;&gt;Resource&lt;/th&gt;
&lt;th style=&#34;text-align:center&#34;&gt;Event&lt;/th&gt;
&lt;th style=&#34;text-align:left&#34;&gt;Event Type&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;&lt;code&gt;EventListener&lt;/code&gt;&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;&lt;code&gt;Started&lt;/code&gt;&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;&lt;code&gt;dev.tekton.event.triggers.started.v1&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;&lt;code&gt;EventListener&lt;/code&gt;&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;&lt;code&gt;Succeed&lt;/code&gt;&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;&lt;code&gt;dev.tekton.event.triggers.successful.v1&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;&lt;code&gt;EventListener&lt;/code&gt;&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;&lt;code&gt;Done&lt;/code&gt;&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;&lt;code&gt;dev.tekton.event.triggers.done.v1&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;&lt;code&gt;EventListener&lt;/code&gt;&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;&lt;code&gt;Failed&lt;/code&gt;&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;&lt;code&gt;dev.tekton.event.triggers.failed.v1&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;note&#34;&gt;Note&lt;/h2&gt;
&lt;p&gt;By default Kubernetes events are disabled for EventListener.&lt;/p&gt;
&lt;p&gt;To enable Kubernetes events add/update controller.yaml with below arg&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;spec&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;serviceAccountName&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;tekton-triggers-controller&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;containers&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;tekton-triggers-controller&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;image&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;ko://github.com/tektoncd/triggers/cmd/controller&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;args&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;[&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;-el-events&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;enable&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Default value is &lt;strong&gt;disable&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;To view the events execute below command&lt;/p&gt;
&lt;p&gt;&lt;code&gt;kubectl get events&lt;/code&gt;&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Vault: Triggers API</title>
      <link>https://deploy-preview-726--tekton.netlify.app/vault/triggers-v0.32.x-lts/triggers-api/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://deploy-preview-726--tekton.netlify.app/vault/triggers-v0.32.x-lts/triggers-api/</guid>
      <description>
        
        
        &lt;p&gt;Packages:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href=&#34;#triggers.tekton.dev%2fv1alpha1&#34;&gt;triggers.tekton.dev/v1alpha1&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;#triggers.tekton.dev%2fv1beta1&#34;&gt;triggers.tekton.dev/v1beta1&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;triggers.tekton.dev/v1alpha1&#34;&gt;triggers.tekton.dev/v1alpha1&lt;/h2&gt;
&lt;div&gt;
&lt;p&gt;Package v1alpha1 contains API Schema definitions for the triggers v1alpha1 API group&lt;/p&gt;
&lt;/div&gt;
Resource Types:
&lt;ul&gt;&lt;li&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.ClusterTriggerBinding&#34;&gt;ClusterTriggerBinding&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.EventListener&#34;&gt;EventListener&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.Trigger&#34;&gt;Trigger&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.TriggerBinding&#34;&gt;TriggerBinding&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.TriggerTemplate&#34;&gt;TriggerTemplate&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1alpha1.ClusterTriggerBinding&#34;&gt;ClusterTriggerBinding
&lt;/h3&gt;
&lt;div&gt;
&lt;p&gt;ClusterTriggerBinding is a TriggerBinding with a cluster scope.
ClusterTriggerBindings are used to represent TriggerBindings that
should be publicly addressable from any namespace in the cluster.&lt;/p&gt;
&lt;/div&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;apiVersion&lt;/code&gt;&lt;br/&gt;
string&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;
triggers.tekton.dev/v1alpha1
&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;kind&lt;/code&gt;&lt;br/&gt;
string
&lt;/td&gt;
&lt;td&gt;&lt;code&gt;ClusterTriggerBinding&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;metadata&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.22/#objectmeta-v1-meta&#34;&gt;
Kubernetes meta/v1.ObjectMeta
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;em&gt;(Optional)&lt;/em&gt;
Refer to the Kubernetes API documentation for the fields of the
&lt;code&gt;metadata&lt;/code&gt; field.
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;spec&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.TriggerBindingSpec&#34;&gt;
TriggerBindingSpec
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;em&gt;(Optional)&lt;/em&gt;
&lt;p&gt;Spec holds the desired state of the ClusterTriggerBinding from the client&lt;/p&gt;
&lt;br/&gt;
&lt;br/&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;params&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.Param&#34;&gt;
[]Param
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Params defines the parameter mapping from the given input event.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;status&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.TriggerBindingStatus&#34;&gt;
TriggerBindingStatus
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;em&gt;(Optional)&lt;/em&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1alpha1.EventListener&#34;&gt;EventListener
&lt;/h3&gt;
&lt;div&gt;
&lt;p&gt;EventListener exposes a service to accept HTTP event payloads.&lt;/p&gt;
&lt;/div&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;apiVersion&lt;/code&gt;&lt;br/&gt;
string&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;
triggers.tekton.dev/v1alpha1
&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;kind&lt;/code&gt;&lt;br/&gt;
string
&lt;/td&gt;
&lt;td&gt;&lt;code&gt;EventListener&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;metadata&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.22/#objectmeta-v1-meta&#34;&gt;
Kubernetes meta/v1.ObjectMeta
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;em&gt;(Optional)&lt;/em&gt;
Refer to the Kubernetes API documentation for the fields of the
&lt;code&gt;metadata&lt;/code&gt; field.
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;spec&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.EventListenerSpec&#34;&gt;
EventListenerSpec
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;em&gt;(Optional)&lt;/em&gt;
&lt;p&gt;Spec holds the desired state of the EventListener from the client&lt;/p&gt;
&lt;br/&gt;
&lt;br/&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;serviceAccountName&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
string
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;triggers&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.EventListenerTrigger&#34;&gt;
[]EventListenerTrigger
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;namespaceSelector&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.NamespaceSelector&#34;&gt;
NamespaceSelector
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;labelSelector&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.22/#labelselector-v1-meta&#34;&gt;
Kubernetes meta/v1.LabelSelector
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;resources&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.Resources&#34;&gt;
Resources
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;status&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.EventListenerStatus&#34;&gt;
EventListenerStatus
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;em&gt;(Optional)&lt;/em&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1alpha1.Trigger&#34;&gt;Trigger
&lt;/h3&gt;
&lt;div&gt;
&lt;p&gt;Trigger defines a mapping of an input event to parameters. This is used
to extract information from events to be passed to TriggerTemplates within a
Trigger.&lt;/p&gt;
&lt;/div&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;apiVersion&lt;/code&gt;&lt;br/&gt;
string&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;
triggers.tekton.dev/v1alpha1
&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;kind&lt;/code&gt;&lt;br/&gt;
string
&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Trigger&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;metadata&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.22/#objectmeta-v1-meta&#34;&gt;
Kubernetes meta/v1.ObjectMeta
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;em&gt;(Optional)&lt;/em&gt;
Refer to the Kubernetes API documentation for the fields of the
&lt;code&gt;metadata&lt;/code&gt; field.
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;spec&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.TriggerSpec&#34;&gt;
TriggerSpec
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;em&gt;(Optional)&lt;/em&gt;
&lt;p&gt;Spec holds the desired state of the Trigger&lt;/p&gt;
&lt;br/&gt;
&lt;br/&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;bindings&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.TriggerSpecBinding&#34;&gt;
[]TriggerSpecBinding
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;template&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.TriggerSpecTemplate&#34;&gt;
TriggerSpecTemplate
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;name&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
string
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;em&gt;(Optional)&lt;/em&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;interceptors&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.TriggerInterceptor&#34;&gt;
[]TriggerInterceptor
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;serviceAccountName&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
string
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;em&gt;(Optional)&lt;/em&gt;
&lt;p&gt;ServiceAccountName optionally associates credentials with each trigger;
Unlike EventListeners, this should be scoped to the same namespace
as the Trigger itself&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1alpha1.TriggerBinding&#34;&gt;TriggerBinding
&lt;/h3&gt;
&lt;div&gt;
&lt;p&gt;TriggerBinding defines a mapping of an input event to parameters. This is used
to extract information from events to be passed to TriggerTemplates within a
Trigger.&lt;/p&gt;
&lt;/div&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;apiVersion&lt;/code&gt;&lt;br/&gt;
string&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;
triggers.tekton.dev/v1alpha1
&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;kind&lt;/code&gt;&lt;br/&gt;
string
&lt;/td&gt;
&lt;td&gt;&lt;code&gt;TriggerBinding&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;metadata&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.22/#objectmeta-v1-meta&#34;&gt;
Kubernetes meta/v1.ObjectMeta
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;em&gt;(Optional)&lt;/em&gt;
Refer to the Kubernetes API documentation for the fields of the
&lt;code&gt;metadata&lt;/code&gt; field.
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;spec&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.TriggerBindingSpec&#34;&gt;
TriggerBindingSpec
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;em&gt;(Optional)&lt;/em&gt;
&lt;p&gt;Spec holds the desired state of the TriggerBinding&lt;/p&gt;
&lt;br/&gt;
&lt;br/&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;params&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.Param&#34;&gt;
[]Param
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Params defines the parameter mapping from the given input event.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;status&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.TriggerBindingStatus&#34;&gt;
TriggerBindingStatus
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;em&gt;(Optional)&lt;/em&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1alpha1.TriggerTemplate&#34;&gt;TriggerTemplate
&lt;/h3&gt;
&lt;div&gt;
&lt;p&gt;TriggerTemplate takes parameters and uses them to create CRDs&lt;/p&gt;
&lt;/div&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;apiVersion&lt;/code&gt;&lt;br/&gt;
string&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;
triggers.tekton.dev/v1alpha1
&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;kind&lt;/code&gt;&lt;br/&gt;
string
&lt;/td&gt;
&lt;td&gt;&lt;code&gt;TriggerTemplate&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;metadata&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.22/#objectmeta-v1-meta&#34;&gt;
Kubernetes meta/v1.ObjectMeta
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;em&gt;(Optional)&lt;/em&gt;
Refer to the Kubernetes API documentation for the fields of the
&lt;code&gt;metadata&lt;/code&gt; field.
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;spec&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.TriggerTemplateSpec&#34;&gt;
TriggerTemplateSpec
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;em&gt;(Optional)&lt;/em&gt;
&lt;p&gt;Spec holds the desired state of the TriggerTemplate from the client&lt;/p&gt;
&lt;br/&gt;
&lt;br/&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;params&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.ParamSpec&#34;&gt;
[]ParamSpec
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;resourcetemplates&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.TriggerResourceTemplate&#34;&gt;
[]TriggerResourceTemplate
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;status&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.TriggerTemplateStatus&#34;&gt;
TriggerTemplateStatus
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;em&gt;(Optional)&lt;/em&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1alpha1.BitbucketInterceptor&#34;&gt;BitbucketInterceptor
&lt;/h3&gt;
&lt;p&gt;
(&lt;em&gt;Appears on:&lt;/em&gt;&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.TriggerInterceptor&#34;&gt;TriggerInterceptor&lt;/a&gt;)
&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;BitbucketInterceptor provides a webhook to intercept and pre-process events&lt;/p&gt;
&lt;/div&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;secretRef&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.SecretRef&#34;&gt;
SecretRef
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;eventTypes&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
[]string
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1alpha1.CELInterceptor&#34;&gt;CELInterceptor
&lt;/h3&gt;
&lt;p&gt;
(&lt;em&gt;Appears on:&lt;/em&gt;&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.TriggerInterceptor&#34;&gt;TriggerInterceptor&lt;/a&gt;)
&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;CELInterceptor provides a webhook to intercept and pre-process events&lt;/p&gt;
&lt;/div&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;filter&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
string
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;overlays&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.CELOverlay&#34;&gt;
[]CELOverlay
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1alpha1.CELOverlay&#34;&gt;CELOverlay
&lt;/h3&gt;
&lt;p&gt;
(&lt;em&gt;Appears on:&lt;/em&gt;&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.CELInterceptor&#34;&gt;CELInterceptor&lt;/a&gt;)
&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;CELOverlay provides a way to modify the request body using DeprecatedCEL expressions&lt;/p&gt;
&lt;/div&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;key&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
string
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;expression&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
string
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1alpha1.ClientConfig&#34;&gt;ClientConfig
&lt;/h3&gt;
&lt;p&gt;
(&lt;em&gt;Appears on:&lt;/em&gt;&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.ClusterInterceptorSpec&#34;&gt;ClusterInterceptorSpec&lt;/a&gt;, &lt;a href=&#34;#triggers.tekton.dev/v1alpha1.InterceptorSpec&#34;&gt;InterceptorSpec&lt;/a&gt;)
&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;ClientConfig describes how a client can communicate with the Interceptor&lt;/p&gt;
&lt;/div&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;caBundle&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
[]byte
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;CaBundle is a PEM encoded CA bundle which will be used to validate the clusterinterceptor server certificate&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;url&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;https://pkg.go.dev/knative.dev/pkg/apis#URL&#34;&gt;
knative.dev/pkg/apis.URL
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;URL is a fully formed URL pointing to the interceptor
Mutually exclusive with Service&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;service&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.ServiceReference&#34;&gt;
ServiceReference
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Service is a reference to a Service object where the interceptor is running
Mutually exclusive with URL&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1alpha1.ClusterInterceptor&#34;&gt;ClusterInterceptor
&lt;/h3&gt;
&lt;div&gt;
&lt;p&gt;ClusterInterceptor describes a pluggable interceptor including configuration
such as the fields it accepts and its deployment address. The type is based on
the Validating/MutatingWebhookConfiguration types for configuring AdmissionWebhooks&lt;/p&gt;
&lt;/div&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;metadata&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.22/#objectmeta-v1-meta&#34;&gt;
Kubernetes meta/v1.ObjectMeta
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;em&gt;(Optional)&lt;/em&gt;
Refer to the Kubernetes API documentation for the fields of the
&lt;code&gt;metadata&lt;/code&gt; field.
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;spec&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.ClusterInterceptorSpec&#34;&gt;
ClusterInterceptorSpec
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;br/&gt;
&lt;br/&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;clientConfig&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.ClientConfig&#34;&gt;
ClientConfig
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;status&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.ClusterInterceptorStatus&#34;&gt;
ClusterInterceptorStatus
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;em&gt;(Optional)&lt;/em&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1alpha1.ClusterInterceptorSpec&#34;&gt;ClusterInterceptorSpec
&lt;/h3&gt;
&lt;p&gt;
(&lt;em&gt;Appears on:&lt;/em&gt;&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.ClusterInterceptor&#34;&gt;ClusterInterceptor&lt;/a&gt;)
&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;ClusterInterceptorSpec describes the Spec for an ClusterInterceptor&lt;/p&gt;
&lt;/div&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;clientConfig&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.ClientConfig&#34;&gt;
ClientConfig
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1alpha1.ClusterInterceptorStatus&#34;&gt;ClusterInterceptorStatus
&lt;/h3&gt;
&lt;p&gt;
(&lt;em&gt;Appears on:&lt;/em&gt;&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.ClusterInterceptor&#34;&gt;ClusterInterceptor&lt;/a&gt;)
&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;ClusterInterceptorStatus holds the status of the ClusterInterceptor&lt;/p&gt;
&lt;/div&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;Status&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;https://pkg.go.dev/knative.dev/pkg/apis/duck/v1#Status&#34;&gt;
knative.dev/pkg/apis/duck/v1.Status
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;
(Members of &lt;code&gt;Status&lt;/code&gt; are embedded into this type.)
&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;AddressStatus&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;https://pkg.go.dev/knative.dev/pkg/apis/duck/v1#AddressStatus&#34;&gt;
knative.dev/pkg/apis/duck/v1.AddressStatus
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;
(Members of &lt;code&gt;AddressStatus&lt;/code&gt; are embedded into this type.)
&lt;/p&gt;
&lt;p&gt;ClusterInterceptor is Addressable and exposes the URL where the Interceptor is running&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1alpha1.CustomResource&#34;&gt;CustomResource
&lt;/h3&gt;
&lt;p&gt;
(&lt;em&gt;Appears on:&lt;/em&gt;&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.Resources&#34;&gt;Resources&lt;/a&gt;)
&lt;/p&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;RawExtension&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
k8s.io/apimachinery/pkg/runtime.RawExtension
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;
(Members of &lt;code&gt;RawExtension&lt;/code&gt; are embedded into this type.)
&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1alpha1.EventInterceptor&#34;&gt;EventInterceptor
&lt;/h3&gt;
&lt;p&gt;
(&lt;em&gt;Appears on:&lt;/em&gt;&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.EventListenerTrigger&#34;&gt;EventListenerTrigger&lt;/a&gt;)
&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;EventInterceptor provides a hook to intercept and pre-process events&lt;/p&gt;
&lt;/div&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1alpha1.EventListenerBinding&#34;&gt;EventListenerBinding
&lt;/h3&gt;
&lt;p&gt;
(&lt;em&gt;Appears on:&lt;/em&gt;&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.EventListenerTrigger&#34;&gt;EventListenerTrigger&lt;/a&gt;)
&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;EventListenerBinding refers to a particular TriggerBinding or ClusterTriggerBindingresource.&lt;/p&gt;
&lt;/div&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1alpha1.EventListenerConfig&#34;&gt;EventListenerConfig
&lt;/h3&gt;
&lt;p&gt;
(&lt;em&gt;Appears on:&lt;/em&gt;&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.EventListenerStatus&#34;&gt;EventListenerStatus&lt;/a&gt;)
&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;EventListenerConfig stores configuration for resources generated by the
EventListener&lt;/p&gt;
&lt;/div&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;generatedName&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
string
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;GeneratedResourceName is the name given to all resources reconciled by
the EventListener&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1alpha1.EventListenerSpec&#34;&gt;EventListenerSpec
&lt;/h3&gt;
&lt;p&gt;
(&lt;em&gt;Appears on:&lt;/em&gt;&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.EventListener&#34;&gt;EventListener&lt;/a&gt;)
&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;EventListenerSpec defines the desired state of the EventListener, represented
by a list of Triggers.&lt;/p&gt;
&lt;/div&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;serviceAccountName&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
string
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;triggers&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.EventListenerTrigger&#34;&gt;
[]EventListenerTrigger
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;namespaceSelector&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.NamespaceSelector&#34;&gt;
NamespaceSelector
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;labelSelector&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.22/#labelselector-v1-meta&#34;&gt;
Kubernetes meta/v1.LabelSelector
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;resources&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.Resources&#34;&gt;
Resources
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1alpha1.EventListenerStatus&#34;&gt;EventListenerStatus
&lt;/h3&gt;
&lt;p&gt;
(&lt;em&gt;Appears on:&lt;/em&gt;&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.EventListener&#34;&gt;EventListener&lt;/a&gt;)
&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;EventListenerStatus holds the status of the EventListener&lt;/p&gt;
&lt;/div&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;Status&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;https://pkg.go.dev/knative.dev/pkg/apis/duck/v1#Status&#34;&gt;
knative.dev/pkg/apis/duck/v1.Status
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;
(Members of &lt;code&gt;Status&lt;/code&gt; are embedded into this type.)
&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;AddressStatus&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;https://pkg.go.dev/knative.dev/pkg/apis/duck/v1alpha1#AddressStatus&#34;&gt;
knative.dev/pkg/apis/duck/v1alpha1.AddressStatus
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;
(Members of &lt;code&gt;AddressStatus&lt;/code&gt; are embedded into this type.)
&lt;/p&gt;
&lt;p&gt;EventListener is Addressable. It currently exposes the service DNS
address of the the EventListener sink&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;configuration&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.EventListenerConfig&#34;&gt;
EventListenerConfig
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Configuration stores configuration for the EventListener service&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1alpha1.EventListenerTemplate&#34;&gt;EventListenerTemplate
&lt;/h3&gt;
&lt;p&gt;
(&lt;em&gt;Appears on:&lt;/em&gt;&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.EventListenerTrigger&#34;&gt;EventListenerTrigger&lt;/a&gt;)
&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;EventListenerTemplate refers to a particular TriggerTemplate resource.&lt;/p&gt;
&lt;/div&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1alpha1.EventListenerTrigger&#34;&gt;EventListenerTrigger
&lt;/h3&gt;
&lt;p&gt;
(&lt;em&gt;Appears on:&lt;/em&gt;&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.EventListenerSpec&#34;&gt;EventListenerSpec&lt;/a&gt;)
&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;EventListenerTrigger represents a connection between TriggerBinding, Params,
and TriggerTemplate; TriggerBinding provides extracted values for
TriggerTemplate to then create resources from. TriggerRef can also be
provided instead of TriggerBinding, Interceptors and TriggerTemplate&lt;/p&gt;
&lt;/div&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;bindings&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.EventListenerBinding&#34;&gt;
[]EventListenerBinding
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;template&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.EventListenerTemplate&#34;&gt;
EventListenerTemplate
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;triggerRef&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
string
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;name&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
string
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;em&gt;(Optional)&lt;/em&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;interceptors&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.EventInterceptor&#34;&gt;
[]EventInterceptor
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;serviceAccountName&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
string
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;em&gt;(Optional)&lt;/em&gt;
&lt;p&gt;ServiceAccountName optionally associates credentials with each trigger;
more granular authorization for
who is allowed to utilize the associated pipeline
vs. defaulting to whatever permissions are associated
with the entire EventListener and associated sink facilitates
multi-tenant model based scenarios&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1alpha1.GitHubInterceptor&#34;&gt;GitHubInterceptor
&lt;/h3&gt;
&lt;p&gt;
(&lt;em&gt;Appears on:&lt;/em&gt;&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.TriggerInterceptor&#34;&gt;TriggerInterceptor&lt;/a&gt;)
&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;GitHubInterceptor provides a webhook to intercept and pre-process events&lt;/p&gt;
&lt;/div&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;secretRef&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.SecretRef&#34;&gt;
SecretRef
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;eventTypes&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
[]string
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1alpha1.GitLabInterceptor&#34;&gt;GitLabInterceptor
&lt;/h3&gt;
&lt;p&gt;
(&lt;em&gt;Appears on:&lt;/em&gt;&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.TriggerInterceptor&#34;&gt;TriggerInterceptor&lt;/a&gt;)
&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;GitLabInterceptor provides a webhook to intercept and pre-process events&lt;/p&gt;
&lt;/div&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;secretRef&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.SecretRef&#34;&gt;
SecretRef
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;eventTypes&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
[]string
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1alpha1.Interceptor&#34;&gt;Interceptor
&lt;/h3&gt;
&lt;div&gt;
&lt;p&gt;Interceptor describes a pluggable interceptor including configuration
such as the fields it accepts and its deployment address. The type is based on
the Validating/MutatingWebhookConfiguration types for configuring AdmissionWebhooks&lt;/p&gt;
&lt;/div&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;metadata&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.22/#objectmeta-v1-meta&#34;&gt;
Kubernetes meta/v1.ObjectMeta
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;em&gt;(Optional)&lt;/em&gt;
Refer to the Kubernetes API documentation for the fields of the
&lt;code&gt;metadata&lt;/code&gt; field.
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;spec&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.InterceptorSpec&#34;&gt;
InterceptorSpec
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;br/&gt;
&lt;br/&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;clientConfig&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.ClientConfig&#34;&gt;
ClientConfig
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;status&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.InterceptorStatus&#34;&gt;
InterceptorStatus
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;em&gt;(Optional)&lt;/em&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1alpha1.InterceptorInterface&#34;&gt;InterceptorInterface
&lt;/h3&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1alpha1.InterceptorKind&#34;&gt;InterceptorKind
(&lt;code&gt;string&lt;/code&gt; alias)&lt;/h3&gt;
&lt;p&gt;
(&lt;em&gt;Appears on:&lt;/em&gt;&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.InterceptorRef&#34;&gt;InterceptorRef&lt;/a&gt;)
&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;InterceptorKind defines the type of Interceptor used by the Trigger.&lt;/p&gt;
&lt;/div&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Value&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&amp;#34;ClusterInterceptor&amp;#34;&lt;/p&gt;&lt;/td&gt;
&lt;td&gt;&lt;p&gt;ClusterInterceptorKind indicates that Interceptor type has a cluster scope.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&amp;#34;NamespacedInterceptor&amp;#34;&lt;/p&gt;&lt;/td&gt;
&lt;td&gt;&lt;p&gt;NamespacedInterceptorKind indicated that interceptor has a namespaced scope&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1alpha1.InterceptorParams&#34;&gt;InterceptorParams
&lt;/h3&gt;
&lt;p&gt;
(&lt;em&gt;Appears on:&lt;/em&gt;&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.TriggerInterceptor&#34;&gt;TriggerInterceptor&lt;/a&gt;)
&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;InterceptorParams defines a key-value pair that can be passed on an interceptor&lt;/p&gt;
&lt;/div&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;name&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
string
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;value&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.JSON
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1alpha1.InterceptorRef&#34;&gt;InterceptorRef
&lt;/h3&gt;
&lt;p&gt;
(&lt;em&gt;Appears on:&lt;/em&gt;&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.TriggerInterceptor&#34;&gt;TriggerInterceptor&lt;/a&gt;)
&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;InterceptorRef provides a Reference to a ClusterInterceptor&lt;/p&gt;
&lt;/div&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;name&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
string
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Name of the referent; More info: &lt;a href=&#34;http://kubernetes.io/docs/user-guide/identifiers#names&#34;&gt;http://kubernetes.io/docs/user-guide/identifiers#names&lt;/a&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;kind&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.InterceptorKind&#34;&gt;
InterceptorKind
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;em&gt;(Optional)&lt;/em&gt;
&lt;p&gt;InterceptorKind indicates the kind of the Interceptor, namespaced or cluster scoped.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;apiVersion&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
string
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;em&gt;(Optional)&lt;/em&gt;
&lt;p&gt;API version of the referent&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1alpha1.InterceptorRequest&#34;&gt;InterceptorRequest
&lt;/h3&gt;
&lt;div&gt;
&lt;p&gt;Do not generate DeepCopy(). See #827&lt;/p&gt;
&lt;/div&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;body&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
string
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Body is the incoming HTTP event body. We use a &amp;ldquo;string&amp;rdquo; representation of the JSON body
in order to preserve the body exactly as it was sent (including spaces etc.). This is necessary
for some interceptors e.g. GitHub for validating the body with a signature. While []byte can also
store an exact representation of the body, &lt;code&gt;json.Marshal&lt;/code&gt; will compact []byte to a base64 encoded
string which means that we will lose the spaces any time we marshal this struct.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;header&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
map[string][]string
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Header are the headers for the incoming HTTP event&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;extensions&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
map[string]interface{}
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Extensions are extra values that are added by previous interceptors in a chain&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;interceptor_params&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
map[string]interface{}
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;InterceptorParams are the user specified params for interceptor in the Trigger&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;context&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.TriggerContext&#34;&gt;
TriggerContext
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Context contains additional metadata about the event being processed&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1alpha1.InterceptorResponse&#34;&gt;InterceptorResponse
&lt;/h3&gt;
&lt;div&gt;
&lt;p&gt;Do not generate Deepcopy(). See #827&lt;/p&gt;
&lt;/div&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;extensions&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
map[string]interface{}
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Extensions are additional fields that is added to the interceptor event.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;continue&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
bool
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Continue indicates if the EventListener should continue processing the Trigger or not&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;status&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.Status&#34;&gt;
Status
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Status is an Error status containing details on any interceptor processing errors&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1alpha1.InterceptorSpec&#34;&gt;InterceptorSpec
&lt;/h3&gt;
&lt;p&gt;
(&lt;em&gt;Appears on:&lt;/em&gt;&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.Interceptor&#34;&gt;Interceptor&lt;/a&gt;)
&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;InterceptorSpec describes the Spec for an Interceptor&lt;/p&gt;
&lt;/div&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;clientConfig&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.ClientConfig&#34;&gt;
ClientConfig
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1alpha1.InterceptorStatus&#34;&gt;InterceptorStatus
&lt;/h3&gt;
&lt;p&gt;
(&lt;em&gt;Appears on:&lt;/em&gt;&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.Interceptor&#34;&gt;Interceptor&lt;/a&gt;)
&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;InterceptorStatus holds the status of the Interceptor&lt;/p&gt;
&lt;/div&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;Status&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;https://pkg.go.dev/knative.dev/pkg/apis/duck/v1#Status&#34;&gt;
knative.dev/pkg/apis/duck/v1.Status
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;
(Members of &lt;code&gt;Status&lt;/code&gt; are embedded into this type.)
&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;AddressStatus&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;https://pkg.go.dev/knative.dev/pkg/apis/duck/v1#AddressStatus&#34;&gt;
knative.dev/pkg/apis/duck/v1.AddressStatus
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;
(Members of &lt;code&gt;AddressStatus&lt;/code&gt; are embedded into this type.)
&lt;/p&gt;
&lt;p&gt;Interceptor is Addressable and exposes the URL where the Interceptor is running&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1alpha1.KubernetesResource&#34;&gt;KubernetesResource
&lt;/h3&gt;
&lt;p&gt;
(&lt;em&gt;Appears on:&lt;/em&gt;&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.Resources&#34;&gt;Resources&lt;/a&gt;)
&lt;/p&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;replicas&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
int32
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;serviceType&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.22/#servicetype-v1-core&#34;&gt;
Kubernetes core/v1.ServiceType
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;spec&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;https://pkg.go.dev/knative.dev/pkg/apis/duck/v1#WithPodSpec&#34;&gt;
knative.dev/pkg/apis/duck/v1.WithPodSpec
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;br/&gt;
&lt;br/&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;template&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;https://pkg.go.dev/knative.dev/pkg/apis/duck/v1#PodSpecable&#34;&gt;
knative.dev/pkg/apis/duck/v1.PodSpecable
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1alpha1.NamespaceSelector&#34;&gt;NamespaceSelector
&lt;/h3&gt;
&lt;p&gt;
(&lt;em&gt;Appears on:&lt;/em&gt;&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.EventListenerSpec&#34;&gt;EventListenerSpec&lt;/a&gt;)
&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;NamespaceSelector is a selector for selecting either all namespaces or a
list of namespaces.&lt;/p&gt;
&lt;/div&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;matchNames&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
[]string
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;List of namespace names.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1alpha1.Param&#34;&gt;Param
&lt;/h3&gt;
&lt;p&gt;
(&lt;em&gt;Appears on:&lt;/em&gt;&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.TriggerBindingSpec&#34;&gt;TriggerBindingSpec&lt;/a&gt;)
&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;Param defines a string value to be used for a ParamSpec with the same name.&lt;/p&gt;
&lt;/div&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;name&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
string
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;value&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
string
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1alpha1.ParamSpec&#34;&gt;ParamSpec
&lt;/h3&gt;
&lt;p&gt;
(&lt;em&gt;Appears on:&lt;/em&gt;&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.TriggerTemplateSpec&#34;&gt;TriggerTemplateSpec&lt;/a&gt;)
&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;ParamSpec defines an arbitrary named  input whose value can be supplied by a
&lt;code&gt;Param&lt;/code&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;name&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
string
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Name declares the name by which a parameter is referenced.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;description&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
string
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;em&gt;(Optional)&lt;/em&gt;
&lt;p&gt;Description is a user-facing description of the parameter that may be
used to populate a UI.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;default&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
string
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;em&gt;(Optional)&lt;/em&gt;
&lt;p&gt;Default is the value a parameter takes if no input value via a Param is supplied.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1alpha1.Resources&#34;&gt;Resources
&lt;/h3&gt;
&lt;p&gt;
(&lt;em&gt;Appears on:&lt;/em&gt;&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.EventListenerSpec&#34;&gt;EventListenerSpec&lt;/a&gt;)
&lt;/p&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;kubernetesResource&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.KubernetesResource&#34;&gt;
KubernetesResource
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;customResource&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.CustomResource&#34;&gt;
CustomResource
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1alpha1.SecretRef&#34;&gt;SecretRef
&lt;/h3&gt;
&lt;p&gt;
(&lt;em&gt;Appears on:&lt;/em&gt;&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.BitbucketInterceptor&#34;&gt;BitbucketInterceptor&lt;/a&gt;, &lt;a href=&#34;#triggers.tekton.dev/v1alpha1.GitHubInterceptor&#34;&gt;GitHubInterceptor&lt;/a&gt;, &lt;a href=&#34;#triggers.tekton.dev/v1alpha1.GitLabInterceptor&#34;&gt;GitLabInterceptor&lt;/a&gt;)
&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;SecretRef contains the information required to reference a single secret string
This is needed because the other secretRef types are not cross-namespace and do not
actually contain the &amp;ldquo;SecretName&amp;rdquo; field, which allows us to access a single secret value.&lt;/p&gt;
&lt;/div&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;secretKey&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
string
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;secretName&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
string
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1alpha1.ServiceReference&#34;&gt;ServiceReference
&lt;/h3&gt;
&lt;p&gt;
(&lt;em&gt;Appears on:&lt;/em&gt;&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.ClientConfig&#34;&gt;ClientConfig&lt;/a&gt;)
&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;ServiceReference is a reference to a Service object
with an optional path&lt;/p&gt;
&lt;/div&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;name&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
string
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Name is the name of the service&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;namespace&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
string
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Namespace is the namespace of the service&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;path&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
string
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;em&gt;(Optional)&lt;/em&gt;
&lt;p&gt;Path is an optional URL path&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;port&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
int32
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Port is a valid port number&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1alpha1.Status&#34;&gt;Status
&lt;/h3&gt;
&lt;p&gt;
(&lt;em&gt;Appears on:&lt;/em&gt;&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.InterceptorResponse&#34;&gt;InterceptorResponse&lt;/a&gt;, &lt;a href=&#34;#triggers.tekton.dev/v1alpha1.StatusError&#34;&gt;StatusError&lt;/a&gt;)
&lt;/p&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;code&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;https://pkg.go.dev/google.golang.org/grpc/codes#Code&#34;&gt;
google.golang.org/grpc/codes.Code
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code].&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;message&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
string
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;A developer-facing error message, which should be in English.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1alpha1.StatusError&#34;&gt;StatusError
&lt;/h3&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;s&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.Status&#34;&gt;
Status
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1alpha1.TriggerBindingInterface&#34;&gt;TriggerBindingInterface
&lt;/h3&gt;
&lt;div&gt;
&lt;p&gt;TriggerBindingInterface is implemented by TriggerBinding and ClusterTriggerBinding&lt;/p&gt;
&lt;/div&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1alpha1.TriggerBindingKind&#34;&gt;TriggerBindingKind
(&lt;code&gt;string&lt;/code&gt; alias)&lt;/h3&gt;
&lt;p&gt;
(&lt;em&gt;Appears on:&lt;/em&gt;&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.TriggerSpecBinding&#34;&gt;TriggerSpecBinding&lt;/a&gt;)
&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;Check that EventListener may be validated and defaulted.
TriggerBindingKind defines the type of TriggerBinding used by the EventListener.&lt;/p&gt;
&lt;/div&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Value&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&amp;#34;ClusterTriggerBinding&amp;#34;&lt;/p&gt;&lt;/td&gt;
&lt;td&gt;&lt;p&gt;ClusterTriggerBindingKind indicates that triggerbinding type has a cluster scope.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&amp;#34;TriggerBinding&amp;#34;&lt;/p&gt;&lt;/td&gt;
&lt;td&gt;&lt;p&gt;NamespacedTriggerBindingKind indicates that triggerbinding type has a namespace scope.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1alpha1.TriggerBindingSpec&#34;&gt;TriggerBindingSpec
&lt;/h3&gt;
&lt;p&gt;
(&lt;em&gt;Appears on:&lt;/em&gt;&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.ClusterTriggerBinding&#34;&gt;ClusterTriggerBinding&lt;/a&gt;, &lt;a href=&#34;#triggers.tekton.dev/v1alpha1.TriggerBinding&#34;&gt;TriggerBinding&lt;/a&gt;)
&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;TriggerBindingSpec defines the desired state of the TriggerBinding.&lt;/p&gt;
&lt;/div&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;params&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.Param&#34;&gt;
[]Param
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Params defines the parameter mapping from the given input event.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1alpha1.TriggerBindingStatus&#34;&gt;TriggerBindingStatus
&lt;/h3&gt;
&lt;p&gt;
(&lt;em&gt;Appears on:&lt;/em&gt;&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.ClusterTriggerBinding&#34;&gt;ClusterTriggerBinding&lt;/a&gt;, &lt;a href=&#34;#triggers.tekton.dev/v1alpha1.TriggerBinding&#34;&gt;TriggerBinding&lt;/a&gt;)
&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;TriggerBindingStatus defines the observed state of TriggerBinding.&lt;/p&gt;
&lt;/div&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1alpha1.TriggerContext&#34;&gt;TriggerContext
&lt;/h3&gt;
&lt;p&gt;
(&lt;em&gt;Appears on:&lt;/em&gt;&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.InterceptorRequest&#34;&gt;InterceptorRequest&lt;/a&gt;)
&lt;/p&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;event_url&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
string
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;EventURL is the URL of the incoming event&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;event_id&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
string
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;EventID is a unique ID assigned by Triggers to each event&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;trigger_id&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
string
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;TriggerID is of the form namespace/$ns/triggers/$name&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1alpha1.TriggerInterceptor&#34;&gt;TriggerInterceptor
&lt;/h3&gt;
&lt;p&gt;
(&lt;em&gt;Appears on:&lt;/em&gt;&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.TriggerSpec&#34;&gt;TriggerSpec&lt;/a&gt;)
&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;TriggerInterceptor provides a hook to intercept and pre-process events&lt;/p&gt;
&lt;/div&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;name&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
string
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Optional name to identify the current interceptor configuration&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;ref&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.InterceptorRef&#34;&gt;
InterceptorRef
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Ref refers to the Interceptor to use&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;params&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.InterceptorParams&#34;&gt;
[]InterceptorParams
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Params are the params to send to the interceptor&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;webhook&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.WebhookInterceptor&#34;&gt;
WebhookInterceptor
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;WebhookInterceptor refers to an old style webhook interceptor service&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;github&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.GitHubInterceptor&#34;&gt;
GitHubInterceptor
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Deprecated old fields below&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;gitlab&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.GitLabInterceptor&#34;&gt;
GitLabInterceptor
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;cel&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.CELInterceptor&#34;&gt;
CELInterceptor
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;bitbucket&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.BitbucketInterceptor&#34;&gt;
BitbucketInterceptor
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1alpha1.TriggerResourceTemplate&#34;&gt;TriggerResourceTemplate
&lt;/h3&gt;
&lt;p&gt;
(&lt;em&gt;Appears on:&lt;/em&gt;&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.TriggerTemplateSpec&#34;&gt;TriggerTemplateSpec&lt;/a&gt;)
&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;TriggerResourceTemplate describes a resource to create&lt;/p&gt;
&lt;/div&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;RawExtension&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
k8s.io/apimachinery/pkg/runtime.RawExtension
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;
(Members of &lt;code&gt;RawExtension&lt;/code&gt; are embedded into this type.)
&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1alpha1.TriggerSpec&#34;&gt;TriggerSpec
&lt;/h3&gt;
&lt;p&gt;
(&lt;em&gt;Appears on:&lt;/em&gt;&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.Trigger&#34;&gt;Trigger&lt;/a&gt;)
&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;TriggerSpec represents a connection between TriggerSpecBinding,
and TriggerSpecTemplate; TriggerSpecBinding provides extracted values for
TriggerSpecTemplate to then create resources from.&lt;/p&gt;
&lt;/div&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;bindings&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.TriggerSpecBinding&#34;&gt;
[]TriggerSpecBinding
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;template&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.TriggerSpecTemplate&#34;&gt;
TriggerSpecTemplate
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;name&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
string
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;em&gt;(Optional)&lt;/em&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;interceptors&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.TriggerInterceptor&#34;&gt;
[]TriggerInterceptor
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;serviceAccountName&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
string
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;em&gt;(Optional)&lt;/em&gt;
&lt;p&gt;ServiceAccountName optionally associates credentials with each trigger;
Unlike EventListeners, this should be scoped to the same namespace
as the Trigger itself&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1alpha1.TriggerSpecBinding&#34;&gt;TriggerSpecBinding
&lt;/h3&gt;
&lt;p&gt;
(&lt;em&gt;Appears on:&lt;/em&gt;&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.TriggerSpec&#34;&gt;TriggerSpec&lt;/a&gt;)
&lt;/p&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;name&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
string
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Name is the name of the binding param
Mutually exclusive with Ref&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;value&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
string
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Value is the value of the binding param. Can contain JSONPath
Has to be pointer since &amp;ldquo;&amp;rdquo; is a valid value
Required if Name is also specified.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;ref&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
string
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Ref is a reference to a TriggerBinding kind.
Mutually exclusive with Name&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;kind&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.TriggerBindingKind&#34;&gt;
TriggerBindingKind
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Kind can only be provided if Ref is also provided. Defaults to TriggerBinding&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;apiversion&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
string
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;APIVersion of the binding ref&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1alpha1.TriggerSpecTemplate&#34;&gt;TriggerSpecTemplate
&lt;/h3&gt;
&lt;p&gt;
(&lt;em&gt;Appears on:&lt;/em&gt;&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.TriggerSpec&#34;&gt;TriggerSpec&lt;/a&gt;)
&lt;/p&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;ref&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
string
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;apiversion&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
string
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;spec&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.TriggerTemplateSpec&#34;&gt;
TriggerTemplateSpec
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;br/&gt;
&lt;br/&gt;
&lt;table&gt;
&lt;/table&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1alpha1.TriggerTemplateSpec&#34;&gt;TriggerTemplateSpec
&lt;/h3&gt;
&lt;p&gt;
(&lt;em&gt;Appears on:&lt;/em&gt;&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.TriggerTemplate&#34;&gt;TriggerTemplate&lt;/a&gt;, &lt;a href=&#34;#triggers.tekton.dev/v1alpha1.TriggerSpecTemplate&#34;&gt;TriggerSpecTemplate&lt;/a&gt;)
&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;TriggerTemplateSpec holds the desired state of TriggerTemplate&lt;/p&gt;
&lt;/div&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;params&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.ParamSpec&#34;&gt;
[]ParamSpec
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;resourcetemplates&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.TriggerResourceTemplate&#34;&gt;
[]TriggerResourceTemplate
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1alpha1.TriggerTemplateStatus&#34;&gt;TriggerTemplateStatus
&lt;/h3&gt;
&lt;p&gt;
(&lt;em&gt;Appears on:&lt;/em&gt;&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.TriggerTemplate&#34;&gt;TriggerTemplate&lt;/a&gt;)
&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;TriggerTemplateStatus describes the desired state of TriggerTemplate&lt;/p&gt;
&lt;/div&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1alpha1.WebhookInterceptor&#34;&gt;WebhookInterceptor
&lt;/h3&gt;
&lt;p&gt;
(&lt;em&gt;Appears on:&lt;/em&gt;&lt;a href=&#34;#triggers.tekton.dev/v1alpha1.TriggerInterceptor&#34;&gt;TriggerInterceptor&lt;/a&gt;)
&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;WebhookInterceptor provides a webhook to intercept and pre-process events&lt;/p&gt;
&lt;/div&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;objectRef&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.22/#objectreference-v1-core&#34;&gt;
Kubernetes core/v1.ObjectReference
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;em&gt;(Optional)&lt;/em&gt;
&lt;p&gt;ObjectRef is a reference to an object that will resolve to a cluster DNS
name to use as the EventInterceptor. Either objectRef or url can be specified&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;url&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;https://pkg.go.dev/knative.dev/pkg/apis#URL&#34;&gt;
knative.dev/pkg/apis.URL
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;em&gt;(Optional)&lt;/em&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;header&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;https://pkg.go.dev/github.com/tektoncd/pipeline/pkg/apis/pipeline/v1beta1#Param&#34;&gt;
[]github.com/tektoncd/pipeline/pkg/apis/pipeline/v1beta1.Param
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Header is a group of key-value pairs that can be appended to the
interceptor request headers. This allows the interceptor to make
decisions specific to an EventListenerTrigger.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr/&gt;
&lt;h2 id=&#34;triggers.tekton.dev/v1beta1&#34;&gt;triggers.tekton.dev/v1beta1&lt;/h2&gt;
&lt;div&gt;
&lt;p&gt;package v1beta1 contains API Schema definitions for the triggers v1beta1 API group&lt;/p&gt;
&lt;/div&gt;
Resource Types:
&lt;ul&gt;&lt;li&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1beta1.ClusterTriggerBinding&#34;&gt;ClusterTriggerBinding&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1beta1.EventListener&#34;&gt;EventListener&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1beta1.Trigger&#34;&gt;Trigger&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1beta1.TriggerBinding&#34;&gt;TriggerBinding&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1beta1.TriggerTemplate&#34;&gt;TriggerTemplate&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1beta1.ClusterTriggerBinding&#34;&gt;ClusterTriggerBinding
&lt;/h3&gt;
&lt;div&gt;
&lt;p&gt;ClusterTriggerBinding is a TriggerBinding with a cluster scope.
ClusterTriggerBindings are used to represent TriggerBindings that
should be publicly addressable from any namespace in the cluster.&lt;/p&gt;
&lt;/div&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;apiVersion&lt;/code&gt;&lt;br/&gt;
string&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;
triggers.tekton.dev/v1beta1
&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;kind&lt;/code&gt;&lt;br/&gt;
string
&lt;/td&gt;
&lt;td&gt;&lt;code&gt;ClusterTriggerBinding&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;metadata&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.22/#objectmeta-v1-meta&#34;&gt;
Kubernetes meta/v1.ObjectMeta
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;em&gt;(Optional)&lt;/em&gt;
Refer to the Kubernetes API documentation for the fields of the
&lt;code&gt;metadata&lt;/code&gt; field.
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;spec&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1beta1.TriggerBindingSpec&#34;&gt;
TriggerBindingSpec
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;em&gt;(Optional)&lt;/em&gt;
&lt;p&gt;Spec holds the desired state of the ClusterTriggerBinding from the client&lt;/p&gt;
&lt;br/&gt;
&lt;br/&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;params&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1beta1.Param&#34;&gt;
[]Param
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Params defines the parameter mapping from the given input event.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;status&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1beta1.TriggerBindingStatus&#34;&gt;
TriggerBindingStatus
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;em&gt;(Optional)&lt;/em&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1beta1.EventListener&#34;&gt;EventListener
&lt;/h3&gt;
&lt;div&gt;
&lt;p&gt;EventListener exposes a service to accept HTTP event payloads.&lt;/p&gt;
&lt;/div&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;apiVersion&lt;/code&gt;&lt;br/&gt;
string&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;
triggers.tekton.dev/v1beta1
&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;kind&lt;/code&gt;&lt;br/&gt;
string
&lt;/td&gt;
&lt;td&gt;&lt;code&gt;EventListener&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;metadata&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.22/#objectmeta-v1-meta&#34;&gt;
Kubernetes meta/v1.ObjectMeta
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;em&gt;(Optional)&lt;/em&gt;
Refer to the Kubernetes API documentation for the fields of the
&lt;code&gt;metadata&lt;/code&gt; field.
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;spec&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1beta1.EventListenerSpec&#34;&gt;
EventListenerSpec
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;em&gt;(Optional)&lt;/em&gt;
&lt;p&gt;Spec holds the desired state of the EventListener from the client&lt;/p&gt;
&lt;br/&gt;
&lt;br/&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;serviceAccountName&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
string
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;triggers&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1beta1.EventListenerTrigger&#34;&gt;
[]EventListenerTrigger
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;triggerGroups&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1beta1.EventListenerTriggerGroup&#34;&gt;
[]EventListenerTriggerGroup
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Trigger groups allow for centralized processing of an interceptor chain&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;namespaceSelector&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1beta1.NamespaceSelector&#34;&gt;
NamespaceSelector
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;labelSelector&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.22/#labelselector-v1-meta&#34;&gt;
Kubernetes meta/v1.LabelSelector
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;resources&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1beta1.Resources&#34;&gt;
Resources
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;cloudEventURI&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
string
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;status&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1beta1.EventListenerStatus&#34;&gt;
EventListenerStatus
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;em&gt;(Optional)&lt;/em&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1beta1.Trigger&#34;&gt;Trigger
&lt;/h3&gt;
&lt;div&gt;
&lt;p&gt;Trigger defines a mapping of an input event to parameters. This is used
to extract information from events to be passed to TriggerTemplates within a
Trigger.&lt;/p&gt;
&lt;/div&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;apiVersion&lt;/code&gt;&lt;br/&gt;
string&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;
triggers.tekton.dev/v1beta1
&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;kind&lt;/code&gt;&lt;br/&gt;
string
&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Trigger&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;metadata&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.22/#objectmeta-v1-meta&#34;&gt;
Kubernetes meta/v1.ObjectMeta
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;em&gt;(Optional)&lt;/em&gt;
Refer to the Kubernetes API documentation for the fields of the
&lt;code&gt;metadata&lt;/code&gt; field.
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;spec&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1beta1.TriggerSpec&#34;&gt;
TriggerSpec
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;em&gt;(Optional)&lt;/em&gt;
&lt;p&gt;Spec holds the desired state of the Trigger&lt;/p&gt;
&lt;br/&gt;
&lt;br/&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;bindings&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1beta1.TriggerSpecBinding&#34;&gt;
[]TriggerSpecBinding
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;template&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1beta1.TriggerSpecTemplate&#34;&gt;
TriggerSpecTemplate
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;name&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
string
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;em&gt;(Optional)&lt;/em&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;interceptors&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1beta1.TriggerInterceptor&#34;&gt;
[]TriggerInterceptor
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;serviceAccountName&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
string
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;em&gt;(Optional)&lt;/em&gt;
&lt;p&gt;ServiceAccountName optionally associates credentials with each trigger;
Unlike EventListeners, this should be scoped to the same namespace
as the Trigger itself&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1beta1.TriggerBinding&#34;&gt;TriggerBinding
&lt;/h3&gt;
&lt;div&gt;
&lt;p&gt;TriggerBinding defines a mapping of an input event to parameters. This is used
to extract information from events to be passed to TriggerTemplates within a
Trigger.&lt;/p&gt;
&lt;/div&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;apiVersion&lt;/code&gt;&lt;br/&gt;
string&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;
triggers.tekton.dev/v1beta1
&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;kind&lt;/code&gt;&lt;br/&gt;
string
&lt;/td&gt;
&lt;td&gt;&lt;code&gt;TriggerBinding&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;metadata&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.22/#objectmeta-v1-meta&#34;&gt;
Kubernetes meta/v1.ObjectMeta
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;em&gt;(Optional)&lt;/em&gt;
Refer to the Kubernetes API documentation for the fields of the
&lt;code&gt;metadata&lt;/code&gt; field.
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;spec&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1beta1.TriggerBindingSpec&#34;&gt;
TriggerBindingSpec
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;em&gt;(Optional)&lt;/em&gt;
&lt;p&gt;Spec holds the desired state of the TriggerBinding&lt;/p&gt;
&lt;br/&gt;
&lt;br/&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;params&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1beta1.Param&#34;&gt;
[]Param
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Params defines the parameter mapping from the given input event.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;status&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1beta1.TriggerBindingStatus&#34;&gt;
TriggerBindingStatus
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;em&gt;(Optional)&lt;/em&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1beta1.TriggerTemplate&#34;&gt;TriggerTemplate
&lt;/h3&gt;
&lt;div&gt;
&lt;p&gt;TriggerTemplate takes parameters and uses them to create CRDs&lt;/p&gt;
&lt;/div&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;apiVersion&lt;/code&gt;&lt;br/&gt;
string&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;
triggers.tekton.dev/v1beta1
&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;kind&lt;/code&gt;&lt;br/&gt;
string
&lt;/td&gt;
&lt;td&gt;&lt;code&gt;TriggerTemplate&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;metadata&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.22/#objectmeta-v1-meta&#34;&gt;
Kubernetes meta/v1.ObjectMeta
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;em&gt;(Optional)&lt;/em&gt;
Refer to the Kubernetes API documentation for the fields of the
&lt;code&gt;metadata&lt;/code&gt; field.
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;spec&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1beta1.TriggerTemplateSpec&#34;&gt;
TriggerTemplateSpec
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;em&gt;(Optional)&lt;/em&gt;
&lt;p&gt;Spec holds the desired state of the TriggerTemplate from the client&lt;/p&gt;
&lt;br/&gt;
&lt;br/&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;params&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1beta1.ParamSpec&#34;&gt;
[]ParamSpec
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;resourcetemplates&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1beta1.TriggerResourceTemplate&#34;&gt;
[]TriggerResourceTemplate
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;status&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1beta1.TriggerTemplateStatus&#34;&gt;
TriggerTemplateStatus
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;em&gt;(Optional)&lt;/em&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1beta1.CustomResource&#34;&gt;CustomResource
&lt;/h3&gt;
&lt;p&gt;
(&lt;em&gt;Appears on:&lt;/em&gt;&lt;a href=&#34;#triggers.tekton.dev/v1beta1.Resources&#34;&gt;Resources&lt;/a&gt;)
&lt;/p&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;RawExtension&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
k8s.io/apimachinery/pkg/runtime.RawExtension
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;
(Members of &lt;code&gt;RawExtension&lt;/code&gt; are embedded into this type.)
&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1beta1.EventInterceptor&#34;&gt;EventInterceptor
&lt;/h3&gt;
&lt;p&gt;
(&lt;em&gt;Appears on:&lt;/em&gt;&lt;a href=&#34;#triggers.tekton.dev/v1beta1.EventListenerTrigger&#34;&gt;EventListenerTrigger&lt;/a&gt;)
&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;EventInterceptor provides a hook to intercept and pre-process events&lt;/p&gt;
&lt;/div&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1beta1.EventListenerBinding&#34;&gt;EventListenerBinding
&lt;/h3&gt;
&lt;p&gt;
(&lt;em&gt;Appears on:&lt;/em&gt;&lt;a href=&#34;#triggers.tekton.dev/v1beta1.EventListenerTrigger&#34;&gt;EventListenerTrigger&lt;/a&gt;)
&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;EventListenerBinding refers to a particular TriggerBinding or ClusterTriggerBinding resource.&lt;/p&gt;
&lt;/div&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1beta1.EventListenerConfig&#34;&gt;EventListenerConfig
&lt;/h3&gt;
&lt;p&gt;
(&lt;em&gt;Appears on:&lt;/em&gt;&lt;a href=&#34;#triggers.tekton.dev/v1beta1.EventListenerStatus&#34;&gt;EventListenerStatus&lt;/a&gt;)
&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;EventListenerConfig stores configuration for resources generated by the
EventListener&lt;/p&gt;
&lt;/div&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;generatedName&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
string
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;GeneratedResourceName is the name given to all resources reconciled by
the EventListener&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1beta1.EventListenerSpec&#34;&gt;EventListenerSpec
&lt;/h3&gt;
&lt;p&gt;
(&lt;em&gt;Appears on:&lt;/em&gt;&lt;a href=&#34;#triggers.tekton.dev/v1beta1.EventListener&#34;&gt;EventListener&lt;/a&gt;)
&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;EventListenerSpec defines the desired state of the EventListener, represented
by a list of Triggers.&lt;/p&gt;
&lt;/div&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;serviceAccountName&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
string
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;triggers&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1beta1.EventListenerTrigger&#34;&gt;
[]EventListenerTrigger
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;triggerGroups&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1beta1.EventListenerTriggerGroup&#34;&gt;
[]EventListenerTriggerGroup
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Trigger groups allow for centralized processing of an interceptor chain&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;namespaceSelector&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1beta1.NamespaceSelector&#34;&gt;
NamespaceSelector
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;labelSelector&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.22/#labelselector-v1-meta&#34;&gt;
Kubernetes meta/v1.LabelSelector
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;resources&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1beta1.Resources&#34;&gt;
Resources
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;cloudEventURI&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
string
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1beta1.EventListenerStatus&#34;&gt;EventListenerStatus
&lt;/h3&gt;
&lt;p&gt;
(&lt;em&gt;Appears on:&lt;/em&gt;&lt;a href=&#34;#triggers.tekton.dev/v1beta1.EventListener&#34;&gt;EventListener&lt;/a&gt;)
&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;EventListenerStatus holds the status of the EventListener&lt;/p&gt;
&lt;/div&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;Status&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;https://pkg.go.dev/knative.dev/pkg/apis/duck/v1#Status&#34;&gt;
knative.dev/pkg/apis/duck/v1.Status
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;
(Members of &lt;code&gt;Status&lt;/code&gt; are embedded into this type.)
&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;AddressStatus&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;https://pkg.go.dev/knative.dev/pkg/apis/duck/v1beta1#AddressStatus&#34;&gt;
knative.dev/pkg/apis/duck/v1beta1.AddressStatus
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;
(Members of &lt;code&gt;AddressStatus&lt;/code&gt; are embedded into this type.)
&lt;/p&gt;
&lt;p&gt;EventListener is Addressable. It currently exposes the service DNS
address of the the EventListener sink&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;configuration&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1beta1.EventListenerConfig&#34;&gt;
EventListenerConfig
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Configuration stores configuration for the EventListener service&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1beta1.EventListenerTemplate&#34;&gt;EventListenerTemplate
&lt;/h3&gt;
&lt;p&gt;
(&lt;em&gt;Appears on:&lt;/em&gt;&lt;a href=&#34;#triggers.tekton.dev/v1beta1.EventListenerTrigger&#34;&gt;EventListenerTrigger&lt;/a&gt;)
&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;EventListenerTemplate refers to a particular TriggerTemplate resource.&lt;/p&gt;
&lt;/div&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1beta1.EventListenerTrigger&#34;&gt;EventListenerTrigger
&lt;/h3&gt;
&lt;p&gt;
(&lt;em&gt;Appears on:&lt;/em&gt;&lt;a href=&#34;#triggers.tekton.dev/v1beta1.EventListenerSpec&#34;&gt;EventListenerSpec&lt;/a&gt;)
&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;EventListenerTrigger represents a connection between TriggerBinding, Params,
and TriggerTemplate; TriggerBinding provides extracted values for
TriggerTemplate to then create resources from. TriggerRef can also be
provided instead of TriggerBinding, Interceptors and TriggerTemplate&lt;/p&gt;
&lt;/div&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;bindings&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1beta1.EventListenerBinding&#34;&gt;
[]EventListenerBinding
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;template&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1beta1.EventListenerTemplate&#34;&gt;
EventListenerTemplate
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;triggerRef&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
string
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;name&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
string
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;em&gt;(Optional)&lt;/em&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;interceptors&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1beta1.EventInterceptor&#34;&gt;
[]EventInterceptor
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;serviceAccountName&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
string
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;em&gt;(Optional)&lt;/em&gt;
&lt;p&gt;ServiceAccountName optionally associates credentials with each trigger;
more granular authorization for
who is allowed to utilize the associated pipeline
vs. defaulting to whatever permissions are associated
with the entire EventListener and associated sink facilitates
multi-tenant model based scenarios&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1beta1.EventListenerTriggerGroup&#34;&gt;EventListenerTriggerGroup
&lt;/h3&gt;
&lt;p&gt;
(&lt;em&gt;Appears on:&lt;/em&gt;&lt;a href=&#34;#triggers.tekton.dev/v1beta1.EventListenerSpec&#34;&gt;EventListenerSpec&lt;/a&gt;)
&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;EventListenerTriggerGroup defines a group of Triggers that share a common set of interceptors&lt;/p&gt;
&lt;/div&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;name&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
string
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;interceptors&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1beta1.TriggerInterceptor&#34;&gt;
[]TriggerInterceptor
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;triggerSelector&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1beta1.EventListenerTriggerSelector&#34;&gt;
EventListenerTriggerSelector
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1beta1.EventListenerTriggerSelector&#34;&gt;EventListenerTriggerSelector
&lt;/h3&gt;
&lt;p&gt;
(&lt;em&gt;Appears on:&lt;/em&gt;&lt;a href=&#34;#triggers.tekton.dev/v1beta1.EventListenerTriggerGroup&#34;&gt;EventListenerTriggerGroup&lt;/a&gt;)
&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;EventListenerTriggerSelector  defines ways to select a group of triggers using their metadata&lt;/p&gt;
&lt;/div&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;namespaceSelector&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1beta1.NamespaceSelector&#34;&gt;
NamespaceSelector
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;labelSelector&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.22/#labelselector-v1-meta&#34;&gt;
Kubernetes meta/v1.LabelSelector
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1beta1.InterceptorInterface&#34;&gt;InterceptorInterface
&lt;/h3&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1beta1.InterceptorKind&#34;&gt;InterceptorKind
(&lt;code&gt;string&lt;/code&gt; alias)&lt;/h3&gt;
&lt;p&gt;
(&lt;em&gt;Appears on:&lt;/em&gt;&lt;a href=&#34;#triggers.tekton.dev/v1beta1.InterceptorRef&#34;&gt;InterceptorRef&lt;/a&gt;)
&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;InterceptorKind defines the type of Interceptor used by the Trigger.&lt;/p&gt;
&lt;/div&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Value&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&amp;#34;ClusterInterceptor&amp;#34;&lt;/p&gt;&lt;/td&gt;
&lt;td&gt;&lt;p&gt;ClusterInterceptorKind indicates that Interceptor type has a cluster scope.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&amp;#34;NamespacedInterceptor&amp;#34;&lt;/p&gt;&lt;/td&gt;
&lt;td&gt;&lt;p&gt;NamespacedInterceptorKind indicates that Interceptor type has a namespace scope.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1beta1.InterceptorParams&#34;&gt;InterceptorParams
&lt;/h3&gt;
&lt;p&gt;
(&lt;em&gt;Appears on:&lt;/em&gt;&lt;a href=&#34;#triggers.tekton.dev/v1beta1.TriggerInterceptor&#34;&gt;TriggerInterceptor&lt;/a&gt;)
&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;InterceptorParams defines a key-value pair that can be passed on an interceptor&lt;/p&gt;
&lt;/div&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;name&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
string
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;value&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.JSON
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1beta1.InterceptorRef&#34;&gt;InterceptorRef
&lt;/h3&gt;
&lt;p&gt;
(&lt;em&gt;Appears on:&lt;/em&gt;&lt;a href=&#34;#triggers.tekton.dev/v1beta1.TriggerInterceptor&#34;&gt;TriggerInterceptor&lt;/a&gt;)
&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;InterceptorRef provides a Reference to a ClusterInterceptor&lt;/p&gt;
&lt;/div&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;name&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
string
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Name of the referent; More info: &lt;a href=&#34;http://kubernetes.io/docs/user-guide/identifiers#names&#34;&gt;http://kubernetes.io/docs/user-guide/identifiers#names&lt;/a&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;kind&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1beta1.InterceptorKind&#34;&gt;
InterceptorKind
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;em&gt;(Optional)&lt;/em&gt;
&lt;p&gt;InterceptorKind indicates the kind of the Interceptor, namespaced or cluster scoped.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;apiVersion&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
string
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;em&gt;(Optional)&lt;/em&gt;
&lt;p&gt;API version of the referent&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1beta1.InterceptorRequest&#34;&gt;InterceptorRequest
&lt;/h3&gt;
&lt;div&gt;
&lt;p&gt;Do not generate DeepCopy(). See #827&lt;/p&gt;
&lt;/div&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;body&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
string
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Body is the incoming HTTP event body. We use a &amp;ldquo;string&amp;rdquo; representation of the JSON body
in order to preserve the body exactly as it was sent (including spaces etc.). This is necessary
for some interceptors e.g. GitHub for validating the body with a signature. While []byte can also
store an exact representation of the body, &lt;code&gt;json.Marshal&lt;/code&gt; will compact []byte to a base64 encoded
string which means that we will lose the spaces any time we marshal this struct.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;header&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
map[string][]string
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Header are the headers for the incoming HTTP event&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;extensions&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
map[string]interface{}
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Extensions are extra values that are added by previous interceptors in a chain&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;interceptor_params&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
map[string]interface{}
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;InterceptorParams are the user specified params for interceptor in the Trigger&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;context&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1beta1.TriggerContext&#34;&gt;
TriggerContext
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Context contains additional metadata about the event being processed&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1beta1.InterceptorResponse&#34;&gt;InterceptorResponse
&lt;/h3&gt;
&lt;div&gt;
&lt;p&gt;Do not generate Deepcopy(). See #827&lt;/p&gt;
&lt;/div&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;extensions&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
map[string]interface{}
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Extensions are additional fields that is added to the interceptor event.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;continue&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
bool
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Continue indicates if the EventListener should continue processing the Trigger or not&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;status&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1beta1.Status&#34;&gt;
Status
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Status is an Error status containing details on any interceptor processing errors&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1beta1.KubernetesResource&#34;&gt;KubernetesResource
&lt;/h3&gt;
&lt;p&gt;
(&lt;em&gt;Appears on:&lt;/em&gt;&lt;a href=&#34;#triggers.tekton.dev/v1beta1.Resources&#34;&gt;Resources&lt;/a&gt;)
&lt;/p&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;replicas&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
int32
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;serviceType&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.22/#servicetype-v1-core&#34;&gt;
Kubernetes core/v1.ServiceType
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;servicePort&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
int32
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;serviceLoadBalancerClass&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
string
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;spec&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;https://pkg.go.dev/knative.dev/pkg/apis/duck/v1#WithPodSpec&#34;&gt;
knative.dev/pkg/apis/duck/v1.WithPodSpec
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;br/&gt;
&lt;br/&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;template&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;https://pkg.go.dev/knative.dev/pkg/apis/duck/v1#PodSpecable&#34;&gt;
knative.dev/pkg/apis/duck/v1.PodSpecable
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1beta1.NamespaceSelector&#34;&gt;NamespaceSelector
&lt;/h3&gt;
&lt;p&gt;
(&lt;em&gt;Appears on:&lt;/em&gt;&lt;a href=&#34;#triggers.tekton.dev/v1beta1.EventListenerSpec&#34;&gt;EventListenerSpec&lt;/a&gt;, &lt;a href=&#34;#triggers.tekton.dev/v1beta1.EventListenerTriggerSelector&#34;&gt;EventListenerTriggerSelector&lt;/a&gt;)
&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;NamespaceSelector is a selector for selecting either all namespaces or a
list of namespaces.&lt;/p&gt;
&lt;/div&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;matchNames&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
[]string
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;List of namespace names.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1beta1.Param&#34;&gt;Param
&lt;/h3&gt;
&lt;p&gt;
(&lt;em&gt;Appears on:&lt;/em&gt;&lt;a href=&#34;#triggers.tekton.dev/v1beta1.TriggerBindingSpec&#34;&gt;TriggerBindingSpec&lt;/a&gt;)
&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;Param defines a string value to be used for a ParamSpec with the same name.&lt;/p&gt;
&lt;/div&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;name&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
string
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;value&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
string
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1beta1.ParamSpec&#34;&gt;ParamSpec
&lt;/h3&gt;
&lt;p&gt;
(&lt;em&gt;Appears on:&lt;/em&gt;&lt;a href=&#34;#triggers.tekton.dev/v1beta1.TriggerTemplateSpec&#34;&gt;TriggerTemplateSpec&lt;/a&gt;)
&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;ParamSpec defines an arbitrary named  input whose value can be supplied by a
&lt;code&gt;Param&lt;/code&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;name&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
string
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Name declares the name by which a parameter is referenced.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;description&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
string
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;em&gt;(Optional)&lt;/em&gt;
&lt;p&gt;Description is a user-facing description of the parameter that may be
used to populate a UI.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;default&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
string
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;em&gt;(Optional)&lt;/em&gt;
&lt;p&gt;Default is the value a parameter takes if no input value via a Param is supplied.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1beta1.Resources&#34;&gt;Resources
&lt;/h3&gt;
&lt;p&gt;
(&lt;em&gt;Appears on:&lt;/em&gt;&lt;a href=&#34;#triggers.tekton.dev/v1beta1.EventListenerSpec&#34;&gt;EventListenerSpec&lt;/a&gt;)
&lt;/p&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;kubernetesResource&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1beta1.KubernetesResource&#34;&gt;
KubernetesResource
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;customResource&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1beta1.CustomResource&#34;&gt;
CustomResource
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1beta1.SecretRef&#34;&gt;SecretRef
&lt;/h3&gt;
&lt;div&gt;
&lt;p&gt;SecretRef contains the information required to reference a single secret string
This is needed because the other secretRef types are not cross-namespace and do not
actually contain the &amp;ldquo;SecretName&amp;rdquo; field, which allows us to access a single secret value.&lt;/p&gt;
&lt;/div&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;secretKey&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
string
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;secretName&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
string
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1beta1.Status&#34;&gt;Status
&lt;/h3&gt;
&lt;p&gt;
(&lt;em&gt;Appears on:&lt;/em&gt;&lt;a href=&#34;#triggers.tekton.dev/v1beta1.InterceptorResponse&#34;&gt;InterceptorResponse&lt;/a&gt;, &lt;a href=&#34;#triggers.tekton.dev/v1beta1.StatusError&#34;&gt;StatusError&lt;/a&gt;)
&lt;/p&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;code&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;https://pkg.go.dev/google.golang.org/grpc/codes#Code&#34;&gt;
google.golang.org/grpc/codes.Code
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code].&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;message&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
string
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;A developer-facing error message, which should be in English.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1beta1.StatusError&#34;&gt;StatusError
&lt;/h3&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;s&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1beta1.Status&#34;&gt;
Status
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1beta1.TriggerBindingInterface&#34;&gt;TriggerBindingInterface
&lt;/h3&gt;
&lt;div&gt;
&lt;p&gt;TriggerBindingInterface is implemented by TriggerBinding and ClusterTriggerBinding&lt;/p&gt;
&lt;/div&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1beta1.TriggerBindingKind&#34;&gt;TriggerBindingKind
(&lt;code&gt;string&lt;/code&gt; alias)&lt;/h3&gt;
&lt;p&gt;
(&lt;em&gt;Appears on:&lt;/em&gt;&lt;a href=&#34;#triggers.tekton.dev/v1beta1.TriggerSpecBinding&#34;&gt;TriggerSpecBinding&lt;/a&gt;)
&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;Check that EventListener may be validated and defaulted.
TriggerBindingKind defines the type of TriggerBinding used by the EventListener.&lt;/p&gt;
&lt;/div&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Value&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&amp;#34;ClusterTriggerBinding&amp;#34;&lt;/p&gt;&lt;/td&gt;
&lt;td&gt;&lt;p&gt;ClusterTriggerBindingKind indicates that triggerbinding type has a cluster scope.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&amp;#34;TriggerBinding&amp;#34;&lt;/p&gt;&lt;/td&gt;
&lt;td&gt;&lt;p&gt;NamespacedTriggerBindingKind indicates that triggerbinding type has a namespace scope.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1beta1.TriggerBindingSpec&#34;&gt;TriggerBindingSpec
&lt;/h3&gt;
&lt;p&gt;
(&lt;em&gt;Appears on:&lt;/em&gt;&lt;a href=&#34;#triggers.tekton.dev/v1beta1.ClusterTriggerBinding&#34;&gt;ClusterTriggerBinding&lt;/a&gt;, &lt;a href=&#34;#triggers.tekton.dev/v1beta1.TriggerBinding&#34;&gt;TriggerBinding&lt;/a&gt;)
&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;TriggerBindingSpec defines the desired state of the TriggerBinding.&lt;/p&gt;
&lt;/div&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;params&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1beta1.Param&#34;&gt;
[]Param
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Params defines the parameter mapping from the given input event.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1beta1.TriggerBindingStatus&#34;&gt;TriggerBindingStatus
&lt;/h3&gt;
&lt;p&gt;
(&lt;em&gt;Appears on:&lt;/em&gt;&lt;a href=&#34;#triggers.tekton.dev/v1beta1.ClusterTriggerBinding&#34;&gt;ClusterTriggerBinding&lt;/a&gt;, &lt;a href=&#34;#triggers.tekton.dev/v1beta1.TriggerBinding&#34;&gt;TriggerBinding&lt;/a&gt;)
&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;TriggerBindingStatus defines the observed state of TriggerBinding.&lt;/p&gt;
&lt;/div&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1beta1.TriggerContext&#34;&gt;TriggerContext
&lt;/h3&gt;
&lt;p&gt;
(&lt;em&gt;Appears on:&lt;/em&gt;&lt;a href=&#34;#triggers.tekton.dev/v1beta1.InterceptorRequest&#34;&gt;InterceptorRequest&lt;/a&gt;)
&lt;/p&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;event_url&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
string
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;EventURL is the URL of the incoming event&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;event_id&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
string
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;EventID is a unique ID assigned by Triggers to each event&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;trigger_id&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
string
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;TriggerID is of the form namespace/$ns/triggers/$name&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1beta1.TriggerInterceptor&#34;&gt;TriggerInterceptor
&lt;/h3&gt;
&lt;p&gt;
(&lt;em&gt;Appears on:&lt;/em&gt;&lt;a href=&#34;#triggers.tekton.dev/v1beta1.EventListenerTriggerGroup&#34;&gt;EventListenerTriggerGroup&lt;/a&gt;, &lt;a href=&#34;#triggers.tekton.dev/v1beta1.TriggerSpec&#34;&gt;TriggerSpec&lt;/a&gt;)
&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;TriggerInterceptor provides a hook to intercept and pre-process events&lt;/p&gt;
&lt;/div&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;name&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
string
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Optional name to identify the current interceptor configuration&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;ref&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1beta1.InterceptorRef&#34;&gt;
InterceptorRef
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Ref refers to the Interceptor to use&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;params&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1beta1.InterceptorParams&#34;&gt;
[]InterceptorParams
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Params are the params to send to the interceptor&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;webhook&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1beta1.WebhookInterceptor&#34;&gt;
WebhookInterceptor
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;WebhookInterceptor refers to an old style webhook interceptor service&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1beta1.TriggerResourceTemplate&#34;&gt;TriggerResourceTemplate
&lt;/h3&gt;
&lt;p&gt;
(&lt;em&gt;Appears on:&lt;/em&gt;&lt;a href=&#34;#triggers.tekton.dev/v1beta1.TriggerTemplateSpec&#34;&gt;TriggerTemplateSpec&lt;/a&gt;)
&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;TriggerResourceTemplate describes a resource to create&lt;/p&gt;
&lt;/div&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;RawExtension&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
k8s.io/apimachinery/pkg/runtime.RawExtension
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;
(Members of &lt;code&gt;RawExtension&lt;/code&gt; are embedded into this type.)
&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1beta1.TriggerSpec&#34;&gt;TriggerSpec
&lt;/h3&gt;
&lt;p&gt;
(&lt;em&gt;Appears on:&lt;/em&gt;&lt;a href=&#34;#triggers.tekton.dev/v1beta1.Trigger&#34;&gt;Trigger&lt;/a&gt;)
&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;TriggerSpec represents a connection between TriggerSpecBinding,
and TriggerSpecTemplate; TriggerSpecBinding provides extracted values for
TriggerSpecTemplate to then create resources from.&lt;/p&gt;
&lt;/div&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;bindings&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1beta1.TriggerSpecBinding&#34;&gt;
[]TriggerSpecBinding
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;template&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1beta1.TriggerSpecTemplate&#34;&gt;
TriggerSpecTemplate
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;name&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
string
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;em&gt;(Optional)&lt;/em&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;interceptors&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1beta1.TriggerInterceptor&#34;&gt;
[]TriggerInterceptor
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;serviceAccountName&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
string
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;em&gt;(Optional)&lt;/em&gt;
&lt;p&gt;ServiceAccountName optionally associates credentials with each trigger;
Unlike EventListeners, this should be scoped to the same namespace
as the Trigger itself&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1beta1.TriggerSpecBinding&#34;&gt;TriggerSpecBinding
&lt;/h3&gt;
&lt;p&gt;
(&lt;em&gt;Appears on:&lt;/em&gt;&lt;a href=&#34;#triggers.tekton.dev/v1beta1.TriggerSpec&#34;&gt;TriggerSpec&lt;/a&gt;)
&lt;/p&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;name&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
string
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Name is the name of the binding param
Mutually exclusive with Ref&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;value&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
string
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Value is the value of the binding param. Can contain JSONPath
Has to be pointer since &amp;ldquo;&amp;rdquo; is a valid value
Required if Name is also specified.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;ref&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
string
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Ref is a reference to a TriggerBinding kind.
Mutually exclusive with Name&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;kind&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1beta1.TriggerBindingKind&#34;&gt;
TriggerBindingKind
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Kind can only be provided if Ref is also provided. Defaults to TriggerBinding&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;apiversion&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
string
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;APIVersion of the binding ref&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1beta1.TriggerSpecTemplate&#34;&gt;TriggerSpecTemplate
&lt;/h3&gt;
&lt;p&gt;
(&lt;em&gt;Appears on:&lt;/em&gt;&lt;a href=&#34;#triggers.tekton.dev/v1beta1.TriggerSpec&#34;&gt;TriggerSpec&lt;/a&gt;)
&lt;/p&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;ref&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
string
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;apiversion&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
string
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;spec&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1beta1.TriggerTemplateSpec&#34;&gt;
TriggerTemplateSpec
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;br/&gt;
&lt;br/&gt;
&lt;table&gt;
&lt;/table&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1beta1.TriggerTemplateSpec&#34;&gt;TriggerTemplateSpec
&lt;/h3&gt;
&lt;p&gt;
(&lt;em&gt;Appears on:&lt;/em&gt;&lt;a href=&#34;#triggers.tekton.dev/v1beta1.TriggerTemplate&#34;&gt;TriggerTemplate&lt;/a&gt;, &lt;a href=&#34;#triggers.tekton.dev/v1beta1.TriggerSpecTemplate&#34;&gt;TriggerSpecTemplate&lt;/a&gt;)
&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;TriggerTemplateSpec holds the desired state of TriggerTemplate&lt;/p&gt;
&lt;/div&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;params&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1beta1.ParamSpec&#34;&gt;
[]ParamSpec
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;resourcetemplates&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;#triggers.tekton.dev/v1beta1.TriggerResourceTemplate&#34;&gt;
[]TriggerResourceTemplate
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1beta1.TriggerTemplateStatus&#34;&gt;TriggerTemplateStatus
&lt;/h3&gt;
&lt;p&gt;
(&lt;em&gt;Appears on:&lt;/em&gt;&lt;a href=&#34;#triggers.tekton.dev/v1beta1.TriggerTemplate&#34;&gt;TriggerTemplate&lt;/a&gt;)
&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;TriggerTemplateStatus describes the desired state of TriggerTemplate&lt;/p&gt;
&lt;/div&gt;
&lt;h3 id=&#34;triggers.tekton.dev/v1beta1.WebhookInterceptor&#34;&gt;WebhookInterceptor
&lt;/h3&gt;
&lt;p&gt;
(&lt;em&gt;Appears on:&lt;/em&gt;&lt;a href=&#34;#triggers.tekton.dev/v1beta1.TriggerInterceptor&#34;&gt;TriggerInterceptor&lt;/a&gt;)
&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;WebhookInterceptor provides a webhook to intercept and pre-process events&lt;/p&gt;
&lt;/div&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;objectRef&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.22/#objectreference-v1-core&#34;&gt;
Kubernetes core/v1.ObjectReference
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;em&gt;(Optional)&lt;/em&gt;
&lt;p&gt;ObjectRef is a reference to an object that will resolve to a cluster DNS
name to use as the EventInterceptor. Either objectRef or url can be specified&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;url&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;https://pkg.go.dev/knative.dev/pkg/apis#URL&#34;&gt;
knative.dev/pkg/apis.URL
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;em&gt;(Optional)&lt;/em&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;header&lt;/code&gt;&lt;br/&gt;
&lt;em&gt;
&lt;a href=&#34;https://pkg.go.dev/github.com/tektoncd/pipeline/pkg/apis/pipeline/v1beta1#Param&#34;&gt;
[]github.com/tektoncd/pipeline/pkg/apis/pipeline/v1beta1.Param
&lt;/a&gt;
&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Header is a group of key-value pairs that can be appended to the
interceptor request headers. This allows the interceptor to make
decisions specific to an EventListenerTrigger.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr/&gt;
&lt;p&gt;&lt;em&gt;
Generated with &lt;code&gt;gen-crd-api-reference-docs&lt;/code&gt;
.
&lt;/em&gt;&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Vault: </title>
      <link>https://deploy-preview-726--tekton.netlify.app/vault/triggers-v0.32.x-lts/metrics/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://deploy-preview-726--tekton.netlify.app/vault/triggers-v0.32.x-lts/metrics/</guid>
      <description>
        
        
        &lt;h1 id=&#34;tekton-triggers-controller-metrics&#34;&gt;Tekton Triggers Controller Metrics&lt;/h1&gt;
&lt;p&gt;The following tekton triggers metrics are available at &lt;code&gt;controller-service&lt;/code&gt; on port &lt;code&gt;9000&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;We expose several kinds of exporters, including Prometheus, Google Stackdriver, and many others. You can set them up using &lt;a href=&#34;https://github.com/tektoncd/triggers/tree/release-v0.32.x/config/config-observability.yaml&#34;&gt;observability configuration&lt;/a&gt;.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Name&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;controller_clusterinterceptor_count&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Gauge&lt;/td&gt;
&lt;td&gt;Number of clusterinteceptor&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;controller_eventlistener_count&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Gauge&lt;/td&gt;
&lt;td&gt;Number of eventlistener&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;controller_clustertriggerbinding_count&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Gauge&lt;/td&gt;
&lt;td&gt;Number of clustertriggerbinding&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;controller_triggerbinding_count&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Gauge&lt;/td&gt;
&lt;td&gt;Number of triggerbinding&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;controller_triggertemplate_count&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Gauge&lt;/td&gt;
&lt;td&gt;Number of triggertemplate&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;

      </description>
    </item>
    
    <item>
      <title>Vault: </title>
      <link>https://deploy-preview-726--tekton.netlify.app/vault/triggers-v0.32.x-lts/troubleshooting/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://deploy-preview-726--tekton.netlify.app/vault/triggers-v0.32.x-lts/troubleshooting/</guid>
      <description>
        
        
        &lt;h1 id=&#34;troubleshooting-tekton-triggers&#34;&gt;Troubleshooting Tekton Triggers&lt;/h1&gt;
&lt;p&gt;This page describes the debugging methods you can use to diagnose and fix issues with Tekton Triggers.&lt;/p&gt;
&lt;h2 id=&#34;gathering-eventlistener-logs&#34;&gt;Gathering &lt;code&gt;EventListener&lt;/code&gt; logs&lt;/h2&gt;
&lt;p&gt;You can gather &lt;code&gt;EventListener&lt;/code&gt; logs using the Tekton &lt;code&gt;tkn&lt;/code&gt; CLI tool or the Kubernetes &lt;code&gt;kubectl&lt;/code&gt; CLI tool.&lt;/p&gt;
&lt;p&gt;Use the following &lt;code&gt;tkn&lt;/code&gt; command to gather &lt;code&gt;EventListener&lt;/code&gt; logs:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ tkn eventlistener logs &amp;lt;eventlistener-name&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;See the &lt;code&gt;tkn&lt;/code&gt; CLI tool &lt;a href=&#34;https://github.com/tektoncd/cli/blob/main/docs/cmd/tkn_eventlistener_logs.md&#34;&gt;documentation page&lt;/a&gt; for this config for more information.&lt;/p&gt;
&lt;p&gt;Use the following &lt;code&gt;kubectl&lt;/code&gt; command to gather &lt;code&gt;EventListener&lt;/code&gt; logs:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ kubectl logs deploy/el-&amp;lt;insert name of eventlistener&amp;gt; -n &amp;lt;namespace&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;To get a list of &lt;code&gt;EventListeners&lt;/code&gt; for a given namespace, use the following command:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ kubectl get el -n &amp;lt;namespace&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;NAME                  ADDRESS                                                        AVAILABLE   REASON
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;test-event-listener   http://el-test-event-listener.default.svc.cluster.local:8080   True        MinimumReplicasAvailable
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;configuring-debug-logging-for-eventlisteners&#34;&gt;Configuring debug logging for &lt;code&gt;EventListeners&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;EventListeners&lt;/code&gt; uses &lt;a href=&#34;https://kubernetes.io/docs/concepts/configuration/configmap/&#34;&gt;&lt;code&gt;ConfigMap&lt;/code&gt;&lt;/a&gt; named &lt;code&gt;config-logging-triggers&lt;/code&gt;
in the namespace(typically tekton-pipelines) of the target Tekton Triggers controller. To view this &lt;code&gt;ConfigMap&lt;/code&gt;, use the following command:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ kubectl get cm -n tekton-pipelines
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;NAME                      DATA   AGE
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;config-logging-triggers   &lt;span style=&#34;color:#f60&#34;&gt;2&lt;/span&gt;      28m
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Below is a typical &lt;code&gt;config-logging-listeners&lt;/code&gt; &lt;code&gt;ConfigMap&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;apiVersion&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;v1&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;kind&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;ConfigMap&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;metadata&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;config-logging-triggers&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;data&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;loglevel.eventlistener&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;info&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;zap-logger-config&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#39;{&amp;#34;level&amp;#34;: &amp;#34;info&amp;#34;,&amp;#34;development&amp;#34;: false,&amp;#34;sampling&amp;#34;: {&amp;#34;initial&amp;#34;:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30&#34;&gt;    100,&amp;#34;thereafter&amp;#34;: 100},&amp;#34;outputPaths&amp;#34;: [&amp;#34;stdout&amp;#34;],&amp;#34;errorOutputPaths&amp;#34;: [&amp;#34;stderr&amp;#34;],&amp;#34;encoding&amp;#34;:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30&#34;&gt;    &amp;#34;json&amp;#34;,&amp;#34;encoderConfig&amp;#34;: {&amp;#34;timeKey&amp;#34;: &amp;#34;ts&amp;#34;,&amp;#34;levelKey&amp;#34;: &amp;#34;level&amp;#34;,&amp;#34;nameKey&amp;#34;: &amp;#34;logger&amp;#34;,&amp;#34;callerKey&amp;#34;:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30&#34;&gt;    &amp;#34;caller&amp;#34;,&amp;#34;messageKey&amp;#34;: &amp;#34;msg&amp;#34;,&amp;#34;stacktraceKey&amp;#34;: &amp;#34;stacktrace&amp;#34;,&amp;#34;lineEnding&amp;#34;: &amp;#34;&amp;#34;,&amp;#34;levelEncoder&amp;#34;:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30&#34;&gt;    &amp;#34;&amp;#34;,&amp;#34;timeEncoder&amp;#34;: &amp;#34;iso8601&amp;#34;,&amp;#34;durationEncoder&amp;#34;: &amp;#34;&amp;#34;,&amp;#34;callerEncoder&amp;#34;: &amp;#34;&amp;#34;}}&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;To enable debug-level logging in Tekton Triggers, use the following command:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ kubectl patch cm config-logging-triggers -n tekton-pipelines  -p &lt;span style=&#34;color:#c30&#34;&gt;&amp;#39;{&amp;#34;data&amp;#34;: {&amp;#34;zap-logger-config&amp;#34;: &amp;#34;{\n  \&amp;#34;level\&amp;#34;: \&amp;#34;debug\&amp;#34;,\n  \&amp;#34;development\&amp;#34;: false,\n  \&amp;#34;sampling\&amp;#34;: {\n    \&amp;#34;initial\&amp;#34;: 100,\n    \&amp;#34;thereafter\&amp;#34;: 100\n  },\n  \&amp;#34;outputPaths\&amp;#34;: [\&amp;#34;stdout\&amp;#34;],\n  \&amp;#34;errorOutputPaths\&amp;#34;: [\&amp;#34;stderr\&amp;#34;],\n  \&amp;#34;encoding\&amp;#34;: \&amp;#34;json\&amp;#34;,\n  \&amp;#34;encoderConfig\&amp;#34;: {\n    \&amp;#34;timeKey\&amp;#34;: \&amp;#34;ts\&amp;#34;,\n    \&amp;#34;levelKey\&amp;#34;: \&amp;#34;level\&amp;#34;,\n    \&amp;#34;nameKey\&amp;#34;: \&amp;#34;logger\&amp;#34;,\n    \&amp;#34;callerKey\&amp;#34;: \&amp;#34;caller\&amp;#34;,\n    \&amp;#34;messageKey\&amp;#34;: \&amp;#34;msg\&amp;#34;,\n    \&amp;#34;stacktraceKey\&amp;#34;: \&amp;#34;stacktrace\&amp;#34;,\n    \&amp;#34;lineEnding\&amp;#34;: \&amp;#34;\&amp;#34;,\n    \&amp;#34;levelEncoder\&amp;#34;: \&amp;#34;\&amp;#34;,\n    \&amp;#34;timeEncoder\&amp;#34;: \&amp;#34;iso8601\&amp;#34;,\n    \&amp;#34;durationEncoder\&amp;#34;: \&amp;#34;\&amp;#34;,\n    \&amp;#34;callerEncoder\&amp;#34;: \&amp;#34;\&amp;#34;\n  }\n}\n&amp;#34;}}&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;You need to delete deployment of EventListener so that above configuration are applied to Environment variables of Deployment.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ kubectl delete deployment/el-&lt;span style=&#34;color:#555&#34;&gt;{&lt;/span&gt;EventListenerName&lt;span style=&#34;color:#555&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The &lt;code&gt;EventListener&lt;/code&gt; will start with the new logging level. For example:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;{&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;&amp;#34;level&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;info&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;&amp;#34;ts&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;2022-07-26T16:02:26.191Z&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;&amp;#34;caller&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;logging/config.go:116&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;&amp;#34;msg&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;Successfully created the logger.&amp;#34;&lt;/span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;{&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;&amp;#34;level&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;info&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;&amp;#34;ts&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;2022-07-26T16:02:26.191Z&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;&amp;#34;caller&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;logging/config.go:117&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;&amp;#34;msg&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;Logging level set to: debug&amp;#34;&lt;/span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;From this point on, every HTTP request that the &lt;code&gt;EventListener&lt;/code&gt; logs contains additional information. For example:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;{&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;&amp;#34;level&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;debug&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;&amp;#34;ts&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;2021-02-10T08:42:30.915Z&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;&amp;#34;logger&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;eventlistener&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;&amp;#34;caller&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;sink/sink.go:93&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;&amp;#34;msg&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;EventListener: demo-event-listener in Namespace: default handling event (EventID: 9x4mb) with path /testing, payload: {\&amp;#34;testing\&amp;#34;: \&amp;#34;value\&amp;#34;} and header: map[Accept:[*/*] Content-Length:[20] Content-Type:[application/x-www-form-urlencoded] User-Agent:[curl/7.61.1] X-Auth:[testing]]&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;&amp;#34;knative.dev/controller&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;eventlistener&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;&amp;#34;/triggers-eventid&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;9x4mb&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;&amp;#34;logging.googleapis.com/labels&amp;#34;&lt;/span&gt;:{},&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;&amp;#34;logging.googleapis.com/sourceLocation&amp;#34;&lt;/span&gt;:{&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;&amp;#34;file&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;github.com/tektoncd/triggers/pkg/sink/sink.go&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;&amp;#34;line&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;93&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;&amp;#34;function&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;github.com/tektoncd/triggers/pkg/sink.Sink.HandleEvent&amp;#34;&lt;/span&gt;}}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;WARNING&lt;/strong&gt;: The &lt;code&gt;EventListener&lt;/code&gt; logs all payload headers verbatim. This includes any sensitive information the headers might contain.&lt;/p&gt;
&lt;p&gt;To disable debug-level logging, use the following command:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ kubectl patch cm config-logging-triggers -n &amp;lt;namespace&amp;gt; -p &lt;span style=&#34;color:#c30&#34;&gt;&amp;#39;{&amp;#34;data&amp;#34;: {&amp;#34;loglevel.eventlistener&amp;#34;: &amp;#34;info&amp;#34;}}&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This returns the logging level to &lt;code&gt;info&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;troubleshooting-jsonpath-issues&#34;&gt;Troubleshooting JSONPath issues&lt;/h2&gt;
&lt;p&gt;You may see the following message in your logs:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;{&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;&amp;#34;level&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;error&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;&amp;#34;ts&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;2021-02-10T08:43:47.409Z&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;&amp;#34;logger&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;eventlistener&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;&amp;#34;caller&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;sink/sink.go:230&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;&amp;#34;msg&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;failed to ApplyEventValuesToParams: failed to replace JSONPath value for param message: $(body.message): message is not found&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;&amp;#34;knative.dev/controller&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;eventlistener&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;&amp;#34;/triggers-eventid&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;c8f88&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;&amp;#34;/trigger&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;demo-trigger&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;&amp;#34;logging.googleapis.com/labels&amp;#34;&lt;/span&gt;:{},&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;&amp;#34;logging.googleapis.com/sourceLocation&amp;#34;&lt;/span&gt;:{&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;&amp;#34;file&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;github.com/tektoncd/triggers/pkg/sink/sink.go&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;&amp;#34;line&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;230&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;&amp;#34;function&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;github.com/tektoncd/triggers/pkg/sink.Sink.processTrigger&amp;#34;&lt;/span&gt;},&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;&amp;#34;stacktrace&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;github.com/tektoncd/triggers/pkg/sink.Sink.processTrigger\n\tgithub.com/tektoncd/triggers/pkg/sink/sink.go:230\ngithub.com/tektoncd/triggers/pkg/sink.Sink.HandleEvent.func1\n\tgithub.com/tektoncd/triggers/pkg/sink/sink.go:125&amp;#34;&lt;/span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This means that the selected &lt;code&gt;Interceptor&lt;/code&gt; is unable to parse the structure of the received JSON payload. To troubleshoot this, you must capture and inspect the payload for inconsistencies.&lt;/p&gt;
&lt;h2 id=&#34;troubleshooting-signature-and-token-errors&#34;&gt;Troubleshooting signature and token errors&lt;/h2&gt;
&lt;p&gt;When sending a hook protected by a secret, GitHub includes an &lt;code&gt;X-Hub-Signature&lt;/code&gt; object in the header, while GitLab includes an &lt;code&gt;X-GitLab-Token&lt;/code&gt; object.
You may see &lt;code&gt;no X-Hub-Signature set&lt;/code&gt; and/or &lt;code&gt;no X-GitLab-Token header set&lt;/code&gt; errors in your logs in one of the following scenarios:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;If you specify a secret in your &lt;code&gt;Interceptor&lt;/code&gt; but don&amp;rsquo;t specify it in the hook.&lt;/li&gt;
&lt;li&gt;You are sending unsigned payloads to an &lt;code&gt;Interceptor&lt;/code&gt; that expects signed payloads.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Note that depending on how you have configured your Tekton Triggers stack, these errors may not indicate an actual problem. For example, your stack may
include some &lt;code&gt;Interceptors&lt;/code&gt; that expect signed payloads and some that expected unsigned payloads. Since Tekton Triggers processes all &lt;code&gt;Interceptors&lt;/code&gt;
concurrently, &lt;code&gt;Interceptors&lt;/code&gt; that expect signed payloads will log the above errors, while &lt;code&gt;Interceptors&lt;/code&gt; that expect unsigned payloads will process
those payloads successfully.&lt;/p&gt;

      </description>
    </item>
    
  </channel>
</rss>
