in packages/vscode-extension-web-ide/src/scm/commit/showCommitErrorMessage.ts [43:89]
function buildCommitErrorMessage(error: unknown): [string, vscode.MessageItem] {
const responseError = parseResponseErrorMessage(error as Error);
if (typeof responseError === 'string') {
return [GENERIC_ERROR_MESSAGE, CLOSE_ACTION];
}
const { status, body } = responseError;
if (status === 400 && hasMessage(body)) {
const message = body.message as string;
if (DENIED_BY_CUSTOM_HOOKS_ERROR.test(message)) {
return [CUSTOM_PUSH_RULE_ERROR_MESSAGE, CLOSE_ACTION];
}
if (BRANCH_ALREADY_EXISTS_ERROR.test(message)) {
return [message, SWITCH_BRANCH_ACTION];
}
if (FILE_HAS_CHANGED_ERROR.test(message)) {
return [message, CLOSE_ACTION];
}
if (BRANCH_NAME_INVALID.test(message)) {
return [message, ENTER_BRANCH_NAME_ACTION];
}
if (SECRET_DETECTED.test(message)) {
// log message to the output channel
log.error(message);
return [SECRET_DETECTED_GENERIC_MESSAGE, SHOW_LOGS_ACTION];
}
return [message, CLOSE_ACTION];
}
if (status === 401) {
return [SESSION_EXPIRED_ERROR_MESSAGE, SIGN_IN_ACTION];
}
if (status === 403) {
return [FORBIDDEN_ERROR_MESSAGE, COMMIT_TO_NEW_BRANCH_ACTION];
}
return [GENERIC_ERROR_MESSAGE, CLOSE_ACTION];
}