feat: add YouTrack API client and invoice generator with documentation
This commit is contained in:
96
.factory/skills/youtrack/REFERENCES.md
Normal file
96
.factory/skills/youtrack/REFERENCES.md
Normal file
@@ -0,0 +1,96 @@
|
||||
# YouTrack API References
|
||||
|
||||
## Core API Endpoints
|
||||
|
||||
### Base URL
|
||||
Your YouTrack instance: `https://your-instance.youtrack.cloud/`
|
||||
API base: `https://your-instance.youtrack.cloud/api/`
|
||||
|
||||
### Authentication
|
||||
- Use permanent token with `Authorization: Bearer <token>` header
|
||||
- To generate a token: From main navigation menu, select **Administration** > **Access Management** > **Users**, find your user, and generate a permanent API token
|
||||
|
||||
### Projects
|
||||
|
||||
**List all projects**
|
||||
- `GET /api/admin/projects?fields=id,name,shortName`
|
||||
- Returns array of project objects with id, name, shortName
|
||||
|
||||
**Get specific project**
|
||||
- `GET /api/admin/projects/{projectId}?fields=id,name,shortName,description`
|
||||
|
||||
### Issues
|
||||
|
||||
**List issues with query**
|
||||
- `GET /api/issues?query={query}&fields={fields}`
|
||||
- Query examples:
|
||||
- `project: MyProject`
|
||||
- `project: MyProject updated: 2026-01-01 ..`
|
||||
- `assignee: me`
|
||||
- Common fields to request:
|
||||
- `id,summary,description,created,updated,project(id,name),customFields(name,value)`
|
||||
|
||||
**Get issue**
|
||||
- `GET /api/issues/{issueId}`
|
||||
|
||||
**Create issue**
|
||||
- `POST /api/issues`
|
||||
- Body: `{"project": {"id": "projectId"}, "summary": "Summary", "description": "Description"}`
|
||||
|
||||
**Update issue**
|
||||
- `POST /api/issues/{issueId}`
|
||||
- Body: `{"summary": "New summary", "description": "New description"}`
|
||||
|
||||
### Time Tracking
|
||||
|
||||
**Get work items for an issue**
|
||||
- `GET /api/issues/{issueId}/timeTracking/workItems`
|
||||
- Returns array of work items with:
|
||||
- `id`, `date`, `duration` (in minutes), `author`, `text`
|
||||
|
||||
**Work item structure:**
|
||||
```json
|
||||
{
|
||||
"id": "...",
|
||||
"date": "2026-01-15T10:30:00.000+0000",
|
||||
"duration": {"minutes": 30},
|
||||
"author": {"name": "User Name", "id": "..."},
|
||||
"text": "Work description",
|
||||
"type": {...}
|
||||
}
|
||||
```
|
||||
|
||||
### Knowledge Base (Articles)
|
||||
|
||||
**List articles**
|
||||
- `GET /api/articles?project={projectId}`
|
||||
|
||||
**Get article**
|
||||
- `GET /api/articles/{articleId}`
|
||||
|
||||
**Create article**
|
||||
- `POST /api/articles`
|
||||
- Body: `{"project": {"id": "projectId"}, "title": "Title", "content": "Content"}`
|
||||
|
||||
## Query Language Examples
|
||||
|
||||
```
|
||||
project: MyProject
|
||||
project: MyProject assignee: me
|
||||
project: MyProject updated >= 2026-01-01
|
||||
priority: Critical
|
||||
has: time
|
||||
```
|
||||
|
||||
**Note:** Date filtering in REST API uses `updated >= YYYY-MM-DD` format, not `updated: date ..` format.
|
||||
|
||||
## Field IDs Reference
|
||||
|
||||
Common custom field IDs (may vary by setup):
|
||||
- Priority: `priority`
|
||||
- State: `State`
|
||||
- Assignee: `Assignee`
|
||||
- Due Date: `Due Date`
|
||||
- Type: `Type`
|
||||
|
||||
Check your instance's actual field IDs in YouTrack UI or via API.
|
||||
Reference in New Issue
Block a user