¿Cómo muevo un problema en github a otro repositorio?

96

Sucede de vez en cuando. Alguna biblioteca depende de otra y un usuario abre un problema que pertenece al repositorio incorrecto. ¿Puedo mover el problema al otro repositorio?

Se podría argumentar que el problema podría verse como un problema de ambos repos porque uno depende del otro y, mientras uno no funcione correctamente, ambos no lo hacen. Pero prefiero hablar sobre soluciones al problema en el repositorio al que pertenece.

fingir
fuente
Ya no tiene que ser administrador de los repositorios de origen y destino para mover un problema entre ellos. Vea mi respuesta a continuación .
VonC

Respuestas:

34

Consulte los documentos de GitHub sobre problemas de transferencia .

Transferir un problema abierto a otro repositorio

En GitHub, navegue a la página principal del repositorio.

Debajo del nombre de su repositorio, haga clic en Problemas .

En la lista de problemas, haga clic en el problema que desea transferir.

En la barra lateral derecha, haz clic en Transferir este problema .

Matthew McCullough
fuente
2
Sería genial poder mover todos los problemas de un repositorio a otro.
CGFoX
@CGFoX creó una solicitud de función en: github.com/isaacs/github/issues/1605
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功
Cabe señalar que necesita permiso de escritura en ambos repositorios, de lo contrario, esta opción no está disponible.
Brett Sutton
60

No, oficialmente no puede mover problemas entre repositorios.

Sin embargo, hay un truco, github-issues-import , una especie de complemento, para importar problemas de un repositorio a otro.

Daniel Ribeiro
fuente
4
Creé otra versión pirateada de gh-issues-importador aquí github.com/collective/collective.developermanual/blob/master/…
Mikko Ohtamaa
2
gh-issues-importme parecía roto (seguía recibiendo un 404). Usé el guión de Mikko y funcionó bien. Sin embargo, no mantuvo cerrados los problemas cerrados ni importó etiquetas o hitos. Simplemente actualice el nombre de usuario / contraseña y elimine la referencia a colored.
Alexandre
3
Para hacer que el script de Mikko funcione para problemas cerrados, simplemente agregue state=closedlos parámetros de consulta de la URL en el get_issuesmétodo.
Calvin
1
El script de Mikko funciona muy bien, pero contiene un error, crea problemas en orden inverso. Simplemente agregue & sort = created & direction = asc a los parámetros de consulta de la URL en el método get_issues.
Marco Fucci
1
También creé un script de importación de problemas simple para mover un solo problema de un repositorio a otro. Le pedirá nombre de usuario, contraseña, repositorio de origen y destino en cada uso, por lo que no tendrá que cambiar el código en absoluto. También se copian etiquetas e hitos. Tal vez sea útil para alguien: github.com/jotweh/IssueRelocate
Jan Wy
3

Mover problema Si tiene la integración de ZenHub , verá este botón en la parte inferior derecha cuando vea un problema. Esto permite copiar el problema en otro repositorio de la misma organización, o copiarlo y cerrarlo .

Y sí, "Move Issue" es un nombre inapropiado.

Parece que todavía no hay forma de mover (copiar y eliminar) o simplemente eliminar, un problema enviado por error.

EDITAR: Tenga cuidado, la v1 de esta función tiene limitaciones importantes, como dejar atrás algunos (¿la mayoría?) De los metadatos del problema, no notificar a los suscriptores, etc.

Spike0xff
fuente
Mmm, no veo este botón cuando voy a uno de mis problemas abiertos.
Fent
1
@DeaDEnD Oh diablos, mi mal. Es una función de ZenHub, no integrada en GitHub. Bueno, eso no es nada confuso, tener dos organizaciones pirateando independientemente en la misma interfaz de usuario web.
Spike0xff
1
¿Y soy simplemente un tonto por pensar que en mi dialecto del inglés, cuando mueves algo, aparece en un lugar nuevo y deja de estar donde estaba antes ? Una interfaz de usuario de dos palabras , y no pudieron obtener ambas, ¿verdad?
Spike0xff
Lo intenté, pero no pude encontrar los
repositorios de
2

Esto es ahora (mayo de 2019) más fácil.

Consulte " Mejoras para emitir permisos de transferencia ".

Los usuarios con acceso de escritura a dos repositorios ahora pueden usar la transferencia de problemas para mover problemas entre ellos.
Anteriormente, solo los usuarios con permisos de administrador en ambos repositorios tenían la capacidad de transferir problemas.

Además, ya no permitiremos que los problemas se transfieran de los repositorios privados a los públicos.

Más información en " Transferir un problema a otro repositorio ".

VonC
fuente
1

La respuesta visual tomada de los documentos de github:

Transferir un problema abierto a otro repositorio

  1. En GitHub, navegue a la página principal del repositorio.
  2. Debajo del nombre de su repositorio, haga clic en Problemas. Pestaña problemas
  3. En la lista de problemas, haga clic en el problema que desea transferir.
  4. En la barra lateral derecha, haz clic en Transferir problema. Botón para transferir problema
  5. Utilice el menú desplegable Elegir un repositorio y seleccione el repositorio al que desea transferir el problema.

Elija una selección de repositorio

  1. Haz clic en Transferir problema.

Botón de problema de transferencia

Riyafa Abdul Hameed
fuente
Sí, la documentación que menciono en mi propia respuesta: stackoverflow.com/a/56373555/6309
VonC