Advertisement
Guest User

Untitled

a guest
Aug 21st, 2019
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.30 KB | None | 0 0
  1. extern crate structopt;
  2. extern crate dotenv;
  3. extern crate goji;
  4.  
  5. use structopt::StructOpt;
  6. use dotenv::dotenv;
  7. use goji::{Credentials, Jira};
  8.  
  9. #[derive(StructOpt, Debug)]
  10. #[structopt(name = "themerger")]
  11. struct Opt {
  12. #[structopt(short = "d", long = "debug")]
  13. debug: bool,
  14.  
  15. #[structopt(subcommand)]
  16. cmd: TheMergerCommand
  17. }
  18.  
  19. #[derive(StructOpt, Debug)]
  20. #[structopt(name = "themergercommand")]
  21. enum TheMergerCommand {
  22. #[structopt(name = "list")]
  23. List {
  24. #[structopt(short = "b")]
  25. branch: String,
  26. },
  27. #[structopt(name = "merge")]
  28. Merge {
  29. #[structopt(short = "b")]
  30. branch: String,
  31. },
  32. #[structopt(name = "merge_custom")]
  33. MergeCustom {
  34. #[structopt(short = "b")]
  35. branch: String,
  36. },
  37. #[structopt(name = "dotdev")]
  38. DotDevDebug {
  39. },
  40. }
  41.  
  42. #[derive(Debug)]
  43. struct Config {
  44. jira_host: String,
  45. jira_user: String,
  46. jira_pass: String,
  47. jira_jql_verification: String,
  48. jira_jql_release: String,
  49. current_release_branch: String,
  50. }
  51.  
  52. fn init_config() -> Config {
  53. dotenv().ok();
  54.  
  55. Config {
  56. jira_host : dotenv::var("JIRA_HOST").unwrap(),
  57. jira_user : dotenv::var("JIRA_USER").unwrap(),
  58. jira_pass : dotenv::var("JIRA_PASS").unwrap(),
  59. jira_jql_verification : dotenv::var("JIRA_JQL_VERIFICATION").unwrap(),
  60. jira_jql_release : dotenv::var("JIRA_JQL_RELEASE").unwrap(),
  61. current_release_branch : dotenv::var("CURRENT_RELEASE_BRANCH").unwrap()
  62. }
  63. }
  64.  
  65. fn main() {
  66. let config = init_config();
  67. let opt = Opt::from_args();
  68.  
  69. match opt.cmd {
  70. TheMergerCommand::DotDevDebug {} => {
  71. println!("DotDev {:#?}", config);
  72. },
  73. TheMergerCommand::List {branch} => {
  74. let query = config.jira_jql_verification;
  75. let jira = Jira::new(config.jira_host, Credentials::Basic(config.jira_user, config.jira_pass)).unwrap();
  76. println!("Tickets to merge into branch {}", branch);
  77.  
  78.  
  79. match jira.search().iter(query, &Default::default()) {
  80. Ok(results) => {
  81. for issue in results {
  82. println!("{:#?}", issue.key);
  83. }
  84. }
  85. Err(err) => panic!("{:#?}", err),
  86. }
  87. }
  88. _ => println!("Not implemented yet."),
  89. }
  90. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement