dici
He leído el siguiente documento (https://developer.github.com/v3/repos/#list-contributors) para enumerar los colaboradores en un repositorio en el que he trabajado, y puedo ver que una persona que se comprometió varias veces no aparece, y yo solo tengo 3 contribuciones, mientras que impulsé la mayoría de nuestras 301 confirmaciones.
Realmente no entiendo lo que devuelve este punto final, pero no parece exacto. El documento no es muy detallado al respecto, ¿alguien sabe algo que pueda explicarlo?
Envié mi pregunta al soporte de la API de Github y me dieron una respuesta increíblemente detallada. Aquí está (abreviado):
Parece que las confirmaciones faltantes se crearon con una dirección de correo electrónico que no está vinculada a tu perfil de GitHub. Puede encontrar el correo electrónico que falta agregando “.patch” al final de una URL de confirmación y luego mirando la línea “De:”. Una vez que tengas el correo electrónico, puedes vincularlo a tu perfil siguiendo estas instrucciones:
https://help.github.com/articles/why-are-my-commits-linked-to-the-wrong-user
Después de vincular su correo electrónico a su cuenta, cualquier contribución faltante válida se completará y las nuevas deberían aparecer automáticamente.
Por ejemplo, cuando reviso el historial de confirmaciones de Projet-merou:
https://github.com/jxw1102/Projet-merou/commits/master
Cuando elijo la última confirmación con su nombre de usuario de GitHub como su autor y agrego .patch a la URL de esta manera:
https://github.com/jxw1102/Projet-merou/commit/f5bf30243ab99efc40802d3d78c08e49839ec9c9.patch
Veo esto en la segunda línea:
From: Dicee courtinot.david@orange.fr
Al agregar ese correo electrónico, se repondrán las contribuciones válidas faltantes. Después de hacer eso, llamar a la API debería mostrar el resultado esperado.
Puntos finales de la API: colaboradores y estadísticas de los colaboradores
He escrito algunas notas sobre cada punto final a continuación. ¡Hazme saber si tienes alguna pregunta!
/repos/:propietario/:repo/contribuyentes
Cuando usted llama
GET /repos/:owner/:repo/contributors
, la API de GitHub enumerará los colaboradores del repositorio especificado, ordenados por la cantidad de confirmaciones por colaborador en orden descendente. Los datos de los colaboradores se almacenan en caché por motivos de rendimiento. Este extremo puede devolver información que tiene unas pocas horas de antigüedad. Los colaboradores de Git se identifican por la dirección de correo electrónico del autor. Esta API intenta agrupar los recuentos de contribuciones por usuario de GitHub, en todas sus direcciones de correo electrónico asociadas. Por razones de rendimiento, solo las primeras 500 direcciones de correo electrónico del autor en el repositorio se vincularán a los usuarios de GitHub. El resto aparecerá como contribuyentes anónimos sin información de usuario de GitHub asociada.Si llama a este extremo con
anon=1
especificado, la API devolverá un recuento de todas las confirmaciones en la rama predeterminada, incluidas las confirmaciones que no están asociadas con ningún usuario en GitHub. Aquí hay un ejemplo:https://api.github.com/repos/jxw1102/Projet-merou/contributors?anon=1
Cuando
anon=1
no se especifica así:https://api.github.com/repos/jxw1102/Projet-merou/contributors
observe cómo los resultados solo muestran confirmaciones asociadas con algún usuario de GitHub y no cuentan confirmaciones de combinación.
/repos/:propietario/:repo/estadísticas/contribuyentes
Cuando usted llama
GET /repos/:owner/:repo/stats/contributors
, la API de GitHub devolverá la lista de colaboradores con adiciones, eliminaciones y recuentos de confirmaciones. El total denota el número total de confirmaciones creadas por el colaborador.¿Eso ayuda?
Mis mejores deseos,
Francisco
@francisfuzz
Soporte GitHub
Tuve el mismo problema, después de fusionar devel a master. Faltaban colaboradores. El soporte de GitHub respondió:
Ese es el comportamiento esperado; lea la documentación para ese punto final:
https://developer.github.com/v3/repos/#list-contributors
“Este punto final puede devolver información que tiene unas pocas horas de antigüedad porque GitHub REST API v3 almacena en caché los datos de los contribuyentes para mejorar el rendimiento”.
Por lo tanto, es posible que deba esperar unas horas para obtener datos actualizados.
¿Tienes más de 500 colaboradores? ¿Configuración
anon
atrue
devolver más resultados?– TriskalJM
06/04/2016 a las 17:24
@TriskalJM Su segunda pregunta me hace pensar que estaba en el camino correcto. Incluiré la respuesta que obtuve del soporte de la API.
– Dici
06/04/2016 a las 21:00