Add WithAuthHeader for custom authentication header name

Support configuring a custom HTTP header name for authentication
(e.g., X-API-Auth instead of Authorization) for Kanboard servers
with specific proxy configurations that use alternative auth headers.

- Add headerName field to apiTokenAuth and basicAuth structs
- Add WithAuthHeader() fluent method to Client
- Auth methods pass custom header name when creating auth structs
- Add tests for custom header with API token, basic auth, and custom user

Closes kanboard-9wa

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Oliver Jakoubek 2026-01-23 18:26:55 +01:00
commit 192053952f
6 changed files with 691 additions and 15 deletions

View file

@ -0,0 +1,6 @@
{
"worktree_root": "/home/oli/Dev/kanboard-api",
"last_export_commit": "ef7bd74e4a1b31f45cdfaae08f6a8d7cd5992f22",
"last_export_time": "2026-01-23T17:55:31.697635658+01:00",
"jsonl_hash": "ea0e2741c1f84390bfdd11fcd7fd3465949f068c59c835dd2eb8ae5f30c5d7fb"
}

View file

@ -1,4 +1,5 @@
{"id":"kanboard-7es","title":"JSON-RPC Request-ID: Zufälligen Wert statt fester 1 verwenden","description":"## Kontext\n\nIn jedem JSON-RPC Request an die Kanboard-API wird im Root-Objekt ein Feld `id` mitgeliefert. Dieses dient dazu, bei asynchroner Kommunikation Request und Response einander zuordnen zu können die API liefert diese ID in der Antwort zurück.\n\n**Aktuell:** Die ID ist fest auf `1` gesetzt.\n\n## Anforderung\n\n1. **Wenn keine ID von außen gesetzt wird:** Die Library soll intern einen zufälligen Wert generieren\n2. **API-Dokumentation prüfen:** Welche Werte sind erlaubt? Welche Größenordnung? (vermutlich Integer)\n3. **Signatur beibehalten:** Die öffentliche API der Library-Funktionen soll unverändert bleiben\n4. **Interne Generierung:** Die Library bestimmt selbst einen zufälligen Wert\n\n## Implementierungshinweise\n\n- Prüfen: Kanboard JSON-RPC Dokumentation bezüglich erlaubter ID-Werte\n- Vermutlich: `int64` oder `int32` Range\n- Zufallsgenerator: `math/rand` mit Seed oder `crypto/rand` für bessere Verteilung\n- Ggf. bestehende `requestIDCounter` in `jsonrpc.go` (Zeile 40) anpassen oder ersetzen\n\n## Beispiel\n\n**Vorher (immer gleich):**\n```json\n{\"jsonrpc\": \"2.0\", \"method\": \"getTask\", \"id\": 1, \"params\": {...}}\n```\n\n**Nachher (zufällig):**\n```json\n{\"jsonrpc\": \"2.0\", \"method\": \"getTask\", \"id\": 847291536, \"params\": {...}}\n```\n\n## Referenz\n\n- Datei: `jsonrpc.go`\n- Zeile 17: `ID int64 \\`json:\"id\"\\``\n- Zeile 40: `requestIDCounter` (existiert bereits)","status":"open","priority":2,"issue_type":"feature","owner":"mail@oliverjakoubek.de","created_at":"2026-01-23T17:44:51.566737509+01:00","created_by":"Oliver Jakoubek","updated_at":"2026-01-23T17:44:51.566737509+01:00"} {"id":"kanboard-7es","title":"JSON-RPC Request-ID: Zufälligen Wert statt fester 1 verwenden","description":"## Kontext\n\nIn jedem JSON-RPC Request an die Kanboard-API wird im Root-Objekt ein Feld `id` mitgeliefert. Dieses dient dazu, bei asynchroner Kommunikation Request und Response einander zuordnen zu können die API liefert diese ID in der Antwort zurück.\n\n**Aktuell:** Die ID ist fest auf `1` gesetzt.\n\n## Anforderung\n\n1. **Wenn keine ID von außen gesetzt wird:** Die Library soll intern einen zufälligen Wert generieren\n2. **API-Dokumentation prüfen:** Welche Werte sind erlaubt? Welche Größenordnung? (vermutlich Integer)\n3. **Signatur beibehalten:** Die öffentliche API der Library-Funktionen soll unverändert bleiben\n4. **Interne Generierung:** Die Library bestimmt selbst einen zufälligen Wert\n\n## Implementierungshinweise\n\n- Prüfen: Kanboard JSON-RPC Dokumentation bezüglich erlaubter ID-Werte\n- Vermutlich: `int64` oder `int32` Range\n- Zufallsgenerator: `math/rand` mit Seed oder `crypto/rand` für bessere Verteilung\n- Ggf. bestehende `requestIDCounter` in `jsonrpc.go` (Zeile 40) anpassen oder ersetzen\n\n## Beispiel\n\n**Vorher (immer gleich):**\n```json\n{\"jsonrpc\": \"2.0\", \"method\": \"getTask\", \"id\": 1, \"params\": {...}}\n```\n\n**Nachher (zufällig):**\n```json\n{\"jsonrpc\": \"2.0\", \"method\": \"getTask\", \"id\": 847291536, \"params\": {...}}\n```\n\n## Referenz\n\n- Datei: `jsonrpc.go`\n- Zeile 17: `ID int64 \\`json:\"id\"\\``\n- Zeile 40: `requestIDCounter` (existiert bereits)","status":"open","priority":2,"issue_type":"feature","owner":"mail@oliverjakoubek.de","created_at":"2026-01-23T17:44:51.566737509+01:00","created_by":"Oliver Jakoubek","updated_at":"2026-01-23T17:44:51.566737509+01:00"}
{"id":"kanboard-9wa","title":"Support custom authentication header name","description":"## Description\n\nKanboard supports using an alternative HTTP header for authentication when the server has specific configuration requirements.\n\nCurrently, authentication uses the standard `Authorization` header via Go's `SetBasicAuth()`. This needs to be configurable so users can specify a custom header name (e.g., `X-API-Auth`).\n\n## Requirements\n\n- Add an optional configuration parameter for custom auth header name\n- Default to standard `Authorization` header if not specified\n- When custom header is set, use that header name instead of `Authorization`\n- The header value format should remain the same (Basic Auth base64-encoded credentials)\n\n## Acceptance Criteria\n\n- [ ] New client configuration method (e.g., `WithAuthHeader(headerName string)`)\n- [ ] Default behavior unchanged when no custom header specified\n- [ ] Custom header name is used when configured\n- [ ] Works with both API token and basic auth\n- [ ] Tests cover default and custom header scenarios\n\n## Reference\n\nKanboard API documentation: \"You can use an alternative HTTP header for authentication if your server has a very specific configuration.\"","status":"closed","priority":2,"issue_type":"feature","owner":"mail@oliverjakoubek.de","created_at":"2026-01-23T18:08:31.507616093+01:00","created_by":"Oliver Jakoubek","updated_at":"2026-01-23T18:26:50.40804952+01:00","closed_at":"2026-01-23T18:26:50.40804952+01:00","close_reason":"Closed"}
{"id":"kanboard-api-0fz","title":"Implement Category API methods","description":"Implement direct API methods for category operations.\n\n## Methods to implement\n- GetAllCategories(ctx, projectID int) ([]Category, error) - getAllCategories\n- GetCategory(ctx, categoryID int) (*Category, error) - getCategory (Nice-to-have)\n\n## Files to create\n- categories.go\n\n## Acceptance criteria\n- Proper error handling\n- Returns empty slice when no categories exist","status":"closed","priority":1,"issue_type":"feature","owner":"mail@oliverjakoubek.de","created_at":"2026-01-15T17:35:16.6133153+01:00","created_by":"Oliver Jakoubek","updated_at":"2026-01-15T18:25:07.250066801+01:00","closed_at":"2026-01-15T18:25:07.250066801+01:00","close_reason":"Closed","dependencies":[{"issue_id":"kanboard-api-0fz","depends_on_id":"kanboard-api-uls","type":"blocks","created_at":"2026-01-15T17:42:53.161416595+01:00","created_by":"Oliver Jakoubek"},{"issue_id":"kanboard-api-0fz","depends_on_id":"kanboard-api-cyc","type":"blocks","created_at":"2026-01-15T17:42:53.226963473+01:00","created_by":"Oliver Jakoubek"}]} {"id":"kanboard-api-0fz","title":"Implement Category API methods","description":"Implement direct API methods for category operations.\n\n## Methods to implement\n- GetAllCategories(ctx, projectID int) ([]Category, error) - getAllCategories\n- GetCategory(ctx, categoryID int) (*Category, error) - getCategory (Nice-to-have)\n\n## Files to create\n- categories.go\n\n## Acceptance criteria\n- Proper error handling\n- Returns empty slice when no categories exist","status":"closed","priority":1,"issue_type":"feature","owner":"mail@oliverjakoubek.de","created_at":"2026-01-15T17:35:16.6133153+01:00","created_by":"Oliver Jakoubek","updated_at":"2026-01-15T18:25:07.250066801+01:00","closed_at":"2026-01-15T18:25:07.250066801+01:00","close_reason":"Closed","dependencies":[{"issue_id":"kanboard-api-0fz","depends_on_id":"kanboard-api-uls","type":"blocks","created_at":"2026-01-15T17:42:53.161416595+01:00","created_by":"Oliver Jakoubek"},{"issue_id":"kanboard-api-0fz","depends_on_id":"kanboard-api-cyc","type":"blocks","created_at":"2026-01-15T17:42:53.226963473+01:00","created_by":"Oliver Jakoubek"}]}
{"id":"kanboard-api-16r","title":"Implement Tag API methods (CRITICAL)","description":"Implement direct API methods for tag operations. Tags are CRITICAL - heavily used.\n\n## Direct Client methods (Must-have)\n- GetTaskTags(ctx, taskID int) (map[int]string, error) - getTaskTags\n- SetTaskTags(ctx, projectID, taskID int, tags []string) error - setTaskTags\n\n## Direct Client methods (Nice-to-have)\n- GetAllTags(ctx) ([]Tag, error) - getAllTags\n- GetTagsByProject(ctx, projectID int) ([]Tag, error) - getTagsByProject\n- CreateTag(ctx, projectID int, name, colorID string) (int, error) - createTag\n- UpdateTag(ctx, tagID int, name, colorID string) error - updateTag\n- RemoveTag(ctx, tagID int) error - removeTag\n\n## Files to create\n- tags.go\n\n## IMPORTANT NOTE\nsetTaskTags REPLACES ALL tags. Individual add/remove requires read-modify-write pattern (implemented in TaskScope).\n\n## Acceptance criteria\n- GetTaskTags returns map[tagID]tagName\n- SetTaskTags accepts tag names (auto-creates if needed)","status":"closed","priority":0,"issue_type":"feature","owner":"mail@oliverjakoubek.de","created_at":"2026-01-15T17:36:08.526810135+01:00","created_by":"Oliver Jakoubek","updated_at":"2026-01-15T18:20:17.392248254+01:00","closed_at":"2026-01-15T18:20:17.392248254+01:00","close_reason":"Closed","dependencies":[{"issue_id":"kanboard-api-16r","depends_on_id":"kanboard-api-uls","type":"blocks","created_at":"2026-01-15T17:43:49.223137796+01:00","created_by":"Oliver Jakoubek"},{"issue_id":"kanboard-api-16r","depends_on_id":"kanboard-api-cyc","type":"blocks","created_at":"2026-01-15T17:43:49.402237867+01:00","created_by":"Oliver Jakoubek"}]} {"id":"kanboard-api-16r","title":"Implement Tag API methods (CRITICAL)","description":"Implement direct API methods for tag operations. Tags are CRITICAL - heavily used.\n\n## Direct Client methods (Must-have)\n- GetTaskTags(ctx, taskID int) (map[int]string, error) - getTaskTags\n- SetTaskTags(ctx, projectID, taskID int, tags []string) error - setTaskTags\n\n## Direct Client methods (Nice-to-have)\n- GetAllTags(ctx) ([]Tag, error) - getAllTags\n- GetTagsByProject(ctx, projectID int) ([]Tag, error) - getTagsByProject\n- CreateTag(ctx, projectID int, name, colorID string) (int, error) - createTag\n- UpdateTag(ctx, tagID int, name, colorID string) error - updateTag\n- RemoveTag(ctx, tagID int) error - removeTag\n\n## Files to create\n- tags.go\n\n## IMPORTANT NOTE\nsetTaskTags REPLACES ALL tags. Individual add/remove requires read-modify-write pattern (implemented in TaskScope).\n\n## Acceptance criteria\n- GetTaskTags returns map[tagID]tagName\n- SetTaskTags accepts tag names (auto-creates if needed)","status":"closed","priority":0,"issue_type":"feature","owner":"mail@oliverjakoubek.de","created_at":"2026-01-15T17:36:08.526810135+01:00","created_by":"Oliver Jakoubek","updated_at":"2026-01-15T18:20:17.392248254+01:00","closed_at":"2026-01-15T18:20:17.392248254+01:00","close_reason":"Closed","dependencies":[{"issue_id":"kanboard-api-16r","depends_on_id":"kanboard-api-uls","type":"blocks","created_at":"2026-01-15T17:43:49.223137796+01:00","created_by":"Oliver Jakoubek"},{"issue_id":"kanboard-api-16r","depends_on_id":"kanboard-api-cyc","type":"blocks","created_at":"2026-01-15T17:43:49.402237867+01:00","created_by":"Oliver Jakoubek"}]}
{"id":"kanboard-api-25y","title":"Implement Timestamp type with JSON handling","description":"Implement custom Timestamp type that handles Kanboard's Unix timestamp format.\n\n## Requirements\n- Timestamp struct wrapping time.Time\n- UnmarshalJSON supporting:\n - Unix timestamps as integers\n - Empty strings and \"0\" as zero time\n - Zero value (0) as zero time\n- MarshalJSON returning Unix timestamp or 0 for zero time\n\n## Files to create\n- timestamp.go\n\n## Acceptance criteria\n- Correctly parses integer Unix timestamps\n- Handles empty strings and \"0\" strings\n- Zero time marshals to 0\n- Non-zero time marshals to Unix timestamp","status":"closed","priority":0,"issue_type":"feature","owner":"mail@oliverjakoubek.de","created_at":"2026-01-15T17:34:55.0044989+01:00","created_by":"Oliver Jakoubek","updated_at":"2026-01-15T18:15:27.299644047+01:00","closed_at":"2026-01-15T18:15:27.299644047+01:00","close_reason":"Closed"} {"id":"kanboard-api-25y","title":"Implement Timestamp type with JSON handling","description":"Implement custom Timestamp type that handles Kanboard's Unix timestamp format.\n\n## Requirements\n- Timestamp struct wrapping time.Time\n- UnmarshalJSON supporting:\n - Unix timestamps as integers\n - Empty strings and \"0\" as zero time\n - Zero value (0) as zero time\n- MarshalJSON returning Unix timestamp or 0 for zero time\n\n## Files to create\n- timestamp.go\n\n## Acceptance criteria\n- Correctly parses integer Unix timestamps\n- Handles empty strings and \"0\" strings\n- Zero time marshals to 0\n- Non-zero time marshals to Unix timestamp","status":"closed","priority":0,"issue_type":"feature","owner":"mail@oliverjakoubek.de","created_at":"2026-01-15T17:34:55.0044989+01:00","created_by":"Oliver Jakoubek","updated_at":"2026-01-15T18:15:27.299644047+01:00","closed_at":"2026-01-15T18:15:27.299644047+01:00","close_reason":"Closed"}

