La forma correcta de hacerlo es a través de la Events API.
Primero debe fetch the user's events:
GET /users/:username/events
, entonces tendrá que filtrar la matriz de respuesta de artículos where type
is set to PushEvent
. Cada uno de estos elementos corresponde a un git push
por parte del usuario. Las confirmaciones de esa inserción están disponibles en orden cronológico inverso en la matriz payload.commits
.
El siguiente paso es filtrar confirmaciones hechas por otros usuarios marcando la propiedad author.email
de cada objeto de confirmación. También tiene acceso a propiedades como sha
, message
y url
en el mismo objeto, y puede eliminar confirmaciones duplicadas en varios intentos mediante la propiedad distinct
.
EDITAR: Según lo señalado por Adam Taylor en los comentarios, este enfoque es incorrecto. No pude RTFM, lo siento. La API te permite buscar como máximo 300 eventos y los eventos también están limitados a los últimos 90 días. Dejaré la respuesta aquí para que esté completa, pero para la cuestión establecida de obtener todos los commits, no funcionará.
Esto no es para las ** contribuciones **. Solo muestra todo este año para mí, no desde 2011. –