KosmoKrator

productivity

Taiga Lua API for KosmoKrator Agents

Agent-facing Lua documentation and function reference for the Taiga KosmoKrator integration.

7 functions 6 read 1 write Bearer token auth

Lua Namespace

Agents call this integration through app.integrations.taiga.*. Use lua_read_doc("integrations.taiga") inside KosmoKrator to discover the same reference at runtime.

Agent-Facing Lua Docs

This is the rendered version of the full Lua documentation exposed to agents when they inspect the integration namespace.

Taiga — Lua API Reference

list_projects

List all Taiga projects you have access to.

Parameters

NameTypeRequiredDescription
membershipstringnoFilter by membership: "admin", "project_owner", "member"
slugstringnoFilter by project slug
order_bystringnoOrder results (e.g., "name", "-created_date")
pageintegernoPage number for pagination (default: 1)
page_sizeintegernoResults per page (default: 40)

Example

local result = app.integrations.taiga.list_projects({})

for _, project in ipairs(result) do
  print(project.name .. " (slug: " .. project.slug .. ")")
end

get_project

Get detailed information about a specific Taiga project.

Parameters

NameTypeRequiredDescription
idintegeryesThe Taiga project ID

Example

local result = app.integrations.taiga.get_project({ id = 1 })
print("Project: " .. result.name)
print("Description: " .. (result.description or "N/A"))

list_user_stories

List user stories, optionally filtered by project, status, milestone, or assignee.

Parameters

NameTypeRequiredDescription
projectintegernoFilter by project ID
project__slugstringnoFilter by project slug
statusstringnoFilter by status name (e.g., "New", "In progress", "Done")
milestoneintegernoFilter by milestone (sprint) ID
assigned_tointegernoFilter by assigned user ID
tagsstringnoFilter by tags (comma-separated)
order_bystringnoOrder results (e.g., "subject", "-created_date")
pageintegernoPage number for pagination
page_sizeintegernoResults per page

Example

-- List all stories in a project
local result = app.integrations.taiga.list_user_stories({
  project = 1,
  page_size = 20
})

for _, story in ipairs(result) do
  print(story.subject .. " — " .. (story.status_extra_info and story.status_extra_info.name or "unknown status"))
end
-- Filter by status
local result = app.integrations.taiga.list_user_stories({
  project = 1,
  status = "In progress"
})

get_user_story

Get detailed information about a specific user story.

Parameters

NameTypeRequiredDescription
idintegeryesThe Taiga user story ID

Example

local result = app.integrations.taiga.get_user_story({ id = 42 })
print("Subject: " .. result.subject)
print("Description: " .. (result.description or "N/A"))

create_user_story

Create a new user story in a Taiga project.

Parameters

NameTypeRequiredDescription
projectintegeryesProject ID
subjectstringyesUser story title
descriptionstringnoDescription (supports Markdown)
statusintegernoStatus ID
assigned_tointegernoUser ID to assign
milestoneintegernoMilestone (sprint) ID
tagsarraynoArray of tag strings
pointsobjectnoStory points (role ID → point value)

Example

local result = app.integrations.taiga.create_user_story({
  project = 1,
  subject = "As a user, I want to export reports",
  description = "Users should be able to export reports as PDF.",
  tags = { "feature", "reports" }
})

print("Created story #" .. result.id .. ": " .. result.subject)

list_issues

List issues, optionally filtered by project, status, priority, or severity.

Parameters

NameTypeRequiredDescription
projectintegernoFilter by project ID
project__slugstringnoFilter by project slug
statusstringnoFilter by status name
prioritystringnoFilter by priority ("Low", "Normal", "High", "Critical")
severitystringnoFilter by severity ("Wishlist", "Minor", "Normal", "Important", "Critical")
assigned_tointegernoFilter by assigned user ID
tagsstringnoFilter by tags (comma-separated)
order_bystringnoOrder results
pageintegernoPage number for pagination
page_sizeintegernoResults per page

Example

-- List open issues for a project
local result = app.integrations.taiga.list_issues({
  project = 1,
  status = "New"
})

for _, issue in ipairs(result) do
  print(issue.subject .. " — Priority: " .. (issue.priority_extra_info and issue.priority_extra_info.name or "N/A"))
end
-- List critical issues
local result = app.integrations.taiga.list_issues({
  project = 1,
  priority = "Critical"
})

get_current_user

Get the authenticated Taiga user profile.

Parameters

None.

Example

local result = app.integrations.taiga.get_current_user({})
print("Logged in as: " .. result.full_name .. " (" .. result.username .. ")")

Multi-Account Usage