21
auth.go
View file

@ -1,6 +1,9 @@
package kanboard package kanboard
import "net/http" import (
"encoding/base64"
"net/http"
)
// Authenticator applies authentication to HTTP requests. // Authenticator applies authentication to HTTP requests.
type Authenticator interface { type Authenticator interface {
@ -11,6 +14,7 @@ type Authenticator interface {
type apiTokenAuth struct { type apiTokenAuth struct {
user string user string
token string token string
headerName string
} }
// Apply adds HTTP Basic Auth with the configured user (or "jsonrpc" if empty) and the API token. // Apply adds HTTP Basic Auth with the configured user (or "jsonrpc" if empty) and the API token.
@ -19,16 +23,31 @@ func (a *apiTokenAuth) Apply(req *http.Request) {
if user == "" { if user == "" {
user = "jsonrpc" user = "jsonrpc"
} }
if a.headerName != "" {
req.Header.Set(a.headerName, "Basic "+basicAuthValue(user, a.token))
} else {
req.SetBasicAuth(user, a.token) req.SetBasicAuth(user, a.token)
} }
}
// basicAuth implements username/password authentication. // basicAuth implements username/password authentication.
type basicAuth struct { type basicAuth struct {
username string username string
password string password string
headerName string
} }
// Apply adds HTTP Basic Auth with username and password. // Apply adds HTTP Basic Auth with username and password.
func (a *basicAuth) Apply(req *http.Request) { func (a *basicAuth) Apply(req *http.Request) {
if a.headerName != "" {
req.Header.Set(a.headerName, "Basic "+basicAuthValue(a.username, a.password))
} else {
req.SetBasicAuth(a.username, a.password) req.SetBasicAuth(a.username, a.password)
} }
}
// basicAuthValue returns the base64-encoded value for HTTP Basic Auth.
func basicAuthValue(username, password string) string {
auth := username + ":" + password
return base64.StdEncoding.EncodeToString([]byte(auth))
}

View file

@ -2,6 +2,7 @@ package kanboard
import ( import (
"context" "context"
"encoding/base64"
"encoding/json" "encoding/json"
"net/http" "net/http"
"net/http/httptest" "net/http/httptest"
@ -183,6 +184,136 @@ func TestAuthenticator_Interface(t *testing.T) {
var _ Authenticator = &basicAuth{} var _ Authenticator = &basicAuth{}
} }
func TestAPITokenAuth_CustomHeader(t *testing.T) {
server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
// Should NOT have standard Authorization header via BasicAuth
_, _, ok := r.BasicAuth()
if ok {
t.Error("did not expect Authorization header to be parsed as Basic Auth")
}
// Should have custom header
customAuth := r.Header.Get("X-API-Auth")
if customAuth == "" {
t.Error("expected X-API-Auth header")
w.WriteHeader(http.StatusUnauthorized)
return
}
// Verify the custom header has the correct Basic auth value
expected := "Basic " + base64Encode("jsonrpc:my-api-token")
if customAuth != expected {
t.Errorf("expected X-API-Auth=%s, got %s", expected, customAuth)
}
var req JSONRPCRequest
json.NewDecoder(r.Body).Decode(&req)
resp := JSONRPCResponse{
JSONRPC: "2.0",
ID: req.ID,
Result: json.RawMessage(`true`),
}
json.NewEncoder(w).Encode(resp)
}))
defer server.Close()
client := NewClient(server.URL).
WithAuthHeader("X-API-Auth").
WithAPIToken("my-api-token")
var result bool
err := client.call(context.Background(), "getVersion", nil, &result)
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
}
func TestBasicAuth_CustomHeader(t *testing.T) {
server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
// Should NOT have standard Authorization header via BasicAuth
_, _, ok := r.BasicAuth()
if ok {
t.Error("did not expect Authorization header to be parsed as Basic Auth")
}
// Should have custom header
customAuth := r.Header.Get("X-Custom-Auth")
if customAuth == "" {
t.Error("expected X-Custom-Auth header")
w.WriteHeader(http.StatusUnauthorized)
return
}
// Verify the custom header has the correct Basic auth value
expected := "Basic " + base64Encode("admin:secret")
if customAuth != expected {
t.Errorf("expected X-Custom-Auth=%s, got %s", expected, customAuth)
}
var req JSONRPCRequest
json.NewDecoder(r.Body).Decode(&req)
resp := JSONRPCResponse{
JSONRPC: "2.0",
ID: req.ID,
Result: json.RawMessage(`true`),
}
json.NewEncoder(w).Encode(resp)
}))
defer server.Close()
client := NewClient(server.URL).
WithAuthHeader("X-Custom-Auth").
WithBasicAuth("admin", "secret")
var result bool
err := client.call(context.Background(), "getVersion", nil, &result)
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
}
func TestCustomHeader_WithCustomUser(t *testing.T) {
server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
customAuth := r.Header.Get("X-API-Auth")
if customAuth == "" {
t.Error("expected X-API-Auth header")
w.WriteHeader(http.StatusUnauthorized)
return
}
// Verify the custom header uses the custom username
expected := "Basic " + base64Encode("custom-user:my-token")
if customAuth != expected {
t.Errorf("expected X-API-Auth=%s, got %s", expected, customAuth)
}
var req JSONRPCRequest
json.NewDecoder(r.Body).Decode(&req)
resp := JSONRPCResponse{
JSONRPC: "2.0",
ID: req.ID,
Result: json.RawMessage(`true`),
}
json.NewEncoder(w).Encode(resp)
}))
defer server.Close()
client := NewClient(server.URL).
WithAuthHeader("X-API-Auth").
WithAPITokenUser("my-token", "custom-user")
var result bool
err := client.call(context.Background(), "getVersion", nil, &result)
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
}
// base64Encode is a test helper to generate expected auth values.
func base64Encode(s string) string {
return base64.StdEncoding.EncodeToString([]byte(s))
}
func TestClient_FluentAuthConfiguration(t *testing.T) { func TestClient_FluentAuthConfiguration(t *testing.T) {
// Test that fluent methods return the same client instance // Test that fluent methods return the same client instance
client := NewClient("https://example.com") client := NewClient("https://example.com")

View file

@ -18,6 +18,7 @@ type Client struct {
httpClient *http.Client httpClient *http.Client
auth Authenticator auth Authenticator
logger *slog.Logger logger *slog.Logger
authHeaderName string // custom auth header, empty = use "Authorization"
} }
// NewClient creates a new Kanboard API client. // NewClient creates a new Kanboard API client.
@ -37,23 +38,32 @@ func NewClient(baseURL string) *Client {
} }
} }
// WithAuthHeader configures a custom header name for authentication.
// If not set, the standard "Authorization" header is used.
// This must be called before configuring authentication (WithAPIToken, WithBasicAuth, etc.).
// Example: WithAuthHeader("X-API-Auth")
func (c *Client) WithAuthHeader(headerName string) *Client {
c.authHeaderName = headerName
return c
}
// WithAPIToken configures the client to use API token authentication. // WithAPIToken configures the client to use API token authentication.
// Uses "jsonrpc" as the username for HTTP Basic Auth. // Uses "jsonrpc" as the username for HTTP Basic Auth.
func (c *Client) WithAPIToken(token string) *Client { func (c *Client) WithAPIToken(token string) *Client {
c.auth = &apiTokenAuth{token: token} c.auth = &apiTokenAuth{token: token, headerName: c.authHeaderName}
return c return c
} }
// WithAPITokenUser configures the client to use API token authentication with a custom username. // WithAPITokenUser configures the client to use API token authentication with a custom username.
// If user is empty, "jsonrpc" will be used as the default. // If user is empty, "jsonrpc" will be used as the default.
func (c *Client) WithAPITokenUser(token, user string) *Client { func (c *Client) WithAPITokenUser(token, user string) *Client {
c.auth = &apiTokenAuth{token: token, user: user} c.auth = &apiTokenAuth{token: token, user: user, headerName: c.authHeaderName}
return c return c
} }
// WithBasicAuth configures the client to use username/password authentication. // WithBasicAuth configures the client to use username/password authentication.
func (c *Client) WithBasicAuth(username, password string) *Client { func (c *Client) WithBasicAuth(username, password string) *Client {
c.auth = &basicAuth{username: username, password: password} c.auth = &basicAuth{username: username, password: password, headerName: c.authHeaderName}
return c return c
} }

