Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions contributions.json
Original file line number Diff line number Diff line change
Expand Up @@ -311,6 +311,10 @@
"icon": "$(sparkle)",
"commandPalette": "gitlens:enabled && !gitlens:untrusted && gitlens:gk:organization:ai:enabled"
},
"gitlens.ai.mcp.install": {
"label": "Install GitKraken MCP Server",
"commandPalette": "gitlens:enabled && !gitlens:untrusted && gitlens:gk:organization:ai:enabled"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should add isWeb (I think that is the context key) here to not show this on the web

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's not isWeb, or at least that's not working as intended because using && !isWeb in the "when" clause prevents the command from appearing even when I'm not on web.

},
Comment on lines +314 to +317
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Eventually we will want versions of this command to other usages (e.g. home, etc) so we can understand the usage and make sure source is correct

"gitlens.ai.rebaseOntoCommit:graph": {
"label": "AI Rebase Current Branch onto Commit (Preview)...",
"icon": "$(sparkle)",
Expand Down
2 changes: 2 additions & 0 deletions docs/links.md
Original file line number Diff line number Diff line change
Expand Up @@ -274,6 +274,8 @@ _{prefix}/command/{command}_

- _inspect_ - Runs the `GitLens: Inspect Commit Details` command.

- _install-mcp_ - Runs the `GitLens: Install MCP` command.

- _login_ - Runs the `GitLens: Sign In to GitKraken...` command.

- _signup_ - Runs the `GitLens: Sign Up for GitKraken...` command.
Expand Down
233 changes: 153 additions & 80 deletions docs/telemetry-events.md

Large diffs are not rendered by default.

9 changes: 9 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -6296,6 +6296,11 @@
"category": "GitLens",
"icon": "$(sparkle)"
},
{
"command": "gitlens.ai.mcp.install",
"title": "Install GitKraken MCP Server",
"category": "GitLens"
},
{
"command": "gitlens.ai.rebaseOntoCommit:graph",
"title": "AI Rebase Current Branch onto Commit (Preview)...",
Expand Down Expand Up @@ -11070,6 +11075,10 @@
"command": "gitlens.ai.generateRebase",
"when": "gitlens:enabled && !gitlens:untrusted && gitlens:gk:organization:ai:enabled"
},
{
"command": "gitlens.ai.mcp.install",
"when": "gitlens:enabled && !gitlens:untrusted && gitlens:gk:organization:ai:enabled"
},
{
"command": "gitlens.ai.rebaseOntoCommit:graph",
"when": "false"
Expand Down
1 change: 1 addition & 0 deletions src/constants.commands.generated.ts
Original file line number Diff line number Diff line change
Expand Up @@ -690,6 +690,7 @@ export type ContributedPaletteCommands =
| 'gitlens.ai.generateChangelog'
| 'gitlens.ai.generateCommitMessage'
| 'gitlens.ai.generateRebase'
| 'gitlens.ai.mcp.install'
| 'gitlens.ai.switchProvider'
| 'gitlens.applyPatchFromClipboard'
| 'gitlens.associateIssueWithBranch'
Expand Down
3 changes: 3 additions & 0 deletions src/constants.storage.ts
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,9 @@ export type GlobalStorage = {
// Value based on `currentOnboardingVersion` in composer's protocol
'composer:onboarding:dismissed': string;
'composer:onboarding:stepReached': number;
'gk:cli:install': { status: 'attempted' | 'unsupported' | 'completed'; attempts: number; version?: string };
'gk:cli:corePath': string;
'gk:cli:path': string;
'home:sections:collapsed': string[];
'home:walkthrough:dismissed': boolean;
'launchpad:groups:collapsed': StoredLaunchpadGroup[];
Expand Down
51 changes: 51 additions & 0 deletions src/constants.telemetry.ts
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,13 @@ export interface TelemetryEvents extends WebviewShowAbortedEvents, WebviewShownE
/** Sent when user opts in to AI All Access */
'aiAllAccess/optedIn': void;

/** Sent when a CLI install attempt is started */
'cli/install/started': CLIInstallStartedEvent;
/** Sent when a CLI install attempt succeeds */
'cli/install/succeeded': CLIInstallSucceededEvent;
/** Sent when a CLI install attempt fails */
'cli/install/failed': CLIInstallFailedEvent;

/** Sent when connecting to one or more cloud-based integrations */
'cloudIntegrations/connecting': CloudIntegrationsConnectingEvent;

Expand Down Expand Up @@ -238,6 +245,13 @@ export interface TelemetryEvents extends WebviewShowAbortedEvents, WebviewShownE
/** Sent when a launchpad operation is taking longer than a set timeout to complete */
'launchpad/operation/slow': LaunchpadOperationSlowEvent;

/** Sent when GitKraken MCP setup is started */
'mcp/setup/started': MCPSetupStartedEvent;
/** Sent when GitKraken MCP setup is completed */
'mcp/setup/completed': MCPSetupCompletedEvent;
/** Sent when GitKraken MCP setup fails */
'mcp/setup/failed': MCPSetupFailedEvent;

/** Sent when a PR review was started in the inspect overview */
openReviewMode: OpenReviewModeEvent;

Expand Down Expand Up @@ -472,6 +486,43 @@ export interface AIFeedbackEvent extends AIEventDataBase {
'unhelpful.custom'?: string;
}

export interface CLIInstallStartedEvent {
source?: Sources;
autoInstall: boolean;
attempts: number;
}

export interface CLIInstallSucceededEvent {
autoInstall: boolean;
attempts: number;
source?: Sources;
version?: string;
}

export interface CLIInstallFailedEvent {
autoInstall: boolean;
attempts: number;
'error.message'?: string;
source?: Sources;
}

export interface MCPSetupStartedEvent {
source: Sources;
}

export interface MCPSetupCompletedEvent {
source: Sources;
'cli.version'?: string;
requiresUserCompletion: boolean;
}

export interface MCPSetupFailedEvent {
source: Sources;
reason: string;
'cli.version'?: string;
'error.message'?: string;
}

interface CloudIntegrationsConnectingEvent {
'integration.ids': string | undefined;
}
Expand Down
1 change: 1 addition & 0 deletions src/constants.ts
Original file line number Diff line number Diff line change
Expand Up @@ -179,6 +179,7 @@ export const urls = Object.freeze({
githubDiscussions: `https://github.com/gitkraken/vscode-gitlens/discussions/?${utm}`,
helpCenter: `https://help.gitkraken.com/gitlens/gitlens-start-here/?${utm}`,
helpCenterHome: `https://help.gitkraken.com/gitlens/home-view/?${utm}`,
helpCenterMCP: `https://help.gitkraken.com/mcp/mcp-getting-started/?${utm}`,
releaseNotes: `https://help.gitkraken.com/gitlens/gitlens-release-notes-current/?${utm}`,

acceleratePrReviews: `https://help.gitkraken.com/gitlens/gitlens-start-here/?${utm}#accelerate-pr-reviews`,
Expand Down
Loading
Loading