mirror of
https://github.com/Microsoft/vscode
synced 2024-09-18 01:58:27 +00:00
Add telemetry to new git.clone action (fixes #21563)
This commit is contained in:
parent
84d25d491b
commit
700ef1325d
|
@ -170,13 +170,14 @@ export class CommandCenter {
|
|||
}
|
||||
|
||||
@command('git.clone')
|
||||
async clone(): Promise<void> {
|
||||
async clone(telemetryData: { [key: string]: any }): Promise<void> {
|
||||
const url = await window.showInputBox({
|
||||
prompt: localize('repourl', "Repository URL"),
|
||||
ignoreFocusOut: true
|
||||
});
|
||||
|
||||
if (!url) {
|
||||
this.telemetryReporter.sendTelemetryEvent('clone', { ...telemetryData, outcome: 'no_URL' });
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -187,18 +188,31 @@ export class CommandCenter {
|
|||
});
|
||||
|
||||
if (!parentPath) {
|
||||
this.telemetryReporter.sendTelemetryEvent('clone', { ...telemetryData, outcome: 'no_directory' });
|
||||
return;
|
||||
}
|
||||
|
||||
const clonePromise = this.model.git.clone(url, parentPath);
|
||||
window.setStatusBarMessage(localize('cloning', "Cloning git repository..."), clonePromise);
|
||||
const repositoryPath = await clonePromise;
|
||||
|
||||
const open = localize('openrepo', "Open Repository");
|
||||
const result = await window.showInformationMessage(localize('proposeopen', "Would you like to open the cloned repository?"), open);
|
||||
try {
|
||||
const repositoryPath = await clonePromise;
|
||||
|
||||
if (result === open) {
|
||||
commands.executeCommand('vscode.openFolder', Uri.file(repositoryPath));
|
||||
const open = localize('openrepo', "Open Repository");
|
||||
const result = await window.showInformationMessage(localize('proposeopen', "Would you like to open the cloned repository?"), open);
|
||||
|
||||
const openFolder = result === open;
|
||||
this.telemetryReporter.sendTelemetryEvent('clone', { ...telemetryData, outcome: 'success' }, { openFolder: openFolder ? 1 : 0 });
|
||||
if (openFolder) {
|
||||
commands.executeCommand('vscode.openFolder', Uri.file(repositoryPath));
|
||||
}
|
||||
} catch (err) {
|
||||
if (/already exists and is not an empty directory/.test(err && err.stderr || '')) {
|
||||
this.telemetryReporter.sendTelemetryEvent('clone', { ...telemetryData, outcome: 'directory_not_empty' });
|
||||
} else {
|
||||
this.telemetryReporter.sendTelemetryEvent('clone', { ...telemetryData, outcome: 'error' });
|
||||
}
|
||||
throw err;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -26,6 +26,7 @@ export default () => `
|
|||
<li class="mac-only"><a href="command:workbench.action.files.openFileFolder">${escape(localize('welcomePage.openFolder', "Open folder..."))}</a></li>
|
||||
<li class="windows-only linux-only"><a href="command:workbench.action.files.openFolder">${escape(localize('welcomePage.openFolder', "Open folder..."))}</a></li>
|
||||
<li class="git-only"><a href="command:workbench.action.git.clone">${escape(localize('welcomePage.cloneGitRepository', "Clone Git repository..."))}</a></li>
|
||||
<li class="scm-only"><a href="command:git.clone">${escape(localize('welcomePage.cloneGitRepository', "Clone Git repository..."))}</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="section recent">
|
||||
|
|
|
@ -289,6 +289,15 @@
|
|||
.monaco-workbench.linux > .part.editor > .content .welcomePage .linux-only {
|
||||
display: initial;
|
||||
}
|
||||
.monaco-workbench.mac > .part.editor > .content .welcomePage li.mac-only {
|
||||
display: list-item;
|
||||
}
|
||||
.monaco-workbench.windows > .part.editor > .content .welcomePage li.windows-only {
|
||||
display: list-item;
|
||||
}
|
||||
.monaco-workbench.linux > .part.editor > .content .welcomePage li.linux-only {
|
||||
display: list-item;
|
||||
}
|
||||
|
||||
.monaco-workbench > .part.editor > .content .welcomePageContainer .scm-only {
|
||||
display: none;
|
||||
|
@ -296,6 +305,9 @@
|
|||
.monaco-workbench > .part.editor > .content .welcomePageContainer.scmEnabled .scm-only {
|
||||
display: initial;
|
||||
}
|
||||
.monaco-workbench > .part.editor > .content .welcomePageContainer.scmEnabled li.scm-only {
|
||||
display: list-item;
|
||||
}
|
||||
.monaco-workbench > .part.editor > .content .welcomePageContainer.scmEnabled .git-only {
|
||||
display: none;
|
||||
}
|
Loading…
Reference in a new issue