Tenemos un repositorio (proyecto SaaS) que contiene una lista de sucursales (50-100), la sucursal maestra está actualizada, por lo que quiero abrir una lista de PR para cada sucursal de la que tenemos que recibir actualizaciones.
master -> client-*
Entonces, ¿hay alguna manera de manejar este caso automáticamente?
Puede usar la API de Github para obtener todas sus sucursales y publicar PR. Desafortunadamente, Github no proporciona un método para filtrar al listar ramas, por lo que aún deberá aplicar ese filtro en su propio código.
Aquí hay un ejemplo de ejecución usando Octokit . Los dos métodos necesarios son repos.listBranches y pulls.create .
| Implementación de ejemplo |
|---|
// Fetching branches... const branches = await userClient.paginate(userClient.rest.repos.listBranches, { owner: ownerId, repo: reposId, }); // Filtering the retrieved branches. const prefixedBranches = branches.filter((branch) => branch.name.startsWith(branchPrefix)); console.log(`${prefixedBranches.length} branches match the filter`); // Creating pull requests... const result = await Promise.allSettled( prefixedBranches.map((branch) => { return userClient.rest.pulls.create({ title: `Fusebit Generated PR from ${branch.name}`, head: branch.name, base: targetBranch, owner: ownerId, repo: reposId, }); }) );