Reemplazo autohospedado para Github

Necesito un reemplazo autohospedado para Github. Es crucial que funcione en una intranet con firewall, sin acceso a Internet (por ejemplo, estilos, controles de licencia, etc.).

  1. Interfaz de usuario web relativamente buena: el código fuente y la exploración de confirmaciones son imprescindibles.
  2. Soporte para git y/o mercurial. El soporte para ambos es una ventaja.
  3. Shell SSH (los repositorios deben ser accesibles a través de ssh, en lugar de solo http, aunque al menos git admite relativamente bien todas las operaciones a través de http)
  4. Permisos: al menos
    • repositorios privados/públicos
    • solo lectura y acceso completo
    • Mismo conjunto de permisos para la interfaz de usuario web y para SSH (al otorgar/modificar permisos, debe reflejarse en ambos)
    • preferiblemente integración a LDAP (tanto usuarios como grupos para permisos)
  5. Solicitudes de extracción (también conocidas como solicitudes de fusión)
  6. Herramientas de administración: creación de repositorios, concesión de acceso
  7. Rastreador de problemas simple: creación de tickets, comentarios, cierre, etiquetas/etiquetas
  8. Preferiblemente buscar, incluidos tickets, usuarios, proyectos, nombres de archivo y código fuente interno
  9. Preferiblemente bifurcación desde la interfaz de usuario web
  10. Preferiblemente se ejecuta en Linux

Debe ser de código abierto (lo que significa que está bien si le falta alguna funcionalidad menor) o asequible (>2400€/año para 30 usuarios es demasiado caro).

Sé que hay al menos:

Pero no tengo experiencia con estos: esta lista no está excluida de las respuestas de ninguna manera. Sin embargo, como ya sé, existen algunas alternativas, por lo que no busco una lista de posibles soluciones, sino recomendaciones basadas en lo que ha usado y probado. También puedo usar un motor de búsqueda, por lo que no es necesario publicar respuestas con solo contenido copiado y pegado desde el primer acceso.

Respuestas (11)

Hemos usado GitLab durante más de un año para albergar proyectos de mis alumnos.

TL;DR;EDIT: solía haber una demostración , pero ahora falta. Puedes registrarte gratis y crear algunos repositorios públicos.

Debo decir que estoy realmente satisfecho.

Como se recomienda una iteración a través de su requisito en este sitio, haré exactamente eso.

  1. Interfaz de usuario web relativamente buena : puede explorar la fuente y el historial, estadísticas (globales y por usuario) y gráficos de confirmaciones (como "red" en Github). Puede comentar cada línea de compromiso desde la GUI, ¡es una gran característica! Lo siento, pero no puedo proporcionar capturas de pantalla, tendría que anonimizarlas manualmente. Generalmente es similar a Github.

  2. Soporte para git y/o mercurial. El soporte para ambos es una ventaja. Git solamente.

  3. Shell SSH (los repositorios deben ser accesibles a través de ssh, en lugar de solo http, aunque al menos git admite relativamente bien todas las operaciones a través de http) : es como en Github. HTTP para acceso de solo lectura, SSH para lectura y escritura.

  4. Permisos: al menos

    • repositorios privados/públicos : está ahí.

    • solo lectura y acceso completo : puede definir roles (creo que los valores predeterminados son maestro, desarrollador, reportero, invitado).

    • El mismo conjunto de permisos para la interfaz de usuario web y para SSH (al otorgar/modificar permisos, debe reflejarse en ambos) : creo que funciona así, pero como no tengo acceso de administrador en este momento, es difícil de probar. Pero, de nuevo, es como github.

    • preferiblemente integración a LDAP (tanto usuarios como grupos para permisos) : Tenemos eso. Todos inician sesión a través de ldap, el personal tiene más privilegios que los estudiantes. PERO realmente no puedo decir si eso fue muy fácil, es simplemente posible.

  5. Solicitudes de extracción (también conocidas como solicitud de fusión) : Presente.

  6. Herramientas de administración: creación de repositorios, otorgamiento de acceso : todo desde la interfaz web, con una buena búsqueda de usuarios y la capacidad de definir grupos de usuarios.

  7. Rastreador de problemas simple: creación de tickets, comentarios, cierre, etiquetas/etiquetas : sí, está ahí. No estoy seguro de qué quiere decir con etiquetas difíciles, no pude ver nada como esto. ¿Hitos?

  8. Preferiblemente buscar, incluidos tickets, usuarios, proyectos, nombres de archivo y código fuente interno : esta sería probablemente la característica menos elegante de gitlab. Puede buscar usuarios/proyectos/grupos, puede encontrar el contenido de los archivos, pero no un nombre de archivo. Lo encuentro bastante torpe.

  9. Preferiblemente bifurcación desde la interfaz de usuario web : Presente.

  10. Preferiblemente se ejecuta en Linux : obviamente ;-)

  11. Proceso de actualización : es bastante sencillo si conoce su sistema. Cada versión tiene su propia guía de actualización, que siempre está un poco relacionada con la configuración predeterminada recomendada (es decir, rutas, usuarios, comandos, etc.). Si tiene un sistema no estándar (en sus términos), si personaliza su configuración, tendrá que pasar un poco de tiempo para mejorar todo, pero nunca es complicado, principalmente un nuevo clon, ejecuta algunos scripts y tú. re hecho Nunca tuve ningún problema, pero dejé de seguir el proceso hace bastante tiempo. ACTUALIZAR Gitlab ahora incluye (a partir de 6.4.2) un sencillo script de actualización . Suponiendo que tiene el diseño del sistema estándar, el proceso de actualización real ahora es un solo comando.

Está en desarrollo activo con una nueva versión cada mes, por lo que definitivamente vale la pena intentarlo. Es de código abierto, gratuito para uso comercial.

No se requiere una conexión a Internet para que Gitlab funcione. Necesitará Internet para configurar Gitlab porque descarga sus dependencias de RubyGems. Alternativamente, puede crear un espejo de RubyGems o realizar la instalación en otro servidor y copiar el directorio de instalación completo (de forma predeterminada /home/git/) en este servidor.

Captura de pantalla

página del repositorio de gitlab de la versión 8.11, agosto de 2016

GitLab ahora ofrece paquetes que puede descargar e instalar sin conexión a Internet, cumpliendo el primer requisito enumerado en la pregunta. Ver about.gitlab.com/downloads
También me estoy suscribiendo a la solución GitLab: he estado haciendo un gran desarrollo y he usado sistemas de control de versiones durante más de 10 años y estoy alojando y administrando tanto Stash en mi empresa como GitLab en mi VPS personal. Stash es costoso para una gran cantidad de desarrolladores y no funciona sin conectarse a un servidor de licencias para verificar la licencia. GitLab es un poco más complicado de instalar, pero definitivamente vale la pena el esfuerzo: es lo más cerca que puede estar de las funciones de GitHub sin las limitaciones y cumple con todos sus requisitos incluso en la edición gratuita (comunitaria).
Además, GitLab admite el acceso de escritura a través de HTTPS.
Yo usaría GoGS (gogs) en su lugar. En primer lugar, estoy cansado de cualquier software que tenga un botón de precio/compra con una edición "gratuita" (lockin) y una edición empresarial con características críticas (ganchos). Segundo, porque esto agrega una dependencia a Ruby, con todos los agujeros de seguridad contenidos en Ruby. GoGS no agrega ninguna dependencia (aparte de la biblioteca de tiempo de ejecución C, que también usa Ruby, junto con casi cualquier cosa). Y Go tiene un excelente historial de seguridad, además de que no vincula nada más que las dependencias atómicas que realmente necesita (menos código, más seguridad).
GitLab está evolucionando a un ritmo increíble y se ha convertido en mi herramienta de servidor de control de versiones favorita. Incluso me cambié de Mercurial a Git para poder usar GitLab. Dos pulgares hacia arriba.
Gitlab se ha vuelto demasiado hinchado y demasiado lento ahora
La administración de Gitlab es un desastre. Intenté instalar 4,5 horas sin éxito.
@ThomasWeller No quería instalarlo específicamente por eso, quería una forma rápida y fácil de hacerlo. Luego descubrí que TurnkeyLinux tiene un dispositivo para ello. Imagen ISO o VM. Simplemente configura las contraseñas y la configuración básica en su primer arranque. Actualmente lo estoy probando y parece muy prometedor. turnkeylinux.org/gitlab
¡Debe recomendar GitLab CE (o EE si está dispuesto a pagar)!

Usamos Atlassian Stash junto con Jira para el seguimiento de problemas.

Reserva

