Files
stack/skills/glpi-list/SKILL.md
Jason Woltje 7bc2dfb6c8
All checks were successful
ci/woodpecker/pr/ci Pipeline was successful
skills: add glpi-* family (solve, followup, sweep, list, create)
GLPI helpdesk workflow skills written against the portable
tools/glpi/ tooling (session-init.sh, ticket-list.sh, ticket-create.sh),
cross-linked via [[glpi-*]]:

- glpi-solve    — close a ticket by setting status Solved (5); GLPI auto-closes
- glpi-followup — add a followup via the top-level /ITILFollowup endpoint
- glpi-sweep    — read-only hunt for done-but-open tickets needing Solve
- glpi-list     — query tickets by status/recency
- glpi-create   — open a new ticket

Core rule encoded: completing work means setting status Solved, not just
posting a resolution followup (a followup documents; only Solved auto-closes).

Note: illustrative examples in the bodies are USC-flavored (M2M / helpdesk
ticket numbers) and can be genericized in review if preferred.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019GjBgrb9tHgvq414Fqj37c
2026-07-20 18:04:53 -05:00

1.7 KiB

Skill: glpi-list — Query GLPI Tickets

Quick lookups of GLPI helpdesk tickets by status or recency. Read-only.

When to use

  • "What tickets are open / pending?" · "Show recent tickets" · finding a ticket ID before running glpi-followup or glpi-solve.

Command

Wraps the existing tooling:

GLPI=~/.config/mosaic/tools/glpi

# Most recent tickets (default 50, newest first)
"$GLPI/ticket-list.sh"

# Filter by status: new | processing | pending | solved | closed
"$GLPI/ticket-list.sh" -s pending

# JSON output (for parsing / piping to jq) and a custom limit
"$GLPI/ticket-list.sh" -s processing -f json -l 20

Status IDs: 1 New · 2/3 Processing · 4 Pending · 5 Solved · 6 Closed.

Details lookup for one ticket

When you have an ID and want the full record:

SESSION=$(~/.config/mosaic/tools/glpi/session-init.sh -q)
source ~/.config/mosaic/tools/_lib/credentials.sh && load_credentials glpi
curl -sk "${GLPI_URL}/Ticket/<id>?expand_dropdowns=true" \
  -H "App-Token: $GLPI_APP_TOKEN" -H "Session-Token: $SESSION" \
  | jq '{id, name, status, date, date_mod}'

# Followups on a ticket
curl -sk "${GLPI_URL}/Ticket/<id>/ITILFollowup" \
  -H "App-Token: $GLPI_APP_TOKEN" -H "Session-Token: $SESSION" \
  | jq '.[] | {date, content}'

(Reading followups via the sub-resource is fine — only creating them requires the top-level /ITILFollowup endpoint. See glpi-followup.)

Present to user

Group by status, one line per ticket: #<id> · <title> · <status> · <last-modified>. Use neutral phrasing — no "OVERDUE"/"URGENT".

Guardrails

  • Read-only. Never echo GLPI tokens.
  • To sync tickets into brain data instead, use python tools/sync_glpi.py (not this skill).