git_worktree_cli/commands/
auth.rs1use crate::bitbucket_api::BitbucketClient;
2use crate::bitbucket_auth::{self, BitbucketAuth};
3use crate::bitbucket_data_center_api::BitbucketDataCenterClient;
4use crate::bitbucket_data_center_auth::{self, BitbucketDataCenterAuth};
5use crate::error::Result;
6use crate::github::GitHubClient;
7
8pub fn run() -> Result<()> {
9 let client = GitHubClient::new();
10 if client.has_auth() {
11 println!("✓ You are already authenticated with GitHub via gh CLI");
12 println!("Run 'gh auth logout' to remove credentials if needed");
13 } else {
14 println!("Please authenticate with GitHub using: gh auth login");
15 }
16 Ok(())
17}
18
19use crate::cli::{BitbucketCloudAuthAction, BitbucketDataCenterAuthAction};
20
21#[tokio::main]
22pub async fn run_bitbucket_cloud(action: Option<BitbucketCloudAuthAction>) -> Result<()> {
23 match action {
24 None | Some(BitbucketCloudAuthAction::Setup) => {
25 bitbucket_auth::display_setup_instructions();
26 }
27 Some(BitbucketCloudAuthAction::Test) => {
28 let (workspace, repo, email) = bitbucket_auth::get_auth_from_config()?;
29 let auth = BitbucketAuth::new(workspace, repo, email)?;
30 let client = BitbucketClient::new(auth);
31 client.test_connection().await?;
32 }
33 }
34 Ok(())
35}
36
37#[tokio::main]
38pub async fn run_bitbucket_data_center(action: Option<BitbucketDataCenterAuthAction>) -> Result<()> {
39 match action {
40 None | Some(BitbucketDataCenterAuthAction::Setup) => {
41 bitbucket_data_center_auth::display_setup_instructions();
42 }
43 Some(BitbucketDataCenterAuthAction::Test) => {
44 let (base_url, project_key, repo_slug) = bitbucket_data_center_auth::get_auth_from_config()?;
45 let auth = BitbucketDataCenterAuth::new(project_key, repo_slug, base_url.clone())?;
46 let client = BitbucketDataCenterClient::new(auth, base_url);
47 client.test_connection().await?;
48 }
49 }
50 Ok(())
51}