Stash tiene una licencia de $10 para 10 usuarios, $1,800 para 25 usuarios, $3,300 para 50 usuarios, $6,000 para 100 usuarios y $12,000 para 500 usuarios. Stash en sí no incluye el seguimiento de problemas, pero Atlassian distribuye una solución de seguimiento de problemas separada, Jira, bajo el mismo modelo de licencia.

Por supuesto, para satisfacer sus necesidades.

  1. Tendrás que decidir por ti mismo, pero hasta ahora no he tenido problemas con la interfaz de usuario web. Es altamente extensible con soporte para complementos y una API REST .
  2. Stash solo es compatible con Git.
  3. Stash es compatible con http, https y ssh.
  4. Múltiples usuarios (limitados por licencia) y sistema de permisos.
  5. Gestión completa del repositorio, incluidas las solicitudes de extracción.
  6. Herramientas de administración completas, repositorios públicos (accesibles sin una cuenta), repositorios de usuarios y repositorios de proyectos con derechos de acceso.
  7. Integración con el seguimiento de incidencias de Jira.
  8. Busque por repositorio, compromiso, problema y archivo.
  9. Fork repositorios de proyectos, repositorios de usuarios, etc.
  10. Disponible en Linux, Windows y OS X (solo con fines de evaluación) .
¿Algún problema con el alijo? En general, buena respuesta.
@Olli No hay muchos en los que pueda pensar. El precio es el principal inconveniente. También requerirá una instalación de Oracle Java u OpenJDK compatible y una instalación de base de datos compatible para instalarse correctamente. Consulte las plataformas compatibles para obtener más detalles.
solo hay un problema que no puede bifurcar ningún repositorio de github por interfaz web. ¡Proporcionan una solución basada en consola! La mayoría de los usuarios ya solicitaron esta función, pero nadie escucha.
GitLab está muy por delante en funciones e incluye un tablero de problemas Kanban, seguimiento de problemas e integración continua en un paquete práctico. Y es gratis implementar GitLab CE en su propio servidor. Y si quieres pagar por soporte, GitLab EE es más barato que Stash.

Gogs (Go Git Service) es un Git Service sencillo y autohospedado escrito en Go. Una alternativa sería su bifurcación impulsada por la comunidad Gitea .

He probado este y me ha parecido bastante atractivo. Interfaz simple, característica casi a la par con lo que esperaría de un GitHub similar, y un mantenedor ansioso por implementar características y corregir errores. La instalación es muy simple. Coloque el binario en una carpeta y llámelo desde la línea de comando. La configuración inicial es a través de un archivo de configuración. Y tiene ganchos Git y Web. De todos modos, espero que lo siguiente responda a la pregunta, aunque sea un poco tarde.

  1. Interfaz de usuario web relativamente buena: el código fuente y la exploración de confirmaciones son imprescindibles. - ambos presentes
  2. Soporte para git y/o mercurial. El soporte para ambos es una ventaja. - solo compatible con Git
  3. Shell SSH (los repositorios deben ser accesibles a través de ssh, en lugar de solo http, aunque al menos git admite relativamente bien todas las operaciones a través de http) , tanto SSH como HTTP, por lo que puedo decir
  4. Permisos: al menos
    • repositorios privados/públicos - ambos
    • solo lectura y acceso completo : no estoy seguro acerca de solo lectura, aún no he intentado configurarlo para ningún repositorio y no pude encontrar la configuración después de un vistazo rápido
    • Mismo conjunto de permisos para la interfaz de usuario web y para SSH (al otorgar/modificar permisos, debe reflejarse en ambos) - Lo mismo: aún no he usado SSH (solo accesible en la LAN)
    • preferiblemente integración a LDAP (tanto usuarios como grupos para permisos) - esto ya está integrado o en proceso de integración
  5. Solicitudes de extracción (también conocidas como solicitudes de fusión) - ofc
  6. Herramientas de administración: crear repositorios, otorgar acceso - sí
  7. Rastreador de problemas simple: creación de tickets, comentarios, cierre, etiquetas/etiquetas : la característica habitual presente
  8. Preferiblemente busque, incluidos los tickets, los usuarios, los proyectos, los nombres de archivo y el código fuente interno ; no busque lo que puedo diferenciar en la interfaz de usuario de confirmación por repositorio
  9. Preferiblemente bifurcación desde la interfaz de usuario web : la función de interfaz de usuario está presente, pero nunca la he usado
  10. Preferiblemente se ejecuta en Linux : se ejecuta en cualquier cosa que se pueda compilar. Binario y fuente disponible.
