(pullRequest: AzurePullRequest)
| 758 | } |
| 759 | |
| 760 | async completePullRequest(pullRequest: AzurePullRequest) { |
| 761 | const pullRequestCompletion = { |
| 762 | status: AzurePullRequestStatus.COMPLETED, |
| 763 | lastMergeSourceCommit: pullRequest.lastMergeSourceCommit, |
| 764 | completionOptions: { |
| 765 | deleteSourceBranch: true, |
| 766 | mergeCommitMessage: MERGE_COMMIT_MESSAGE, |
| 767 | mergeStrategy: this.mergeStrategy, |
| 768 | }, |
| 769 | }; |
| 770 | |
| 771 | let response = await this.requestJSON<AzurePullRequest>({ |
| 772 | method: 'PATCH', |
| 773 | url: `${this.endpointUrl}/pullrequests/${encodeURIComponent(pullRequest.pullRequestId)}`, |
| 774 | body: JSON.stringify(pullRequestCompletion), |
| 775 | }); |
| 776 | |
| 777 | // We need to wait for Azure to complete the pull request to actually complete |
| 778 | // Sometimes this is instant, but frequently it is 1-3 seconds |
| 779 | const DELAY_MILLISECONDS = 500; |
| 780 | const MAX_ATTEMPTS = 10; |
| 781 | let attempt = 1; |
| 782 | while (response.mergeStatus === AzureAsyncPullRequestStatus.QUEUED && attempt <= MAX_ATTEMPTS) { |
| 783 | await delay(DELAY_MILLISECONDS); |
| 784 | response = await this.requestJSON({ |
| 785 | url: `${this.endpointUrl}/pullrequests/${encodeURIComponent(pullRequest.pullRequestId)}`, |
| 786 | }); |
| 787 | attempt = attempt + 1; |
| 788 | } |
| 789 | } |
| 790 | |
| 791 | async abandonPullRequest(pullRequest: AzurePullRequest) { |
| 792 | const pullRequestAbandon = { |
no test coverage detected