apiVersion: tekton.dev/v1beta1 kind: Task metadata: name: j7s-onedev-pr-review namespace: j7s-ci spec: params: - name: tekton-login-secret-name - name: feedback-url - name: pr-id - name: run-name - name: status steps: - image: 192.168.1.128:8443/curl:latest script: | #!/usr/bin/env bash set -e # Approve or request changes. echo '{"userId" : 1, "requestId" : 1, "status" : "PENDING", "statusDate" : ""}' > request.json cat request.json | jq ".userId = $TEKTON_USER_ID" | jq . > request1.json cat request1.json | jq ".requestId = $(params.pr-id)" | jq . > request2.json cat request2.json | jq ".statusDate = \"`date +"%Y-%m-%dT%H:%M:%S%:z"`\"" | jq . > request3.json case "$(params.status)" in "Succeeded" | "Completed") echo "Build was successful!" cat request3.json | jq ".status = \"APPROVED\" " | jq . > request4.json ;; "Failed" | "None") cat request3.json | jq ".status = \"REQUESTED_FOR_CHANGES\" " | jq . > request4.json ;; esac curl -u tekton:$TEKTON_API_KEY \ -H "Content-Type: application/json" \ -d@request4.json \ $(params.feedback-url)/~api/pull-request-reviews # Make a comment on the PR. echo '{"userId" : 1, "requestId" : 1, "content" : "", "date" : ""}' > comment.json cat comment.json | jq ".userId = $TEKTON_USER_ID" | jq . > comment1.json cat comment1.json | jq ".requestId = $(params.pr-id)" | jq . > comment2.json cat comment2.json | jq ".date = \"`date +"%Y-%m-%dT%H:%M:%S%:z"`\"" | jq . > comment3.json cat comment3.json | jq ".content = \"Tekton run: $(params.run-name).\"" | jq . > comment4.json curl -u tekton:$TEKTON_API_KEY \ -H "Content-Type: application/json" \ -d@comment4.json \ $(params.feedback-url)/~api/pull-request-comments env: - name: TEKTON_API_KEY valueFrom: secretKeyRef: name: $(params.tekton-login-secret-name) key: accesstoken - name: TEKTON_USER_ID valueFrom: secretKeyRef: name: $(params.tekton-login-secret-name) key: userid