(mergeRequest: GitLabMergeRequest)
| 844 | } |
| 845 | |
| 846 | async rebaseMergeRequest(mergeRequest: GitLabMergeRequest) { |
| 847 | let rebase: GitLabMergeRebase = await this.requestJSON({ |
| 848 | method: 'PUT', |
| 849 | url: `${this.repoURL}/merge_requests/${mergeRequest.iid}/rebase?skip_ci=true`, |
| 850 | }); |
| 851 | |
| 852 | let i = 1; |
| 853 | while (rebase.rebase_in_progress) { |
| 854 | await new Promise(resolve => setTimeout(resolve, 1000)); |
| 855 | rebase = await this.requestJSON({ |
| 856 | url: `${this.repoURL}/merge_requests/${mergeRequest.iid}`, |
| 857 | params: { |
| 858 | include_rebase_in_progress: true, |
| 859 | }, |
| 860 | }); |
| 861 | if (!rebase.rebase_in_progress || i > 30) { |
| 862 | break; |
| 863 | } |
| 864 | i++; |
| 865 | } |
| 866 | |
| 867 | if (rebase.rebase_in_progress) { |
| 868 | throw new APIError('Timed out rebasing merge request', null, API_NAME); |
| 869 | } else if (rebase.merge_error) { |
| 870 | throw new APIError(`Rebase error: ${rebase.merge_error}`, null, API_NAME); |
| 871 | } |
| 872 | } |
| 873 | |
| 874 | async createMergeRequest(branch: string, commitMessage: string, status: string) { |
| 875 | await this.requestJSON({ |
no outgoing calls
no test coverage detected