Si Gogs, es posible que desee instalar Gitea en su lugar. Es una bifurcación administrada por la comunidad de Gogs So Gogs pero mejor. puesto HN .
Se ve bien, pero definitivamente todavía le falta documentación. Por ejemplo, no logré asociar repositorios barebone existentes con él. Me gustaría WebUI, pero quiero enviar a través de la configuración preexistente a través de la URL de git@. Puedo hacer eso con repositorios creados a través de Gogs/Gitea (que usan los mismos barebones), pero la instalación no nota esos cambios. Parece que mantiene un registro en su base de datos, pero tampoco encontré una forma de sincronizar. Es decir, la inserción tiene éxito, pero WebUI no la refleja. No tiene ningún sentido para mí. Debo haber perdido algo aquí.
OK, lo arreglé de otra manera. Lectura recomendada: Instalación de Gitea en Debian (lectura fácil y seguimiento, también se puede aplicar a Gogs). Largo: Cómo alojar su propio GitHub privado con Gogs . Lo que me perdí: 1) importe su clave SSH a través de WebUI (no la agregue usted mismo a .ssh/authorized_keys), 2) Cree/inicialice el repositorio a través de WebUI (no manualmente a través de git init). Entonces parece funcionar bien. Sin embargo, aún no se ha encontrado la forma de adoptar un repositorio de barebones existente.
Me has ahorrado varias horas más de búsqueda sobre cómo hacer que SSH funcione @Izzy. Un año después, la documentación sigue siendo un desastre.

Yo propondría Tuleap

Tuleap 7 informes

  1. Interfaz de usuario web: actualmente bajo trabajo pesado (lanzamiento principal previsto en un par de semanas, puede tener una vista previa anticipada en el sitio de demostración )
  2. Se admiten git, subversion e incluso cvs
  3. Acceso SSH y HTTPS
  4. Control de acceso basado en grupos, repositorio por repositorio (lectura, escritura, rebobinado). Puede estar respaldado por LDAP o AD pero no es obligatorio
  5. La revisión de código y la puerta vienen con la integración de Gerrit (solo ALM para ejecutarse con Gerrit ascendente nativo)
  6. Administración basada en web con paradigma proyecto/repo. Sin dependencia del administrador central
  7. Sistema de seguimiento integral. Puede ser tan simple como sea necesario, pero también se puede usar para el cumplimiento de CMM/ITIL/ISO (en la misma plataforma, sin una herramienta o plan adicional).
  8. La búsqueda es buena para los tickets, pero actualmente se está respaldando una mejora importante con el soporte de ElasticSearch.
  9. Web Fork (repositorio personal y repositorio entre proyectos)
  10. Se ejecuta en Linux (se recomienda RHEL/Centos 6 para prod)

Además (como es un ALM completo, no se limita a la gestión de código)

  • Integrado de forma nativa con Jenkins para una integración continua
  • Gestión de documentos
  • Mensajería instantánea (jabber/XMPP)
  • Lista, foro y noticias
  • Desarrollo muy activo (lanzamiento mensual, práctico proceso de actualización: 2 comandos, 1 minuto de tiempo de inactividad).
  • Ya utilizado por los principales actores de la industria (no se puede divulgar, pero es fácil de encontrar en las listas de correo...)

Es 100 % de código abierto (GPLv2) y puede obtener soporte profesional de Enalean.

Divulgación completa: soy parte del equipo de desarrollo, así que probablemente no sea 100% justo;)

Estoy usando Phabricator , que se desarrolla con Phabricator mismo .

