public static getBuildDefinitionPayload()

in src/configure/helper/devOps/azureDevOpsHelper.ts [90:133]


    public static getBuildDefinitionPayload(pipelineName: string, queue: TaskAgentQueue, inputs: WizardInputs): BuildDefinition {
        const repositoryProperties = inputs.sourceRepository.repositoryProvider === RepositoryProvider.Github ? {
            apiUrl: `https://api.github.com/repos/${inputs.sourceRepository.repositoryId}`,
            branchesUrl: `https://api.github.com/repos/${inputs.sourceRepository.repositoryId}/branches`,
            cloneUrl: inputs.sourceRepository.remoteUrl,
            connectedServiceId: inputs.sourceRepository.serviceConnectionId,
            defaultBranch: inputs.sourceRepository.branch,
            fullName: inputs.sourceRepository.repositoryName,
            refsUrl: `https://api.github.com/repos/${inputs.sourceRepository.repositoryId}/git/refs`
        } : null;

        const properties = { 'source': 'ms-azure-devops.azure-pipelines' };

        return {
            name: pipelineName,
            type: DefinitionType.Build,
            quality: DefinitionQuality.Definition,
            path: "\\", //Folder path of build definition. Root folder in this case
            project: inputs.project,
            process: {
                type: 2,
                yamlFileName: path.join(inputs.pipelineParameters.workingDirectory, inputs.pipelineParameters.pipelineFileName),
            } as YamlProcess,
            queue: {
                id: queue.id,
            },
            triggers: [
                {
                    triggerType: DefinitionTriggerType.ContinuousIntegration, // Continuous integration trigger type
                    settingsSourceType: 2, // Use trigger source as specified in YAML
                    batchChanges: false,
                } as ContinuousIntegrationTrigger,
            ],
            repository: {
                id: inputs.sourceRepository.repositoryId,
                name: inputs.sourceRepository.repositoryName,
                type: inputs.sourceRepository.repositoryProvider,
                defaultBranch: inputs.sourceRepository.branch,
                url: inputs.sourceRepository.remoteUrl,
                properties: repositoryProperties,
            },
            properties: properties,
        };
    }