API de Github V3: lista de colaboradores

4 minutos de lectura

Avatar de usuario de Dici
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?

  • ¿Tienes más de 500 colaboradores? ¿Configuración anon a true 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

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.

¿Ha sido útil esta solución?