|
@@ -0,0 +1,72 @@
|
|
|
+#compdef github
|
|
|
+
|
|
|
+_github() {
|
|
|
+ if (( CURRENT > 2 )); then
|
|
|
+ # shift words so _arguments doesn't have to be concerned with second command
|
|
|
+ (( CURRENT-- ))
|
|
|
+ shift words
|
|
|
+ # use _call_function here in case it doesn't exist
|
|
|
+ _call_function 1 _github_${words[1]}
|
|
|
+ else
|
|
|
+ _values "github command" \
|
|
|
+ "fetch[Fetch from a remote to a local branch.]" \
|
|
|
+ "ignore[Ignore a SHA (from 'github network commits')]" \
|
|
|
+ "fetch_all[Fetch all refs from a user]" \
|
|
|
+ "info[Info about this project.]" \
|
|
|
+ "browse[Open this repo in a web browser.]" \
|
|
|
+ "home[Open this repo's master branch in a web browser.]" \
|
|
|
+ "clone[Clone a repo.]" \
|
|
|
+ "pull-request[Generate the text for a pull request.]" \
|
|
|
+ "network[Project network tools.]" \
|
|
|
+ "pull[Pull from a remote.]" \
|
|
|
+ "track[Track another user's repository.]"
|
|
|
+ fi
|
|
|
+}
|
|
|
+
|
|
|
+_github_pull() {
|
|
|
+ _arguments \
|
|
|
+ "--merge[Automatically merge remote's changes into your master.]"
|
|
|
+}
|
|
|
+_github_clone() {
|
|
|
+ _arguments \
|
|
|
+ "--ssh[Clone using the git@github.com style url.]"
|
|
|
+}
|
|
|
+
|
|
|
+_github_track() {
|
|
|
+ _arguments \
|
|
|
+ "--private[Use git@github.com: instead of git://github.com/.]" \
|
|
|
+ "--ssh[Equivalent to --private.]"
|
|
|
+}
|
|
|
+
|
|
|
+_github_network() {
|
|
|
+ if (( CURRENT > 2 )); then
|
|
|
+ # shift words so _arguments doesn't have to be concerned with second command
|
|
|
+ (( CURRENT-- ))
|
|
|
+ shift words
|
|
|
+ # use _call_function here in case it doesn't exist
|
|
|
+ _call_function 1 _github_network_${words[1]}
|
|
|
+ else
|
|
|
+ _values "github network command" \
|
|
|
+ "web[Open network in a web browser.]" \
|
|
|
+ "list[List networked repositories.]" \
|
|
|
+ "fetch[Fetched commits for a given networked repository.]" \
|
|
|
+ "commits[List networked commits not pulled into this repo.]"
|
|
|
+ fi
|
|
|
+}
|
|
|
+
|
|
|
+_github_network_commits() {
|
|
|
+ _arguments \
|
|
|
+ "--project[Filter commits on a certain project.]" \
|
|
|
+ "--author[Filter commits on a email address of author.]" \
|
|
|
+ "--common[Show common branch point.]" \
|
|
|
+ "--nocache[Do not use the cached network data.]" \
|
|
|
+ "--sort[How to sort : date(*), branch, author.]" \
|
|
|
+ "--thisbranch[Look at branches that match the current one]" \
|
|
|
+ "--applies[Filter commits to patches that apply cleanly.]" \
|
|
|
+ "--limit[Only look through the first X heads - useful for really large projects]" \
|
|
|
+ "--before[Only show commits before a certain date.]" \
|
|
|
+ "--after[Only show commits after a certain date.]" \
|
|
|
+ "--shas[Only show shas.]" \
|
|
|
+ "--cache[Use the network data even if it's expired.]" \
|
|
|
+ "--noapply[Filter commits to patches that do not apply cleanly.]"
|
|
|
+}
|