Go SDK Quick Start¶
Get started building Kiket extensions with Go.
Installation¶
Basic Setup¶
Create a new Go module and import the SDK:
package main
import (
"context"
"log"
"net/http"
"github.com/kiket-dev/kiket/sdk/go/kiket"
)
func main() {
// Create SDK instance
sdk, err := kiket.New(kiket.Config{
WebhookSecret: "your-webhook-secret",
ExtensionAPIKey: "your-api-key",
ExtensionID: "com.example.my-extension",
})
if err != nil {
log.Fatal(err)
}
defer sdk.Close()
// Register a handler
sdk.On("issue.created", handleIssueCreated)
// Start server
log.Println("Starting server on :8080")
http.Handle("/webhook", sdk)
log.Fatal(http.ListenAndServe(":8080", nil))
}
func handleIssueCreated(ctx context.Context, payload kiket.WebhookPayload, hctx *kiket.HandlerContext) (interface{}, error) {
issue := payload["issue"].(map[string]interface{})
log.Printf("New issue: %s", issue["title"])
return map[string]string{"status": "ok"}, nil
}
Using a Manifest File¶
Create extension.yaml to configure your extension:
id: com.example.my-extension
version: 1.0.0
delivery_secret: your-webhook-secret
settings:
- key: api_token
secret: true
- key: default_priority
default: medium
Then simplify your code:
sdk, err := kiket.New(kiket.Config{
ExtensionAPIKey: "your-api-key",
AutoEnvSecrets: true, // Load KIKET_SECRET_* env vars
})
Environment Variables¶
Set these environment variables for configuration:
Add a Setup Wizard (Optional)¶
Guide users through configuration with a setup wizard in your manifest:
.kiket/extension.yaml
model_version: "1.0"
extension:
id: com.example.my-extension
name: My Extension
version: 1.0.0
delivery: http
callback:
url: ${EXTENSION_BASE_URL}
secret: env.KIKET_WEBHOOK_SECRET
configuration:
API_TOKEN:
type: string
secret: true
required: true
label: API Token
default_priority:
type: select
options: [low, medium, high]
default: medium
label: Default Priority
setup:
- secrets:
id: credentials
title: Enter Credentials
collect:
- API_TOKEN
- configure:
id: settings
title: Configure Defaults
collect:
- default_priority
See the Setup Wizard Guide for all step types.
Next Steps¶
- API Reference - Full API documentation
- Cookbook - Common patterns and recipes
- Extension Manifest - Manifest file reference