Me gustaría construir una ruta confiable para el desarrollo de software. Esto significa que cada cambio en el código debe estar firmado por el autor y un revisor, antes de ser aceptado. Estas firmas para los cambios deben ser verificables en el momento de la liberación, o debe haber algún otro otro medio para asegurarse de que el repositorio no haya sido manipulado , o se hayan agregado cambios adicionales.Ruta de desarrollo de confianza en git con firmas
El sistema de control de versiones que espero usar para esto es git, pero también se aceptan otras opciones. La firma puede hacerse a través de GnuPG o certificados SSL.
El flujo de trabajo Pienso que sería más o menos:
- actual tronco verificado es ramificado
- Los cambios se desarrollan en la rama por uno o más desarrolladores
- Uno o más desarrolladores firmar los cambios realizados por la rama
- A opiniones revisor y prueba los cambios
- Crítico firma los cambios realizados por la rama
- Branch se "fusionó" para el tronco verificado actual
La fusión no tiene que ser a prueba de tontos como que no revisadas cambios tendría que ser fusionables al tronco - sólo que antes de un comunicado, es necesario que haya una forma de comprobar si hay cambios no revisados (sin firmar) en el enlace troncal. Y, en general, no es necesario prevenir la manipulación, solo detectarla.
Me gustaría obtener una breve guía sobre cómo configurar esto y cómo se realiza cada operación. Una vez que obtengo algunos consejos, puedo averiguar los detalles yo mismo.
Además, ya sé sobre 'git tag -s' técnicamente, pero no estoy seguro de cómo aplicarlo a este problema en particular.
No ha habido ninguna respuesta concreta con toda la historia, así que la dejo abierta. Estoy probando algunas posibilidades y si se me ocurre una concreta, publicaré la respuesta aquí. – Nakedible