509
coverage.out Normal file
View file

@ -0,0 +1,509 @@
mode: atomic
code.beautifulmachines.dev/jakoubek/kanboard-api/examples/basic/main.go:14.13,19.34 3 0
code.beautifulmachines.dev/jakoubek/kanboard-api/examples/basic/main.go:19.34,21.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/examples/basic/main.go:24.2,32.16 4 0
code.beautifulmachines.dev/jakoubek/kanboard-api/examples/basic/main.go:32.16,34.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/examples/basic/main.go:36.2,37.29 2 0
code.beautifulmachines.dev/jakoubek/kanboard-api/examples/basic/main.go:37.29,39.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/examples/basic/main.go:41.2,41.24 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/examples/basic/main.go:41.24,44.3 2 0
code.beautifulmachines.dev/jakoubek/kanboard-api/examples/basic/main.go:47.2,51.16 3 0
code.beautifulmachines.dev/jakoubek/kanboard-api/examples/basic/main.go:51.16,53.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/examples/basic/main.go:55.2,56.26 2 0
code.beautifulmachines.dev/jakoubek/kanboard-api/examples/basic/main.go:56.26,58.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/examples/basic/main.go:61.2,66.16 2 0
code.beautifulmachines.dev/jakoubek/kanboard-api/examples/basic/main.go:66.16,68.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/examples/basic/main.go:70.2,74.16 3 0
code.beautifulmachines.dev/jakoubek/kanboard-api/examples/basic/main.go:74.16,76.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/examples/basic/main.go:78.2,82.76 5 0
code.beautifulmachines.dev/jakoubek/kanboard-api/examples/fluent/main.go:15.13,20.34 3 0
code.beautifulmachines.dev/jakoubek/kanboard-api/examples/fluent/main.go:20.34,22.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/examples/fluent/main.go:25.2,34.16 4 0
code.beautifulmachines.dev/jakoubek/kanboard-api/examples/fluent/main.go:34.16,36.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/examples/fluent/main.go:37.2,37.24 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/examples/fluent/main.go:37.24,39.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/examples/fluent/main.go:40.2,47.16 4 0
code.beautifulmachines.dev/jakoubek/kanboard-api/examples/fluent/main.go:47.16,49.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/examples/fluent/main.go:50.2,51.28 2 0
code.beautifulmachines.dev/jakoubek/kanboard-api/examples/fluent/main.go:51.28,53.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/examples/fluent/main.go:56.2,64.16 3 0
code.beautifulmachines.dev/jakoubek/kanboard-api/examples/fluent/main.go:64.16,66.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/examples/fluent/main.go:67.2,73.58 3 0
code.beautifulmachines.dev/jakoubek/kanboard-api/examples/fluent/main.go:73.58,75.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/examples/fluent/main.go:76.2,80.16 3 0
code.beautifulmachines.dev/jakoubek/kanboard-api/examples/fluent/main.go:80.16,82.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/examples/fluent/main.go:83.2,91.55 3 0
code.beautifulmachines.dev/jakoubek/kanboard-api/examples/fluent/main.go:91.55,93.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/examples/fluent/main.go:94.2,97.56 2 0
code.beautifulmachines.dev/jakoubek/kanboard-api/examples/fluent/main.go:97.56,98.45 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/examples/fluent/main.go:98.45,100.4 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/examples/fluent/main.go:100.9,102.4 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/examples/fluent/main.go:103.8,105.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/examples/fluent/main.go:108.2,109.16 2 0
code.beautifulmachines.dev/jakoubek/kanboard-api/examples/fluent/main.go:109.16,111.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/examples/fluent/main.go:112.2,115.50 4 0
code.beautifulmachines.dev/jakoubek/kanboard-api/examples/search/main.go:14.13,19.34 3 0
code.beautifulmachines.dev/jakoubek/kanboard-api/examples/search/main.go:19.34,21.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/examples/search/main.go:23.2,31.16 4 0
code.beautifulmachines.dev/jakoubek/kanboard-api/examples/search/main.go:31.16,33.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/examples/search/main.go:34.2,34.24 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/examples/search/main.go:34.24,36.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/examples/search/main.go:37.2,46.16 5 0
code.beautifulmachines.dev/jakoubek/kanboard-api/examples/search/main.go:46.16,48.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/examples/search/main.go:49.2,50.26 2 0
code.beautifulmachines.dev/jakoubek/kanboard-api/examples/search/main.go:50.26,52.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/examples/search/main.go:55.2,56.16 2 0
code.beautifulmachines.dev/jakoubek/kanboard-api/examples/search/main.go:56.16,58.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/examples/search/main.go:59.2,60.26 2 0
code.beautifulmachines.dev/jakoubek/kanboard-api/examples/search/main.go:60.26,62.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/examples/search/main.go:65.2,66.16 2 0
code.beautifulmachines.dev/jakoubek/kanboard-api/examples/search/main.go:66.16,68.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/examples/search/main.go:69.2,70.26 2 0
code.beautifulmachines.dev/jakoubek/kanboard-api/examples/search/main.go:70.26,72.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/examples/search/main.go:75.2,79.16 3 0
code.beautifulmachines.dev/jakoubek/kanboard-api/examples/search/main.go:79.16,81.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/examples/search/main.go:82.2,86.29 3 0
code.beautifulmachines.dev/jakoubek/kanboard-api/examples/search/main.go:86.29,89.3 2 0
code.beautifulmachines.dev/jakoubek/kanboard-api/examples/search/main.go:91.2,91.36 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/examples/search/main.go:91.36,93.27 2 0
code.beautifulmachines.dev/jakoubek/kanboard-api/examples/search/main.go:93.27,95.4 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/examples/search/main.go:99.2,115.58 17 0
code.beautifulmachines.dev/jakoubek/kanboard-api/auth.go:21.49,23.16 2 146
code.beautifulmachines.dev/jakoubek/kanboard-api/auth.go:23.16,25.3 1 144
code.beautifulmachines.dev/jakoubek/kanboard-api/auth.go:26.2,26.24 1 146
code.beautifulmachines.dev/jakoubek/kanboard-api/auth.go:26.24,28.3 1 2
code.beautifulmachines.dev/jakoubek/kanboard-api/auth.go:28.8,30.3 1 144
code.beautifulmachines.dev/jakoubek/kanboard-api/auth.go:41.46,42.24 1 3
code.beautifulmachines.dev/jakoubek/kanboard-api/auth.go:42.24,44.3 1 1
code.beautifulmachines.dev/jakoubek/kanboard-api/auth.go:44.8,46.3 1 2
code.beautifulmachines.dev/jakoubek/kanboard-api/auth.go:50.55,53.2 2 3
code.beautifulmachines.dev/jakoubek/kanboard-api/board_scope.go:12.51,17.2 1 8
code.beautifulmachines.dev/jakoubek/kanboard-api/board_scope.go:20.72,22.2 1 1
code.beautifulmachines.dev/jakoubek/kanboard-api/board_scope.go:25.77,27.2 1 1
code.beautifulmachines.dev/jakoubek/kanboard-api/board_scope.go:30.87,32.2 1 1
code.beautifulmachines.dev/jakoubek/kanboard-api/board_scope.go:35.85,37.2 1 1
code.beautifulmachines.dev/jakoubek/kanboard-api/board_scope.go:41.92,44.2 2 2
code.beautifulmachines.dev/jakoubek/kanboard-api/board_scope.go:48.99,51.2 2 1
code.beautifulmachines.dev/jakoubek/kanboard-api/categories.go:9.91,13.73 3 4
code.beautifulmachines.dev/jakoubek/kanboard-api/categories.go:13.73,15.3 1 1
code.beautifulmachines.dev/jakoubek/kanboard-api/categories.go:17.2,17.20 1 3
code.beautifulmachines.dev/jakoubek/kanboard-api/categories.go:22.86,26.68 3 2
code.beautifulmachines.dev/jakoubek/kanboard-api/categories.go:26.68,28.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/categories.go:30.2,30.19 1 2
code.beautifulmachines.dev/jakoubek/kanboard-api/categories.go:30.19,32.3 1 1
code.beautifulmachines.dev/jakoubek/kanboard-api/categories.go:34.2,34.20 1 1
code.beautifulmachines.dev/jakoubek/kanboard-api/client.go:28.40,39.2 2 139
code.beautifulmachines.dev/jakoubek/kanboard-api/client.go:45.60,48.2 2 3
code.beautifulmachines.dev/jakoubek/kanboard-api/client.go:52.53,55.2 2 125
code.beautifulmachines.dev/jakoubek/kanboard-api/client.go:59.63,62.2 2 4
code.beautifulmachines.dev/jakoubek/kanboard-api/client.go:65.67,68.2 2 5
code.beautifulmachines.dev/jakoubek/kanboard-api/client.go:72.62,75.2 2 1
code.beautifulmachines.dev/jakoubek/kanboard-api/client.go:79.61,85.2 2 2
code.beautifulmachines.dev/jakoubek/kanboard-api/client.go:89.58,92.2 2 2
code.beautifulmachines.dev/jakoubek/kanboard-api/columns.go:10.83,14.67 3 8
code.beautifulmachines.dev/jakoubek/kanboard-api/columns.go:14.67,16.3 1 1
code.beautifulmachines.dev/jakoubek/kanboard-api/columns.go:19.2,19.41 1 7
code.beautifulmachines.dev/jakoubek/kanboard-api/columns.go:19.41,21.3 1 11
code.beautifulmachines.dev/jakoubek/kanboard-api/columns.go:23.2,23.20 1 7
code.beautifulmachines.dev/jakoubek/kanboard-api/columns.go:28.80,32.66 3 2
code.beautifulmachines.dev/jakoubek/kanboard-api/columns.go:32.66,34.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/columns.go:36.2,36.19 1 2
code.beautifulmachines.dev/jakoubek/kanboard-api/columns.go:36.19,38.3 1 1
code.beautifulmachines.dev/jakoubek/kanboard-api/columns.go:40.2,40.20 1 1
code.beautifulmachines.dev/jakoubek/kanboard-api/comments.go:9.85,13.71 3 3
code.beautifulmachines.dev/jakoubek/kanboard-api/comments.go:13.71,15.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/comments.go:17.2,17.20 1 3
code.beautifulmachines.dev/jakoubek/kanboard-api/comments.go:22.83,26.67 3 4
code.beautifulmachines.dev/jakoubek/kanboard-api/comments.go:26.67,28.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/comments.go:30.2,30.19 1 4
code.beautifulmachines.dev/jakoubek/kanboard-api/comments.go:30.19,32.3 1 1
code.beautifulmachines.dev/jakoubek/kanboard-api/comments.go:34.2,34.20 1 3
code.beautifulmachines.dev/jakoubek/kanboard-api/comments.go:38.107,46.73 3 3
code.beautifulmachines.dev/jakoubek/kanboard-api/comments.go:46.73,48.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/comments.go:50.2,50.20 1 3
code.beautifulmachines.dev/jakoubek/kanboard-api/comments.go:50.20,52.3 1 1
code.beautifulmachines.dev/jakoubek/kanboard-api/comments.go:55.2,55.42 1 2
code.beautifulmachines.dev/jakoubek/kanboard-api/comments.go:59.90,66.71 3 2
code.beautifulmachines.dev/jakoubek/kanboard-api/comments.go:66.71,68.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/comments.go:70.2,70.14 1 2
code.beautifulmachines.dev/jakoubek/kanboard-api/comments.go:70.14,72.3 1 1
code.beautifulmachines.dev/jakoubek/kanboard-api/comments.go:74.2,74.12 1 1
code.beautifulmachines.dev/jakoubek/kanboard-api/comments.go:78.74,82.71 3 2
code.beautifulmachines.dev/jakoubek/kanboard-api/comments.go:82.71,84.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/comments.go:86.2,86.14 1 2
code.beautifulmachines.dev/jakoubek/kanboard-api/comments.go:86.14,88.3 1 1
code.beautifulmachines.dev/jakoubek/kanboard-api/comments.go:90.2,90.12 1 1
code.beautifulmachines.dev/jakoubek/kanboard-api/errors.go:78.35,80.2 1 5
code.beautifulmachines.dev/jakoubek/kanboard-api/errors.go:83.33,90.2 1 11
code.beautifulmachines.dev/jakoubek/kanboard-api/errors.go:93.37,95.2 1 6
code.beautifulmachines.dev/jakoubek/kanboard-api/errors.go:98.33,101.2 2 6
code.beautifulmachines.dev/jakoubek/kanboard-api/files.go:10.87,14.72 3 3
code.beautifulmachines.dev/jakoubek/kanboard-api/files.go:14.72,16.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/files.go:18.2,18.20 1 3
code.beautifulmachines.dev/jakoubek/kanboard-api/files.go:24.123,33.71 3 3
code.beautifulmachines.dev/jakoubek/kanboard-api/files.go:33.71,35.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/files.go:37.2,37.17 1 3
code.beautifulmachines.dev/jakoubek/kanboard-api/files.go:37.17,39.3 1 1
code.beautifulmachines.dev/jakoubek/kanboard-api/files.go:41.2,41.25 1 2
code.beautifulmachines.dev/jakoubek/kanboard-api/files.go:46.84,50.73 3 1
code.beautifulmachines.dev/jakoubek/kanboard-api/files.go:50.73,52.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/files.go:55.2,56.16 2 1
code.beautifulmachines.dev/jakoubek/kanboard-api/files.go:56.16,58.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/files.go:60.2,60.21 1 1
code.beautifulmachines.dev/jakoubek/kanboard-api/files.go:64.72,68.72 3 2
code.beautifulmachines.dev/jakoubek/kanboard-api/files.go:68.72,70.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/files.go:72.2,72.14 1 2
code.beautifulmachines.dev/jakoubek/kanboard-api/files.go:72.14,74.3 1 1
code.beautifulmachines.dev/jakoubek/kanboard-api/files.go:76.2,76.12 1 1
code.beautifulmachines.dev/jakoubek/kanboard-api/jsonrpc.go:36.39,38.2 1 1
code.beautifulmachines.dev/jakoubek/kanboard-api/jsonrpc.go:44.28,46.2 1 10156
code.beautifulmachines.dev/jakoubek/kanboard-api/jsonrpc.go:50.105,59.16 3 150
code.beautifulmachines.dev/jakoubek/kanboard-api/jsonrpc.go:59.16,61.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/jsonrpc.go:63.2,63.21 1 150
code.beautifulmachines.dev/jakoubek/kanboard-api/jsonrpc.go:63.21,65.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/jsonrpc.go:67.2,68.16 2 150
code.beautifulmachines.dev/jakoubek/kanboard-api/jsonrpc.go:68.16,70.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/jsonrpc.go:72.2,74.19 2 150
code.beautifulmachines.dev/jakoubek/kanboard-api/jsonrpc.go:74.19,76.3 1 149
code.beautifulmachines.dev/jakoubek/kanboard-api/jsonrpc.go:78.2,79.16 2 150
code.beautifulmachines.dev/jakoubek/kanboard-api/jsonrpc.go:79.16,81.3 1 6
code.beautifulmachines.dev/jakoubek/kanboard-api/jsonrpc.go:82.2,84.48 2 144
code.beautifulmachines.dev/jakoubek/kanboard-api/jsonrpc.go:84.48,86.3 1 1
code.beautifulmachines.dev/jakoubek/kanboard-api/jsonrpc.go:87.2,87.45 1 143
code.beautifulmachines.dev/jakoubek/kanboard-api/jsonrpc.go:87.45,89.3 1 1
code.beautifulmachines.dev/jakoubek/kanboard-api/jsonrpc.go:90.2,90.38 1 142
code.beautifulmachines.dev/jakoubek/kanboard-api/jsonrpc.go:90.38,92.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/jsonrpc.go:94.2,95.16 2 142
code.beautifulmachines.dev/jakoubek/kanboard-api/jsonrpc.go:95.16,97.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/jsonrpc.go:99.2,99.21 1 142
code.beautifulmachines.dev/jakoubek/kanboard-api/jsonrpc.go:99.21,101.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/jsonrpc.go:103.2,104.59 2 142
code.beautifulmachines.dev/jakoubek/kanboard-api/jsonrpc.go:104.59,106.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/jsonrpc.go:108.2,108.26 1 142
code.beautifulmachines.dev/jakoubek/kanboard-api/jsonrpc.go:108.26,113.3 1 1
code.beautifulmachines.dev/jakoubek/kanboard-api/jsonrpc.go:115.2,115.44 1 141
code.beautifulmachines.dev/jakoubek/kanboard-api/jsonrpc.go:115.44,116.64 1 141
code.beautifulmachines.dev/jakoubek/kanboard-api/jsonrpc.go:116.64,118.4 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/jsonrpc.go:121.2,121.12 1 141
code.beautifulmachines.dev/jakoubek/kanboard-api/links.go:9.87,13.72 3 3
code.beautifulmachines.dev/jakoubek/kanboard-api/links.go:13.72,15.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/links.go:17.2,17.20 1 3
code.beautifulmachines.dev/jakoubek/kanboard-api/links.go:23.103,31.71 3 3
code.beautifulmachines.dev/jakoubek/kanboard-api/links.go:31.71,33.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/links.go:35.2,35.17 1 3
code.beautifulmachines.dev/jakoubek/kanboard-api/links.go:35.17,37.3 1 1
code.beautifulmachines.dev/jakoubek/kanboard-api/links.go:39.2,39.25 1 2
code.beautifulmachines.dev/jakoubek/kanboard-api/links.go:43.76,47.72 3 2
code.beautifulmachines.dev/jakoubek/kanboard-api/links.go:47.72,49.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/links.go:51.2,51.14 1 2
code.beautifulmachines.dev/jakoubek/kanboard-api/links.go:51.14,53.3 1 1
code.beautifulmachines.dev/jakoubek/kanboard-api/links.go:55.2,55.12 1 1
code.beautifulmachines.dev/jakoubek/kanboard-api/projects.go:9.73,11.68 2 5
code.beautifulmachines.dev/jakoubek/kanboard-api/projects.go:11.68,13.3 1 1
code.beautifulmachines.dev/jakoubek/kanboard-api/projects.go:14.2,14.20 1 4
code.beautifulmachines.dev/jakoubek/kanboard-api/projects.go:19.87,23.71 3 3
code.beautifulmachines.dev/jakoubek/kanboard-api/projects.go:23.71,25.3 1 1
code.beautifulmachines.dev/jakoubek/kanboard-api/projects.go:27.2,27.19 1 2
code.beautifulmachines.dev/jakoubek/kanboard-api/projects.go:27.19,29.3 1 1
code.beautifulmachines.dev/jakoubek/kanboard-api/projects.go:31.2,31.20 1 1
code.beautifulmachines.dev/jakoubek/kanboard-api/projects.go:36.87,40.73 3 2
code.beautifulmachines.dev/jakoubek/kanboard-api/projects.go:40.73,42.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/projects.go:44.2,44.19 1 2
code.beautifulmachines.dev/jakoubek/kanboard-api/projects.go:44.19,46.3 1 1
code.beautifulmachines.dev/jakoubek/kanboard-api/projects.go:48.2,48.20 1 1
code.beautifulmachines.dev/jakoubek/kanboard-api/tags.go:9.87,14.68 3 9
code.beautifulmachines.dev/jakoubek/kanboard-api/tags.go:14.68,16.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/tags.go:19.2,20.34 2 9
code.beautifulmachines.dev/jakoubek/kanboard-api/tags.go:20.34,22.57 2 13
code.beautifulmachines.dev/jakoubek/kanboard-api/tags.go:22.57,23.12 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/tags.go:25.3,25.18 1 13
code.beautifulmachines.dev/jakoubek/kanboard-api/tags.go:28.2,28.18 1 9
code.beautifulmachines.dev/jakoubek/kanboard-api/tags.go:33.95,41.68 3 6
code.beautifulmachines.dev/jakoubek/kanboard-api/tags.go:41.68,43.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/tags.go:45.2,45.12 1 6
code.beautifulmachines.dev/jakoubek/kanboard-api/tags.go:49.65,51.64 2 1
code.beautifulmachines.dev/jakoubek/kanboard-api/tags.go:51.64,53.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/tags.go:54.2,54.20 1 1
code.beautifulmachines.dev/jakoubek/kanboard-api/tags.go:58.86,62.73 3 1
code.beautifulmachines.dev/jakoubek/kanboard-api/tags.go:62.73,64.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/tags.go:65.2,65.20 1 1
code.beautifulmachines.dev/jakoubek/kanboard-api/tags.go:69.99,74.19 2 2
code.beautifulmachines.dev/jakoubek/kanboard-api/tags.go:74.19,76.3 1 1
code.beautifulmachines.dev/jakoubek/kanboard-api/tags.go:78.2,79.66 2 2
code.beautifulmachines.dev/jakoubek/kanboard-api/tags.go:79.66,81.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/tags.go:82.2,82.25 1 2
code.beautifulmachines.dev/jakoubek/kanboard-api/tags.go:86.88,91.19 2 1
code.beautifulmachines.dev/jakoubek/kanboard-api/tags.go:91.19,93.3 1 1
code.beautifulmachines.dev/jakoubek/kanboard-api/tags.go:95.2,96.66 2 1
code.beautifulmachines.dev/jakoubek/kanboard-api/tags.go:96.66,98.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/tags.go:99.2,99.12 1 1
code.beautifulmachines.dev/jakoubek/kanboard-api/tags.go:103.66,107.66 3 1
code.beautifulmachines.dev/jakoubek/kanboard-api/tags.go:107.66,109.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/tags.go:110.2,110.12 1 1
code.beautifulmachines.dev/jakoubek/kanboard-api/task_params.go:25.40,29.2 1 9
code.beautifulmachines.dev/jakoubek/kanboard-api/task_params.go:32.63,35.2 2 3
code.beautifulmachines.dev/jakoubek/kanboard-api/task_params.go:38.57,41.2 2 2
code.beautifulmachines.dev/jakoubek/kanboard-api/task_params.go:44.63,47.2 2 2
code.beautifulmachines.dev/jakoubek/kanboard-api/task_params.go:50.57,53.2 2 2
code.beautifulmachines.dev/jakoubek/kanboard-api/task_params.go:56.61,59.2 2 1
code.beautifulmachines.dev/jakoubek/kanboard-api/task_params.go:62.60,65.2 2 3
code.beautifulmachines.dev/jakoubek/kanboard-api/task_params.go:68.61,71.2 2 2
code.beautifulmachines.dev/jakoubek/kanboard-api/task_params.go:74.55,77.2 2 2
code.beautifulmachines.dev/jakoubek/kanboard-api/task_params.go:80.62,84.2 3 2
code.beautifulmachines.dev/jakoubek/kanboard-api/task_params.go:87.64,91.2 3 1
code.beautifulmachines.dev/jakoubek/kanboard-api/task_params.go:94.61,97.2 2 1
code.beautifulmachines.dev/jakoubek/kanboard-api/task_params.go:100.60,103.2 2 2
code.beautifulmachines.dev/jakoubek/kanboard-api/task_params.go:106.59,109.2 2 2
code.beautifulmachines.dev/jakoubek/kanboard-api/task_params.go:113.75,119.26 2 3
code.beautifulmachines.dev/jakoubek/kanboard-api/task_params.go:119.26,121.3 1 2
code.beautifulmachines.dev/jakoubek/kanboard-api/task_params.go:122.2,122.23 1 3
code.beautifulmachines.dev/jakoubek/kanboard-api/task_params.go:122.23,124.3 1 1
code.beautifulmachines.dev/jakoubek/kanboard-api/task_params.go:125.2,125.25 1 3
code.beautifulmachines.dev/jakoubek/kanboard-api/task_params.go:125.25,127.3 1 1
code.beautifulmachines.dev/jakoubek/kanboard-api/task_params.go:128.2,128.22 1 3
code.beautifulmachines.dev/jakoubek/kanboard-api/task_params.go:128.22,130.3 1 1
code.beautifulmachines.dev/jakoubek/kanboard-api/task_params.go:131.2,131.24 1 3
code.beautifulmachines.dev/jakoubek/kanboard-api/task_params.go:131.24,133.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/task_params.go:134.2,134.22 1 3
code.beautifulmachines.dev/jakoubek/kanboard-api/task_params.go:134.22,136.3 1 2
code.beautifulmachines.dev/jakoubek/kanboard-api/task_params.go:137.2,137.23 1 3
code.beautifulmachines.dev/jakoubek/kanboard-api/task_params.go:137.23,139.3 1 1
code.beautifulmachines.dev/jakoubek/kanboard-api/task_params.go:140.2,140.20 1 3
code.beautifulmachines.dev/jakoubek/kanboard-api/task_params.go:140.20,142.3 1 1
code.beautifulmachines.dev/jakoubek/kanboard-api/task_params.go:143.2,143.22 1 3
code.beautifulmachines.dev/jakoubek/kanboard-api/task_params.go:143.22,145.3 1 1
code.beautifulmachines.dev/jakoubek/kanboard-api/task_params.go:146.2,146.24 1 3
code.beautifulmachines.dev/jakoubek/kanboard-api/task_params.go:146.24,148.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/task_params.go:149.2,149.25 1 3
code.beautifulmachines.dev/jakoubek/kanboard-api/task_params.go:149.25,151.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/task_params.go:152.2,152.24 1 3
code.beautifulmachines.dev/jakoubek/kanboard-api/task_params.go:152.24,154.3 1 1
code.beautifulmachines.dev/jakoubek/kanboard-api/task_params.go:155.2,155.21 1 3
code.beautifulmachines.dev/jakoubek/kanboard-api/task_params.go:155.21,157.3 1 1
code.beautifulmachines.dev/jakoubek/kanboard-api/task_params.go:159.2,159.12 1 3
code.beautifulmachines.dev/jakoubek/kanboard-api/task_scope.go:12.46,17.2 1 28
code.beautifulmachines.dev/jakoubek/kanboard-api/task_scope.go:20.61,22.2 1 13
code.beautifulmachines.dev/jakoubek/kanboard-api/task_scope.go:25.54,27.2 1 1
code.beautifulmachines.dev/jakoubek/kanboard-api/task_scope.go:30.53,32.2 1 1
code.beautifulmachines.dev/jakoubek/kanboard-api/task_scope.go:37.75,39.16 2 1
code.beautifulmachines.dev/jakoubek/kanboard-api/task_scope.go:39.16,41.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/task_scope.go:42.2,42.105 1 1
code.beautifulmachines.dev/jakoubek/kanboard-api/task_scope.go:48.65,51.16 2 2
code.beautifulmachines.dev/jakoubek/kanboard-api/task_scope.go:51.16,53.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/task_scope.go:56.2,57.16 2 2
code.beautifulmachines.dev/jakoubek/kanboard-api/task_scope.go:57.16,59.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/task_scope.go:61.2,61.23 1 2
code.beautifulmachines.dev/jakoubek/kanboard-api/task_scope.go:61.23,63.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/task_scope.go:66.2,68.30 3 2
code.beautifulmachines.dev/jakoubek/kanboard-api/task_scope.go:68.30,69.37 1 5
code.beautifulmachines.dev/jakoubek/kanboard-api/task_scope.go:69.37,71.9 2 2
code.beautifulmachines.dev/jakoubek/kanboard-api/task_scope.go:76.2,76.58 1 2
code.beautifulmachines.dev/jakoubek/kanboard-api/task_scope.go:76.58,78.3 1 1
code.beautifulmachines.dev/jakoubek/kanboard-api/task_scope.go:81.2,82.115 2 1
code.beautifulmachines.dev/jakoubek/kanboard-api/task_scope.go:88.69,91.16 2 2
code.beautifulmachines.dev/jakoubek/kanboard-api/task_scope.go:91.16,93.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/task_scope.go:96.2,97.16 2 2
code.beautifulmachines.dev/jakoubek/kanboard-api/task_scope.go:97.16,99.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/task_scope.go:101.2,101.23 1 2
code.beautifulmachines.dev/jakoubek/kanboard-api/task_scope.go:101.23,103.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/task_scope.go:106.2,108.30 3 2
code.beautifulmachines.dev/jakoubek/kanboard-api/task_scope.go:108.30,109.37 1 3
code.beautifulmachines.dev/jakoubek/kanboard-api/task_scope.go:109.37,111.9 2 2
code.beautifulmachines.dev/jakoubek/kanboard-api/task_scope.go:116.2,116.23 1 2
code.beautifulmachines.dev/jakoubek/kanboard-api/task_scope.go:116.23,118.3 1 1
code.beautifulmachines.dev/jakoubek/kanboard-api/task_scope.go:121.2,122.115 2 1
code.beautifulmachines.dev/jakoubek/kanboard-api/task_scope.go:126.77,128.2 1 1
code.beautifulmachines.dev/jakoubek/kanboard-api/task_scope.go:131.81,133.2 1 1
code.beautifulmachines.dev/jakoubek/kanboard-api/task_scope.go:136.74,138.2 1 1
code.beautifulmachines.dev/jakoubek/kanboard-api/task_scope.go:144.72,146.16 2 2
code.beautifulmachines.dev/jakoubek/kanboard-api/task_scope.go:146.16,148.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/task_scope.go:149.2,149.71 1 2
code.beautifulmachines.dev/jakoubek/kanboard-api/task_scope.go:155.58,157.2 1 1
code.beautifulmachines.dev/jakoubek/kanboard-api/task_scope.go:163.67,166.16 2 2
code.beautifulmachines.dev/jakoubek/kanboard-api/task_scope.go:166.16,168.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/task_scope.go:171.2,172.16 2 2
code.beautifulmachines.dev/jakoubek/kanboard-api/task_scope.go:172.16,174.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/task_scope.go:177.2,177.42 1 2
code.beautifulmachines.dev/jakoubek/kanboard-api/task_scope.go:177.42,178.25 1 2
code.beautifulmachines.dev/jakoubek/kanboard-api/task_scope.go:178.25,180.4 1 1
code.beautifulmachines.dev/jakoubek/kanboard-api/task_scope.go:184.2,185.35 2 1
code.beautifulmachines.dev/jakoubek/kanboard-api/task_scope.go:185.35,187.3 1 1
code.beautifulmachines.dev/jakoubek/kanboard-api/task_scope.go:188.2,191.75 2 1
code.beautifulmachines.dev/jakoubek/kanboard-api/task_scope.go:198.70,201.16 2 2
code.beautifulmachines.dev/jakoubek/kanboard-api/task_scope.go:201.16,203.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/task_scope.go:206.2,207.16 2 2
code.beautifulmachines.dev/jakoubek/kanboard-api/task_scope.go:207.16,209.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/task_scope.go:212.2,214.35 3 2
code.beautifulmachines.dev/jakoubek/kanboard-api/task_scope.go:214.35,215.18 1 3
code.beautifulmachines.dev/jakoubek/kanboard-api/task_scope.go:215.18,217.12 2 1
code.beautifulmachines.dev/jakoubek/kanboard-api/task_scope.go:219.3,219.36 1 2
code.beautifulmachines.dev/jakoubek/kanboard-api/task_scope.go:223.2,223.12 1 2
code.beautifulmachines.dev/jakoubek/kanboard-api/task_scope.go:223.12,225.3 1 1
code.beautifulmachines.dev/jakoubek/kanboard-api/task_scope.go:228.2,228.75 1 1
code.beautifulmachines.dev/jakoubek/kanboard-api/task_scope.go:232.75,234.16 2 2
code.beautifulmachines.dev/jakoubek/kanboard-api/task_scope.go:234.16,236.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/task_scope.go:238.2,238.28 1 2
code.beautifulmachines.dev/jakoubek/kanboard-api/task_scope.go:238.28,239.18 1 2
code.beautifulmachines.dev/jakoubek/kanboard-api/task_scope.go:239.18,241.4 1 1
code.beautifulmachines.dev/jakoubek/kanboard-api/task_scope.go:244.2,244.19 1 1
code.beautifulmachines.dev/jakoubek/kanboard-api/task_scope.go:248.73,250.2 1 1
code.beautifulmachines.dev/jakoubek/kanboard-api/task_scope.go:254.99,256.2 1 1
code.beautifulmachines.dev/jakoubek/kanboard-api/task_scope.go:259.71,261.2 1 1
code.beautifulmachines.dev/jakoubek/kanboard-api/task_scope.go:265.83,268.2 2 1
code.beautifulmachines.dev/jakoubek/kanboard-api/task_scope.go:271.71,273.2 1 1
code.beautifulmachines.dev/jakoubek/kanboard-api/task_scope.go:277.99,279.16 2 1
code.beautifulmachines.dev/jakoubek/kanboard-api/task_scope.go:279.16,281.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/task_scope.go:282.2,282.87 1 1
code.beautifulmachines.dev/jakoubek/kanboard-api/task_update_params.go:23.40,25.2 1 14
code.beautifulmachines.dev/jakoubek/kanboard-api/task_update_params.go:28.69,31.2 2 6
code.beautifulmachines.dev/jakoubek/kanboard-api/task_update_params.go:34.74,37.2 2 2
code.beautifulmachines.dev/jakoubek/kanboard-api/task_update_params.go:40.71,43.2 2 1
code.beautifulmachines.dev/jakoubek/kanboard-api/task_update_params.go:46.68,49.2 2 1
code.beautifulmachines.dev/jakoubek/kanboard-api/task_update_params.go:52.74,55.2 2 1
code.beautifulmachines.dev/jakoubek/kanboard-api/task_update_params.go:58.72,61.2 2 3
code.beautifulmachines.dev/jakoubek/kanboard-api/task_update_params.go:64.66,67.2 2 1
code.beautifulmachines.dev/jakoubek/kanboard-api/task_update_params.go:70.73,74.2 3 2
code.beautifulmachines.dev/jakoubek/kanboard-api/task_update_params.go:77.75,81.2 3 1
code.beautifulmachines.dev/jakoubek/kanboard-api/task_update_params.go:84.71,87.2 2 1
code.beautifulmachines.dev/jakoubek/kanboard-api/task_update_params.go:92.70,93.17 1 3
code.beautifulmachines.dev/jakoubek/kanboard-api/task_update_params.go:93.17,95.3 1 1
code.beautifulmachines.dev/jakoubek/kanboard-api/task_update_params.go:95.8,97.3 1 2
code.beautifulmachines.dev/jakoubek/kanboard-api/task_update_params.go:98.2,99.10 2 3
code.beautifulmachines.dev/jakoubek/kanboard-api/task_update_params.go:103.61,107.2 3 1
code.beautifulmachines.dev/jakoubek/kanboard-api/task_update_params.go:110.63,114.2 3 1
code.beautifulmachines.dev/jakoubek/kanboard-api/task_update_params.go:117.59,121.2 3 1
code.beautifulmachines.dev/jakoubek/kanboard-api/task_update_params.go:124.62,128.2 3 1
code.beautifulmachines.dev/jakoubek/kanboard-api/task_update_params.go:132.78,137.20 2 6
code.beautifulmachines.dev/jakoubek/kanboard-api/task_update_params.go:137.20,139.3 1 5
code.beautifulmachines.dev/jakoubek/kanboard-api/task_update_params.go:140.2,140.26 1 6
code.beautifulmachines.dev/jakoubek/kanboard-api/task_update_params.go:140.26,142.3 1 1
code.beautifulmachines.dev/jakoubek/kanboard-api/task_update_params.go:143.2,143.22 1 6
code.beautifulmachines.dev/jakoubek/kanboard-api/task_update_params.go:143.22,145.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/task_update_params.go:146.2,146.22 1 6
code.beautifulmachines.dev/jakoubek/kanboard-api/task_update_params.go:146.22,148.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/task_update_params.go:149.2,149.25 1 6
code.beautifulmachines.dev/jakoubek/kanboard-api/task_update_params.go:149.25,151.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/task_update_params.go:152.2,152.23 1 6
code.beautifulmachines.dev/jakoubek/kanboard-api/task_update_params.go:152.23,154.3 1 2
code.beautifulmachines.dev/jakoubek/kanboard-api/task_update_params.go:155.2,155.20 1 6
code.beautifulmachines.dev/jakoubek/kanboard-api/task_update_params.go:155.20,157.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/task_update_params.go:158.2,158.22 1 6
code.beautifulmachines.dev/jakoubek/kanboard-api/task_update_params.go:158.22,160.3 1 1
code.beautifulmachines.dev/jakoubek/kanboard-api/task_update_params.go:161.2,161.24 1 6
code.beautifulmachines.dev/jakoubek/kanboard-api/task_update_params.go:161.24,163.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/task_update_params.go:164.2,164.24 1 6
code.beautifulmachines.dev/jakoubek/kanboard-api/task_update_params.go:164.24,166.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/task_update_params.go:167.2,167.15 1 6
code.beautifulmachines.dev/jakoubek/kanboard-api/task_update_params.go:167.15,169.3 1 2
code.beautifulmachines.dev/jakoubek/kanboard-api/task_update_params.go:171.2,171.12 1 6
code.beautifulmachines.dev/jakoubek/kanboard-api/tasks.go:12.74,16.64 3 21
code.beautifulmachines.dev/jakoubek/kanboard-api/tasks.go:16.64,18.3 1 1
code.beautifulmachines.dev/jakoubek/kanboard-api/tasks.go:20.2,20.19 1 20
code.beautifulmachines.dev/jakoubek/kanboard-api/tasks.go:20.19,22.3 1 1
code.beautifulmachines.dev/jakoubek/kanboard-api/tasks.go:24.2,24.20 1 19
code.beautifulmachines.dev/jakoubek/kanboard-api/tasks.go:28.101,35.68 3 3
code.beautifulmachines.dev/jakoubek/kanboard-api/tasks.go:35.68,37.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/tasks.go:39.2,39.20 1 3
code.beautifulmachines.dev/jakoubek/kanboard-api/tasks.go:43.88,45.64 2 6
code.beautifulmachines.dev/jakoubek/kanboard-api/tasks.go:45.64,47.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/tasks.go:49.2,49.17 1 6
code.beautifulmachines.dev/jakoubek/kanboard-api/tasks.go:49.17,51.3 1 1
code.beautifulmachines.dev/jakoubek/kanboard-api/tasks.go:54.2,54.36 1 5
code.beautifulmachines.dev/jakoubek/kanboard-api/tasks.go:59.79,61.65 2 6
code.beautifulmachines.dev/jakoubek/kanboard-api/tasks.go:61.65,63.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/tasks.go:65.2,65.14 1 6
code.beautifulmachines.dev/jakoubek/kanboard-api/tasks.go:65.14,67.3 1 1
code.beautifulmachines.dev/jakoubek/kanboard-api/tasks.go:69.2,69.12 1 5
code.beautifulmachines.dev/jakoubek/kanboard-api/tasks.go:74.104,77.2 2 3
code.beautifulmachines.dev/jakoubek/kanboard-api/tasks.go:81.67,85.67 3 3
code.beautifulmachines.dev/jakoubek/kanboard-api/tasks.go:85.67,87.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/tasks.go:89.2,89.14 1 3
code.beautifulmachines.dev/jakoubek/kanboard-api/tasks.go:89.14,91.3 1 1
code.beautifulmachines.dev/jakoubek/kanboard-api/tasks.go:93.2,93.12 1 2
code.beautifulmachines.dev/jakoubek/kanboard-api/tasks.go:98.66,102.66 3 3
code.beautifulmachines.dev/jakoubek/kanboard-api/tasks.go:102.66,104.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/tasks.go:106.2,106.14 1 3
code.beautifulmachines.dev/jakoubek/kanboard-api/tasks.go:106.14,108.3 1 1
code.beautifulmachines.dev/jakoubek/kanboard-api/tasks.go:110.2,110.12 1 2
code.beautifulmachines.dev/jakoubek/kanboard-api/tasks.go:115.96,122.68 3 5
code.beautifulmachines.dev/jakoubek/kanboard-api/tasks.go:122.68,124.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/tasks.go:126.2,126.20 1 5
code.beautifulmachines.dev/jakoubek/kanboard-api/tasks.go:131.117,141.74 3 5
code.beautifulmachines.dev/jakoubek/kanboard-api/tasks.go:141.74,143.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/tasks.go:145.2,145.14 1 5
code.beautifulmachines.dev/jakoubek/kanboard-api/tasks.go:145.14,147.3 1 1
code.beautifulmachines.dev/jakoubek/kanboard-api/tasks.go:149.2,149.12 1 4
code.beautifulmachines.dev/jakoubek/kanboard-api/tasks.go:153.86,160.75 3 3
code.beautifulmachines.dev/jakoubek/kanboard-api/tasks.go:160.75,162.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/tasks.go:164.2,164.14 1 3
code.beautifulmachines.dev/jakoubek/kanboard-api/tasks.go:164.14,166.3 1 1
code.beautifulmachines.dev/jakoubek/kanboard-api/tasks.go:168.2,168.12 1 2
code.beautifulmachines.dev/jakoubek/kanboard-api/tasks.go:174.89,177.16 2 3
code.beautifulmachines.dev/jakoubek/kanboard-api/tasks.go:177.16,179.3 1 1
code.beautifulmachines.dev/jakoubek/kanboard-api/tasks.go:181.2,181.24 1 2
code.beautifulmachines.dev/jakoubek/kanboard-api/tasks.go:181.24,183.3 1 1
code.beautifulmachines.dev/jakoubek/kanboard-api/tasks.go:186.2,192.35 3 1
code.beautifulmachines.dev/jakoubek/kanboard-api/tasks.go:192.35,194.21 2 2
code.beautifulmachines.dev/jakoubek/kanboard-api/tasks.go:194.21,196.18 2 2
code.beautifulmachines.dev/jakoubek/kanboard-api/tasks.go:196.18,198.5 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/tasks.go:199.4,200.14 2 2
code.beautifulmachines.dev/jakoubek/kanboard-api/tasks.go:205.2,205.33 1 1
code.beautifulmachines.dev/jakoubek/kanboard-api/tasks.go:205.33,207.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/tasks.go:210.2,211.32 2 1
code.beautifulmachines.dev/jakoubek/kanboard-api/tasks.go:211.32,213.3 1 2
code.beautifulmachines.dev/jakoubek/kanboard-api/tasks.go:215.2,215.22 1 1
code.beautifulmachines.dev/jakoubek/kanboard-api/timestamp.go:17.54,20.52 2 22
code.beautifulmachines.dev/jakoubek/kanboard-api/timestamp.go:20.52,21.16 1 17
code.beautifulmachines.dev/jakoubek/kanboard-api/timestamp.go:21.16,23.4 1 5
code.beautifulmachines.dev/jakoubek/kanboard-api/timestamp.go:23.9,25.4 1 12
code.beautifulmachines.dev/jakoubek/kanboard-api/timestamp.go:26.3,26.13 1 17
code.beautifulmachines.dev/jakoubek/kanboard-api/timestamp.go:30.2,31.51 2 5
code.beautifulmachines.dev/jakoubek/kanboard-api/timestamp.go:31.51,32.30 1 5
code.beautifulmachines.dev/jakoubek/kanboard-api/timestamp.go:32.30,35.4 2 3
code.beautifulmachines.dev/jakoubek/kanboard-api/timestamp.go:37.3,38.57 2 2
code.beautifulmachines.dev/jakoubek/kanboard-api/timestamp.go:38.57,39.17 1 2
code.beautifulmachines.dev/jakoubek/kanboard-api/timestamp.go:39.17,41.5 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/timestamp.go:41.10,43.5 1 2
code.beautifulmachines.dev/jakoubek/kanboard-api/timestamp.go:44.4,44.14 1 2
code.beautifulmachines.dev/jakoubek/kanboard-api/timestamp.go:49.2,49.28 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/timestamp.go:49.28,52.3 2 0
code.beautifulmachines.dev/jakoubek/kanboard-api/timestamp.go:54.2,54.67 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/timestamp.go:59.50,60.16 1 3
code.beautifulmachines.dev/jakoubek/kanboard-api/timestamp.go:60.16,62.3 1 1
code.beautifulmachines.dev/jakoubek/kanboard-api/timestamp.go:63.2,63.31 1 2
code.beautifulmachines.dev/jakoubek/kanboard-api/types.go:23.55,26.49 2 54
code.beautifulmachines.dev/jakoubek/kanboard-api/types.go:26.49,29.3 2 46
code.beautifulmachines.dev/jakoubek/kanboard-api/types.go:32.2,33.49 2 8
code.beautifulmachines.dev/jakoubek/kanboard-api/types.go:33.49,36.3 2 6
code.beautifulmachines.dev/jakoubek/kanboard-api/types.go:39.2,40.55 2 2
code.beautifulmachines.dev/jakoubek/kanboard-api/types.go:40.55,42.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/types.go:43.2,44.12 2 2
code.beautifulmachines.dev/jakoubek/kanboard-api/types.go:48.51,49.7 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/types.go:49.7,51.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/types.go:52.2,52.27 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/types.go:59.54,61.49 2 230
code.beautifulmachines.dev/jakoubek/kanboard-api/types.go:61.49,64.55 2 5
code.beautifulmachines.dev/jakoubek/kanboard-api/types.go:64.55,66.4 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/types.go:67.3,68.13 2 5
code.beautifulmachines.dev/jakoubek/kanboard-api/types.go:70.2,70.13 1 225
code.beautifulmachines.dev/jakoubek/kanboard-api/types.go:70.13,73.3 2 1
code.beautifulmachines.dev/jakoubek/kanboard-api/types.go:74.2,75.16 2 224
code.beautifulmachines.dev/jakoubek/kanboard-api/types.go:75.16,77.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/types.go:78.2,79.12 2 224
code.beautifulmachines.dev/jakoubek/kanboard-api/types.go:86.56,88.49 2 8
code.beautifulmachines.dev/jakoubek/kanboard-api/types.go:88.49,91.55 2 2
code.beautifulmachines.dev/jakoubek/kanboard-api/types.go:91.55,93.4 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/types.go:94.3,95.13 2 2
code.beautifulmachines.dev/jakoubek/kanboard-api/types.go:97.2,97.13 1 6
code.beautifulmachines.dev/jakoubek/kanboard-api/types.go:97.13,100.3 2 1
code.beautifulmachines.dev/jakoubek/kanboard-api/types.go:101.2,102.16 2 5
code.beautifulmachines.dev/jakoubek/kanboard-api/types.go:102.16,104.3 1 0
code.beautifulmachines.dev/jakoubek/kanboard-api/types.go:105.2,106.12 2 5
code.beautifulmachines.dev/jakoubek/kanboard-api/types.go:114.55,117.49 2 21
code.beautifulmachines.dev/jakoubek/kanboard-api/types.go:117.49,120.3 2 19
code.beautifulmachines.dev/jakoubek/kanboard-api/types.go:123.2,124.49 2 2
code.beautifulmachines.dev/jakoubek/kanboard-api/types.go:124.49,125.8 1 2
code.beautifulmachines.dev/jakoubek/kanboard-api/types.go:125.8,127.4 1 1
code.beautifulmachines.dev/jakoubek/kanboard-api/types.go:127.9,129.4 1 1
code.beautifulmachines.dev/jakoubek/kanboard-api/types.go:130.3,130.13 1 2
code.beautifulmachines.dev/jakoubek/kanboard-api/types.go:133.2,133.64 1 0