If you have multiple Taiga accounts configured, use account-specific namespaces:

-- Default account (always works)
app.integrations.taiga.list_projects({})

-- Explicit default (portable across setups)
app.integrations.taiga.default.list_projects({})

-- Named accounts
app.integrations.taiga.work.list_projects({})
app.integrations.taiga.personal.list_projects({})

All functions are identical across accounts — only the credentials differ.

Raw agent markdown
# Taiga — Lua API Reference

## list_projects

List all Taiga projects you have access to.

### Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `membership` | string | no | Filter by membership: `"admin"`, `"project_owner"`, `"member"` |
| `slug` | string | no | Filter by project slug |
| `order_by` | string | no | Order results (e.g., `"name"`, `"-created_date"`) |
| `page` | integer | no | Page number for pagination (default: 1) |
| `page_size` | integer | no | Results per page (default: 40) |

### Example

```lua
local result = app.integrations.taiga.list_projects({})

for _, project in ipairs(result) do
  print(project.name .. " (slug: " .. project.slug .. ")")
end
```

---

## get_project

Get detailed information about a specific Taiga project.

### Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `id` | integer | yes | The Taiga project ID |

### Example

```lua
local result = app.integrations.taiga.get_project({ id = 1 })
print("Project: " .. result.name)
print("Description: " .. (result.description or "N/A"))
```

---

## list_user_stories

List user stories, optionally filtered by project, status, milestone, or assignee.

### Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `project` | integer | no | Filter by project ID |
| `project__slug` | string | no | Filter by project slug |
| `status` | string | no | Filter by status name (e.g., `"New"`, `"In progress"`, `"Done"`) |
| `milestone` | integer | no | Filter by milestone (sprint) ID |
| `assigned_to` | integer | no | Filter by assigned user ID |
| `tags` | string | no | Filter by tags (comma-separated) |
| `order_by` | string | no | Order results (e.g., `"subject"`, `"-created_date"`) |
| `page` | integer | no | Page number for pagination |
| `page_size` | integer | no | Results per page |

### Example

```lua
-- List all stories in a project
local result = app.integrations.taiga.list_user_stories({
  project = 1,
  page_size = 20
})

for _, story in ipairs(result) do
  print(story.subject .. " — " .. (story.status_extra_info and story.status_extra_info.name or "unknown status"))
end
```

```lua
-- Filter by status
local result = app.integrations.taiga.list_user_stories({
  project = 1,
  status = "In progress"
})
```

---

## get_user_story

Get detailed information about a specific user story.

### Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `id` | integer | yes | The Taiga user story ID |

### Example

```lua
local result = app.integrations.taiga.get_user_story({ id = 42 })
print("Subject: " .. result.subject)
print("Description: " .. (result.description or "N/A"))
```

---

## create_user_story

Create a new user story in a Taiga project.

### Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `project` | integer | yes | Project ID |
| `subject` | string | yes | User story title |
| `description` | string | no | Description (supports Markdown) |
| `status` | integer | no | Status ID |
| `assigned_to` | integer | no | User ID to assign |
| `milestone` | integer | no | Milestone (sprint) ID |
| `tags` | array | no | Array of tag strings |
| `points` | object | no | Story points (role ID → point value) |

### Example

```lua
local result = app.integrations.taiga.create_user_story({
  project = 1,
  subject = "As a user, I want to export reports",
  description = "Users should be able to export reports as PDF.",
  tags = { "feature", "reports" }
})

print("Created story #" .. result.id .. ": " .. result.subject)
```

---

## list_issues

List issues, optionally filtered by project, status, priority, or severity.

### Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `project` | integer | no | Filter by project ID |
| `project__slug` | string | no | Filter by project slug |
| `status` | string | no | Filter by status name |
| `priority` | string | no | Filter by priority (`"Low"`, `"Normal"`, `"High"`, `"Critical"`) |
| `severity` | string | no | Filter by severity (`"Wishlist"`, `"Minor"`, `"Normal"`, `"Important"`, `"Critical"`) |
| `assigned_to` | integer | no | Filter by assigned user ID |
| `tags` | string | no | Filter by tags (comma-separated) |
| `order_by` | string | no | Order results |
| `page` | integer | no | Page number for pagination |
| `page_size` | integer | no | Results per page |

### Example

```lua
-- List open issues for a project
local result = app.integrations.taiga.list_issues({
  project = 1,
  status = "New"
})

for _, issue in ipairs(result) do
  print(issue.subject .. " — Priority: " .. (issue.priority_extra_info and issue.priority_extra_info.name or "N/A"))
end
```

