日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

在Knative上實現GitHub事件處理

本文介紹了如何在Knative上實現GitHub事件處理。

前提條件

步驟一:創建服務

關于創建服務的詳細步驟,請參見快速部署Serverless應用

步驟二:創建GitHub Token

  1. 創建Personal access token。
    Personal access token用于訪問GitHub API。請參見Personal access tokens
    下面是設置一個GitHubSource Sample token的示例。創建github token
    說明 需要開啟repo:public_repoadmin:repo_hook,以便通過公共倉庫觸發Event事件,并為這些公共倉庫創建webhooks。

    您可以自定義token的名稱。

  2. 獲取集群KubeConfig并通過kubectl工具連接集群
  3. secretToken內容可以通過下述方式生成隨機字符串。
    head -c 8 /dev/urandom | base64
  4. 更新githubsecret.yaml
    如果生成的是personal_access_token_value token,則需要設置secretToken。示例如下:
    apiVersion: v1
    kind: Secret
    metadata:
      name: githubsecret
    type: Opaque
    stringData:
      accessToken: personal_access_token_value
      secretToken: asdfasfdsaf
  5. 執行以下命令,創建GitHub Token。
    kubectl --namespace default apply githubsecret.yaml

步驟三:創建GitHub事件源

您可以創建GitHubSource用于接收GitHub產生的事件。

  1. 獲取集群KubeConfig并通過kubectl工具連接集群
  2. 創建并拷貝以下內容到github-source.yaml文件中。
    apiVersion: sources.eventing.knative.dev/v1alpha1
    kind: GitHubSource
    metadata:
      name: githubsourcesample
    spec:
      eventTypes:
        - pull_request
      ownerAndRepository: <YOUR USER>/<YOUR REPO>
      accessToken:
        secretKeyRef:
          name: githubsecret
          key: accessToken
      secretToken:
        secretKeyRef:
          name: githubsecret
          key: secretToken
      sink:
        apiVersion: serving.knative.dev/v1alpha1
        kind: Service
        name: github-event-display
  3. 執行以下命令,在命名空間default中創建GitHubSource。
    kubectl --namespace default apply github-source.yaml

執行結果

在GitHub repository中選擇Settings > Webhooks,可以看到有一個驗證成功的Hook URL。
說明 域名需要備案,否則無法進行訪問。
在GitHub repository中執行以下命令,創建一個pull request,此時會產生Event事件。
kubectl --namespace default get pods
kubectl --namespace default logs github-event-display-XXXX user-container
在Knative Eventing可以看到類似下面的事件結果。
2018/11/08 18:25:34 Message Dumper received a message: POST / HTTP/1.1
Host: github-event-display.knative-demo.svc.cluster.local
Accept-Encoding: gzip
Ce-Cloudeventsversion: 0.1
Ce-Eventid: a8d4cf20-e383-11e8-8069-46e3c8ad****
Ce-Eventtime: 2018-11-08T18:25:32.819548012Z
Ce-Eventtype: dev.knative.source.github.pull_request
Ce-Source: https://github.com/someuser/somerepo/pull/1
Content-Length: 21060
Content-Type: application/json
User-Agent: Go-http-client/1.1
X-B3-Parentspanid: b2e514c3dbe94c03
X-B3-Sampled: 1
X-B3-Spanid: c85e346d89c8be4e
X-B3-Traceid: abf6292d458fb8e7
X-Envoy-Expected-Rq-Timeout-Ms: 60000
X-Envoy-Internal: true
X-Forwarded-For: 12*.*.*.*, 12*.*.*.*
X-Forwarded-Proto: http
X-Request-Id: 8a2201af-5075-9447-b593-ec3a243a****

{"action":"opened","number":1,"pull_request": ...}