我正在Bitbucket Cloud上为我的repo创建一个eventlistener,并在Tekton文档上的当前示例中看到Bitbucket拦截器只支持Bitbucket Server。我已经创建了eventlistener,看起来像这样:
---
apiVersion: triggers.tekton.dev/v1alpha1
kind: EventListener
metadata:
name: bitbucket-el
spec:
serviceAccountName: tekton-triggers-admin
triggers:
- name: bitbucket-triggers
interceptors:
- bitbucket:
secretRef:
secretName: bitbucket-secret
secretKey: secretToken
eventTypes:
- cel:
filter: "header.match('X-Event-Key', 'repo:push')"
overlays:
- key: extensions.tag_name
expression: "split(body.ref, '/')[2]"
- key: extensions.mangledtag
expression: "split(split(body.ref, '/')[2], '.')[0]+'-'+split(split(body.ref, '/')[2], '.')[1]+'-'+split(split(body.ref, '/')[2], '.')[2]"
bindings:
- ref: bitbucket-binding
template:
ref: bitbucket-template
我通过这个文档将bitbucket Cloud消费者机密生成的令牌(bitbucket secret(传递给它:https://support.atlassian.com/bitbucket-cloud/docs/use-oauth-on-bitbucket-cloud/
我在Ingress上使用了基本身份验证,webhook返回401 Unauthorized,现在在我删除基本身份验证并用推送触发webhook之后,我看到了403 Forbiden
。
请查看下面的图片以了解插图:在此处输入图像描述
提前感谢
我在这个问题上花了很多时间,并通过使用CEL表达式拦截器最终解决了它,如下所示。
在这个触发器中,我们使用覆盖来添加";X-Hub-Signature";到有效载荷的主体,其中表达式值(即1234567(无关紧要,它可以是任何东西,我们只是将HMAC添加到主体中,这样我们就不会出错。
注意:默认情况下,没有用于位桶CLOUD 的拦截器
apiVersion: triggers.tekton.dev/v1beta1
kind: Trigger
metadata:
name: energy
spec:
serviceAccountName: pipeline
interceptors:
- ref:
name: "cel"
params:
- name: "filter"
value: "header.match('X-Event-Key', 'repo:push')"
- name: "overlays"
value:
- key: X-Hub-Signature
expression: "1234567"
bindings:
- ref: energy
template:
ref: energy
我正在努力实现这一点,在BitBucket云中完成PR合并后开始构建。
我能够创建EventListener资源,但在合并PR后,我的管道没有被触发。
看看你的例子,我仍然有一些问题
- 如何配置GIT存储库和机密
- 如何指定特定的分支
我在寻找一个完整的例子,但Tekton似乎只是忽略了Bitbucket Cloud作为VCS。。。
问候,
Bregt