Página de inicio del fabricante

  1. Interfaz de usuario web relativamente buena : puede buscar código, confirmaciones, diferencias, buscar tareas con parámetros específicos. Casi todas las aplicaciones te permiten realizar una búsqueda personalizada en sus datos;
  2. Soporte para git y/o mercurial : Hay soporte para Git, Mercurial y Subversion;
  3. Shell SSH (los repositorios deben ser accesibles a través de ssh, en lugar de solo http, aunque al menos git admite relativamente bien todas las operaciones a través de http) : no puedo decir para SVN porque no lo he probado, pero para Mercurial y Git you puede configurar cada repositorio para que sea de lectura y escritura o de solo lectura para HTTP y SSH por separado;
  4. permisos :

    • repositorios privados/públicos : Comprobar;
    • solo lectura y acceso completo : puede configurar quién puede ver el proyecto y quién puede enviarlo en la misma página:

    permisos de repositorio de fabricante

    • Mismo conjunto de permisos para la interfaz de usuario web y para SSH (al otorgar/modificar permisos, debe reflejarse en ambos) : Ver arriba;
    • preferiblemente integración a LDAP (tanto usuarios como grupos para permisos) : Para usuarios, lo tienes. Para grupos/permisos, no estoy tan seguro;
  5. Solicitudes de extracción (también conocidas como solicitud de fusión) : Sí, y también puede crearlas usando la línea de comando, que es realmente el método preferido;
  6. Herramientas de administración: creación de repositorios, concesión de acceso : vea la imagen en el elemento 4. Puede permitir que cualquier persona cree repositorios si lo desea, o solo permitir que usuarios/grupos específicos lo hagan;
  7. Rastreador de problemas simple: creación de tickets, comentarios, cierre, etiquetas/etiquetas : está ahí. Usted crea tareas en Manifest , lo que le permite categorizarlas con Proyectos (el "equivalente de Phabricator" de las etiquetas), colocarlas en tableros de trabajo y crear campos personalizados para todos sus fines de seguimiento;
  8. Preferiblemente busque, incluyendo tickets, usuarios, proyectos, nombres de archivo y código fuente interno : Casi todas las aplicaciones le permiten realizar una búsqueda en sus datos. También se buscan confirmaciones, y para Mercurial y Git hay una búsqueda de código por repositorio;
  9. Preferiblemente bifurcación desde la interfaz de usuario web : no está presente, aunque no se supone que Phabricator se use de la misma manera que GitHub. No mantiene un repositorio separado para enviar cambios aguas arriba (ver Diferencial y Arcanista );
  10. Preferiblemente se ejecuta en Linux : Sí, se ejecuta en Linux. Además, es muy fácil actualizar a nuevas versiones. El HEAD del proyecto Phabricator está casi siempre (especialmente si usa la stablerama) en un estado de funcionamiento, por lo que la actualización es principalmente una cuestión de ejecución git pully cualquier migración de base de datos pendiente.
También tiene una tabla de trabajo kanban realmente agradable para administrar tareas.
> A partir del 1 de junio de 2021: Phabricator ya no se mantiene activamente.

He estado probando gitstack durante las últimas dos semanas. Todavía no lo he explorado completamente (ah, el tiempo siempre es tan corto). Voy a usar principalmente capturas de pantalla de su lista de características ya que estoy en la computadora equivocada en este momento (y en la red equivocada FWIW)

  1. Interfaz de usuario web relativamente buena: el código fuente y la exploración de confirmación son imprescindibles: razonable, al menos hasta ahora no he tenido ningún problema.vista de confirmación web
  2. Compatibilidad con git y/o mercurial: solo admite git.
  3. Shell SSH (los repositorios deben ser accesibles a través de ssh, en lugar de solo http, aunque al menos git admite relativamente bien todas las operaciones a través de http): solo http . Tiene soporte completo de git push pull, etc. (al menos se anuncia que aún no he probado esas funciones).
  4. Permisos: tiene múltiples usuarios que pueden tener diferentes permisos, así que supongo que podría tener un título de usuario 'público' y luego diferentes usuarios privados y otorgar permisos en los repositorios a esos usuarios de una manera para hacer eso. Sin embargo, AFAIK no admite el cambio público/privado con un solo clic, por ejemplo. También es compatible con LDAP.
  5. Solicitudes de extracción (también conocido como solicitud de fusión): EDITAR: Lo siento, lo leí mal; No, AFAIK no admite requisitos de extracción.
  6. Herramientas de administración: creación de repositorios, concesión de acceso:
  7. Rastreador de problemas simple: creación de tickets, comentarios, cierre, etiquetas/etiquetas: lamentablemente no .
  8. Preferiblemente busque, incluidos tickets, usuarios, proyectos, nombres de archivo y código fuente interno: creo que solo en los mensajes de confirmación , no en mi máquina/red gitstack, por lo que no puedo confirmarlo en este momento.
  9. Preferiblemente bifurcación desde la interfaz de usuario web: no lo creo, no lo he intentado pero no recuerdo ninguna de esas opciones.
  10. Preferiblemente se ejecuta en Linux: solo Windows

