Подводить итоги дня и недели по написанию кода можно с помощью одного довольно простого скрипта, который будет отправлять вам на почту подборку ваших коммитов за это время. Конечно, вы можете предложить лучшие решения, но если не хочется долго думать, то используйте эту заготовку.
В cron добавляем следующее (crontab -e)
0 22 * * 1,2,3,4,5 sh /path/to/git_changes.sh # Sends 5 PM EST if server time is UTC
0 21 * * 5 sh /path/to/git_changes.sh -w # Sends Friday @ 4PM EST if server time is UTC
А в сам скрипт git_changes.sh
#!/usr/bin/env bash
PROJECTS_DIR=/path/to/projects
RECIPIENT=user@example.com
if [ "$1" = "-w" ]; then
mailing="weekly"
since="1.week"
format="iso"
else
mailing="daily"
since="1.day"
format="relative"
fi
output=""
for git in $(find $PROJECTS_DIR/ -maxdepth 2 -name "*.git"); do
gitdir=$(dirname "$git");
cd $gitdir
changes=$(git --no-pager log --date=$format --pretty=format:"%cd: %s" --decorate=short --since=$since);
if [ "$changes" ]; then
output="$output\n$gitdir:\n$changes\n\n"
fi
done
if [ "$output" ]; then
if [ "$mailing" = "weekly" ]; then
echo -e "$output" | mail -s "Weekly git commits update for week ending $(date +'%b %d')" $RECIPIENT
else
echo -e "$output" | mail -s "git commits for $(date +'%A, %b %d')" $RECIPIENT
fi
fi
Где проходит волшебная граница между любителем и профессионалом? Я, Александр Сельдемиров, пообщался со своим коллегой тимлидом ITQuick — он раскрыл минимальный набор инструментов, владеть которыми должен каждый разработчик на любом языке.