# shellcheck shell=dash disable=SC2154
# https://docs.github.com/en/rest/releases/releases#create-a-release
___x_cmd_gh_repo_release_create() {

    param:scope  ___x_cmd_github
    param:dsl    '
options:
    --tag               "Please provide tag name"                   <>
    --repo|-r           "<owner_path>/<repo_path>"                  <>:RepoName
    --name              "Release name"                              <>=""
    --body              "Release Description"                       <>=""
    --target_commitish  "Default is main"                           <>:name="main"

    --latest            "Mark the release as Latest"
    --prerelease        "Is release version"
    --draft             "mark as draft release"
    --json|-j           "output json data"
'
    param:run
    ___x_cmd_gh_param_init_owner_repo

    [ -z "$latest" ] || {
        local make_latest=true
        local prerelease=false
    }

    local gen_gh_json=""
    gen_gh_json="$(param:option2json -tag tag_name=tag -latest ${latest:+"+make_latest"})"
    gh:debug "$gen_gh_json"
    ___x_cmd_gh_curl post "/repos/${owner_repo}/releases" "gen_gh_json" | ___x_cmd_gh_release____ui_handler Creating
}