GitStack es de código abierto y el código fuente está en github . Lanzado bajo GPL como se indica en su página de funciones : todas las funciones actualmente, aunque en el futuro pueden agregar nuevas funciones a las versiones pagas y no a la versión gratuita, pero a partir del lanzamiento de noviembre de 2013 eso aún no ha sucedido.

En cuanto a los precios :

  • Gratis: todas las funciones, sin soporte (bueno, soporte "comunitario"), máximo 2 cuentas de usuario.
  • 5 usuarios: $150, soporte por correo electrónico.
  • 10 usuarios: $300 también es gratis para 1 o 2 usuarios; $ 150 / año para 5 usuarios o $ 300 para 10 usuarios; para más usuarios , contáctelos .
  • Empresa: correo electrónico, teléfono y soporte remoto, precio: contáctelos.

ACTUALIZACIÓN 2015: Gitorious se fusionará con GitLab, así que vea la respuesta de GitLab .

Gitorious es un software de alojamiento y colaboración de Git que puede instalar usted mismo.

Es de código abierto y puedes probarlo en gitorious.org

Interfaz de usuario Gitoria

  1. Interfaz de usuario web relativamente buena: código fuente y confirmación de navegación, creación y gestión de proyectos y repositorios.
  2. Soporte para git
  3. Concha SSH: sí
  4. permisos: si
  5. Solicitudes de extracción: sí
  6. Herramientas de administración: sí
  7. Rastreador de problemas simple: no, pero se puede integrar con Trac
  8. Buscar: sí
  9. Bifurcación desde la interfaz de usuario web: sí
  10. Funciona en Linux: sí
¿Ha utilizado gitorious (autoinstalado)? ¿Tienes alguna experiencia con eso? ¿Qué tan bien está funcionando la integración de pistas? ¿No sabes sobre 3) y 4)? Por favor, lea esta meta publicación .
Lo mejor es que los grupos de usuarios son globales, por lo que puede reutilizarlos en todos los proyectos, a diferencia de github, donde debe crear nuevos grupos para cada organización.

