KosmoKrator

productivity

Docker Hub Lua API for KosmoKrator Agents

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

7 functions 6 read 1 write Bearer token auth

Lua Namespace

Agents call this integration through app.integrations.docker.*. Use lua_read_doc("integrations.docker") 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.

Docker Hub — Lua API Reference

list_repositories

List Docker Hub repositories. Optionally filter by namespace.

Parameters

NameTypeRequiredDescription
namespacestringnoDocker Hub namespace (username or organization) to filter by
page_sizeintegernoNumber of repositories per page (default: 25)
pageintegernoPage number for pagination (1-indexed, default: 1)

Examples

-- List repositories
local result = app.integrations.docker.list_repositories({
  page_size = 10,
  page = 1
})

for _, repo in ipairs(result.results) do
  print(repo.namespace .. "/" .. repo.name .. " - " .. repo.description)
end

-- List repositories for a specific namespace
local result = app.integrations.docker.list_repositories({
  namespace = "myorg",
  page_size = 50
})

for _, repo in ipairs(result.results) do
  print(repo.name .. " (pulls: " .. repo.pull_count .. ")")
end

get_repository

Get details for a specific Docker Hub repository.

Parameters

NameTypeRequiredDescription
namespacestringyesThe Docker Hub namespace (username or organization)
namestringyesThe repository name

Examples

local result = app.integrations.docker.get_repository({
  namespace = "library",
  name = "nginx"
})

print(result.name)
print(result.description)
print("Stars: " .. result.star_count)
print("Pulls: " .. result.pull_count)
print("Private: " .. tostring(result.is_private))

list_tags

List tags for a Docker Hub repository.

Parameters

NameTypeRequiredDescription
namespacestringyesThe Docker Hub namespace (username or organization)
namestringyesThe repository name
page_sizeintegernoNumber of tags per page (default: 25)
pageintegernoPage number for pagination (1-indexed, default: 1)

Examples

local result = app.integrations.docker.list_tags({
  namespace = "library",
  name = "nginx",
  page_size = 10
})

for _, tag in ipairs(result.results) do
  print(tag.name .. " (" .. tag.full_size .. " bytes)")
end

get_tag

Get details for a specific tag in a Docker Hub repository.

Parameters

NameTypeRequiredDescription
namespacestringyesThe Docker Hub namespace (username or organization)
namestringyesThe repository name
tagstringyesThe tag name (e.g., “latest”, “1.0.0”)

Examples

local result = app.integrations.docker.get_tag({
  namespace = "library",
  name = "nginx",
  tag = "latest"
})

print("Tag: " .. result.name)
print("Full size: " .. result.full_size .. " bytes")
print("Digest: " .. result.images[1].digest)

create_repository

Create a new Docker Hub repository.

Parameters

NameTypeRequiredDescription
namespacestringyesDocker Hub namespace (username or organization)
namestringyesRepository name (must be unique within the namespace)
descriptionstringnoShort description of the repository
full_descriptionstringnoFull description (supports Markdown)
is_privatebooleannoWhether the repository is private (default: false)

Examples

-- Create a public repository
local result = app.integrations.docker.create_repository({
  namespace = "myorg",
  name = "my-app",
  description = "My application container image",
  full_description = "# My App\n\nA containerized version of my application.",
  is_private = false
})

print("Created: " .. result.namespace .. "/" .. result.name)

-- Create a private repository
local result = app.integrations.docker.create_repository({
  namespace = "myorg",
  name = "internal-service",
  is_private = true
})

list_organizations

List Docker Hub organizations the authenticated user belongs to.

Parameters

NameTypeRequiredDescription
page_sizeintegernoNumber of organizations per page (default: 25)
pageintegernoPage number for pagination (1-indexed, default: 1)

Examples

local result = app.integrations.docker.list_organizations({
  page_size = 50
})

for _, org in ipairs(result.results) do
  print(org.orgname .. " (" .. org.full_name .. ")")
end

get_current_user

Get the profile of the currently authenticated Docker Hub user.

Parameters

None.

Examples

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

Multi-Account Usage

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

-- Default account (always works)
app.integrations.docker.function_name({...})

-- Explicit default (portable across setups)
app.integrations.docker.default.function_name({...})

-- Named accounts
app.integrations.docker.production.function_name({...})
app.integrations.docker.staging.function_name({...})

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

Raw agent markdown
# Docker Hub — Lua API Reference

## list_repositories

List Docker Hub repositories. Optionally filter by namespace.

### Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `namespace` | string | no | Docker Hub namespace (username or organization) to filter by |
| `page_size` | integer | no | Number of repositories per page (default: 25) |
| `page` | integer | no | Page number for pagination (1-indexed, default: 1) |

### Examples

```lua
-- List repositories
local result = app.integrations.docker.list_repositories({
  page_size = 10,
  page = 1
})

for _, repo in ipairs(result.results) do
  print(repo.namespace .. "/" .. repo.name .. " - " .. repo.description)
end

-- List repositories for a specific namespace
local result = app.integrations.docker.list_repositories({
  namespace = "myorg",
  page_size = 50
})

for _, repo in ipairs(result.results) do
  print(repo.name .. " (pulls: " .. repo.pull_count .. ")")
end
```

---

## get_repository

Get details for a specific Docker Hub repository.

### Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `namespace` | string | yes | The Docker Hub namespace (username or organization) |
| `name` | string | yes | The repository name |

### Examples

