mirror of
https://github.com/google-gemini/gemini-cli.git
synced 2026-03-10 14:10:37 -07:00
Introduce optional gitCommitInfo as app-wide metadata.
This change adds an optional `gitCommitInfo` string to the app state, which, if set by the GET_COMMIT_INFO environment variable when the application is launched, will be displayed in the /about section. The `start.sh` and `build_package.sh` scripts set `GET_COMMIT_INFO` to the most recent git commit's short hash if known, appending the string "(local modifications)" if additional changes are detected beyond that point.
This commit is contained in:
@@ -68,12 +68,14 @@ async function main() {
|
|||||||
const readUpResult = await readPackageUp({ cwd: __dirname });
|
const readUpResult = await readPackageUp({ cwd: __dirname });
|
||||||
const cliVersion =
|
const cliVersion =
|
||||||
process.env.CLI_VERSION || readUpResult?.packageJson.version || 'unknown';
|
process.env.CLI_VERSION || readUpResult?.packageJson.version || 'unknown';
|
||||||
|
const gitCommitInfo = process.env.GIT_COMMIT_INFO || 'N/A';
|
||||||
|
|
||||||
render(
|
render(
|
||||||
React.createElement(App, {
|
React.createElement(App, {
|
||||||
config,
|
config,
|
||||||
settings,
|
settings,
|
||||||
cliVersion,
|
cliVersion,
|
||||||
|
gitCommitInfo,
|
||||||
startupWarnings,
|
startupWarnings,
|
||||||
}),
|
}),
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -50,6 +50,7 @@ interface AppProps {
|
|||||||
config: Config;
|
config: Config;
|
||||||
settings: LoadedSettings;
|
settings: LoadedSettings;
|
||||||
cliVersion: string;
|
cliVersion: string;
|
||||||
|
gitCommitInfo?: string;
|
||||||
startupWarnings?: string[];
|
startupWarnings?: string[];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -57,6 +58,7 @@ export const App = ({
|
|||||||
config,
|
config,
|
||||||
settings,
|
settings,
|
||||||
cliVersion,
|
cliVersion,
|
||||||
|
gitCommitInfo: _gitCommitInfo,
|
||||||
startupWarnings = [],
|
startupWarnings = [],
|
||||||
}: AppProps) => {
|
}: AppProps) => {
|
||||||
const { history, addItem, clearItems } = useHistory();
|
const { history, addItem, clearItems } = useHistory();
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ interface AboutBoxProps {
|
|||||||
osVersion: string;
|
osVersion: string;
|
||||||
sandboxEnv: string;
|
sandboxEnv: string;
|
||||||
modelVersion: string;
|
modelVersion: string;
|
||||||
|
gitCommitInfo?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
export const AboutBox: React.FC<AboutBoxProps> = ({
|
export const AboutBox: React.FC<AboutBoxProps> = ({
|
||||||
@@ -20,6 +21,7 @@ export const AboutBox: React.FC<AboutBoxProps> = ({
|
|||||||
osVersion,
|
osVersion,
|
||||||
sandboxEnv,
|
sandboxEnv,
|
||||||
modelVersion,
|
modelVersion,
|
||||||
|
gitCommitInfo,
|
||||||
}) => (
|
}) => (
|
||||||
<Box
|
<Box
|
||||||
borderStyle="round"
|
borderStyle="round"
|
||||||
@@ -44,6 +46,18 @@ export const AboutBox: React.FC<AboutBoxProps> = ({
|
|||||||
<Text>{cliVersion}</Text>
|
<Text>{cliVersion}</Text>
|
||||||
</Box>
|
</Box>
|
||||||
</Box>
|
</Box>
|
||||||
|
{gitCommitInfo && gitCommitInfo !== 'N/A' && (
|
||||||
|
<Box flexDirection="row">
|
||||||
|
<Box width="35%">
|
||||||
|
<Text bold color={Colors.LightBlue}>
|
||||||
|
Git Commit
|
||||||
|
</Text>
|
||||||
|
</Box>
|
||||||
|
<Box>
|
||||||
|
<Text>{gitCommitInfo}</Text>
|
||||||
|
</Box>
|
||||||
|
</Box>
|
||||||
|
)}
|
||||||
<Box flexDirection="row">
|
<Box flexDirection="row">
|
||||||
<Box width="35%">
|
<Box width="35%">
|
||||||
<Text bold color={Colors.LightBlue}>
|
<Text bold color={Colors.LightBlue}>
|
||||||
|
|||||||
@@ -53,6 +53,7 @@ export const HistoryItemDisplay: React.FC<HistoryItemDisplayProps> = ({
|
|||||||
osVersion={item.osVersion}
|
osVersion={item.osVersion}
|
||||||
sandboxEnv={item.sandboxEnv}
|
sandboxEnv={item.sandboxEnv}
|
||||||
modelVersion={item.modelVersion}
|
modelVersion={item.modelVersion}
|
||||||
|
gitCommitInfo={item.gitCommitInfo} // Added this line
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
{item.type === 'tool_group' && (
|
{item.type === 'tool_group' && (
|
||||||
|
|||||||
@@ -56,6 +56,7 @@ export const useSlashCommandProcessor = (
|
|||||||
osVersion: message.osVersion,
|
osVersion: message.osVersion,
|
||||||
sandboxEnv: message.sandboxEnv,
|
sandboxEnv: message.sandboxEnv,
|
||||||
modelVersion: message.modelVersion,
|
modelVersion: message.modelVersion,
|
||||||
|
gitCommitInfo: message.gitCommitInfo, // Added this line
|
||||||
};
|
};
|
||||||
} else {
|
} else {
|
||||||
historyItemContent = {
|
historyItemContent = {
|
||||||
@@ -176,6 +177,7 @@ export const useSlashCommandProcessor = (
|
|||||||
sandboxEnv = `sandbox-exec (${process.env.SEATBELT_PROFILE || 'unknown'})`;
|
sandboxEnv = `sandbox-exec (${process.env.SEATBELT_PROFILE || 'unknown'})`;
|
||||||
}
|
}
|
||||||
const modelVersion = config?.getModel() || 'Unknown';
|
const modelVersion = config?.getModel() || 'Unknown';
|
||||||
|
const gitCommitInfo = process.env.GIT_COMMIT_INFO || 'N/A';
|
||||||
|
|
||||||
addMessage({
|
addMessage({
|
||||||
type: MessageType.ABOUT,
|
type: MessageType.ABOUT,
|
||||||
@@ -184,6 +186,7 @@ export const useSlashCommandProcessor = (
|
|||||||
osVersion,
|
osVersion,
|
||||||
sandboxEnv,
|
sandboxEnv,
|
||||||
modelVersion,
|
modelVersion,
|
||||||
|
gitCommitInfo,
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -86,6 +86,7 @@ export type HistoryItemAbout = HistoryItemBase & {
|
|||||||
osVersion: string;
|
osVersion: string;
|
||||||
sandboxEnv: string;
|
sandboxEnv: string;
|
||||||
modelVersion: string;
|
modelVersion: string;
|
||||||
|
gitCommitInfo?: string;
|
||||||
};
|
};
|
||||||
|
|
||||||
export type HistoryItemToolGroup = HistoryItemBase & {
|
export type HistoryItemToolGroup = HistoryItemBase & {
|
||||||
@@ -137,6 +138,7 @@ export type Message =
|
|||||||
osVersion: string;
|
osVersion: string;
|
||||||
sandboxEnv: string;
|
sandboxEnv: string;
|
||||||
modelVersion: string;
|
modelVersion: string;
|
||||||
|
gitCommitInfo?: string;
|
||||||
content?: string; // Optional content, not really used for ABOUT
|
content?: string; // Optional content, not really used for ABOUT
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -20,6 +20,19 @@ if [[ $(pwd) != *"/packages/"* ]]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Determine Git information
|
||||||
|
GIT_COMMIT_INFO="N/A"
|
||||||
|
if command -v git &> /dev/null && git rev-parse --is-inside-work-tree &> /dev/null; then
|
||||||
|
GIT_HASH=$(git rev-parse --short HEAD 2>/dev/null || echo "")
|
||||||
|
if [ -n "$GIT_HASH" ]; then
|
||||||
|
GIT_COMMIT_INFO="$GIT_HASH"
|
||||||
|
if [ -n "$(git status --porcelain)" ]; then
|
||||||
|
GIT_COMMIT_INFO="$GIT_COMMIT_INFO (local modifications)"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
export GIT_COMMIT_INFO
|
||||||
|
|
||||||
# clean dist directory
|
# clean dist directory
|
||||||
# rm -rf dist/*
|
# rm -rf dist/*
|
||||||
|
|
||||||
|
|||||||
@@ -32,6 +32,19 @@ if [ -n "${DEBUG:-}" ] && ! scripts/sandbox_command.sh -q; then
|
|||||||
fi
|
fi
|
||||||
node_args+=("./packages/cli" "$@")
|
node_args+=("./packages/cli" "$@")
|
||||||
|
|
||||||
|
# Determine Git information
|
||||||
|
GIT_COMMIT_INFO="N/A"
|
||||||
|
if command -v git &> /dev/null && git rev-parse --is-inside-work-tree &> /dev/null; then
|
||||||
|
GIT_HASH=$(git rev-parse --short HEAD 2>/dev/null || echo "")
|
||||||
|
if [ -n "$GIT_HASH" ]; then
|
||||||
|
GIT_COMMIT_INFO="$GIT_HASH"
|
||||||
|
if [ -n "$(git status --porcelain)" ]; then
|
||||||
|
GIT_COMMIT_INFO="$GIT_COMMIT_INFO (local modifications)"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
# DEV=true to enable React Dev Tools (https://github.com/vadimdemedes/ink?tab=readme-ov-file#using-react-devtools)
|
# DEV=true to enable React Dev Tools (https://github.com/vadimdemedes/ink?tab=readme-ov-file#using-react-devtools)
|
||||||
# CLI_VERSION to display in the app ui footer
|
# CLI_VERSION to display in the app ui footer
|
||||||
CLI_VERSION='development' DEV=true node "${node_args[@]}"
|
# GIT_COMMIT_INFO to display in the about box
|
||||||
|
GIT_COMMIT_INFO="${GIT_COMMIT_INFO}" CLI_VERSION='development' DEV=true node "${node_args[@]}"
|
||||||
|
|||||||
Reference in New Issue
Block a user