```lua
-- List critical issues
local result = app.integrations.taiga.list_issues({
  project = 1,
  priority = "Critical"
})
```

---

## get_current_user

Get the authenticated Taiga user profile.

### Parameters

None.

### Example

```lua
local result = app.integrations.taiga.get_current_user({})
print("Logged in as: " .. result.full_name .. " (" .. result.username .. ")")
```

---

## Multi-Account Usage

If you have multiple Taiga accounts configured, use account-specific namespaces:

```lua
-- Default account (always works)
app.integrations.taiga.list_projects({})

-- Explicit default (portable across setups)
app.integrations.taiga.default.list_projects({})

-- Named accounts
app.integrations.taiga.work.list_projects({})
app.integrations.taiga.personal.list_projects({})
```

All functions are identical across accounts — only the credentials differ.

Metadata-Derived Lua Example

local result = app.integrations.taiga.taiga_list_projects({
  membership = "example_membership",
  slug = "example_slug",
  order_by = "example_order_by",
  page = 1,
  page_size = 1
})
print(result)

Functions

taiga_list_projects

List all Taiga projects you have access to. Returns project names, slugs, and descriptions that you can use to query user stories and issues.

Operation
Read read
Full name
taiga.taiga_list_projects
ParameterTypeRequiredDescription
membership string no Filter by membership: "admin", "project_owner", "member".
slug string no Filter by project slug.
order_by string no Order results by a field (e.g. "name", "-created_date").
page integer no Page number for pagination (default: 1).
page_size integer no Number of results per page (default: 40).

taiga_get_project

Get detailed information about a specific Taiga project by its ID. Returns project name, slug, description, statuses, and membership details.

Operation
Read read
Full name
taiga.taiga_get_project
ParameterTypeRequiredDescription
id integer yes The Taiga project ID.

taiga_list_user_stories

List user stories from Taiga. Filter by project, status, milestone, or assignee. Returns story subjects, descriptions, and statuses.

Operation
Read read
Full name
taiga.taiga_list_user_stories
ParameterTypeRequiredDescription
project integer no Filter by project ID.
project__slug string no Filter by project slug (e.g., "my-project").
status string no Filter by status name (e.g., "New", "In progress", "Ready for test", "Done").
milestone integer no Filter by milestone (sprint) ID.
assigned_to integer no Filter by assigned user ID.
tags string no Filter by tags as a comma-separated string.
order_by string no Order results (e.g., "subject", "-created_date", "backlog_order").
page integer no Page number for pagination (default: 1).
page_size integer no Number of results per page (default: 40).

taiga_get_user_story

Get detailed information about a specific Taiga user story by its ID. Returns the full story with subject, description, status, assignee, and points.

Operation
Read read
Full name
taiga.taiga_get_user_story
ParameterTypeRequiredDescription
id integer yes The Taiga user story ID.

taiga_create_user_story

Create a new user story in a Taiga project. Requires project ID and subject. Optionally include description, tags, status, and assignee.

Operation
Write write
Full name
taiga.taiga_create_user_story
ParameterTypeRequiredDescription
project integer yes The Taiga project ID to create the story in.
subject string yes The user story title / subject line.
description string no Detailed description of the user story. Supports Markdown formatting.
status integer no Status ID for the user story. Omit to use the default status.
assigned_to integer no User ID to assign the story to.
milestone integer no Milestone (sprint) ID to associate with.
tags array no Array of tag strings to apply (e.g., ["frontend", "bug"]).
points object no Story points as a mapping of role ID to point value (e.g., {"1": 3}).

taiga_list_issues

List issues from Taiga. Filter by project, status, priority, severity, or assignee. Returns issue subjects, descriptions, and statuses.

Operation
Read read
Full name
taiga.taiga_list_issues
ParameterTypeRequiredDescription
project integer no Filter by project ID.
project__slug string no Filter by project slug (e.g., "my-project").
status string no Filter by status name (e.g., "New", "In progress", "Ready for test", "Closed").
priority string no Filter by priority name (e.g., "Low", "Normal", "High", "Critical").
severity string no Filter by severity name (e.g., "Wishlist", "Minor", "Normal", "Important", "Critical").
assigned_to integer no Filter by assigned user ID.
tags string no Filter by tags as a comma-separated string.
order_by string no Order results (e.g., "subject", "-created_date", "severity").
page integer no Page number for pagination (default: 1).
page_size integer no Number of results per page (default: 40).

taiga_get_current_user

Get the currently authenticated Taiga user profile. Returns user details like full name, username, and email.

Operation
Read read
Full name
taiga.taiga_get_current_user
ParameterTypeRequiredDescription
No parameters.