@@ -195,6 +195,9 @@ describe('ClearcutLogger', () => {
195195 vi . stubEnv ( 'MONOSPACE_ENV' , '' ) ;
196196 vi . stubEnv ( 'REPLIT_USER' , '' ) ;
197197 vi . stubEnv ( '__COG_BASHRC_SOURCED' , '' ) ;
198+ vi . stubEnv ( 'GH_PR_NUMBER' , '' ) ;
199+ vi . stubEnv ( 'GH_ISSUE_NUMBER' , '' ) ;
200+ vi . stubEnv ( 'GH_CUSTOM_TRACKING_ID' , '' ) ;
198201 } ) ;
199202
200203 function setup ( {
@@ -596,6 +599,110 @@ describe('ClearcutLogger', () => {
596599 } ) ;
597600 } ) ;
598601
602+ describe ( 'GITHUB_EVENT_NAME metadata' , ( ) => {
603+ it ( 'includes event name when GITHUB_EVENT_NAME is set' , ( ) => {
604+ const { logger } = setup ( { } ) ;
605+ vi . stubEnv ( 'GITHUB_EVENT_NAME' , 'issues' ) ;
606+
607+ const event = logger ?. createLogEvent ( EventNames . API_ERROR , [ ] ) ;
608+ expect ( event ?. event_metadata [ 0 ] ) . toContainEqual ( {
609+ gemini_cli_key : EventMetadataKey . GEMINI_CLI_GH_EVENT_NAME ,
610+ value : 'issues' ,
611+ } ) ;
612+ } ) ;
613+
614+ it ( 'does not include event name when GITHUB_EVENT_NAME is not set' , ( ) => {
615+ const { logger } = setup ( { } ) ;
616+ vi . stubEnv ( 'GITHUB_EVENT_NAME' , undefined ) ;
617+
618+ const event = logger ?. createLogEvent ( EventNames . API_ERROR , [ ] ) ;
619+ const hasEventName = event ?. event_metadata [ 0 ] . some (
620+ ( item ) =>
621+ item . gemini_cli_key === EventMetadataKey . GEMINI_CLI_GH_EVENT_NAME ,
622+ ) ;
623+ expect ( hasEventName ) . toBe ( false ) ;
624+ } ) ;
625+ } ) ;
626+
627+ describe ( 'GH_PR_NUMBER metadata' , ( ) => {
628+ it ( 'includes PR number when GH_PR_NUMBER is set' , ( ) => {
629+ vi . stubEnv ( 'GH_PR_NUMBER' , '123' ) ;
630+ const { logger } = setup ( { } ) ;
631+
632+ const event = logger ?. createLogEvent ( EventNames . API_ERROR , [ ] ) ;
633+
634+ expect ( event ?. event_metadata [ 0 ] ) . toContainEqual ( {
635+ gemini_cli_key : EventMetadataKey . GEMINI_CLI_GH_PR_NUMBER ,
636+ value : '123' ,
637+ } ) ;
638+ } ) ;
639+
640+ it ( 'does not include PR number when GH_PR_NUMBER is not set' , ( ) => {
641+ vi . stubEnv ( 'GH_PR_NUMBER' , undefined ) ;
642+ const { logger } = setup ( { } ) ;
643+
644+ const event = logger ?. createLogEvent ( EventNames . API_ERROR , [ ] ) ;
645+ const hasPRNumber = event ?. event_metadata [ 0 ] . some (
646+ ( item ) =>
647+ item . gemini_cli_key === EventMetadataKey . GEMINI_CLI_GH_PR_NUMBER ,
648+ ) ;
649+ expect ( hasPRNumber ) . toBe ( false ) ;
650+ } ) ;
651+ } ) ;
652+
653+ describe ( 'GH_ISSUE_NUMBER metadata' , ( ) => {
654+ it ( 'includes issue number when GH_ISSUE_NUMBER is set' , ( ) => {
655+ vi . stubEnv ( 'GH_ISSUE_NUMBER' , '456' ) ;
656+ const { logger } = setup ( { } ) ;
657+
658+ const event = logger ?. createLogEvent ( EventNames . API_ERROR , [ ] ) ;
659+
660+ expect ( event ?. event_metadata [ 0 ] ) . toContainEqual ( {
661+ gemini_cli_key : EventMetadataKey . GEMINI_CLI_GH_ISSUE_NUMBER ,
662+ value : '456' ,
663+ } ) ;
664+ } ) ;
665+
666+ it ( 'does not include issue number when GH_ISSUE_NUMBER is not set' , ( ) => {
667+ vi . stubEnv ( 'GH_ISSUE_NUMBER' , undefined ) ;
668+ const { logger } = setup ( { } ) ;
669+
670+ const event = logger ?. createLogEvent ( EventNames . API_ERROR , [ ] ) ;
671+ const hasIssueNumber = event ?. event_metadata [ 0 ] . some (
672+ ( item ) =>
673+ item . gemini_cli_key === EventMetadataKey . GEMINI_CLI_GH_ISSUE_NUMBER ,
674+ ) ;
675+ expect ( hasIssueNumber ) . toBe ( false ) ;
676+ } ) ;
677+ } ) ;
678+
679+ describe ( 'GH_CUSTOM_TRACKING_ID metadata' , ( ) => {
680+ it ( 'includes custom tracking ID when GH_CUSTOM_TRACKING_ID is set' , ( ) => {
681+ vi . stubEnv ( 'GH_CUSTOM_TRACKING_ID' , 'abc-789' ) ;
682+ const { logger } = setup ( { } ) ;
683+
684+ const event = logger ?. createLogEvent ( EventNames . API_ERROR , [ ] ) ;
685+
686+ expect ( event ?. event_metadata [ 0 ] ) . toContainEqual ( {
687+ gemini_cli_key : EventMetadataKey . GEMINI_CLI_GH_CUSTOM_TRACKING_ID ,
688+ value : 'abc-789' ,
689+ } ) ;
690+ } ) ;
691+
692+ it ( 'does not include custom tracking ID when GH_CUSTOM_TRACKING_ID is not set' , ( ) => {
693+ vi . stubEnv ( 'GH_CUSTOM_TRACKING_ID' , undefined ) ;
694+ const { logger } = setup ( { } ) ;
695+
696+ const event = logger ?. createLogEvent ( EventNames . API_ERROR , [ ] ) ;
697+ const hasTrackingId = event ?. event_metadata [ 0 ] . some (
698+ ( item ) =>
699+ item . gemini_cli_key ===
700+ EventMetadataKey . GEMINI_CLI_GH_CUSTOM_TRACKING_ID ,
701+ ) ;
702+ expect ( hasTrackingId ) . toBe ( false ) ;
703+ } ) ;
704+ } ) ;
705+
599706 describe ( 'GITHUB_REPOSITORY metadata' , ( ) => {
600707 it ( 'includes hashed repository when GITHUB_REPOSITORY is set' , ( ) => {
601708 vi . stubEnv ( 'GITHUB_REPOSITORY' , 'google/gemini-cli' ) ;
0 commit comments