Google Tasks ticket provider for ObjTicket.
Routes ticket operations to Google Tasks via the Tasks API methods on ObjServiceGoogle. Uses the existing OAuth2 service account with domain-wide delegation — no separate API key needed.
Google Tasks has a minimal model (title, notes, due, status), so priority is encoded as a title prefix ([P0], [P1], etc.) and assignee/comments are appended to the notes body.
In config.yaml:
ticket:
provider: google_tasks # or 'google' or 'gtasks'
google_tasklist: <TASKLIST_ID> # optional, defaults to @default
google:
service_account_file: path/to/service-account.json
delegated_user: user@domain.com
scopes:
- https://www.googleapis.com/auth/tasks
The https://www.googleapis.com/auth/tasks scope must be included in the service account's scopes and authorized in Google Workspace admin for domain-wide delegation.
| Axion Status | Google Tasks Status |
|---|---|
| NEW, TRIAGED, IN_PROGRESS, ON_HOLD, ESCALATED | needsAction |
| RESOLVED, CLOSED | completed |
Google Tasks only supports two states. Finer-grained status tracking remains in the local data_ticket table.
| Axion Priority | Title Prefix |
|---|---|
| CRITICAL | [P0] |
| HIGH | [P1] |
| MEDIUM | [P2] |
| LOW | [P3] |
| INFO | [P4] |
All ObjTicketProvider methods are implemented:
create() — creates a Google Task with priority prefix and metadata in notesupdate() — updates title and/or noteschange_status() — maps to needsAction or completedassign() — appends/updates "Assigned to:" line in notesadd_comment() — appends comment with separator to notesget_ticket() — retrieves task and maps to Axion formatlist_tickets() — lists tasks in the configured task listclose() / resolve() — marks task as completedescalate() — appends escalation comment to notesObjServiceGoogle (Tasks API methods via google-api-python-client)ObjTicketProvider (abstract base class)