开发者工具

Go SDK集成

将您的 Go 服务、Kubernetes 控制器和部署管道直接连接到 BlackShield 的安全态势 API。

零外部依赖

The core SDK relies only on the Go standard library. It adds no third-party packages or licenses to your binaries and container images.

内置重试和退避

Transient network hiccups, 5xx gateway errors, and 429 rate limits retry automatically with exponential backoff and jitter.

流式和类型化分页

Process thousands of findings or telemetry events without memory spikes using streaming NDJSON readers and typed cursor paginators.

安装

将模块添加到您的 Go 项目中:

go get github.com/blackshield-security/blackshield-go

快速入门:查询结果

使用您的租户 API 密钥初始化客户端并获取有效的安全结果:

package main

import (
    "context"
    "fmt"
    "log"

    "github.com/blackshield-security/blackshield-go"
)

func main() {
    client, err := blackshield.NewClient(
        blackshield.WithAPIKey("bsk_live_your_api_key"),
    )
    if err != nil {
        log.Fatalf("client error: %v", err)
    }

    ctx := context.Background()
    page, err := client.Findings.List(ctx, blackshield.FindingsFilter{
        Severity: []string{"critical", "high"},
        Limit:    10,
    })
    if err != nil {
        log.Fatalf("query failed: %v", err)
    }

    for _, f := range page.Items {
        fmt.Printf("[%s] %s: %s\n", f.Severity, f.ID, f.Title)
    }
}

部署策略评估

在升级或发布之前检查工件是否符合您的安全策略:

decision, err := client.Policies.EvaluateDeploy(ctx, blackshield.DeployEvaluationRequest{
    ServiceID:    "payment-service",
    ArtifactURI:  "123456789.dkr.ecr.us-east-1.amazonaws.com/payments:v1.2.0",
    GitCommitSHA: "abcdef0123456789abcdef0123456789abcdef01",
    Environment:  "production",
})
if err != nil {
    log.Fatalf("policy evaluation failed: %v", err)
}

if !decision.Allowed {
    log.Fatalf("Release rejected: %s (Violations: %v)", decision.Reason, decision.Violations)
}

相关指南

Go SDK集成