fix: replace base64 content with actual shell script
This commit is contained in:
+61
-1
@@ -1 +1,61 @@
|
||||
IyEvYmluL3NoCnNldCAtZQoKIyBHZW5lcmF0ZSBjb25maWcueWFtbCBmcm9tIGVudmlyb25tZW50IHZhcmlhYmxlcwpta2RpciAtcCAvYXBwL2NvbmZpZwpjYXQgPiAvYXBwL2NvbmZpZy9jb25maWcueWFtbCA8PCAnWUFNTEVPRicKc2VydmVyOgogIHBvcnQ6IDgwODAKICB3ZWJob29rX3NlY3JldDogIiR7R0lURUFfV0VCSE9PS19TRUNSRVR9IgoKaWRlbnRpdHk6CiAgcHJvdmlkZXI6IGdpdGVhCiAgY2FjaGVfdHRsOiAyNGgKICBnaXRlYToKICAgIHVybDogIiR7R0lURUFfVVJMfSIKICAgIHRva2VuOiAiJHtHSVRFQV9BUElfVE9LRU59IgoKbm90aWZpY2F0aW9uOgogIHByb3ZpZGVyOiBzbGFjawogIHNsYWNrOgogICAgYm90X3Rva2VuOiAiJHtTTEFDS19CT1RfVE9LRU59IgoKZGF0YWJhc2U6CiAgZHJpdmVyOiBzcWxpdGUKICBkc246ICIuL2RhdGEvbm90aWZpY2F0aW9ucy5kYiIKCnJ1bGVzOgogIHByOgogICAgbm90aWZ5X293bmVyOiB0cnVlCiAgICBub3RpZnlfcmV2aWV3ZXJzOiB0cnVlCiAgICBub3RpZnlfYXNzaWduZWVzOiB0cnVlCiAgaXNzdWU6CiAgICBub3RpZnlfYXNzaWduZWVzOiB0cnVlCiAgY29tbWVudDoKICAgIG5vdGlmeV9tZW50aW9uZWQ6IHRydWUKICAgIG5vdGlmeV90aHJlYWRfb3duZXI6IHRydWUKICAgIG5vdGlmeV9yZXZpZXdlcnM6IHRydWUKWUFNTEVPRgoKIyBTZWVkIG1hbnVhbCB1c2VyIG1hcHBpbmdzIGZyb20gTUFOVUFMX1VTRVJfTUFQUElOR1MgZW52IHZhcgojIEZvcm1hdDogIkdpdGVhVXNlcm5hbWU6U2xhY2tJRCxHaXRlYVVzZXIyOlNsYWNrSUQyIiAoc2FtZSBhcyBHbydzIFBhcnNlTWFudWFsTWFwcGluZ3MpCiMgVGhlc2UgYnlwYXNzIHRoZSBHaXRlYSBBUEkgZW1haWwgbG9va3VwICsgU2xhY2sgZW1haWwgbG9va3VwCgppZiBbIC1uICIkTUFOVUFMX1VTRVJfTUFQUElOR1MiIF07IHRoZW4KICAgIHNxbGl0ZTMgL2FwcC9kYXRhL25vdGlmaWNhdGlvbnMuZGIgIkNSRUFURSBUQUJMRSBJRiBOT1QgRVhJU1RTIHVzZXJzIChpZCBJTlRFR0VSIFBSSU1BUlkgS0VZIEFVVE9JTkNSRU1FTlQsIGdpdGVhX3VzZXJuYW1lIFRFWFQgVU5JUVVFLCBnaXRlYV9pZCBJTlRFR0VSLCBlbWFpbCBURVhUIFVOSVFVRSwgZnVsbF9uYW1lIFRFWFQsIHNsYWNrX2lkIFRFWFQsIHNsYWNrX25hbWUgVEVYVCwgY3JlYXRlZF9hdCBEQVRFVElNRSBERUZBVUxUIENVUlJFTlRfVElNRVNUQU1QLCB1cGRhdGVkX2F0IERBVEVUSU1FIERFRkFVTFQgQ1VSUkVOVF9USU1FU1RBTVApOyIgMj4vZGV2L251bGwgfHwgdHJ1ZQogICAgc3FsaXRlMyAvYXBwL2RhdGEvbm90aWZpY2F0aW9ucy5kYiAiQ1JFQVRFIElOREVYIElGIE5PVCBFWElTVFMgaWR4X3VzZXJzX2VtYWlsIE9OIHVzZXJzKGVtYWlsKTsiIDI+L2Rldi9udWxsIHx8IHRydWUKICAgIHNxbGl0ZTMgL2FwcC9kYXRhL25vdGlmaWNhdGlvbnMuZGIgIkNSRUFURSBJTkRFWCBJRiBOT1QgRVhJU1RTIGlkeF91c2Vyc19naXRlYV91c2VybmFtZSBPTiB1c2VycyhnaXRlYV91c2VybmFtZSk7IiAyPi9kZXYvbnVsbCB8fCB0cnVlCiAgICBzcWxpdGUzIC9hcHAvZGF0YS9ub3RpZmljYXRpb25zLmRiICJDUkVBVEUgSU5ERVggSUYgTk9UIEVYSVNUUyBpZHhfdXNlcnNfc2xhY2tfaWQgT04gdXNlcnMoc2xhY2tfaWQpOyIgMj4vZGV2L251bGwgfHwgdHJ1ZQoKICAgIGVjaG8gIiRNQU5VQUxfVVNFUl9NQVBQSU5HUyIgfCB0ciAnLCcgJ1xuJyB8IHdoaWxlIElGUz0nOicgcmVhZCAtciBuYW1lIHNsYWNrX2lkOyBkbwogICAgICAgIG5hbWU9JChlY2hvICIkbmFtZSIgfCB4YXJncykKICAgICAgICBzbGFja19pZD0kKGVjaG8gIiRzbGFja19pZCIgfCB4YXJncykKICAgICAgICBbIC16ICIkbmFtZSIgXSAmJiBjb250aW51ZQogICAgICAgIFsgLXogIiRzbGFja19pZCIgXSAmJiBjb250aW51ZQogICAgICAgIHNxbGl0ZTMgL2FwcC9kYXRhL25vdGlmaWNhdGlvbnMuZGIgXAogICAgICAgICAgICAiSU5TRVJUIE9SIFJFUExBQ0UgSU5UTyB1c2VycyhnaXRlYV91c2VybmFtZSwgc2xhY2tfaWQsIHNsYWNrX25hbWUsIHVwZGF0ZWRfYXQpIFZBTFVFUygnJG5hbWUnLCckc2xhY2tfaWQnLCckbmFtZScsZGF0ZXRpbWUoJ25vdycpKTsiIFwKICAgICAgICAgICAgMj4vZGV2L251bGwgfHwgdHJ1ZQogICAgZG9uZQpmaQoKZXhlYyAuL2dpdGVhLW5vdGlmaWNhdGlvbi1odWIgLWNvbmZpZyAvYXBwL2NvbmZpZy9jb25maWcueWFtbAo=
|
||||
#!/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
|
||||
Reference in New Issue
Block a user