({ owner, repo, tempDir })
| 112 | } |
| 113 | |
| 114 | async function resetOriginRepo({ owner, repo, tempDir }) { |
| 115 | console.log('Resetting origin repo:', `${owner}/${repo}`); |
| 116 | |
| 117 | const { token } = getEnvs(); |
| 118 | const client = getGitLabClient(token); |
| 119 | |
| 120 | const projectId = `${owner}/${repo}`; |
| 121 | const mergeRequests = await client.MergeRequests.all({ |
| 122 | projectId, |
| 123 | state: 'opened', |
| 124 | }); |
| 125 | const ids = mergeRequests.map(mr => mr.iid); |
| 126 | console.log('Closing merge requests:', ids); |
| 127 | await Promise.all( |
| 128 | ids.map(id => client.MergeRequests.edit(projectId, id, { state_event: 'close' })), |
| 129 | ); |
| 130 | const branches = await client.Branches.all(projectId); |
| 131 | const toDelete = branches.filter(b => b.name !== 'master').map(b => b.name); |
| 132 | |
| 133 | console.log('Deleting branches', toDelete); |
| 134 | await Promise.all(toDelete.map(branch => client.Branches.remove(projectId, branch))); |
| 135 | |
| 136 | console.log('Resetting master'); |
| 137 | const git = getGitClient(tempDir); |
| 138 | await git.push(['--force', 'origin', 'master']); |
| 139 | console.log('Done resetting origin repo:', `${owner}/${repo}`); |
| 140 | } |
| 141 | |
| 142 | async function resetRepositories({ owner, repo, tempDir }) { |
| 143 | await resetOriginRepo({ owner, repo, tempDir }); |
no test coverage detected