From c288c85b84eefe1a76326160b4a29b08d6ce1bed Mon Sep 17 00:00:00 2001 From: Dimitris Karvounis <1+jimkarvo@jksoftware.gr> Date: Mon, 29 Jun 2026 20:42:11 +0000 Subject: [PATCH] fix: replace base64 content with actual shell script --- docker-entrypoint.sh | 62 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 61 insertions(+), 1 deletion(-) diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh index c68323a..7dc9aaf 100755 --- a/docker-entrypoint.sh +++ b/docker-entrypoint.sh @@ -1 +1,61 @@ -IyEvYmluL3NoCnNldCAtZQoKIyBHZW5lcmF0ZSBjb25maWcueWFtbCBmcm9tIGVudmlyb25tZW50IHZhcmlhYmxlcwpta2RpciAtcCAvYXBwL2NvbmZpZwpjYXQgPiAvYXBwL2NvbmZpZy9jb25maWcueWFtbCA8PCAnWUFNTEVPRicKc2VydmVyOgogIHBvcnQ6IDgwODAKICB3ZWJob29rX3NlY3JldDogIiR7R0lURUFfV0VCSE9PS19TRUNSRVR9IgoKaWRlbnRpdHk6CiAgcHJvdmlkZXI6IGdpdGVhCiAgY2FjaGVfdHRsOiAyNGgKICBnaXRlYToKICAgIHVybDogIiR7R0lURUFfVVJMfSIKICAgIHRva2VuOiAiJHtHSVRFQV9BUElfVE9LRU59IgoKbm90aWZpY2F0aW9uOgogIHByb3ZpZGVyOiBzbGFjawogIHNsYWNrOgogICAgYm90X3Rva2VuOiAiJHtTTEFDS19CT1RfVE9LRU59IgoKZGF0YWJhc2U6CiAgZHJpdmVyOiBzcWxpdGUKICBkc246ICIuL2RhdGEvbm90aWZpY2F0aW9ucy5kYiIKCnJ1bGVzOgogIHByOgogICAgbm90aWZ5X293bmVyOiB0cnVlCiAgICBub3RpZnlfcmV2aWV3ZXJzOiB0cnVlCiAgICBub3RpZnlfYXNzaWduZWVzOiB0cnVlCiAgaXNzdWU6CiAgICBub3RpZnlfYXNzaWduZWVzOiB0cnVlCiAgY29tbWVudDoKICAgIG5vdGlmeV9tZW50aW9uZWQ6IHRydWUKICAgIG5vdGlmeV90aHJlYWRfb3duZXI6IHRydWUKICAgIG5vdGlmeV9yZXZpZXdlcnM6IHRydWUKWUFNTEVPRgoKIyBTZWVkIG1hbnVhbCB1c2VyIG1hcHBpbmdzIGZyb20gTUFOVUFMX1VTRVJfTUFQUElOR1MgZW52IHZhcgojIEZvcm1hdDogIkdpdGVhVXNlcm5hbWU6U2xhY2tJRCxHaXRlYVVzZXIyOlNsYWNrSUQyIiAoc2FtZSBhcyBHbydzIFBhcnNlTWFudWFsTWFwcGluZ3MpCiMgVGhlc2UgYnlwYXNzIHRoZSBHaXRlYSBBUEkgZW1haWwgbG9va3VwICsgU2xhY2sgZW1haWwgbG9va3VwCgppZiBbIC1uICIkTUFOVUFMX1VTRVJfTUFQUElOR1MiIF07IHRoZW4KICAgIHNxbGl0ZTMgL2FwcC9kYXRhL25vdGlmaWNhdGlvbnMuZGIgIkNSRUFURSBUQUJMRSBJRiBOT1QgRVhJU1RTIHVzZXJzIChpZCBJTlRFR0VSIFBSSU1BUlkgS0VZIEFVVE9JTkNSRU1FTlQsIGdpdGVhX3VzZXJuYW1lIFRFWFQgVU5JUVVFLCBnaXRlYV9pZCBJTlRFR0VSLCBlbWFpbCBURVhUIFVOSVFVRSwgZnVsbF9uYW1lIFRFWFQsIHNsYWNrX2lkIFRFWFQsIHNsYWNrX25hbWUgVEVYVCwgY3JlYXRlZF9hdCBEQVRFVElNRSBERUZBVUxUIENVUlJFTlRfVElNRVNUQU1QLCB1cGRhdGVkX2F0IERBVEVUSU1FIERFRkFVTFQgQ1VSUkVOVF9USU1FU1RBTVApOyIgMj4vZGV2L251bGwgfHwgdHJ1ZQogICAgc3FsaXRlMyAvYXBwL2RhdGEvbm90aWZpY2F0aW9ucy5kYiAiQ1JFQVRFIElOREVYIElGIE5PVCBFWElTVFMgaWR4X3VzZXJzX2VtYWlsIE9OIHVzZXJzKGVtYWlsKTsiIDI+L2Rldi9udWxsIHx8IHRydWUKICAgIHNxbGl0ZTMgL2FwcC9kYXRhL25vdGlmaWNhdGlvbnMuZGIgIkNSRUFURSBJTkRFWCBJRiBOT1QgRVhJU1RTIGlkeF91c2Vyc19naXRlYV91c2VybmFtZSBPTiB1c2VycyhnaXRlYV91c2VybmFtZSk7IiAyPi9kZXYvbnVsbCB8fCB0cnVlCiAgICBzcWxpdGUzIC9hcHAvZGF0YS9ub3RpZmljYXRpb25zLmRiICJDUkVBVEUgSU5ERVggSUYgTk9UIEVYSVNUUyBpZHhfdXNlcnNfc2xhY2tfaWQgT04gdXNlcnMoc2xhY2tfaWQpOyIgMj4vZGV2L251bGwgfHwgdHJ1ZQoKICAgIGVjaG8gIiRNQU5VQUxfVVNFUl9NQVBQSU5HUyIgfCB0ciAnLCcgJ1xuJyB8IHdoaWxlIElGUz0nOicgcmVhZCAtciBuYW1lIHNsYWNrX2lkOyBkbwogICAgICAgIG5hbWU9JChlY2hvICIkbmFtZSIgfCB4YXJncykKICAgICAgICBzbGFja19pZD0kKGVjaG8gIiRzbGFja19pZCIgfCB4YXJncykKICAgICAgICBbIC16ICIkbmFtZSIgXSAmJiBjb250aW51ZQogICAgICAgIFsgLXogIiRzbGFja19pZCIgXSAmJiBjb250aW51ZQogICAgICAgIHNxbGl0ZTMgL2FwcC9kYXRhL25vdGlmaWNhdGlvbnMuZGIgXAogICAgICAgICAgICAiSU5TRVJUIE9SIFJFUExBQ0UgSU5UTyB1c2VycyhnaXRlYV91c2VybmFtZSwgc2xhY2tfaWQsIHNsYWNrX25hbWUsIHVwZGF0ZWRfYXQpIFZBTFVFUygnJG5hbWUnLCckc2xhY2tfaWQnLCckbmFtZScsZGF0ZXRpbWUoJ25vdycpKTsiIFwKICAgICAgICAgICAgMj4vZGV2L251bGwgfHwgdHJ1ZQogICAgZG9uZQpmaQoKZXhlYyAuL2dpdGVhLW5vdGlmaWNhdGlvbi1odWIgLWNvbmZpZyAvYXBwL2NvbmZpZy9jb25maWcueWFtbAo= \ No newline at end of file +#!/bin/sh +set -e + +# Generate config.yaml from environment variables +mkdir -p /app/config +cat > /app/config/config.yaml << 'YAMLEOF' +server: + port: 8080 + webhook_secret: "${GITEA_WEBHOOK_SECRET}" + +identity: + provider: gitea + cache_ttl: 24h + gitea: + url: "${GITEA_URL}" + token: "${GITEA_API_TOKEN}" + +notification: + provider: slack + slack: + bot_token: "${SLACK_BOT_TOKEN}" + +database: + driver: sqlite + dsn: "./data/notifications.db" + +rules: + pr: + notify_owner: true + notify_reviewers: true + notify_assignees: true + issue: + notify_assignees: true + comment: + notify_mentioned: true + notify_thread_owner: true + notify_reviewers: true +YAMLEOF + +# Seed manual user mappings from MANUAL_USER_MAPPINGS env var +# Format: "GiteaUsername:SlackID,GiteaUser2:SlackID2" (same as Go's ParseManualMappings) +# These bypass the Gitea API email lookup + Slack email lookup + +if [ -n "$MANUAL_USER_MAPPINGS" ]; then + sqlite3 /app/data/notifications.db "CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY AUTOINCREMENT, gitea_username TEXT UNIQUE, gitea_id INTEGER, email TEXT UNIQUE, full_name TEXT, slack_id TEXT, slack_name TEXT, created_at DATETIME DEFAULT CURRENT_TIMESTAMP, updated_at DATETIME DEFAULT CURRENT_TIMESTAMP);" 2>/dev/null || true + sqlite3 /app/data/notifications.db "CREATE INDEX IF NOT EXISTS idx_users_email ON users(email);" 2>/dev/null || true + sqlite3 /app/data/notifications.db "CREATE INDEX IF NOT EXISTS idx_users_gitea_username ON users(gitea_username);" 2>/dev/null || true + sqlite3 /app/data/notifications.db "CREATE INDEX IF NOT EXISTS idx_users_slack_id ON users(slack_id);" 2>/dev/null || true + + echo "$MANUAL_USER_MAPPINGS" | tr ',' '\n' | while IFS=':' read -r name slack_id; do + name=$(echo "$name" | xargs) + slack_id=$(echo "$slack_id" | xargs) + [ -z "$name" ] && continue + [ -z "$slack_id" ] && continue + sqlite3 /app/data/notifications.db \ + "INSERT OR REPLACE INTO users(gitea_username, slack_id, slack_name, updated_at) VALUES('$name','$slack_id','$name',datetime('now'));" \ + 2>/dev/null || true + done +fi + +exec ./gitea-notification-hub -config /app/config/config.yaml \ No newline at end of file