Skip to content

Commit 6331e30

Browse files
authored
cloud agent: handle the 'rejection' for authPermissionPrompted prompt (#1858)
1 parent 41921bf commit 6331e30

File tree

1 file changed

+9
-4
lines changed

1 file changed

+9
-4
lines changed

src/extension/chatSessions/vscode-node/copilotCloudSessionsProvider.ts

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
import * as pathLib from 'path';
77
import * as vscode from 'vscode';
88
import { Uri } from 'vscode';
9+
import { IAuthenticationService } from '../../../platform/authentication/common/authentication';
10+
import { IAuthenticationChatUpgradeService } from '../../../platform/authentication/common/authenticationUpgrade';
911
import { IGitExtensionService } from '../../../platform/git/common/gitExtensionService';
1012
import { IGitService } from '../../../platform/git/common/gitService';
1113
import { PullRequestSearchItem, SessionInfo } from '../../../platform/github/common/githubAPI';
@@ -16,8 +18,6 @@ import { Disposable, toDisposable } from '../../../util/vs/base/common/lifecycle
1618
import { body_suffix, CONTINUE_TRUNCATION, extractTitle, formatBodyPlaceholder, getAuthorDisplayName, getRepoId, JOBS_API_VERSION, RemoteAgentResult, SessionIdForPr, toOpenPullRequestWebviewUri, truncatePrompt } from '../vscode/copilotCodingAgentUtils';
1719
import { ChatSessionContentBuilder } from './copilotCloudSessionContentBuilder';
1820
import { IPullRequestFileChangesService } from './pullRequestFileChangesService';
19-
import { IAuthenticationChatUpgradeService } from '../../../platform/authentication/common/authenticationUpgrade';
20-
import { IAuthenticationService } from '../../../platform/authentication/common/authentication';
2121

2222
export type ConfirmationResult = { step: string; accepted: boolean; metadata?: ConfirmationMetadata };
2323

@@ -592,8 +592,13 @@ export class CopilotCloudSessionsProvider extends Disposable implements vscode.C
592592

593593
private async chatParticipantImpl(request: vscode.ChatRequest, context: vscode.ChatContext, stream: vscode.ChatResponseStream, token: vscode.CancellationToken) {
594594
if (request.acceptedConfirmationData || request.rejectedConfirmationData) {
595-
const findConfirmRequest = request.acceptedConfirmationData?.find(ref => ref?.authPermissionPrompted);
596-
if (findConfirmRequest) {
595+
const findAuthConfirmRequest = request.acceptedConfirmationData?.find(ref => ref?.authPermissionPrompted);
596+
const findAuthRejectRequest = request.rejectedConfirmationData?.find(ref => ref?.authPermissionPrompted);
597+
if (findAuthRejectRequest) {
598+
stream.markdown(vscode.l10n.t('Cloud agent authentication requirements not met. Please allow access to proceed.'));
599+
return {};
600+
}
601+
if (findAuthConfirmRequest) {
597602
const result = await this._authenticationUpgradeService.handleConfirmationRequestWithContext(stream, request, context.history);
598603
request = result.request;
599604
context = result.context ?? context;

0 commit comments

Comments
 (0)