webhook_bridge/test_webhook.bash

39 lines
8.7 KiB
Bash
Executable File

#!/usr/bin/env bash
#
set -euo pipefail
IFS=$'\n\t'
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
function main() {
local payload sha256signature sha1signature
payload=$(base64 -d <<EOF
ewogICJyZWYiOiAicmVmcy9oZWFkcy9tYWluIiwKICAiYmVmb3JlIjogIjQ1NTViYjY4OTRhNTlkOGZiYTg4OTk3YjUxNzYxZjBmZWIzNDQyY2EiLAogICJhZnRlciI6ICJiOTFmNjM4ODRhZmQ2Y2EwMGMwNzZhMGY5MGNlNWIzNzEzYWZjYzkyIiwKICAiY29tcGFyZV91cmwiOiAiaHR0cHM6Ly9jb2RlLmZpenouYnV6ei90YWxleGFuZGVyL3dlYmhvb2tfYnJpZGdlL2NvbXBhcmUvNDU1NWJiNjg5NGE1OWQ4ZmJhODg5OTdiNTE3NjFmMGZlYjM0NDJjYS4uLmI5MWY2Mzg4NGFmZDZjYTAwYzA3NmEwZjkwY2U1YjM3MTNhZmNjOTIiLAogICJjb21taXRzIjogWwogICAgewogICAgICAiaWQiOiAiYjkxZjYzODg0YWZkNmNhMDBjMDc2YTBmOTBjZTViMzcxM2FmY2M5MiIsCiAgICAgICJtZXNzYWdlIjogIndpcFxuIiwKICAgICAgInVybCI6ICJodHRwczovL2NvZGUuZml6ei5idXp6L3RhbGV4YW5kZXIvd2ViaG9va19icmlkZ2UvY29tbWl0L2I5MWY2Mzg4NGFmZDZjYTAwYzA3NmEwZjkwY2U1YjM3MTNhZmNjOTIiLAogICAgICAiYXV0aG9yIjogewogICAgICAgICJuYW1lIjogIlRvbSBBbGV4YW5kZXIiLAogICAgICAgICJlbWFpbCI6ICJ0b21AZml6ei5idXp6IiwKICAgICAgICAidXNlcm5hbWUiOiAiIgogICAgICB9LAogICAgICAiY29tbWl0dGVyIjogewogICAgICAgICJuYW1lIjogIlRvbSBBbGV4YW5kZXIiLAogICAgICAgICJlbWFpbCI6ICJ0b21AZml6ei5idXp6IiwKICAgICAgICAidXNlcm5hbWUiOiAiIgogICAgICB9LAogICAgICAidmVyaWZpY2F0aW9uIjogbnVsbCwKICAgICAgInRpbWVzdGFtcCI6ICIyMDI0LTA3LTIwVDEyOjIyOjEwLTA0OjAwIiwKICAgICAgImFkZGVkIjogW10sCiAgICAgICJyZW1vdmVkIjogW10sCiAgICAgICJtb2RpZmllZCI6IFsKICAgICAgICAiQ2FyZ28ubG9jayIsCiAgICAgICAgIkNhcmdvLnRvbWwiLAogICAgICAgICJzcmMvd2ViaG9vay5ycyIKICAgICAgXQogICAgfQogIF0sCiAgInRvdGFsX2NvbW1pdHMiOiAxLAogICJoZWFkX2NvbW1pdCI6IHsKICAgICJpZCI6ICJiOTFmNjM4ODRhZmQ2Y2EwMGMwNzZhMGY5MGNlNWIzNzEzYWZjYzkyIiwKICAgICJtZXNzYWdlIjogIndpcFxuIiwKICAgICJ1cmwiOiAiaHR0cHM6Ly9jb2RlLmZpenouYnV6ei90YWxleGFuZGVyL3dlYmhvb2tfYnJpZGdlL2NvbW1pdC9iOTFmNjM4ODRhZmQ2Y2EwMGMwNzZhMGY5MGNlNWIzNzEzYWZjYzkyIiwKICAgICJhdXRob3IiOiB7CiAgICAgICJuYW1lIjogIlRvbSBBbGV4YW5kZXIiLAogICAgICAiZW1haWwiOiAidG9tQGZpenouYnV6eiIsCiAgICAgICJ1c2VybmFtZSI6ICIiCiAgICB9LAogICAgImNvbW1pdHRlciI6IHsKICAgICAgIm5hbWUiOiAiVG9tIEFsZXhhbmRlciIsCiAgICAgICJlbWFpbCI6ICJ0b21AZml6ei5idXp6IiwKICAgICAgInVzZXJuYW1lIjogIiIKICAgIH0sCiAgICAidmVyaWZpY2F0aW9uIjogbnVsbCwKICAgICJ0aW1lc3RhbXAiOiAiMjAyNC0wNy0yMFQxMjoyMjoxMC0wNDowMCIsCiAgICAiYWRkZWQiOiBbXSwKICAgICJyZW1vdmVkIjogW10sCiAgICAibW9kaWZpZWQiOiBbCiAgICAgICJDYXJnby5sb2NrIiwKICAgICAgIkNhcmdvLnRvbWwiLAogICAgICAic3JjL3dlYmhvb2sucnMiCiAgICBdCiAgfSwKICAicmVwb3NpdG9yeSI6IHsKICAgICJpZCI6IDIxLAogICAgIm93bmVyIjogewogICAgICAiaWQiOiAxLAogICAgICAibG9naW4iOiAidGFsZXhhbmRlciIsCiAgICAgICJsb2dpbl9uYW1lIjogIiIsCiAgICAgICJmdWxsX25hbWUiOiAiIiwKICAgICAgImVtYWlsIjogImdpdGVhQGxvY2FsLmRvbWFpbiIsCiAgICAgICJhdmF0YXJfdXJsIjogImh0dHBzOi8vY29kZS5maXp6LmJ1enovYXZhdGFycy85ZDQwMmE4OWI1YTA3ODZmODNjMWI4YzU0ODZmYzdmZjNkMDgzYTU0ZmUyMGU1NWMwYTc3NmExOTMyYzMwMjg5IiwKICAgICAgImxhbmd1YWdlIjogIiIsCiAgICAgICJpc19hZG1pbiI6IGZhbHNlLAogICAgICAibGFzdF9sb2dpbiI6ICIwMDAxLTAxLTAxVDAwOjAwOjAwWiIsCiAgICAgICJjcmVhdGVkIjogIjIwMjMtMDctMDVUMjI6MDM6MjhaIiwKICAgICAgInJlc3RyaWN0ZWQiOiBmYWxzZSwKICAgICAgImFjdGl2ZSI6IGZhbHNlLAogICAgICAicHJvaGliaXRfbG9naW4iOiBmYWxzZSwKICAgICAgImxvY2F0aW9uIjogIiIsCiAgICAgICJ3ZWJzaXRlIjogIiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiLAogICAgICAidmlzaWJpbGl0eSI6ICJwdWJsaWMiLAogICAgICAiZm9sbG93ZXJzX2NvdW50IjogMCwKICAgICAgImZvbGxvd2luZ19jb3VudCI6IDAsCiAgICAgICJzdGFycmVkX3JlcG9zX2NvdW50IjogMCwKICAgICAgInVzZXJuYW1lIjogInRhbGV4YW5kZXIiCiAgICB9LAogICAgIm5hbWUiOiAid2ViaG9va19icmlkZ2UiLAogICAgImZ1bGxfbmFtZSI6ICJ0YWxleGFuZGVyL3dlYmhvb2tfYnJpZGdlIiwKICAgICJkZXNjcmlwdGlvbiI6ICJBIHNlcnZlciB0aGF0IHJlY2VpdmVzIHdlYmhvb2tzIGZyb20gZ2l0ZWEgYW5kIGZpcmVzIG9mZiBUZWt0b24gam9icyBpbiByZXNwb25zZS4iLAogICAgImVtcHR5IjogZmFsc2UsCiAgICAicHJpdmF0ZSI6IGZhbHNlLAogICAgImZvcmsiOiBmYWxzZSwKICAgICJ0ZW1wbGF0ZSI6IGZhbHNlLAogICAgInBhcmVudCI6IG51bGwsCiAgICAibWlycm9yIjogZmFsc2UsCiAgICAic2l6ZSI6IDEyNywKICAgICJsYW5ndWFnZSI6ICIiLAogICAgImxhbmd1YWdlc191cmwiOiAiaHR0cHM6Ly9jb2RlLmZpenouYnV6ei9hcGkvdjEvcmVwb3MvdGFsZXhhbmRlci93ZWJob29rX2JyaWRnZS9sYW5ndWFnZXMiLAogICAgImh0bWxfdXJsIjogImh0dHBzOi8vY29kZS5maXp6LmJ1enovdGFsZXhhbmRlci93ZWJob29rX2JyaWRnZSIsCiAgICAidXJsIjogImh0dHBzOi8vY29kZS5maXp6LmJ1enovYXBpL3YxL3JlcG9zL3RhbGV4YW5kZXIvd2ViaG9va19icmlkZ2UiLAogICAgImxpbmsiOiAiIiwKICAgICJzc2hfdXJsIjogImdpdEBjb2RlLmZpenouYnV6ejp0YWxleGFuZGVyL3dlYmhvb2tfYnJpZGdlLmdpdCIsCiAgICAiY2xvbmVfdXJsIjogImh0dHBzOi8vY29kZS5maXp6LmJ1enovdGFsZXhhbmRlci93ZWJob29rX2JyaWRnZS5naXQiLAogICAgIm9yaWdpbmFsX3VybCI6ICIiLAogICAgIndlYnNpdGUiOiAiIiwKICAgICJzdGFyc19jb3VudCI6IDAsCiAgICAiZm9ya3NfY291bnQiOiAwLAogICAgIndhdGNoZXJzX2NvdW50IjogMSwKICAgICJvcGVuX2lzc3Vlc19jb3VudCI6IDAsCiAgICAib3Blbl9wcl9jb3VudGVyIjogMCwKICAgICJyZWxlYXNlX2NvdW50ZXIiOiAwLAogICAgImRlZmF1bHRfYnJhbmNoIjogIm1haW4iLAogICAgImFyY2hpdmVkIjogZmFsc2UsCiAgICAiY3JlYXRlZF9hdCI6ICIyMDI0LTA3LTE0VDE4OjQ4OjUyWiIsCiAgICAidXBkYXRlZF9hdCI6ICIyMDI0LTA3LTIwVDE2OjE0OjAzWiIsCiAgICAiYXJjaGl2ZWRfYXQiOiAiMTk3MC0wMS0wMVQwMDowMDowMFoiLAogICAgInBlcm1pc3Npb25zIjogewogICAgICAiYWRtaW4iOiB0cnVlLAogICAgICAicHVzaCI6IHRydWUsCiAgICAgICJwdWxsIjogdHJ1ZQogICAgfSwKICAgICJoYXNfaXNzdWVzIjogdHJ1ZSwKICAgICJpbnRlcm5hbF90cmFja2VyIjogewogICAgICAiZW5hYmxlX3RpbWVfdHJhY2tlciI6IHRydWUsCiAgICAgICJhbGxvd19vbmx5X2NvbnRyaWJ1dG9yc190b190cmFja190aW1lIjogdHJ1ZSwKICAgICAgImVuYWJsZV9pc3N1ZV9kZXBlbmRlbmNpZXMiOiB0cnVlCiAgICB9LAogICAgImhhc193aWtpIjogdHJ1ZSwKICAgICJoYXNfcHVsbF9yZXF1ZXN0cyI6IHRydWUsCiAgICAiaGFzX3Byb2plY3RzIjogdHJ1ZSwKICAgICJoYXNfcmVsZWFzZXMiOiB0cnVlLAogICAgImhhc19wYWNrYWdlcyI6IHRydWUsCiAgICAiaGFzX2FjdGlvbnMiOiBmYWxzZSwKICAgICJpZ25vcmVfd2hpdGVzcGFjZV9jb25mbGljdHMiOiBmYWxzZSwKICAgICJhbGxvd19tZXJnZV9jb21taXRzIjogdHJ1ZSwKICAgICJhbGxvd19yZWJhc2UiOiB0cnVlLAogICAgImFsbG93X3JlYmFzZV9leHBsaWNpdCI6IHRydWUsCiAgICAiYWxsb3dfc3F1YXNoX21lcmdlIjogdHJ1ZSwKICAgICJhbGxvd19yZWJhc2VfdXBkYXRlIjogdHJ1ZSwKICAgICJkZWZhdWx0X2RlbGV0ZV9icmFuY2hfYWZ0ZXJfbWVyZ2UiOiBmYWxzZSwKICAgICJkZWZhdWx0X21lcmdlX3N0eWxlIjogIm1lcmdlIiwKICAgICJkZWZhdWx0X2FsbG93X21haW50YWluZXJfZWRpdCI6IGZhbHNlLAogICAgImF2YXRhcl91cmwiOiAiIiwKICAgICJpbnRlcm5hbCI6IGZhbHNlLAogICAgIm1pcnJvcl9pbnRlcnZhbCI6ICIiLAogICAgIm1pcnJvcl91cGRhdGVkIjogIjAwMDEtMDEtMDFUMDA6MDA6MDBaIiwKICAgICJyZXBvX3RyYW5zZmVyIjogbnVsbAogIH0sCiAgInB1c2hlciI6IHsKICAgICJpZCI6IDEsCiAgICAibG9naW4iOiAidGFsZXhhbmRlciIsCiAgICAibG9naW5fbmFtZSI6ICIiLAogICAgImZ1bGxfbmFtZSI6ICIiLAogICAgImVtYWlsIjogInRhbGV4YW5kZXJAbm9yZXBseS5jb2RlLmZpenouYnV6eiIsCiAgICAiYXZhdGFyX3VybCI6ICJodHRwczovL2NvZGUuZml6ei5idXp6L2F2YXRhcnMvOWQ0MDJhODliNWEwNzg2ZjgzYzFiOGM1NDg2ZmM3ZmYzZDA4M2E1NGZlMjBlNTVjMGE3NzZhMTkzMmMzMDI4OSIsCiAgICAibGFuZ3VhZ2UiOiAiIiwKICAgICJpc19hZG1pbiI6IGZhbHNlLAogICAgImxhc3RfbG9naW4iOiAiMDAwMS0wMS0wMVQwMDowMDowMFoiLAogICAgImNyZWF0ZWQiOiAiMjAyMy0wNy0wNVQyMjowMzoyOFoiLAogICAgInJlc3RyaWN0ZWQiOiBmYWxzZSwKICAgICJhY3RpdmUiOiBmYWxzZSwKICAgICJwcm9oaWJpdF9sb2dpbiI6IGZhbHNlLAogICAgImxvY2F0aW9uIjogIiIsCiAgICAid2Vic2l0ZSI6ICIiLAogICAgImRlc2NyaXB0aW9uIjogIiIsCiAgICAidmlzaWJpbGl0eSI6ICJwdWJsaWMiLAogICAgImZvbGxvd2Vyc19jb3VudCI6IDAsCiAgICAiZm9sbG93aW5nX2NvdW50IjogMCwKICAgICJzdGFycmVkX3JlcG9zX2NvdW50IjogMCwKICAgICJ1c2VybmFtZSI6ICJ0YWxleGFuZGVyIgogIH0sCiAgInNlbmRlciI6IHsKICAgICJpZCI6IDEsCiAgICAibG9naW4iOiAidGFsZXhhbmRlciIsCiAgICAibG9naW5fbmFtZSI6ICIiLAogICAgImZ1bGxfbmFtZSI6ICIiLAogICAgImVtYWlsIjogInRhbGV4YW5kZXJAbm9yZXBseS5jb2RlLmZpenouYnV6eiIsCiAgICAiYXZhdGFyX3VybCI6ICJodHRwczovL2NvZGUuZml6ei5idXp6L2F2YXRhcnMvOWQ0MDJhODliNWEwNzg2ZjgzYzFiOGM1NDg2ZmM3ZmYzZDA4M2E1NGZlMjBlNTVjMGE3NzZhMTkzMmMzMDI4OSIsCiAgICAibGFuZ3VhZ2UiOiAiIiwKICAgICJpc19hZG1pbiI6IGZhbHNlLAogICAgImxhc3RfbG9naW4iOiAiMDAwMS0wMS0wMVQwMDowMDowMFoiLAogICAgImNyZWF0ZWQiOiAiMjAyMy0wNy0wNVQyMjowMzoyOFoiLAogICAgInJlc3RyaWN0ZWQiOiBmYWxzZSwKICAgICJhY3RpdmUiOiBmYWxzZSwKICAgICJwcm9oaWJpdF9sb2dpbiI6IGZhbHNlLAogICAgImxvY2F0aW9uIjogIiIsCiAgICAid2Vic2l0ZSI6ICIiLAogICAgImRlc2NyaXB0aW9uIjogIiIsCiAgICAidmlzaWJpbGl0eSI6ICJwdWJsaWMiLAogICAgImZvbGxvd2Vyc19jb3VudCI6IDAsCiAgICAiZm9sbG93aW5nX2NvdW50IjogMCwKICAgICJzdGFycmVkX3JlcG9zX2NvdW50IjogMCwKICAgICJ1c2VybmFtZSI6ICJ0YWxleGFuZGVyIgogIH0KfQ==
EOF
)
sha256signature=$(echo "$payload" | openssl sha256 -hmac "$WEBHOOK_BRIDGE_HMAC_SECRET" | awk '{print $2}')
sha1signature=$(echo "$payload" | openssl sha1 -hmac "$WEBHOOK_BRIDGE_HMAC_SECRET" | awk '{print $2}')
curl -v \
--http2-prior-knowledge \
-X POST \
-H 'Content-Type: application/json' \
-H 'X-GitHub-Delivery: 90c4c994-dd31-4a21-8902-92aa76a10e53' \
-H 'X-GitHub-Event: push' \
-H 'X-GitHub-Event-Type: push' \
-H 'X-Gitea-Delivery: 90c4c994-dd31-4a21-8902-92aa76a10e53' \
-H 'X-Gitea-Event: push' \
-H 'X-Gitea-Event-Type: push' \
-H "X-Gitea-Signature: $sha256signature" \
-H 'X-Gogs-Delivery: 90c4c994-dd31-4a21-8902-92aa76a10e53' \
-H 'X-Gogs-Event: push' \
-H 'X-Gogs-Event-Type: push' \
-H "X-Gogs-Signature: $sha256signature" \
-H "X-Hub-Signature: sha1=$sha1signature" \
-H "X-Hub-Signature-256: sha256=$sha256signature" \
-d @- \
'http://127.0.0.1:9988/hook' <<<"$payload"
}
main "${@}"