1+ import os
2+ import yaml
3+ import requests
4+
5+ def get_codefresh_credentials ():
6+ env_token = os .getenv ("CF_API_KEY" )
7+ env_url = os .getenv ("CF_URL" )
8+
9+ if env_token and env_url :
10+ return {
11+ "headers" : {"Authorization" : env_token },
12+ "base_url" : f"{ env_url } /api" ,
13+ }
14+
15+ config_path = (
16+ f"{ os .getenv ('USERPROFILE' )} /.cfconfig"
17+ if os .name == "nt"
18+ else f"{ os .getenv ('HOME' )} /.cfconfig"
19+ )
20+
21+ with open (config_path , "r" ) as config_file :
22+ config = yaml .safe_load (config_file )
23+
24+ current_context = config ["contexts" ].get (config ["current-context" ])
25+
26+ if not current_context :
27+ return None
28+
29+ return {
30+ "headers" : {"Authorization" : current_context ["token" ]},
31+ "base_url" : f"{ current_context ['url' ]} /api" ,
32+ }
33+
34+ def get_account_runtimes (cf_creds ):
35+ response = requests .get (
36+ f"{ cf_creds ['base_url' ]} /runtime-environments" ,
37+ headers = cf_creds ["headers" ],
38+ )
39+ return response .json ()
40+
41+ def get_runtime_spec (cf_creds , runtime ):
42+ response = requests .get (
43+ f"{ cf_creds ['base_url' ]} /runtime-environments/{ runtime } " ,
44+ headers = cf_creds ["headers" ],
45+ )
46+ return response .json ()
47+
48+ def get_all_accounts (cf_creds ):
49+ response = requests .get (
50+ f"{ cf_creds ['base_url' ]} /admin/accounts" ,
51+ headers = cf_creds ["headers" ],
52+ )
53+ return response .json ()
54+
55+ def get_all_runtimes (cf_creds ):
56+ response = requests .get (
57+ f"{ cf_creds ['base_url' ]} /admin/runtime-environments" ,
58+ headers = cf_creds ["headers" ],
59+ )
60+ return response .json ()
61+
62+ def get_total_users (cf_creds ):
63+ response = requests .get (
64+ f"{ cf_creds ['base_url' ]} /admin/user?limit=1&page=1" ,
65+ headers = cf_creds ["headers" ],
66+ )
67+ users = response .json ()
68+ return {"totalUsers" : users ["total" ]}
69+
70+ def get_system_feature_flags (cf_creds ):
71+ response = requests .get (
72+ f"{ cf_creds ['base_url' ]} /admin/features" ,
73+ headers = cf_creds ["headers" ],
74+ )
75+ return response .json ()
0 commit comments