diff --git a/src/quickpicks/commitFileQuickPick.ts b/src/quickpicks/commitFileQuickPick.ts index eb6ee4f..46d9e66 100644 --- a/src/quickpicks/commitFileQuickPick.ts +++ b/src/quickpicks/commitFileQuickPick.ts @@ -4,6 +4,7 @@ import { commands, QuickPickItem, TextDocumentShowOptions, TextEditor, Uri, wind import { Commands, CopyMessageToClipboardCommandArgs, + CopyRemoteFileUrlToClipboardCommandArgs, CopyShaToClipboardCommandArgs, DiffWithPreviousCommandArgs, DiffWithWorkingCommandArgs, @@ -255,6 +256,21 @@ export class CommitFileQuickPick { [uri, copyMessageCommandArgs] ) ); + + if (remotes.length) { + const copyRemoteUrlCommandArgs: CopyRemoteFileUrlToClipboardCommandArgs = { + sha: commit.sha + }; + items.push( + new CommandQuickPickItem( + { + label: '$(clippy) Copy Remote Url to Clipboard' + }, + Commands.CopyRemoteFileUrlToClipboard, + [uri, copyRemoteUrlCommandArgs] + ) + ); + } } if (workingUri) { diff --git a/src/quickpicks/commitQuickPick.ts b/src/quickpicks/commitQuickPick.ts index 83d4e8a..092aa03 100644 --- a/src/quickpicks/commitQuickPick.ts +++ b/src/quickpicks/commitQuickPick.ts @@ -4,6 +4,7 @@ import { commands, TextDocumentShowOptions, TextEditor, Uri, window } from 'vsco import { Commands, CopyMessageToClipboardCommandArgs, + CopyRemoteFileUrlToClipboardCommandArgs, CopyShaToClipboardCommandArgs, DiffDirectoryCommandArgs, DiffWithPreviousCommandArgs, @@ -248,6 +249,7 @@ export class CommitQuickPick { let index = 0; + let remotes; if (stash) { const stashApplyCommmandArgs: StashApplyCommandArgs = { confirm: true, @@ -291,7 +293,7 @@ export class CommitQuickPick { else { items.splice(index++, 0, new ShowCommitInViewQuickPickItem(commit)); - const remotes = await Container.git.getRemotes(commit.repoPath); + remotes = await Container.git.getRemotes(commit.repoPath); if (remotes.length) { items.splice( index++, @@ -383,6 +385,25 @@ export class CommitQuickPick { ) ); + if (!stash) { + if (remotes !== undefined && remotes.length) { + const copyRemoteUrlCommandArgs: CopyRemoteFileUrlToClipboardCommandArgs = { + sha: commit.sha + }; + items.splice( + index++, + 0, + new CommandQuickPickItem( + { + label: '$(clippy) Copy Remote Url to Clipboard' + }, + Commands.CopyRemoteFileUrlToClipboard, + [uri, copyRemoteUrlCommandArgs] + ) + ); + } + } + const commitDetailsCommandArgs: ShowQuickCommitDetailsCommandArgs = { commit: commit, repoLog: options.repoLog,