Получение писем коммиттеров
Я пытаюсь получить адреса электронной почты коммиттеров проекта в определенных файлах. После создания запроса, который находит файлы кода в списке репозиториев, соответствующих определенным критериям, я получаю правильные результаты в виде code_results (типа CodeSearchResult). Теперь, чтобы попытаться получить доступ к информации о коммите, я делаю следующее
for code_result in code_results:
repository = code_result.repository
file_path = code_result.path
commits = repository.commits(path=file_path)
for commit in commits:
if commit.committer is not None:
print commit.committer
Проблема заключается в том, что при попытке получить электронную почту через commit.committer.email всегда возвращается None, хотя в документации говорится, что коммит содержит электронную почту коммиттера. Я также попробовал автора вместо коммиттера, так как в документации говорится, что автор - это диктат, содержащий электронную почту, но я не уверен, что это за ключи.
Спасибо!
1 ответ
Многие из конечных точек GitHub, которые возвращают списки, возвращают только частичные объекты в листинге. Странно, что коммиттером или автором никогда не будет None, если честно, но вы можете попробовать сделать:
for commit in commits:
commit = commit.refresh()
if commit.committer is not None:
print commit.committer
Тем не менее, тестируя это на github3.py, я не могу воспроизвести эту проблему. я сделал
repository = github3.repository('sigmavirus24', 'github3.py')
for commit in repository.commits(path='setup.py'):
print(commit.committer)
print(commit.author)
И за исключением одного коммита, оба присутствовали всегда. Это было из этого коммита, где у пользователя не было учетной записи GitHub. Тем не менее, я могу затем проверить commit.commit
чтобы получить необработанные данные о самом объекте git commit. Это имеет как committer
а также author
объект, см
>>> commit.commit.committer
{u'date': u'2013-09-05T02:23:17Z', u'name': u'Barry Morrison and Ian Cordasco', u'email': u'graffatcolmingov+bmorriso@gmail.com'}
>>> commit.commit.author
{u'date': u'2013-09-05T02:23:17Z', u'name': u'Barry Morrison and Ian Cordasco', u'email': u'graffatcolmingov+bmorriso@gmail.com'}