Ejemplo n.º 1
0
        public async Task <string> CreatePullRequestAsync(string repoUri, string branch, string assetsProducedInCommit, IEnumerable <AssetData> assets, string pullRequestBaseBranch = null, string pullRequestTitle = null, string pullRequestDescription = null)
        {
            _logger.LogInformation($"Create pull request to update dependencies in repo '{repoUri}' and branch '{branch}'...");

            IEnumerable <DependencyDetail> itemsToUpdate = await GetRequiredUpdatesAsync(repoUri, branch, assetsProducedInCommit, assets);

            string linkToPr = null;

            if (itemsToUpdate.Any())
            {
                await _gitClient.CreateDarcBranchAsync(repoUri, branch);

                pullRequestBaseBranch = pullRequestBaseBranch ?? $"darc-{branch}";

                await CommitFilesForPullRequest(repoUri, branch, assetsProducedInCommit, itemsToUpdate, pullRequestBaseBranch, pullRequestTitle, pullRequestDescription);

                linkToPr = await _gitClient.CreatePullRequestAsync(repoUri, branch, pullRequestBaseBranch, pullRequestTitle, pullRequestDescription);

                _logger.LogInformation($"Updating dependencies in repo '{repoUri}' and branch '{branch}' succeeded! PR link is: {linkToPr}");

                return(linkToPr);
            }

            return(linkToPr);
        }