feat: replace create-task and create-issue with unified create-ticket (#18)
Node.js CI / CI (push) Successful in 28s
Security Scan and Upload / Security & DefectDojo Upload (push) Successful in 53s

## Summary

- Removes `/create-task` (LeanTime) and `/create-issue` (Gitea) slash commands
- Introduces `/create-ticket` with a `platform` choice argument: **LeanTime**, **Asana**, **Gitea**, **GitHub**
- User provides only a `description`; the AI generates both the title and a fleshed-out body
- `owner` and `repo` arguments are optional but validated at runtime when Gitea or GitHub is selected
- Adds `ASANA_KEY` to `prod.env` (1Password reference — key needs to be added to vault)
- Command remains restricted to Naomi's user ID

## Test plan

- [ ] Register updated `commands.json` against the Discord API
- [ ] Add `ASANA_KEY` to 1Password vault at `op://Environment Variables - Naomi/Amari/asana key`
- [ ] Test `/create-ticket platform:LeanTime description:...` creates a task on the LeanTime board
- [ ] Test `/create-ticket platform:Asana description:...` creates a task in Naomi's Asana project
- [ ] Test `/create-ticket platform:Gitea owner:nhcarrigan repo:amari description:...` creates a Gitea issue
- [ ] Test `/create-ticket platform:GitHub owner:naomi-lgbt repo:... description:...` creates a GitHub issue
- [ ] Test that omitting `owner`/`repo` for Gitea/GitHub returns a helpful error
- [ ] Verify AI generates a sensible title and description from the raw description

 This issue was created with help from Hikari~ 🌸

Reviewed-on: #18
Co-authored-by: Hikari <hikari@nhcarrigan.com>
Co-committed-by: Hikari <hikari@nhcarrigan.com>
This commit was merged in pull request #18.
This commit is contained in:
2026-03-09 14:09:08 -07:00
committed by Naomi Carrigan
parent e51a56c79f
commit ec6a4469e1
6 changed files with 346 additions and 307 deletions
+23 -42
View File
@@ -1,56 +1,37 @@
[
{
"name": "create-issue",
"name": "create-ticket",
"type": 1,
"description": "Creates a Gitea issue with an AI-generated body.",
"description": "Creates a ticket on the chosen platform with an AI-generated title and description.",
"options": [
{
"name": "owner",
"description": "The owner of the repository.",
"name": "platform",
"description": "The platform to create the ticket on.",
"type": 3,
"required": true,
"choices": [
{ "name": "LeanTime", "value": "leantime" },
{ "name": "Asana", "value": "asana" },
{ "name": "Gitea", "value": "gitea" },
{ "name": "GitHub", "value": "github" }
]
},
{
"name": "description",
"description": "Describe what you need. The AI will generate a title and full description.",
"type": 3,
"required": true
},
{
"name": "owner",
"description": "The repository owner (required for Gitea/GitHub).",
"type": 3,
"required": false
},
{
"name": "repo",
"description": "The name of the repository.",
"description": "The repository name (required for Gitea/GitHub).",
"type": 3,
"required": true
},
{
"name": "title",
"description": "The issue title.",
"type": 3,
"required": true
},
{
"name": "description",
"description": "Optional additional context for the issue body.",
"type": 3,
"required": false
}
]
},
{
"name": "create-task",
"type": 1,
"description": "Creates a Leantime task with an AI-generated description.",
"options": [
{
"name": "title",
"description": "The task title.",
"type": 3,
"required": true
},
{
"name": "description",
"description": "Optional additional context for the task description.",
"type": 3,
"required": false
},
{
"name": "priority",
"description": "The task priority level (1-5, default 3).",
"type": 4,
"required": false
}
]