Skip to content

Instantly share code, notes, and snippets.

@westonruter
Last active October 8, 2016 21:34
Show Gist options
  • Save westonruter/422e2adb2b7c800df2db to your computer and use it in GitHub Desktop.
Save westonruter/422e2adb2b7c800df2db to your computer and use it in GitHub Desktop.
55 westonruter
11 DrewAPicture
11 ocean90
10 afercia
8 obenland
6 celloexpressions
4 adamsilverstein
3 melchoyce
3 sergeybiryukov
2 boonebgorges
2 karmatosed
2 pento
2 rittesh.patel
2 valendesigns
1 Ankit K Gupta
1 bhubbard
1 chandrapatel
1 chetanchauhan
1 chris_dev
1 coreymcollins
1 dd32
1 drebbits.web
1 eliorivero
1 enejb
1 ericlewis
1 Fab1en
1 faishal
1 folletto
1 fusillicode
1 igmoweb
1 jeherve
1 joshlevinson
1 juanfra
1 jubstuff
1 kwight
1 MattGeri
1 mattwiebe
1 michael-arestad
1 mikeschroder
1 obrienlabs
1 rabmalin
1 ramiy
1 ryan
1 ryankienstra
1 samhotchkiss
1 thewanderingbrit
1 TimothyBlynJacobs
1 vlad.olaru
1 voldemortensen
1 welcher
1 zinigor
#!/bin/bash
# List contributors for WordPress Customizer component
# Includes WordPress.org usernames for committers as well as
# contributors given props in commit messages.
# Author: Weston Ruter (@westonruter)
# URL: https://gist.github.com/westonruter/422e2adb2b7c800df2db
#
# USAGE:
# ./list-wordpress-customize-component-props.sh START_COMMIT [END_COMMIT]
#
# EXAMPLES:
# ./list-wordpress-customize-component-props.sh 3.3.0 # get all contributors ever (since added to trunk between 3.3 and 3.4)
# ./list-wordpress-customize-component-props.sh 4.3.0 4.4.0 # f get all contributors for 4.3
# NOTICE: The parser doesn't properly support props that don't appear on their own line, so some props will be missed.
start_release_tag="$1"
end_release_tag="$2"
if [ -z "$start_release_tag" ]; then
echo "USAGE: ./list-wordpress-customize-component-props.sh START_COMMIT [END_COMMIT]"
exit
fi
set -e
(
git ls-files --with-tree=3.4.0 | grep customize
git ls-files --with-tree=3.5.0 | grep customize
git ls-files --with-tree=3.6.0 | grep customize
git ls-files --with-tree=3.7.0 | grep customize
git ls-files --with-tree=3.8.0 | grep customize
git ls-files --with-tree=3.9.0 | grep customize
git ls-files --with-tree=4.0.0 | grep customize
git ls-files --with-tree=4.1.0 | grep customize
git ls-files --with-tree=4.2.0 | grep customize
git ls-files --with-tree=4.3.0 | grep customize
git ls-files --with-tree=4.4.0 | grep customize
git ls-files --with-tree=origin/master | grep customize
) | sort | uniq > /tmp/customizer-paths.txt
(
git log --format="%an" $start_release_tag...$end_release_tag -- $( cat /tmp/customizer-paths.txt ) |
sed 's/Andrew Ozz/azaozz/' |
sed 's/Andrew Nacin/nacin/' |
sed 's/Aaron Jorbin/jorbin/' |
sed 's/Andrea Fercia/afercia/' |
sed 's/Boone Gorges/boonebgorges/' |
sed 's/Daryl Koopersmith/koop/' |
sed 's/Dion Hulse/dd32/' |
sed 's/Dominik Schilling (ocean90)/ocean90/' |
sed 's/Drew Jaynes/DrewAPicture/' |
sed 's/DrewAPicture (DrewAPicture)/DrewAPicture/' |
sed 's/Ella Iseulde Van Dorpe/iseulde/' |
sed 's/Gary Pendergast/pento/' |
sed 's/Helen Hou-Sandi/helen/' |
sed 's/Ian Stewart/iandstewart/' |
sed 's/John Blackbourn/johnbillion/' |
sed 's/Jon Cave/duck_/' |
sed 's/Konstantin Obenland/obenland/' |
sed 's/Lance Willett/lancewillett/' |
sed 's/Mark Jaquith/markjaquith/' |
sed 's/Matt Thomas/iammattthomas/g' |
sed 's/Mel Choyce/melchoyce/' |
sed 's/MichaelArestad/michael-arestad/g' |
sed 's/Ryan Boren/ryan/' |
sed 's/Sergey Biryukov/sergeybiryukov/' |
sed 's/Scott Taylor/wonderboymusic/' |
sed 's/Weston Ruter/westonruter/'
git log $start_release_tag...$end_release_tag -- $( cat /tmp/customizer-paths.txt ) |
ack -i '^\s*Props ' |
sed 's/ and /, /g' |
perl -pe 's/Michael ?Arestad/michael-arestad/gi' |
sed 's/\. And for good measure, props/,/g' |
sed 's/DH-Shredder/mikeschroder/' |
sed 's/,,/,/g' |
perl -pe 's/[\.,]\s+([Ff]ixes|[Cc]loses|[Ss]ee) #.*$|\. Thanks .*$//' |
perl -pe 's/^\s*[Pp]rops\s+(\S.*?)(\s*for (the )?(cleanup|typo fix|first patch( and testing)?|docs|design concepts|initial patch(es)?).*$|\.$|$)/$1/' |
tr ',' '\n' |
cat -
) | sed 's/^ //' | sort -f | uniq -i -c | sort -f -k1nr -k2
@ahmadawais
Copy link

It used to work but now it outputs

fatal: Not a git repository (or any of the parent directories): .git
fatal: Not a git repository (or any of the parent directories): .git
wpc.sh: line 71: ack: command not found
fatal: Not a git repository (or any of the parent directories): .git

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment