feat(settings): Jira config UI — admin config tab + per-user token in Profile
Some checks failed
Aegis CI / lint-and-test (push) Has been cancelled
Some checks failed
Aegis CI / lint-and-test (push) Has been cancelled
- backend: add parent_ticket field to JiraConfigOut/JiraConfigUpdate/_JIRA_KEYS - backend: add get_jira_parent_ticket() helper in jira_service; use it in auto_create_test_issue() to set issue parent - frontend/api: add jira_token_set to UserMeOut, jira_api_token to UserPreferencesUpdate, and full JiraConfigOut/Update types with getJiraConfig/updateJiraConfig/testJiraConnection functions - frontend: expand ProfileSection with Jira API token password field (show/hide), token status badge, and account-id field - frontend: add JiraConfigSection component (admin): enabled toggle, URL, project key, parent ticket, save + test connection - frontend: add Jira tab (admin-only) with Link2 icon in SettingsPage sidebar
This commit is contained in:
@@ -210,6 +210,7 @@ class JiraConfigOut(BaseModel):
|
||||
enabled: bool
|
||||
url: str
|
||||
project_key: str
|
||||
parent_ticket: str
|
||||
# Credentials are never returned
|
||||
|
||||
|
||||
@@ -217,12 +218,14 @@ class JiraConfigUpdate(BaseModel):
|
||||
enabled: Optional[bool] = None
|
||||
url: Optional[str] = None
|
||||
project_key: Optional[str] = None
|
||||
parent_ticket: Optional[str] = None
|
||||
|
||||
|
||||
_JIRA_KEYS = {
|
||||
"enabled": "jira.enabled",
|
||||
"url": "jira.url",
|
||||
"project_key": "jira.project_key",
|
||||
"parent_ticket": "jira.parent_ticket",
|
||||
}
|
||||
|
||||
|
||||
@@ -235,12 +238,13 @@ def get_jira_config(
|
||||
|
||||
**Requires** the ``admin`` role. Credentials are never returned.
|
||||
"""
|
||||
from app.services.jira_service import get_jira_url, get_jira_project_key, is_jira_enabled
|
||||
from app.services.jira_service import get_jira_url, get_jira_project_key, is_jira_enabled, get_jira_parent_ticket
|
||||
|
||||
return JiraConfigOut(
|
||||
enabled=is_jira_enabled(db),
|
||||
url=get_jira_url(db) or "",
|
||||
project_key=get_jira_project_key(db) or "",
|
||||
parent_ticket=get_jira_parent_ticket(db) or "",
|
||||
)
|
||||
|
||||
|
||||
@@ -255,7 +259,7 @@ def update_jira_config(
|
||||
**Requires** the ``admin`` role. Only provided fields are updated.
|
||||
"""
|
||||
from app.services.jira_service import (
|
||||
upsert_jira_config, get_jira_url, get_jira_project_key, is_jira_enabled,
|
||||
upsert_jira_config, get_jira_url, get_jira_project_key, is_jira_enabled, get_jira_parent_ticket,
|
||||
)
|
||||
|
||||
update_data = payload.model_dump(exclude_unset=True)
|
||||
@@ -269,6 +273,7 @@ def update_jira_config(
|
||||
enabled=is_jira_enabled(db),
|
||||
url=get_jira_url(db) or "",
|
||||
project_key=get_jira_project_key(db) or "",
|
||||
parent_ticket=get_jira_parent_ticket(db) or "",
|
||||
)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user