RhodeCode Enterprise 3 ( https://rhodecode.com ) cumple con 9 de cada 10 de sus requisitos:

  1. Interfaz de usuario web relativamente buena: SÍ
  2. Soporte para git y/o mercurial: SÍ, soporta incluso ambos más Subversion
  3. Shell SSH: SÍ, posible con complemento
  4. Permisos: SÍ, sistema completo de permisos de nivel empresarial con delegación de permisos, grupos de permisos, herencia, compatibilidad con LDAP/AD, etc.
  5. Solicitudes de extracción: SÍ, incluidas las fusiones del lado del servidor y flujos de trabajo flexibles propios
  6. Herramientas de administración: SI
  7. Rastreador de problemas simple: NO, pero fácil integración con todos los rastreadores de problemas
  8. Preferiblemente buscar: SI, búsqueda completa sobre todo
  9. Preferiblemente bifurcación desde la interfaz de usuario web: SÍ
  10. Preferiblemente se ejecuta en Linux: SÍ, se ejecuta incluso en Windows

RhodeCode Enterprise es gratuito para 10 usuarios, ONG y EDU. Está escrito en Python, se usa en producción en más de 10 000 organizaciones y estas organizaciones lo fortalecieron y ajustaron durante más de 3 años.

Descargo de responsabilidad: soy cofundador de RhodeCode.

Como aún no figura en la pregunta, ni en las respuestas anteriores, también hay Deveo que admite los requisitos. Hay un nivel gratuito que estamos lanzando para 5 usuarios, después del cual el precio es de 36 €/usuario/año.

  1. Interfaz de usuario web relativamente buena: el código fuente y la exploración de confirmaciones son imprescindibles.

Deveo tiene una de las mejores UI/UX que existen

  1. Soporte para git y/o mercurial. El soporte para ambos es una ventaja.

Deveo admite ambos, además de Subversion (SVN)

  1. Shell SSH (los repositorios deben ser accesibles a través de ssh, en lugar de solo http, aunque al menos git admite relativamente bien todas las operaciones a través de http)

Se admiten tanto SSH como HTTPS.

  1. Permisos: al menos
    • repositorios privados/públicos
    • solo lectura y acceso completo
    • Mismo conjunto de permisos para la interfaz de usuario web y para SSH (al otorgar/modificar permisos, debe reflejarse en ambos)
    • preferiblemente integración a LDAP (tanto usuarios como grupos para permisos)

Todos los casos de uso anteriores son compatibles. En Deveo, los repositorios se agrupan dentro de proyectos, lo que significa que puede tener repositorios backend y frontend en el mismo proyecto. Hay un control de acceso detallado que se puede utilizar tanto a nivel de proyecto como a nivel de repositorio. El mismo esquema de permisos se aplica naturalmente tanto a los repositorios como a la interfaz de usuario web. Deveo puede integrarse a LDAP/AD y, además, puede configurar Deveo para autenticarse con un servicio de inicio de sesión único basado en SAML 2.0.

  1. Solicitudes de extracción (también conocidas como solicitudes de fusión)

Las solicitudes de extracción se admiten en este momento dentro del mismo repositorio. Puede establecer una cantidad de aprobaciones requeridas antes de que se puedan fusionar los cambios, e incluso requerir una compilación aprobada para la sucursal antes de que se pueda realizar la fusión.

ingrese la descripción de la imagen aquí

  1. Herramientas de administración: creación de repositorios, concesión de acceso

Deveo admite múltiples niveles de acceso para crear repositorios y otorgar acceso. El control de acceso está basado en roles, lo que lo hace fácil de entender y usar.

  1. Rastreador de problemas simple: creación de tickets, comentarios, cierre, etiquetas/etiquetas

Deveo tiene un rastreador de problemas incorporado que se parece a Trello. Puede crear hitos, que actúan como tableros de Trello, y arrastrar y soltar los problemas de un estado a otro. Existe la posibilidad de comentar sobre los problemas, agregar archivos adjuntos, asignar personas, etiquetar los problemas y más.

ingrese la descripción de la imagen aquí

  1. Preferiblemente buscar, incluidos tickets, usuarios, proyectos, nombres de archivo y código fuente interno

Puede buscar la mayor parte del contenido en Deveo.

  1. Preferiblemente bifurcación desde la interfaz de usuario web

La bifurcación es compatible con la interfaz de usuario.

  1. Preferiblemente se ejecuta en Linux

Se admiten todas las distribuciones comunes de Linux (Debian, CentOS, Ubuntu, RedHat)

Estoy afiliado a Deveo

Actualización: parece que RhodeCode NO es en realidad de código cerrado, tiene una edición comunitaria (código abierto) y algunas características (empresa) son de código cerrado. Dado eso, no estoy seguro de qué tan activa permanecería la bifurcación de Kallithea.

Kallithea comenzó como una bifurcación de código abierto de RhodeCode, la bifurcación se inició porque RhodeCode se cerró Fuente. Kallithea es gratis.

Soporta repositorios Git y Mercurial. Tiene, como era de esperar, la misma interfaz de usuario que la edición 2013 de RhodeCode.

Sitio web principal:

https://kallithea-scm.org

Este es un complemento de la respuesta de GitLab de Piotr Zierhoffer .

Yo también busqué soluciones para esto (en los últimos años) y descubrí que GitLab es el más adecuado en términos de características, facilidad de uso y licencia. Me sorprendió gratamente lo similar que es a GitHub. La respuesta publicada anteriormente es excelente.

Lo que me gustaría agregar es que no necesariamente necesita instalarlo desde cero o usar el servicio alojado (o un tercero como GitHost). Hay algunos proveedores de alojamiento en la nube y VPS que tienen configuraciones de "un clic" para GitLab, y hay imágenes y contenedores para Amazon Web Services y Docker.

Por ejemplo, recientemente cambié el proveedor de alojamiento de VPS a DigitalOcean y me alegró descubrir que tienen un "droplet" de un clic para GitLab (así como tutoriales para la instalación manual y con un solo clic ). En cuanto al alojamiento en la nube, Amazon EC2 es muy asequible y he visto muchos tutoriales y al menos un par de imágenes populares para GitLab.

Nuevamente, disculpas por hacer de esta una respuesta separada. Espero que no te importe. Realmente quería mencionarlo, ya que puede ser valioso para las personas que buscan la forma más rentable de ejecutar el software recomendado en la respuesta aceptada.

(Si alguien está usando alguno de estos, sería interesante saber cómo funcionó en términos de configuración, mantenimiento y rendimiento).