#!/usr/bin/env bash

set -e

command:forks() {
  get-args '?owner:get-user/repo:get-repo'
  report-list \
    "/repos/$owner/$repo/forks?sort=newest;per_page=PER_PAGE" \
    'pushed_at full_name'
}

format-entry:forks() {
  if "$raw_output"; then
    out "$3"
  else
    printf "%d) (%s)  %-30s\n" "$1" "${2/T*/}" "$3"
  fi
}

command:fork() {
  require-auth
  get-args '?owner:get-user/repo:get-repo'
  local data='{}'
  if [ -n "$organization" ]; then
    api-post "/repos/$owner/$repo/forks" \
      "$(json-dump-object organization "$organization")"
    msg_ok="Repository '$owner/$repo' forked to '$organization'"
  else
    api-post "/repos/$owner/$repo/forks" '{}'
    local login="$(get-login)"
    msg_ok="Repository '$owner/$repo' forked to '$login'"
  fi
  if [ $# -le 1 ]; then
    remote_name="$login"
  fi
  if OK &&
    [ -n "$remote_name" ] &&
    inside-git-repo &&
    [ -z "$GIT_HUB_TEST_RUN" ]
  then
    url="git@github.com:$login/$repo.git"
    git remote add "$remote_name" "$url"
    say "git remote add $remote_name $url"
  fi
}

# vim: set lisp:
