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 )