2013-04-24 3 views
3

Можно ли просмотреть, когда операции push выполнялись в репозитории, и в частности на Github?Git - Github push history

У нас есть сборки среды (Jenkins), которая автоматически создает нашу продукцию на различных мероприятиях:

  • Когда пользователь нажимает новые коммиты на Github
  • Каждую ночь
  • По желанию пользователя

Я хотел бы иметь возможность определить, какая точная фиксация была использована для сборки этих пакетов (сборки в конечном итоге автоматически удаляются в Jenkins, поэтому я не могу полагаться на Jenkins bu ild), зная, что у меня есть дата и время сборки.

Хотя большую часть времени я могу просто посмотреть в git, иногда разработчик внес изменения и совершил их локально, но не нажал на github. Когда позже он подталкивает свои изменения, становится невозможно сказать, какой исходный код использовался для сборки пакета.

+0

Хороший вопрос. Я не думаю, что есть способ рассказать много о толкающих операциях, особенно о том, кто сделал толчок, поскольку он не должен быть тем же пользователем, что и автор фиксации. Было бы неплохо, если бы git-пульты имели журнал истории push. –

ответ

1

На самом деле, я обнаружил, что плагин Дженкинс Git автоматически устанавливает следующее переменные окружения, которые затем могут быть использованы в сценариях сборки:

GIT_COMMIT - SHA of the current 
GIT_BRANCH - Name of the branch currently being used, e.g. "master" or "origin/foo" 
GIT_PREVIOUS_COMMIT - SHA of the previous built commit from the same branch (the current SHA on first build in branch) 
GIT_URL - Repository remote URL 
GIT_URL_N - Repository remote URLs when there are more than 1 remotes, e.g. GIT_URL_1, GIT_URL_2 
GIT_AUTHOR_EMAIL - Committer/Author Email 
GIT_COMMITTER_EMAIL - Committer/Author Email 

Просто ссылки переменной GIT_COMMIT среды было достаточно, чтобы разыскать скомпилированные и упакованный код.

1

Хм, я думаю, что самый простой способ - сделать это с Дженкинсом.

Вы можете установить различные методы уведомления для Дженкинса. Там можно увидеть каждую фиксацию. Мы используем его с расширением XMPP, что очень полезно. Но для этого вам нужно запустить jenkins.

В противном случае вы должны создать крючок, который отправляет вам E-Mail, когда что-то подтолкнет ваш репозиторий.

http://git-scm.com/book/en/Customizing-Git-Git-Hooks

Существует раздел для электронной почты Workflow крючков.

0

Кажется возможным отслеживать push с помощью Github's Repo Hooks API, но я их не использовал.

Для не GitHub мерзавца репо:

В случае это не голый, .git/logs/refs/heads/<branch name> записи, когда филиал был обновлен, возможно, git push. (примечание: файл обрезается в некоторых случаях.)

Не знаете, как напрямую проверить это в режиме открытого репо, так как они не поддерживают рефлоги. Я бы посмотрел на git hooks, если мне нужно отслеживать это.