fix: add MANUAL_USER_MAPPINGS support for users with mismatched emails
JimKarvo's Gitea email (dimitris@jksoftware.gr) differs from Slack email (jimkarvo@gmail.com), so the email-based Slack lookup fails. Add MANUAL_USER_MAPPINGS env var (format: GiteaUsername:SlackID,...) to bypass email lookup when a manual mapping exists. Changes: - cache.go: ParseManualMappings() parses env var format - cache.go: CachedResolver checks manual mappings first (step 0) - main.go: reads MANUAL_USER_MAPPINGS env var, passes to resolver
This commit is contained in:
+9
-2
@@ -67,8 +67,15 @@ func main() {
|
||||
slackClient := slacknotifier.New(&cfg.Notification.Slack, logger)
|
||||
logger.Info().Msg("Slack notifier initialized")
|
||||
|
||||
// Initialize cached identity resolver
|
||||
resolver := cache.NewCachedResolver(repo, emailLookup, slackClient, logger)
|
||||
// Initialize cached identity resolver with optional manual mappings
|
||||
manualMappings := cache.ParseManualMappings(os.Getenv("MANUAL_USER_MAPPINGS"))
|
||||
if len(manualMappings) > 0 {
|
||||
logger.Info().Int("count", len(manualMappings)).Msg("manual user mappings configured")
|
||||
for username := range manualMappings {
|
||||
logger.Debug().Str("username", username).Msg("manual mapping registered")
|
||||
}
|
||||
}
|
||||
resolver := cache.NewCachedResolver(repo, emailLookup, slackClient, manualMappings, logger)
|
||||
logger.Info().Msg("identity resolver initialized")
|
||||
|
||||
// Create processor adapter that implements webhook.EventHandler
|
||||
|
||||
Reference in New Issue
Block a user