Skip to content

Commit 427ea91

Browse files
committed
WIP: github commit status integration
1 parent e80d888 commit 427ea91

File tree

4 files changed

+39
-5
lines changed

4 files changed

+39
-5
lines changed

argocd/argocd-notifications/cm-patch.yaml

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# https://argoproj-labs.github.io/argocd-notifications/services/webhook/#set-github-commit-status
1+
# https://argoproj-labs.github.io/argocd-notifications/services/webhook/
22
apiVersion: v1
33
kind: ConfigMap
44
metadata:
@@ -27,3 +27,17 @@ data:
2727
if eq .app.status.operationState.phase \"Error\" }}has \x0304errored: {{.app.status.operationState.message}}\x03{{end}}{{
2828
if eq .app.status.operationState.phase \"Failed\" }}has \x0304failed: {{.app.status.operationState.message}}\x03{{end
2929
}} (blame \x0315{{.app.status.operationState.operation.initiatedBy.username}}\x03)"
30+
31+
github:
32+
method: POST
33+
path: /repos/{{call .repo.FullNameByRepoURL .app.spec.source.repoURL}}/statuses/{{.app.status.operationState.operation.sync.revision}}
34+
body: |
35+
{
36+
{{if eq .app.status.operationState.phase "Running"}} "state": "pending"{{end}}
37+
{{if eq .app.status.operationState.phase "Succeeded"}} "state": "success"{{end}}
38+
{{if eq .app.status.operationState.phase "Error"}} "state": "error"{{end}}
39+
{{if eq .app.status.operationState.phase "Failed"}} "state": "error"{{end}},
40+
"description": "ArgoCD",
41+
"target_url": "{{.context.argocdUrl}}/applications/{{.app.metadata.name}}",
42+
"context": "continuous-delivery/{{.app.metadata.name}}"
43+
}

