@@ -639,6 +639,30 @@ func TestAPIKeyScanner_NameRegex_NewAIProviders(t *testing.T) {
639639 }
640640}
641641
642+ func TestAPIKeyScanner_NameRegex_XAI_Anchored (t * testing.T ) {
643+ clearAllEnv (t )
644+ // XAI embedded mid-word with no credential suffix — should NOT be flagged.
645+ t .Setenv ("PROXAI_ENDPOINT" , "https://api.proxai.com" )
646+ t .Setenv ("RELAXAI_MODE" , "true" )
647+ // These SHOULD be flagged.
648+ t .Setenv ("XAI_API_KEY" , "real-xai-key" )
649+ t .Setenv ("MY_XAI_KEY" , "also-real-xai-key" )
650+
651+ s := newScannerWithHome (t .TempDir ())
652+ result := s .Scan ()
653+
654+ assertResource (t , result .Findings , "XAI_API_KEY" )
655+ assertResource (t , result .Findings , "MY_XAI_KEY" )
656+ for _ , f := range result .Findings {
657+ if f .Resource == "PROXAI_ENDPOINT" {
658+ t .Error ("PROXAI_ENDPOINT should not be flagged by XAI pattern" )
659+ }
660+ if f .Resource == "RELAXAI_MODE" {
661+ t .Error ("RELAXAI_MODE should not be flagged by XAI pattern" )
662+ }
663+ }
664+ }
665+
642666func TestAPIKeyScanner_ExtraEnvKeys_NoDuplicateWithNameRegex (t * testing.T ) {
643667 const key = "MY_OPENAI_KEY" // matches OPENAI nameRegexPattern AND is in ExtraEnvKeys
644668 t .Setenv (key , "sk-test-value" )
@@ -692,13 +716,17 @@ func TestAPIKeyScanner_NameRegex_ProviderWithoutSuffix_NotFlagged(t *testing.T)
692716 t .Setenv ("GITHUB_ACTIONS" , "true" )
693717 t .Setenv ("OPENAI_BASE_URL" , "https://api.openai.com" )
694718 t .Setenv ("STRIPE_WEBHOOK_ENDPOINT" , "https://example.com/webhook" )
719+ // Substring false positives: MONKEY contains KEY, DONKEY contains KEY.
720+ t .Setenv ("GITHUB_MONKEY" , "banana" )
721+ t .Setenv ("OPENAI_DONKEY" , "hee-haw" )
695722
696723 s := newScannerWithHome (t .TempDir ())
697724 result := s .Scan ()
698725
699726 for _ , f := range result .Findings {
700727 switch f .Resource {
701- case "GITHUB_WORKSPACE" , "GITHUB_ACTIONS" , "OPENAI_BASE_URL" , "STRIPE_WEBHOOK_ENDPOINT" :
728+ case "GITHUB_WORKSPACE" , "GITHUB_ACTIONS" , "OPENAI_BASE_URL" , "STRIPE_WEBHOOK_ENDPOINT" ,
729+ "GITHUB_MONKEY" , "OPENAI_DONKEY" :
702730 t .Errorf ("%s should not be flagged (provider keyword without credential suffix)" , f .Resource )
703731 }
704732 }
0 commit comments