public async validateOrganizationName()

in src/configure/clients/devOps/organizationsClient.ts [78:106]


    public async validateOrganizationName(organizationName: string): Promise<string> {
        let accountNameRegex = new RegExp(/^[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9]$|^[a-zA-Z]$/);

        if (!organizationName || /^\\s/.test(organizationName) || /\\s$/.test(organizationName) || organizationName.indexOf("-") === 0 || !accountNameRegex.test(organizationName)) {
            return Messages.organizationNameStaticValidationMessage;
        } else if (ReservedHostNames.indexOf(organizationName) >= 0) {
            return util.format(Messages.organizationNameReservedMessage, organizationName);
        } else {
            const url = `https://app.vsaex.visualstudio.com/_apis/HostAcquisition/NameAvailability/${organizationName}`;

            try {
                const response = await this.sendRequest<OrganizationAvailability>({
                    url,
                    headers: {
                        "Content-Type": "application/json",
                        "Accept": "api-version=5.0-preview.1"
                    },
                    method: "GET",
                });

                if (response.name === organizationName && !response.isAvailable) {
                    return util.format(Messages.organizationNameReservedMessage, organizationName);
                }
                return "";
            } catch (e) {
                return "";
            }
        }
    }