argocd/argocd-notifications/secret.enc.yaml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,14 @@ metadata:
66
kustomize.config.k8s.io/behavior: merge
77
type: Opaque
88
stringData:
9-
notifiers.yaml: ENC[AES256_GCM,data:Ots4ChIx6PmbR4TVIfH/Doeh/U0UlvghABhZQhwA2kCI78puVch5znibz3CekJ0vzZqWlE35J0rtds0f+mPlQT8Ov4KI9ctu+wUAiAeSJHuihD0E3rmDjQR7GDrLv7TgySFdxUG3JgVzs/MheIuwGLtAsQSf+L9xpUToYT1WxJAdfENg8Sljl6d5H9vWfsTtA+PbB182LcP+3R5sEkOOKiSIEY0fxCd5J9DqQs/0sDrAnqf9eTOSeMTIYAfBjC7GUlA0nVFysqFZtzg38zr71AG5vLghYIjxQWZ3b/NPuRGYiZYtmWG3aeWV85qxPlN/8q8JHmW0gLkMLKa2TtpfD78D3Kp+IIhNFbr+ibV5X4i9emyVpnmBs/c=,iv:SOD/sZ/2MoS7IPTENrh3VQBpPz33DXU+8MOzGOqF2Do=,tag:1QQ7L+Vr191wxOE605gzXA==,type:str]
9+
notifiers.yaml: ENC[AES256_GCM,data:7gN7hP+Soryy/Omvkr//+Upytq9tAwr7MTAzlBuiwICSG9Gl8TCCWgIC5BnLdKAoJRLwA0tPuSM/4v89V0vWsqp0uENsGTyHTPHcYS2XFaLMMm5/z5ECDlBZqESkSQDZnKnt4b53zZhzgbBp+7HHOUkimaoH/w6UX2LKuj/mN28BpqkFl0u8E3Vn3XkblZxFE9QMMmrpIxkOzkkgB96fjAIuY7O3rFCPSO7Imv68WdSnk2bw3oZe6N4fAKj2dMrCTBwMhauyAiFR6nT41zA8vjvwtjYnxqoxJhAvBlbzdQ/4O/zugN5XUgrZlCNItccif/Ci9KGTgg4HgnPIr4xaxQEgYbkg0ZC1tz1MAB8bjEOV17W246tmIJMb4nyKn8sDYbihQzG6Yvx4ZrwgW6K0thxYm+X8hx8DXdDsh7o+D79x0yJdpfyQKnbZDnycA4eP4Hh1CfuWcJQRNdJ+iO0TCifb8ArY8PGYtvJsnbyTmukTvoQHstNb7zhb8zGjqEG3hldYgKHtTOJbSlNu+FXvaAGc,iv:XnTPNOJijBpEaXCGJBNq/cYXGD/2Dq0cBhirJOIJXSM=,tag:8ru3Pxj0it2sv4pmR05skQ==,type:str]
10+
'hashbang-argocd.2020-05-31.private-key.pem': ENC[AES256_GCM,data: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,iv:ehKHcVm9x9VCVcf5cKxdEPSntEFGP1JTo4IzF1n1HlM=,tag:WumaX5gUX7vtBNGLZH4G3g==,type:str]
1011
sops:
1112
kms: []
1213
gcp_kms: []
1314
azure_kv: []
14-
lastmodified: '2020-06-13T13:33:34Z'
15-
mac: ENC[AES256_GCM,data:ij4HjVpnB8r67jsnVilXIIqutFMhsUG3tzuypEO9/JjtnpTtGxWgRD/LjMDRe8s4dx7E6e+U9m9CEtk+0kF8R3v16uq+JDxh/GPBMNI+AfuV6GIQvphDOpdMAnsHNDpFK2/M023L6cqWjhT12KONifyF+ezUKqzzHEfCpmuIF4k=,iv:vla5VknPn92ZZy2RejUQdwS+xlY8AsAV9Rtk13GgGXs=,tag:tAuvs0pokRTD6qxq6UXbpg==,type:str]
15+
lastmodified: '2020-06-13T15:24:11Z'
16+
mac: ENC[AES256_GCM,data:yIBXJL1oHchXp2Pg+ssWd07h6FVQJDSAGrHL5h6eqPdrJnhfzvg8P9L3efCciJlCOZzSHT9YGt+Vw2HRyKr5dKxO9mLkw0pamjVKY4KuywUYkBX3Q5ZXdsN9AnkWOax2YublAgTXVRYFNRGp8VEc2vgbWT3eUwW0uvnk5wYj81Q=,iv:h/xOdl577X7kBkhL/4YcvESyEKqwzlakA1ezFIqoN6o=,tag:d1I59jqLyitzWOiRTaWr0A==,type:str]
1617
pgp:
1718
- created_at: '2020-05-31T15:16:18Z'
1819
enc: |

argocd/projects/default.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ kind: AppProject
33
metadata:
44
name: default
55
annotations:
6-
recipients.argocd-notifications.argoproj.io: webhook:bitbot, grafana:argocd
6+
recipients.argocd-notifications.argoproj.io: grafana:argocd, webhook:bitbot, webhook:github
77
spec:
88
sourceRepos:
99
- '*'

github-token.rb

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
require 'openssl'
2+
require 'jwt' # https://rubygems.org/gems/jwt
3+
4+
# Private key contents
5+
private_pem = File.read("hashbang-argocd.2020-05-31.private-key.pem")
6+
private_key = OpenSSL::PKey::RSA.new(private_pem)
7+
8+
# Generate the JWT
9+
payload = {
10+
# issued at time
11+
iat: Time.now.to_i,
12+
# JWT expiration time (10 minute maximum)
13+
exp: Time.now.to_i + (10 * 60),
14+
# GitHub App's identifier
15+
iss: 67056
16+
}
17+
18+
jwt = JWT.encode(payload, private_key, "RS256")
19+
puts jwt

0 commit comments

Comments
 (0)