Class Settings
java.lang.Object
com.example.adktriaging.Settings
Configuration read from environment variables. Mirrors
settings.py in the Python ADK
issue triaging agent.
Values are exposed as accessor methods (read lazily on each call) rather than
static final fields. This keeps the class loadable in unit tests and agent loaders without a
GITHUB_TOKEN present — only githubToken() throws when the token is
actually required (i.e. right before a network call).
Required variables:
GITHUB_TOKEN— GitHub Personal Access Token withissues:writepermission. Required for both interactive and workflow modes.GOOGLE_API_KEY— Gemini API key. Required for both modes (or set up Vertex AI credentials andGOOGLE_GENAI_USE_VERTEXAI=TRUE).
Optional variables:
OWNER— defaults togoogle.REPO— defaults toadk-java.MODEL— Gemini model used for triaging. Defaults togemini-2.5-pro; a Pro model favors classification quality over latency, which suits this low-volume, accuracy-sensitive task. Overridable without a code change.INTERACTIVE—1/truefor interactive mode (asks for confirmation before applying labels),0/falsefor unattended workflow mode. Defaults to interactive when unset.DRY_RUN—1/trueto log intended label/assignment changes without calling the GitHub mutation endpoints. Lets you verify the full pipeline (incl. Gemini) without modifying any real issue. Defaults to off.EVENT_NAME— the GitHub event that triggered the workflow (issues,schedule, etc.). Drives single-issue vs. batch behavior inAdkTriagingAgentRun.ISSUE_NUMBER,ISSUE_TITLE,ISSUE_BODY— populated by the GitHub Actions workflow when the trigger is an issue event.ISSUE_COUNT_TO_PROCESS— how many untriaged issues to process per scheduled run. Defaults to3.GTECH_ASSIGNEES— comma-separated list of GitHub handles to round-robin assign issues to. When unset, owner assignment is disabled (the agent reports that no triagers are configured). adk-java has no publicCODEOWNERS, so real handles are supplied here rather than hard-coded in source.
-
Method Summary
Modifier and TypeMethodDescriptionstatic @Nullable Stringstatic StringReturns the GitHub token, throwing a clear error if it is not configured.static @Nullable Stringstatic booleanReturns true if aGITHUB_TOKENis configured, without throwing.static booleanisDryRun()static booleanstatic @Nullable Stringstatic @Nullable Stringstatic @Nullable Stringstatic @Nullable Stringstatic Stringmodel()Returns the Gemini model used for triaging.static Stringowner()static intparseNumberString(@Nullable String value, int defaultValue) Parses a number from a string, falling back todefaultValueon null/blank/invalid input.static Stringrepo()
-
Method Details
-
githubToken
Returns the GitHub token, throwing a clear error if it is not configured. -
hasGithubToken
public static boolean hasGithubToken()Returns true if aGITHUB_TOKENis configured, without throwing. -
owner
-
repo
-
model
Returns the Gemini model used for triaging. Defaults togemini-pro-latest(a Pro model favors classification quality over latency for this low-volume, accuracy-sensitive task) and is overridable via theMODELenvironment variable, so it can be changed without editing source. -
eventName
-
issueNumber
-
issueTitle
-
issueBody
-
issueCountToProcess
-
gtechAssignees
-
isInteractive
public static boolean isInteractive() -
isDryRun
public static boolean isDryRun() -
parseNumberString
Parses a number from a string, falling back todefaultValueon null/blank/invalid input. Mirrorsparse_number_stringin the Python utils.
-