App-git-hub
view release on metacpan or search on metacpan
share/lib/git-hub.d/git-hub-repo view on Meta::CPAN
html_url ssh_url
forks parent__full_name source__full_name
watchers open_issues pushed_at created_at
privatex
)
report-data
}
command:repo-get() {
get-args '?owner:get-user/repo:get-repo' key
api-get "/repos/$owner/$repo"
OK || {
msg_fail="Repo '$owner/$repo' not found"
return
}
local value="$(JSON.get -a "/$key" -)"
if [ -n "$value" ]; then
msg_ok="$value"
else
msg_fail="Couldn't get value for '$key'"
OK=1
fi
}
command:repo-edit() {
require-auth
get-args '?owner:get-user/repo:get-repo' %pairs
local adds=(name "$repo")
for (( i = 0; i < ${#pairs[@]}; i = i + 2 )); do
if [ "${pairs[$i]}" == name ]; then
adds=()
break
fi
done
pairs+=( "${adds[@]}" )
api-patch "/repos/$owner/$repo" "$(json-dump-object-pairs)"
}
# TODO Support creating repo under an org
command:repo-new() {
require-auth
get-args '?org:get-user/repo:get-repo'
local login=$(get-login)
if [ "$org" == "$login" ]; then
api-post "/user/repos" "$(json-dump-object name "$repo")"
else
api-post "/orgs/$org/repos" "$(json-dump-object name "$repo")"
fi
msg_ok="Repository 'git@github.com:$org/$repo' created."
msg_422="Repository name 'git@github.com:$org/$repo' already exists."
}
command:repo-delete() {
require-auth
get-args 'owner/repo'
if [ "$owner/$repo" == "ingydotnet/git-hub" ]; then
die "Won't delete ingydotnet/git-hub. That's suicide!!"
fi
api-delete "/repos/$owner/$repo"
msg_ok="Repository '$owner/$repo' deleted"
msg_404="Repository '$owner/$repo' not found"
}
# vim: set lisp:
( run in 2.933 seconds using v1.01-cache-2.11-cpan-75ffa21a3d4 )