MCPcopy Create free account
hub / github.com/decaporg/decap-cms / completePullRequest

Method completePullRequest

packages/decap-cms-backend-azure/src/API.ts:760–789  ·  view source on GitHub ↗
(pullRequest: AzurePullRequest)

Source from the content-addressed store, hash-verified

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 = {

Callers 1

Calls 1

delayFunction · 0.85

Tested by

no test coverage detected