Coverage for scripts / get_organization.py: 0%
37 statements
« prev ^ index » next coverage.py v7.13.0, created at 2025-12-25 18:08 -0500
« prev ^ index » next coverage.py v7.13.0, created at 2025-12-25 18:08 -0500
1#!/usr/bin/env python3
2"""
3Get JSM organization details.
5Usage:
6 python get_organization.py 12345
7 python get_organization.py 12345 --output json
8"""
10import sys
11import os
12import argparse
13import json
14from pathlib import Path
16sys.path.insert(0, str(Path(__file__).parent.parent.parent / 'shared' / 'scripts' / 'lib'))
18from config_manager import get_jira_client
19from error_handler import print_error, JiraError
22def get_organization_func(organization_id: int, profile: str = None) -> dict:
23 """
24 Get organization details.
26 Args:
27 organization_id: Organization ID
28 profile: JIRA profile to use
30 Returns:
31 Organization data
32 """
33 with get_jira_client(profile) as client:
34 return client.get_organization(organization_id)
37def main():
38 """Main entry point."""
39 parser = argparse.ArgumentParser(
40 description='Get JSM organization details',
41 formatter_class=argparse.RawDescriptionHelpFormatter,
42 epilog="""
43Examples:
44 Get organization details:
45 %(prog)s 12345
47 JSON output:
48 %(prog)s 12345 --output json
49 """
50 )
52 parser.add_argument('organization_id', type=int,
53 help='Organization ID')
54 parser.add_argument('--output', choices=['text', 'json'], default='text',
55 help='Output format (default: text)')
56 parser.add_argument('--profile',
57 help='JIRA profile to use from config')
58 parser.add_argument('--verbose', '-v', action='store_true',
59 help='Show full API response')
61 args = parser.parse_args()
63 try:
64 organization = get_organization_func(
65 organization_id=args.organization_id,
66 profile=args.profile
67 )
69 if args.output == 'json':
70 if args.verbose:
71 print(json.dumps(organization, indent=2))
72 else:
73 print(json.dumps({
74 'id': organization.get('id'),
75 'name': organization.get('name')
76 }, indent=2))
77 else:
78 print(f"Organization: {organization.get('name')} (ID: {organization.get('id')})\n")
80 if args.verbose:
81 print("Full response:")
82 print(json.dumps(organization, indent=2))
84 return 0
86 except JiraError as e:
87 print_error(f"Failed to get organization: {e}")
88 return 1
89 except Exception as e:
90 print_error(f"Unexpected error: {e}")
91 return 1
94if __name__ == '__main__':
95 sys.exit(main())