mirror of
https://github.com/google-gemini/gemini-cli.git
synced 2026-05-12 12:54:07 -07:00
Capturing github action workflow name if present and send it to clearcut (#13132)
This commit is contained in:
@@ -419,6 +419,31 @@ describe('ClearcutLogger', () => {
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe('GH_WORKFLOW_NAME metadata', () => {
|
||||||
|
it('includes workflow name when GH_WORKFLOW_NAME is set', () => {
|
||||||
|
const { logger } = setup({});
|
||||||
|
vi.stubEnv('GH_WORKFLOW_NAME', 'test-workflow');
|
||||||
|
|
||||||
|
const event = logger?.createLogEvent(EventNames.API_ERROR, []);
|
||||||
|
expect(event?.event_metadata[0]).toContainEqual({
|
||||||
|
gemini_cli_key: EventMetadataKey.GEMINI_CLI_GH_WORKFLOW_NAME,
|
||||||
|
value: 'test-workflow',
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
it('does not include workflow name when GH_WORKFLOW_NAME is not set', () => {
|
||||||
|
const { logger } = setup({});
|
||||||
|
vi.stubEnv('GH_WORKFLOW_NAME', undefined);
|
||||||
|
|
||||||
|
const event = logger?.createLogEvent(EventNames.API_ERROR, []);
|
||||||
|
const hasWorkflowName = event?.event_metadata[0].some(
|
||||||
|
(item) =>
|
||||||
|
item.gemini_cli_key === EventMetadataKey.GEMINI_CLI_GH_WORKFLOW_NAME,
|
||||||
|
);
|
||||||
|
expect(hasWorkflowName).toBe(false);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
describe('logChatCompressionEvent', () => {
|
describe('logChatCompressionEvent', () => {
|
||||||
it('logs an event with proper fields', () => {
|
it('logs an event with proper fields', () => {
|
||||||
const { logger } = setup();
|
const { logger } = setup();
|
||||||
|
|||||||
@@ -149,6 +149,13 @@ function determineSurface(): string {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Determines the GitHub Actions workflow name if the CLI is running in a GitHub Actions environment.
|
||||||
|
*/
|
||||||
|
function determineGHWorkflowName(): string | undefined {
|
||||||
|
return process.env['GH_WORKFLOW_NAME'];
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Clearcut URL to send logging events to.
|
* Clearcut URL to send logging events to.
|
||||||
*/
|
*/
|
||||||
@@ -260,31 +267,39 @@ export class ClearcutLogger {
|
|||||||
data: EventValue[] = [],
|
data: EventValue[] = [],
|
||||||
): LogEvent {
|
): LogEvent {
|
||||||
const surface = determineSurface();
|
const surface = determineSurface();
|
||||||
|
const ghWorkflowName = determineGHWorkflowName();
|
||||||
|
const baseMetadata: EventValue[] = [
|
||||||
|
...data,
|
||||||
|
{
|
||||||
|
gemini_cli_key: EventMetadataKey.GEMINI_CLI_SURFACE,
|
||||||
|
value: surface,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
gemini_cli_key: EventMetadataKey.GEMINI_CLI_VERSION,
|
||||||
|
value: CLI_VERSION,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
gemini_cli_key: EventMetadataKey.GEMINI_CLI_GIT_COMMIT_HASH,
|
||||||
|
value: GIT_COMMIT_INFO,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
gemini_cli_key: EventMetadataKey.GEMINI_CLI_OS,
|
||||||
|
value: process.platform,
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
if (ghWorkflowName) {
|
||||||
|
baseMetadata.push({
|
||||||
|
gemini_cli_key: EventMetadataKey.GEMINI_CLI_GH_WORKFLOW_NAME,
|
||||||
|
value: ghWorkflowName,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
console_type: 'GEMINI_CLI',
|
console_type: 'GEMINI_CLI',
|
||||||
application: 102, // GEMINI_CLI
|
application: 102, // GEMINI_CLI
|
||||||
event_name: eventName as string,
|
event_name: eventName as string,
|
||||||
event_metadata: [
|
event_metadata: [baseMetadata],
|
||||||
[
|
|
||||||
...data,
|
|
||||||
{
|
|
||||||
gemini_cli_key: EventMetadataKey.GEMINI_CLI_SURFACE,
|
|
||||||
value: surface,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
gemini_cli_key: EventMetadataKey.GEMINI_CLI_VERSION,
|
|
||||||
value: CLI_VERSION,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
gemini_cli_key: EventMetadataKey.GEMINI_CLI_GIT_COMMIT_HASH,
|
|
||||||
value: GIT_COMMIT_INFO,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
gemini_cli_key: EventMetadataKey.GEMINI_CLI_OS,
|
|
||||||
value: process.platform,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
],
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
// Defines valid event metadata keys for Clearcut logging.
|
// Defines valid event metadata keys for Clearcut logging.
|
||||||
export enum EventMetadataKey {
|
export enum EventMetadataKey {
|
||||||
// Deleted enums: 24
|
// Deleted enums: 24
|
||||||
// Next ID: 129
|
// Next ID: 131
|
||||||
|
|
||||||
GEMINI_CLI_KEY_UNKNOWN = 0,
|
GEMINI_CLI_KEY_UNKNOWN = 0,
|
||||||
|
|
||||||
@@ -191,6 +191,9 @@ export enum EventMetadataKey {
|
|||||||
// Logs active user settings
|
// Logs active user settings
|
||||||
GEMINI_CLI_USER_SETTINGS = 84,
|
GEMINI_CLI_USER_SETTINGS = 84,
|
||||||
|
|
||||||
|
// Logs the name of the GitHub Action workflow that triggered the session.
|
||||||
|
GEMINI_CLI_GH_WORKFLOW_NAME = 130,
|
||||||
|
|
||||||
// ==========================================================================
|
// ==========================================================================
|
||||||
// Loop Detected Event Keys
|
// Loop Detected Event Keys
|
||||||
// ===========================================================================
|
// ===========================================================================
|
||||||
|
|||||||
Reference in New Issue
Block a user