4545 json_tracer = PromptyTracer ()
4646 Tracer .add ("PromptyTracer" , json_tracer .tracer )
4747
48- # API settings - get token from environment variables
48+ # Global variables
4949TOKEN = os .getenv ("TOKEN" )
5050DEFAULT_REPO = os .getenv ("DEFAULT_REPO" , "golclinics/discussions" )
5151REQUEST_TIMEOUT = int (os .getenv ("REQUEST_TIMEOUT" , "30" )) # Default 30 second timeout
5252
5353# App settings
5454APP_ID = os .getenv ("APP_ID" )
55- APP_PRIVATE_KEY_PATH = os .getenv ("APP_PRIVATE_KEY_PATH" , "./azure-ai-foundry-discussions.2025-05-06.private-key.pem" )
56- GITHUB_APP_INSTALLATION_ID = os .getenv ("GITHUB_APP_INSTALLATION_ID" )
55+ APP_PRIVATE_KEY = os .getenv ("APP_PRIVATE_KEY" ) # Direct key content instead of file path
56+ APP_PRIVATE_KEY_PATH = os .getenv ("APP_PRIVATE_KEY_PATH" ) # Keep for backward compatibility
57+ APP_INSTALLATION_ID = os .getenv ("APP_INSTALLATION_ID" ) # Removed GITHUB_ prefix
58+
59+ # Azure OpenAI settings
60+ AZURE_OPENAI_API_VERSION = os .getenv ("AZURE_OPENAI_API_VERSION" )
61+ AZURE_OPENAI_ENDPOINT = os .getenv ("AZURE_OPENAI_ENDPOINT" )
62+ AZURE_OPENAI_KEY = os .getenv ("AZURE_OPENAI_KEY" )
63+
64+ # Other settings
65+ SECRET_KEY = os .getenv ("SECRET_KEY" )
5766
5867# GitHub API rate limiting constants
5968MAX_RETRIES = 3
@@ -69,21 +78,21 @@ class GithubAppAuthError(Exception):
6978
7079def validate_token () -> None :
7180 """Validate that the GitHub token is available."""
72- if not GITHUB_TOKEN :
81+ if not TOKEN :
7382 raise TokenMissingError (
7483 "GitHub token not found in environment variables. "
75- "Please set the GITHUB_TOKEN environment variable."
84+ "Please set the TOKEN environment variable."
7685 )
7786
7887def validate_github_app_config () -> None :
7988 """Validate that the GitHub App configuration is available."""
8089 missing = []
81- if not GITHUB_APP_ID :
82- missing .append ("GITHUB_APP_ID " )
83- if not GITHUB_APP_PRIVATE_KEY_PATH :
84- missing .append ("GITHUB_APP_PRIVATE_KEY_PATH " )
85- if not GITHUB_APP_INSTALLATION_ID :
86- missing .append ("GITHUB_APP_INSTALLATION_ID " )
90+ if not APP_ID :
91+ missing .append ("APP_ID " )
92+ if not APP_PRIVATE_KEY and not APP_PRIVATE_KEY_PATH :
93+ missing .append ("APP_PRIVATE_KEY or APP_PRIVATE_KEY_PATH " )
94+ if not APP_INSTALLATION_ID :
95+ missing .append ("APP_INSTALLATION_ID " )
8796
8897 if missing :
8998 raise GithubAppAuthError (
@@ -111,22 +120,32 @@ def generate_jwt() -> str:
111120 payload = {
112121 'iat' : now , # Issued at time
113122 'exp' : expiration , # Expiration time
114- 'iss' : GITHUB_APP_ID # GitHub App ID
123+ 'iss' : APP_ID # GitHub App ID
115124 }
116125
117- # Read private key from file path
118- try :
119- key_path = Path (GITHUB_APP_PRIVATE_KEY_PATH )
120- if (key_path .exists ()):
121- with open (key_path , "r" ) as key_file :
122- private_key = key_file .read ()
123- logger .info (f"Successfully loaded private key from file: { GITHUB_APP_PRIVATE_KEY_PATH } " )
124- else :
125- logger .error (f"Private key file not found at: { GITHUB_APP_PRIVATE_KEY_PATH } " )
126- raise FileNotFoundError (f"Private key file not found: { GITHUB_APP_PRIVATE_KEY_PATH } " )
127- except Exception as e :
128- logger .error (f"Error reading private key file: { str (e )} " )
129- raise
126+ # Get the private key - either directly from env var or from file
127+ private_key = None
128+
129+ # First try to use the direct key from environment variable
130+ if APP_PRIVATE_KEY :
131+ private_key = APP_PRIVATE_KEY
132+ logger .info ("Using private key directly from environment variable" )
133+ # Fallback to loading from file path
134+ elif APP_PRIVATE_KEY_PATH :
135+ try :
136+ key_path = Path (APP_PRIVATE_KEY_PATH )
137+ if key_path .exists ():
138+ with open (key_path , "r" ) as key_file :
139+ private_key = key_file .read ()
140+ logger .info (f"Successfully loaded private key from file: { APP_PRIVATE_KEY_PATH } " )
141+ else :
142+ logger .error (f"Private key file not found at: { APP_PRIVATE_KEY_PATH } " )
143+ raise FileNotFoundError (f"Private key file not found: { APP_PRIVATE_KEY_PATH } " )
144+ except Exception as e :
145+ logger .error (f"Error reading private key file: { str (e )} " )
146+ raise
147+ else :
148+ raise GithubAppAuthError ("No private key available. Set APP_PRIVATE_KEY or APP_PRIVATE_KEY_PATH" )
130149
131150 # Generate the JWT
132151 token = jwt .encode (
@@ -161,7 +180,7 @@ def get_installation_token() -> str:
161180 jwt_token = generate_jwt ()
162181
163182 # API endpoint for getting an installation token
164- url = f"https://api.github.com/app/installations/{ GITHUB_APP_INSTALLATION_ID } /access_tokens"
183+ url = f"https://api.github.com/app/installations/{ APP_INSTALLATION_ID } /access_tokens"
165184
166185 headers = {
167186 "Authorization" : f"Bearer { jwt_token } " ,
0 commit comments