3 #Support Microsoft Teams webhooks
7 #TEAMS_SUCCESS_COLOR=""
14 _statusCode
="$3" #0: success, 1: error 2($RENEW_SKIP): skipped
15 _debug
"_statusCode" "$_statusCode"
17 _color_success
="2cbe4e" # green
18 _color_danger
="cb2431" # red
19 _color_muted
="586069" # gray
21 TEAMS_WEBHOOK_URL
="${TEAMS_WEBHOOK_URL:-$(_readaccountconf_mutable TEAMS_WEBHOOK_URL)}"
22 if [ -z "$TEAMS_WEBHOOK_URL" ]; then
24 _err
"You didn't specify a Microsoft Teams webhook url TEAMS_WEBHOOK_URL yet."
27 _saveaccountconf_mutable TEAMS_WEBHOOK_URL
"$TEAMS_WEBHOOK_URL"
29 TEAMS_THEME_COLOR
="${TEAMS_THEME_COLOR:-$(_readaccountconf_mutable TEAMS_THEME_COLOR)}"
30 if [ -n "$TEAMS_THEME_COLOR" ]; then
31 _saveaccountconf_mutable TEAMS_THEME_COLOR
"$TEAMS_THEME_COLOR"
34 TEAMS_SUCCESS_COLOR
="${TEAMS_SUCCESS_COLOR:-$(_readaccountconf_mutable TEAMS_SUCCESS_COLOR)}"
35 if [ -n "$TEAMS_SUCCESS_COLOR" ]; then
36 _saveaccountconf_mutable TEAMS_SUCCESS_COLOR
"$TEAMS_SUCCESS_COLOR"
39 TEAMS_ERROR_COLOR
="${TEAMS_ERROR_COLOR:-$(_readaccountconf_mutable TEAMS_ERROR_COLOR)}"
40 if [ -n "$TEAMS_ERROR_COLOR" ]; then
41 _saveaccountconf_mutable TEAMS_ERROR_COLOR
"$TEAMS_ERROR_COLOR"
44 TEAMS_SKIP_COLOR
="${TEAMS_SKIP_COLOR:-$(_readaccountconf_mutable TEAMS_SKIP_COLOR)}"
45 if [ -n "$TEAMS_SKIP_COLOR" ]; then
46 _saveaccountconf_mutable TEAMS_SKIP_COLOR
"$TEAMS_SKIP_COLOR"
49 export _H1
="Content-Type: application/json"
51 _subject
=$
(echo "$_subject" | _json_encode
)
52 _content
=$
(echo "$_content" | _json_encode
)
54 case "$_statusCode" in
56 _color
="${TEAMS_SUCCESS_COLOR:-$_color_success}"
59 _color
="${TEAMS_ERROR_COLOR:-$_color_danger}"
62 _color
="${TEAMS_SKIP_COLOR:-$_color_muted}"
66 _color
=$
(echo "$_color" |
tr -cd 'a-fA-F0-9')
67 if [ -z "$_color" ]; then
68 _color
=$
(echo "${TEAMS_THEME_COLOR:-$_color_muted}" |
tr -cd 'a-fA-F0-9')
71 _data
="{\"title\": \"$_subject\","
72 if [ -n "$_color" ]; then
73 _data
="$_data\"themeColor\": \"$_color\", "
75 _data
="$_data\"text\": \"$_content\"}"
77 if response
=$
(_post
"$_data" "$TEAMS_WEBHOOK_URL"); then
78 if ! _contains
"$response" error
; then
79 _info
"teams send success."
83 _err
"teams send error."