# shellcheck shell=dash
___x_cmd_gx_ws_issue(){
    local X_help_cmd='___x_cmd_gx_help ws issue'
    help:arg:parse
    [ $# -gt 0 ] ||     set -- ls

    local op="$1";      shift
    case "$op" in
        ls|create|edit|reopen|close)          ___x_cmd_gx_ws___issue  "$op"  "$@" ;;
        open)                                 ___x_cmd_gx_ws_issue_open           ;;
    esac
}

___x_cmd_gx_ws___issue(){
    local op="$1"; shift

    local x_
    ___x_cmd_gx_ws_provider_ || return
    local provider="$x_"

    ___x_cmd_gx_ws_repopath_ || return
    local p="$x_"

    gx:debug "x issue $op -r $p $*"
    x "$provider" issue "$op" -r "$p" "$@"
}

___x_cmd_gx_ws_issue_open(){
    local x_
    ___x_cmd_gx_ws_gethttpurl_ || return
    local httpurl="$x_"

    ___x_cmd_gx_ws_repopath_ || return
    local p="$x_"

    ___x_cmd_gx_ws_provider_ || return
    local provider="$x_"

    case "$provider" in
        gh|gt)         x browse "$httpurl/$p/issues"           ;;
        gitcode|gl)    x browse "$httpurl/$p/-/issues"         ;;
        *)             return 1                                ;;
    esac
}
