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