Documentation
¶
Index ¶
- Constants
- func AddVersionReport(ctx context.Context, report VersionReport) error
- func AddVersionReportV2Target(ctx context.Context, target VersionReportV2Target) error
- func MustGenerate(ctx context.Context) bool
- type BumpType
- type MergedVersionReport
- type VersionReport
- type VersionReportCapture
- type VersionReportV2Data
- type VersionReportV2FieldChange
- type VersionReportV2FieldChangeType
- type VersionReportV2Operation
- type VersionReportV2OperationType
- type VersionReportV2Target
Constants ¶
const ENV_VAR_PREFIX = "SPEAKEASY_VERSION_REPORT_LOCATION"
Variables ¶
This section is empty.
Functions ¶
func AddVersionReport ¶
func AddVersionReport(ctx context.Context, report VersionReport) error
func AddVersionReportV2Target ¶ added in v0.7.0
func AddVersionReportV2Target(ctx context.Context, target VersionReportV2Target) error
AddVersionReportV2Target appends a single target's changelog data to the V2 report file. Multiple calls with different targets will accumulate in the same file. Returns nil if the V1 environment variable is not set (graceful degradation).
func MustGenerate ¶ added in v0.2.0
Types ¶
type MergedVersionReport ¶
type MergedVersionReport struct {
Reports []VersionReport
}
func (*MergedVersionReport) GetCommitMarkdownSection ¶ added in v0.6.1
func (m *MergedVersionReport) GetCommitMarkdownSection() string
func (*MergedVersionReport) GetMarkdownSection ¶ added in v0.4.0
func (m *MergedVersionReport) GetMarkdownSection() string
func (*MergedVersionReport) MustGenerate ¶
func (m *MergedVersionReport) MustGenerate() bool
type VersionReport ¶
type VersionReport struct {
Key string `json:"key"`
Priority int `json:"priority"`
BumpType BumpType `json:"bump_type"`
NewVersion string `json:"new_version"`
MustGenerate bool `json:"must_generate"`
PRReport string `json:"pr_report"`
CommitReport string `json:"commit_report"`
// contains filtered or unexported fields
}
type VersionReportCapture ¶ added in v0.7.0
type VersionReportCapture struct {
V1 *MergedVersionReport
V2 *VersionReportV2Data
}
VersionReportCapture holds both V1 and V2 version reports.
type VersionReportV2Data ¶ added in v0.7.0
type VersionReportV2Data struct {
Targets []VersionReportV2Target `json:"targets"`
}
VersionReportV2Data is the top-level container for V2 changelog data. It stores structured change information for all targets in a single generation run. This enables more flexible changelog rendering with support for multiple targets and future features like commit templates.
func GetVersionReportV2 ¶ added in v0.7.0
func GetVersionReportV2() (*VersionReportV2Data, error)
GetVersionReportV2 reads all V2 target reports from the file and returns them as a VersionReportV2Data struct. Returns nil if the file doesn't exist or the V1 environment variable is not set.
type VersionReportV2FieldChange ¶ added in v0.7.0
type VersionReportV2FieldChange struct {
Path string `json:"path"` // e.g., "request.email", "response.data.items"
Type VersionReportV2FieldChangeType `json:"type"` // added, removed, changed
IsBreaking bool `json:"is_breaking"` // true if this specific change is breaking
}
VersionReportV2FieldChange represents a single field-level change within an operation.
type VersionReportV2FieldChangeType ¶ added in v0.7.0
type VersionReportV2FieldChangeType string
VersionReportV2FieldChangeType indicates what kind of change happened to a field.
const ( FieldAdded VersionReportV2FieldChangeType = "added" FieldRemoved VersionReportV2FieldChangeType = "removed" FieldChanged VersionReportV2FieldChangeType = "changed" )
type VersionReportV2Operation ¶ added in v0.7.0
type VersionReportV2Operation struct {
Name string `json:"name"` // e.g., "sdk.createUser()", "Sdk.Inner.ComplexOperation()"
Type VersionReportV2OperationType `json:"type"` // added, removed, modified, deprecated
IsBreaking bool `json:"is_breaking"` // true if any child change is breaking
Changes []VersionReportV2FieldChange `json:"changes"` // list of field-level changes (empty for added/removed operations)
}
VersionReportV2Operation represents changes to a single SDK operation/method.
type VersionReportV2OperationType ¶ added in v0.7.0
type VersionReportV2OperationType string
VersionReportV2OperationType indicates what kind of change happened to an operation.
const ( OperationAdded VersionReportV2OperationType = "added" OperationRemoved VersionReportV2OperationType = "removed" OperationModified VersionReportV2OperationType = "modified" OperationDeprecated VersionReportV2OperationType = "deprecated" )
type VersionReportV2Target ¶ added in v0.7.0
type VersionReportV2Target struct {
TargetName string `json:"target_name"` // e.g., "typescript", "go", "python"
PackageName string `json:"package_name,omitempty"` // e.g., "@vercel/sdk", "github.com/vercel/sdk-go"
PreviousVersion string `json:"previous_version,omitempty"` // e.g., "1.23.7"
NewVersion string `json:"new_version"` // e.g., "1.23.8"
GeneratedAt string `json:"generated_at,omitempty"` // ISO8601 timestamp
Operations []VersionReportV2Operation `json:"operations"` // List of changed operations
}
VersionReportV2Target represents the changes made to a single SDK target.