knope 0.23.0

A command line tool for automating common development tasks
pub(crate) mod create_pull_request;
pub(crate) mod create_release;
mod list_issues;

pub(crate) use create_pull_request::{
    Error as CreatePullRequestError, create_or_update_pull_request,
};
pub(crate) use create_release::{Error as CreateReleaseError, create_release};
pub(crate) use list_issues::{Error as ListIssuesError, list_issues};

use super::http::Client;
use crate::{
    app_config::{self, get_or_prompt_for_gitea_token},
    integrations::http::http_client,
    state,
};

fn initialize_state(
    host: &str,
    state: state::Gitea,
) -> Result<(String, Client), app_config::Error> {
    Ok(match state {
        state::Gitea::Initialized { token, client } => (token, client),
        state::Gitea::New => {
            let token = get_or_prompt_for_gitea_token(host)?;
            (token, http_client(None)?)
        }
    })
}