```lua
local result = app.integrations.docker.get_repository({
  namespace = "library",
  name = "nginx"
})

print(result.name)
print(result.description)
print("Stars: " .. result.star_count)
print("Pulls: " .. result.pull_count)
print("Private: " .. tostring(result.is_private))
```

---

## list_tags

List tags for a Docker Hub repository.

### Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `namespace` | string | yes | The Docker Hub namespace (username or organization) |
| `name` | string | yes | The repository name |
| `page_size` | integer | no | Number of tags per page (default: 25) |
| `page` | integer | no | Page number for pagination (1-indexed, default: 1) |

### Examples

```lua
local result = app.integrations.docker.list_tags({
  namespace = "library",
  name = "nginx",
  page_size = 10
})

for _, tag in ipairs(result.results) do
  print(tag.name .. " (" .. tag.full_size .. " bytes)")
end
```

---

## get_tag

Get details for a specific tag in a Docker Hub repository.

### Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `namespace` | string | yes | The Docker Hub namespace (username or organization) |
| `name` | string | yes | The repository name |
| `tag` | string | yes | The tag name (e.g., "latest", "1.0.0") |

### Examples

```lua
local result = app.integrations.docker.get_tag({
  namespace = "library",
  name = "nginx",
  tag = "latest"
})

print("Tag: " .. result.name)
print("Full size: " .. result.full_size .. " bytes")
print("Digest: " .. result.images[1].digest)
```

---

## create_repository

Create a new Docker Hub repository.

### Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `namespace` | string | yes | Docker Hub namespace (username or organization) |
| `name` | string | yes | Repository name (must be unique within the namespace) |
| `description` | string | no | Short description of the repository |
| `full_description` | string | no | Full description (supports Markdown) |
| `is_private` | boolean | no | Whether the repository is private (default: false) |

### Examples

```lua
-- Create a public repository
local result = app.integrations.docker.create_repository({
  namespace = "myorg",
  name = "my-app",
  description = "My application container image",
  full_description = "# My App\n\nA containerized version of my application.",
  is_private = false
})

print("Created: " .. result.namespace .. "/" .. result.name)

-- Create a private repository
local result = app.integrations.docker.create_repository({
  namespace = "myorg",
  name = "internal-service",
  is_private = true
})
```

---

## list_organizations

List Docker Hub organizations the authenticated user belongs to.

### Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `page_size` | integer | no | Number of organizations per page (default: 25) |
| `page` | integer | no | Page number for pagination (1-indexed, default: 1) |

### Examples

```lua
local result = app.integrations.docker.list_organizations({
  page_size = 50
})

for _, org in ipairs(result.results) do
  print(org.orgname .. " (" .. org.full_name .. ")")
end
```

---

## get_current_user

Get the profile of the currently authenticated Docker Hub user.

### Parameters

None.

### Examples

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

---

## Multi-Account Usage

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

```lua
-- Default account (always works)
app.integrations.docker.function_name({...})

-- Explicit default (portable across setups)
app.integrations.docker.default.function_name({...})

-- Named accounts
app.integrations.docker.production.function_name({...})
app.integrations.docker.staging.function_name({...})
```

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

Metadata-Derived Lua Example

local result = app.integrations.docker.docker_list_repositories({
  namespace = "example_namespace",
  page_size = 1,
  page = 1
})
print(result)

Functions

docker_list_repositories

List Docker Hub repositories. Optionally filter by namespace. Supports pagination with page_size and page parameters.

Operation
Read read
Full name
docker.docker_list_repositories
ParameterTypeRequiredDescription
namespace string no Docker Hub namespace (username or organization) to filter by.
page_size integer no Number of repositories per page (default: 25).
page integer no Page number for pagination (1-indexed, default: 1).

docker_get_repository

Get details for a specific Docker Hub repository by namespace and name.

Operation
Read read
Full name
docker.docker_get_repository
ParameterTypeRequiredDescription
namespace string yes The Docker Hub namespace (username or organization).
name string yes The repository name.

docker_list_tags

List tags for a Docker Hub repository. Supports pagination with page_size and page parameters.

Operation
Read read
Full name
docker.docker_list_tags
ParameterTypeRequiredDescription
namespace string yes The Docker Hub namespace (username or organization).
name string yes The repository name.
page_size integer no Number of tags per page (default: 25).
page integer no Page number for pagination (1-indexed, default: 1).

docker_get_tag

Get details for a specific tag in a Docker Hub repository.

Operation
Read read
Full name
docker.docker_get_tag
ParameterTypeRequiredDescription
namespace string yes The Docker Hub namespace (username or organization).
name string yes The repository name.
tag string yes The tag name (e.g., "latest", "1.0.0").

docker_create_repository

Create a new Docker Hub repository under a namespace.

Operation
Write write
Full name
docker.docker_create_repository
ParameterTypeRequiredDescription
namespace string yes Docker Hub namespace (username or organization) for the repository.
name string yes Repository name (must be unique within the namespace).
description string no Short description of the repository.
full_description string no Full description (supports Markdown).
is_private boolean no Whether the repository is private (default: false).

docker_list_organizations

List Docker Hub organizations the authenticated user belongs to. Supports pagination with page_size and page parameters.

Operation
Read read
Full name
docker.docker_list_organizations
ParameterTypeRequiredDescription
page_size integer no Number of organizations per page (default: 25).
page integer no Page number for pagination (1-indexed, default: 1).

docker_get_current_user

Get the profile of the currently authenticated Docker Hub user. Useful for verifying credentials and displaying account information.

Operation
Read read
Full name
docker.docker_get_current_user
ParameterTypeRequiredDescription
No parameters.