Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- extern crate structopt;
- extern crate dotenv;
- extern crate goji;
- use structopt::StructOpt;
- use dotenv::dotenv;
- use goji::{Credentials, Jira};
- #[derive(StructOpt, Debug)]
- #[structopt(name = "themerger")]
- struct Opt {
- #[structopt(short = "d", long = "debug")]
- debug: bool,
- #[structopt(subcommand)]
- cmd: TheMergerCommand
- }
- #[derive(StructOpt, Debug)]
- #[structopt(name = "themergercommand")]
- enum TheMergerCommand {
- #[structopt(name = "list")]
- List {
- #[structopt(short = "b")]
- branch: String,
- },
- #[structopt(name = "merge")]
- Merge {
- #[structopt(short = "b")]
- branch: String,
- },
- #[structopt(name = "merge_custom")]
- MergeCustom {
- #[structopt(short = "b")]
- branch: String,
- },
- #[structopt(name = "dotdev")]
- DotDevDebug {
- },
- }
- #[derive(Debug)]
- struct Config {
- jira_host: String,
- jira_user: String,
- jira_pass: String,
- jira_jql_verification: String,
- jira_jql_release: String,
- current_release_branch: String,
- }
- fn init_config() -> Config {
- dotenv().ok();
- Config {
- jira_host : dotenv::var("JIRA_HOST").unwrap(),
- jira_user : dotenv::var("JIRA_USER").unwrap(),
- jira_pass : dotenv::var("JIRA_PASS").unwrap(),
- jira_jql_verification : dotenv::var("JIRA_JQL_VERIFICATION").unwrap(),
- jira_jql_release : dotenv::var("JIRA_JQL_RELEASE").unwrap(),
- current_release_branch : dotenv::var("CURRENT_RELEASE_BRANCH").unwrap()
- }
- }
- fn main() {
- let config = init_config();
- let opt = Opt::from_args();
- match opt.cmd {
- TheMergerCommand::DotDevDebug {} => {
- println!("DotDev {:#?}", config);
- },
- TheMergerCommand::List {branch} => {
- let query = config.jira_jql_verification;
- let jira = Jira::new(config.jira_host, Credentials::Basic(config.jira_user, config.jira_pass)).unwrap();
- println!("Tickets to merge into branch {}", branch);
- match jira.search().iter(query, &Default::default()) {
- Ok(results) => {
- for issue in results {
- println!("{:#?}", issue.key);
- }
- }
- Err(err) => panic!("{:#?}", err),
- }
- }
- _ => println!("Not implemented yet."),
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement