Documentation
¶
Overview ¶
Package checker detects breaking changes and generates changelog messages between OpenAPI specifications.
Overview ¶
The checker analyzes a diff report (from the diff package) and applies a set of rules to detect breaking changes and other notable differences. It supports both path operations and webhooks.
Usage ¶
The main entry point is CheckBackwardCompatibility:
diffReport, _ := diff.Get(config, spec1, spec2) changes := checker.CheckBackwardCompatibility(checker.NewConfig(checker.GetAllRules()), diffReport, operationsSources)
Configuration ¶
Config controls which checks run and their severity levels:
- Checks: the list of BackwardCompatibilityCheck functions to run
- LogLevels: override default severity (ERR, WARN, INFO) for specific rule IDs
- MinSunsetBetaDays/MinSunsetStableDays: minimum deprecation periods
Use NewConfig with GetAllRules() for all checks, or GetDefaultRules() for breaking changes only.
Severity Levels ¶
Each rule has a default severity level:
- ERR: breaking change that will break existing clients
- WARN: potentially breaking change that may affect some clients
- INFO: non-breaking change for changelog purposes
Rules ¶
Rules are defined in rules.go with metadata including:
- Direction: whether the rule applies to requests, responses, or neither
- Area: the OpenAPI object the rule concerns (schema, parameters, requestBody, responses, paths, headers, security, tags, or components)
- Kind: the aspect of the contract that changed (existence, requiredness, mutability, type, constraints, values, structure, or lifecycle)
- Action: add, remove, change, generalize, specialize, increase, decrease, set
This metadata enables filtering and categorization of changes.
Webhooks ¶
Webhooks are handled by merging modified webhooks into PathsDiff with a "webhook:" prefix, allowing all path/operation rules to apply without duplication. Added/deleted webhooks are handled separately by WebhookUpdatedCheck since PathsDiff.Added/Deleted require lookup in openapi3.Paths objects that don't contain webhooks.
Localization ¶
Change messages support localization via the localizations package (generated from localizations_src). Messages use format strings with placeholders for dynamic values.
Index ¶
- Constants
- func CompareChanges(a, b Change) int
- func GetAllRuleIds() []string
- func GetCheckLevels() map[string]Level
- func GetOptionalRuleIds() []string
- func GetSeverityLevels(source io.Reader) (map[string]Level, error)
- func GetSupportedColorValues() []string
- func GetSupportedStabilityLevels() []string
- func IsColorEnabled(colorMode ColorMode) bool
- func IsDecreased(from any, to any) bool
- func IsDecreasedValue(diff *diff.ValueDiff) bool
- func IsIncreased(from any, to any) bool
- func IsIncreasedValue(diff *diff.ValueDiff) bool
- func OperationFieldSources(operationsSources *diff.OperationsSourcesMap, operationItem *diff.MethodDiff, ...) (*Source, *Source)
- func ParameterFieldSources(operationsSources *diff.OperationsSourcesMap, operationItem *diff.MethodDiff, ...) (*Source, *Source)
- func ParameterSources(operationsSources *diff.OperationsSourcesMap, operationItem *diff.MethodDiff, ...) (*Source, *Source)
- func ProcessSeverityLevels(file string) (map[string]Level, error)
- func ResponseSources(operationsSources *diff.OperationsSourcesMap, operationItem *diff.MethodDiff, ...) (*Source, *Source)
- func SchemaAddedItemSources(operationsSources *diff.OperationsSourcesMap, operationItem *diff.MethodDiff, ...) (*Source, *Source)
- func SchemaDeletedItemSources(operationsSources *diff.OperationsSourcesMap, operationItem *diff.MethodDiff, ...) (*Source, *Source)
- func SchemaFieldSources(operationsSources *diff.OperationsSourcesMap, operationItem *diff.MethodDiff, ...) (*Source, *Source)
- func SchemaSources(operationsSources *diff.OperationsSourcesMap, operationItem *diff.MethodDiff, ...) (*Source, *Source)
- func SetPipedOutput(val *bool) *bool
- func SubschemaSources(operationsSources *diff.OperationsSourcesMap, operationItem *diff.MethodDiff, ...) (*Source, *Source)
- type Action
- type ApiChange
- func (c ApiChange) GetArgs() []any
- func (c ApiChange) GetComment(l Localizer) string
- func (c ApiChange) GetId() string
- func (c ApiChange) GetLevel() Level
- func (c ApiChange) GetOperation() string
- func (c ApiChange) GetOperationId() string
- func (c ApiChange) GetPath() string
- func (c ApiChange) GetSection() string
- func (c ApiChange) GetSource() string
- func (c ApiChange) GetSourceColumn() int
- func (c ApiChange) GetSourceColumnEnd() int
- func (c ApiChange) GetSourceFile() string
- func (c ApiChange) GetSourceLine() int
- func (c ApiChange) GetSourceLineEnd() int
- func (c ApiChange) GetText(l Localizer) string
- func (c ApiChange) GetUncolorizedText(l Localizer) string
- func (c ApiChange) IsBreaking() bool
- func (c ApiChange) MatchIgnore(ignorePath, ignoreLine string, l Localizer) bool
- func (c ApiChange) MultiLineError(l Localizer, colorMode ColorMode) string
- func (c ApiChange) SingleLineError(l Localizer, colorMode ColorMode) string
- func (c ApiChange) WithDetails(details string) ApiChange
- func (a ApiChange) WithSources(baseSource, revisionSource *Source) ApiChange
- type Area
- type BackwardCompatibilityCheck
- type BackwardCompatibilityChecks
- type BackwardCompatibilityRule
- type BackwardCompatibilityRules
- type Change
- type Changes
- func APIAddedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func APIComponentsSchemaRemovedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func APIComponentsSecurityUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func APIDeprecationCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func APIOperationIdUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func APIRemovedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func APISecurityUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func APISunsetChangedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func APITagUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func AddedRequestBodyCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func CheckBackwardCompatibility(config *Config, diffReport *diff.Diff, ...) Changes
- func CheckBackwardCompatibilityUntilLevel(config *Config, diffReport *diff.Diff, ...) Changes
- func MediaTypeSchemaExistenceCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func NewRequestNonPathDefaultParameterCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func NewRequestNonPathParameterCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func NewRequestPathParameterCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func NewRequiredRequestHeaderPropertyCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ProcessIgnoredBackwardCompatibilityErrors(level Level, errs Changes, ignoreFile string, l Localizer) (Changes, error)
- func RequestBodyBecameEnumCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestBodyEnumValueRemovedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestBodyMediaTypeChangedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestBodyRemovedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestBodyRequiredUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestDiscriminatorUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestHeaderPropertyBecameEnumCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestHeaderPropertyBecameRequiredCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestParameterBecameEnumCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestParameterDefaultValueChangedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestParameterDeprecationCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestParameterEnumValueUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestParameterListOfTypesChangedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestParameterMaxItemsUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestParameterMaxLengthSetCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestParameterMaxLengthUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestParameterMaxSetCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestParameterMaxUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestParameterMinItemsSetCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestParameterMinItemsUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestParameterMinLengthUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestParameterMinSetCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestParameterMinUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestParameterPatternAddedOrChangedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestParameterRemovedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestParameterRequiredValueUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestParameterSunsetChangedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestParameterTypeChangedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestParameterXExtensibleEnumValueRemovedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestPropertyAllOfUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestPropertyAnyOfUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestPropertyBecameEnumCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestPropertyBecameNotNullableCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestPropertyConstChangedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestPropertyContainsUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestPropertyContentUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestPropertyDefaultValueChangedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestPropertyDependentRequiredChangedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestPropertyDependentSchemasUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestPropertyDeprecationCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestPropertyEnumValueUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestPropertyIfUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestPropertyListOfTypesChangedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestPropertyMaxDecreasedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestPropertyMaxLengthSetCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestPropertyMaxLengthUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestPropertyMaxSetCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestPropertyMinIncreasedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestPropertyMinItemsIncreasedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestPropertyMinItemsSetCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestPropertyMinLengthUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestPropertyMinSetCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestPropertyOneOfUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestPropertyPatternPropertiesUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestPropertyPatternUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestPropertyPrefixItemsUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestPropertyPropertyNamesUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestPropertyRequiredUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestPropertyStabilityUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestPropertyTypeChangedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestPropertyUnevaluatedUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestPropertyUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestPropertyWriteOnlyReadOnlyCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestPropertyXExtensibleEnumValueRemovedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponseDiscriminatorUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponseHeaderAddedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponseHeaderBecameOptionalCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponseHeaderRemovedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponseMediaTypeEnumValueRemovedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponseMediaTypeNameUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponseMediaTypeUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponseNonSuccessStatusUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponseOptionalPropertyUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponseOptionalPropertyWriteOnlyReadOnlyCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponseParameterEnumValueRemovedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponsePatternAddedOrChangedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponsePropertyAllOfUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponsePropertyAnyOfUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponsePropertyBecameNullableCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponsePropertyBecameOptionalCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponsePropertyBecameRequiredCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponsePropertyConstChangedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponsePropertyContainsUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponsePropertyContentUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponsePropertyDefaultValueChangedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponsePropertyDependentRequiredChangedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponsePropertyDependentSchemasUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponsePropertyDeprecationCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponsePropertyEnumValueAddedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponsePropertyIfUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponsePropertyListOfTypesChangedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponsePropertyMaxIncreasedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponsePropertyMaxLengthIncreasedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponsePropertyMaxLengthUnsetCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponsePropertyMinDecreasedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponsePropertyMinItemsDecreasedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponsePropertyMinItemsUnsetCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponsePropertyMinLengthDecreasedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponsePropertyOneOfUpdated(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponsePropertyPatternPropertiesUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponsePropertyPrefixItemsUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponsePropertyPropertyNamesUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponsePropertyStabilityUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponsePropertyTypeChangedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponsePropertyUnevaluatedUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponseRequiredPropertyUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponseRequiredPropertyWriteOnlyReadOnlyCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponseSuccessStatusUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func WebhookUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- type ColorMode
- type CommonChange
- type ComponentChange
- func (c ComponentChange) GetArgs() []any
- func (c ComponentChange) GetComment(l Localizer) string
- func (c ComponentChange) GetId() string
- func (c ComponentChange) GetLevel() Level
- func (ComponentChange) GetOperation() string
- func (ComponentChange) GetOperationId() string
- func (ComponentChange) GetPath() string
- func (c ComponentChange) GetSection() string
- func (c ComponentChange) GetSource() string
- func (c ComponentChange) GetSourceColumn() int
- func (c ComponentChange) GetSourceColumnEnd() int
- func (c ComponentChange) GetSourceFile() string
- func (c ComponentChange) GetSourceLine() int
- func (c ComponentChange) GetSourceLineEnd() int
- func (c ComponentChange) GetText(l Localizer) string
- func (c ComponentChange) GetUncolorizedText(l Localizer) string
- func (c ComponentChange) IsBreaking() bool
- func (c ComponentChange) MatchIgnore(ignorePath, ignoreLine string, l Localizer) bool
- func (c ComponentChange) MultiLineError(l Localizer, colorMode ColorMode) string
- func (c ComponentChange) SingleLineError(l Localizer, colorMode ColorMode) string
- func (c ComponentChange) WithSources(baseSource, revisionSource *Source) ComponentChange
- type Config
- type Direction
- type Kind
- type Level
- type Localizer
- type Option
- func WithAttributes(attributes []string) Option
- func WithChecks(checks BackwardCompatibilityChecks) Option
- func WithDeprecation(deprecationDaysBeta uint, deprecationDaysStable uint) Option
- func WithOptionalCheck(id string) Option
- func WithOptionalChecks(ids []string) Option
- func WithSeverityLevels(severityLevels map[string]Level) Option
- func WithSingleCheck(check BackwardCompatibilityCheck) Option
- func WithStabilityLevel(level string) Option
- type SecurityChange
- func (c SecurityChange) GetArgs() []any
- func (c SecurityChange) GetComment(l Localizer) string
- func (c SecurityChange) GetId() string
- func (c SecurityChange) GetLevel() Level
- func (r SecurityChange) GetOperation() string
- func (SecurityChange) GetOperationId() string
- func (SecurityChange) GetPath() string
- func (c SecurityChange) GetSection() string
- func (c SecurityChange) GetSource() string
- func (c SecurityChange) GetSourceColumn() int
- func (c SecurityChange) GetSourceColumnEnd() int
- func (c SecurityChange) GetSourceFile() string
- func (c SecurityChange) GetSourceLine() int
- func (c SecurityChange) GetSourceLineEnd() int
- func (c SecurityChange) GetText(l Localizer) string
- func (c SecurityChange) GetUncolorizedText(l Localizer) string
- func (c SecurityChange) IsBreaking() bool
- func (c SecurityChange) MatchIgnore(ignorePath, ignoreLine string, l Localizer) bool
- func (c SecurityChange) MultiLineError(l Localizer, colorMode ColorMode) string
- func (c SecurityChange) SingleLineError(l Localizer, colorMode ColorMode) string
- func (c SecurityChange) WithSources(baseSource, revisionSource *Source) SecurityChange
- type Source
- func NewEmptySource() *Source
- func NewSource(file string, line int, column int) *Source
- func NewSourceFromField(operationsSources *diff.OperationsSourcesMap, operation *openapi3.Operation, ...) *Source
- func NewSourceFromOrigin(operationsSources *diff.OperationsSourcesMap, operation *openapi3.Operation, ...) *Source
- func NewSourceFromSequenceItem(operationsSources *diff.OperationsSourcesMap, operation *openapi3.Operation, ...) *Source
- func SchemaMapItemSource(operationsSources *diff.OperationsSourcesMap, operation *openapi3.Operation, ...) *Source
- type StabilityLevel
Examples ¶
Constants ¶
const ( AddedRequiredRequestBodyId = "request-body-added-required" AddedOptionalRequestBodyId = "request-body-added-optional" )
const ( EndpointReactivatedId = "endpoint-reactivated" APIDeprecatedSunsetParseId = "api-deprecated-sunset-parse" APIDeprecatedSunsetMissingId = "api-deprecated-sunset-missing" APIInvalidStabilityLevelId = "api-invalid-stability-level" APISunsetDateTooSmallId = "api-sunset-date-too-small" EndpointDeprecatedId = "endpoint-deprecated" EndpointDeprecatedWithSunsetId = "endpoint-deprecated-with-sunset" )
const ( APIOperationIdRemovedId = "api-operation-id-removed" APIOperationIdAddId = "api-operation-id-added" )
const ( APIPathRemovedWithoutDeprecationId = "api-path-removed-without-deprecation" APIPathRemovedWithDeprecationId = "api-path-removed-with-deprecation" APIPathSunsetParseId = "api-path-sunset-parse" APIPathRemovedBeforeSunsetId = "api-path-removed-before-sunset" APIRemovedWithoutDeprecationId = "api-removed-without-deprecation" APIRemovedWithDeprecationId = "api-removed-with-deprecation" APIRemovedBeforeSunsetId = "api-removed-before-sunset" )
const ( APISecurityRemovedCheckId = "api-security-removed" APISecurityAddedCheckId = "api-security-added" APISecurityScopeAddedId = "api-security-scope-added" APISecurityScopeRemovedId = "api-security-scope-removed" APIGlobalSecurityRemovedCheckId = "api-global-security-removed" APIGlobalSecurityAddedCheckId = "api-global-security-added" APIGlobalSecurityScopeAddedId = "api-global-security-scope-added" APIGlobalSecurityScopeRemovedId = "api-global-security-scope-removed" )
const ( APIStabilityDecreasedId = "api-stability-decreased" APIStabilityIncreasedId = "api-stability-increased" )
const ( APISunsetDeletedId = "sunset-deleted" APISunsetDateChangedTooSmallId = "api-sunset-date-changed-too-small" )
const ( StabilityDraft = "draft" StabilityAlpha = "alpha" StabilityBeta = "beta" StabilityStable = "stable" )
const ( // Deprecated: use StabilityDraft. STABILITY_DRAFT = StabilityDraft // Deprecated: use StabilityAlpha. STABILITY_ALPHA = StabilityAlpha // Deprecated: use StabilityBeta. STABILITY_BETA = StabilityBeta // Deprecated: use StabilityStable. STABILITY_STABLE = StabilityStable )
const ( APITagRemovedId = "api-tag-removed" APITagAddedId = "api-tag-added" )
const ( APISchemasRemovedId = "api-schema-removed" ComponentSchemas = "schemas" )
const ( APIComponentsSecurityRemovedId = "api-security-component-removed" APIComponentsSecurityAddedId = "api-security-component-added" APIComponentsSecurityComponentOauthUrlUpdatedId = "api-security-component-oauth-url-changed" APIComponentsSecurityTypeUpdatedId = "api-security-component-type-changed" APIComponentsSecurityOauthTokenUrlUpdatedId = "api-security-component-oauth-token-url-changed" APIComponentSecurityOauthScopeAddedId = "api-security-component-oauth-scope-added" APIComponentSecurityOauthScopeRemovedId = "api-security-component-oauth-scope-removed" APIComponentSecurityOauthScopeUpdatedId = "api-security-component-oauth-scope-changed" )
const ( RequestBodyMediaTypeSchemaAddedId = "request-body-media-type-schema-added" RequestBodyMediaTypeSchemaRemovedId = "request-body-media-type-schema-removed" ResponseBodyMediaTypeSchemaAddedId = "response-body-media-type-schema-added" ResponseBodyMediaTypeSchemaRemovedId = "response-body-media-type-schema-removed" )
const ( NewRequiredRequestDefaultParameterToExistingPathId = "new-required-request-default-parameter-to-existing-path" NewOptionalRequestDefaultParameterToExistingPathId = "new-optional-request-default-parameter-to-existing-path" )
const ( NewRequiredRequestParameterId = "new-required-request-parameter" NewOptionalRequestParameterId = "new-optional-request-parameter" )
const ( RequestPropertyStabilityDecreasedId = "request-property-stability-decreased" RequestPropertyStabilityIncreasedId = "request-property-stability-increased" ResponsePropertyStabilityDecreasedId = "response-property-stability-decreased" ResponsePropertyStabilityIncreasedId = "response-property-stability-increased" )
const ( RequestBodyMediaTypeAddedId = "request-body-media-type-added" RequestBodyMediaTypeRemovedId = "request-body-media-type-removed" )
const ( RequestBodyBecameOptionalId = "request-body-became-optional" RequestBodyBecameRequiredId = "request-body-became-required" )
const ( RequestBodyDiscriminatorAddedId = "request-body-discriminator-added" RequestBodyDiscriminatorRemovedId = "request-body-discriminator-removed" RequestBodyDiscriminatorPropertyNameChangedId = "request-body-discriminator-property-name-changed" RequestBodyDiscriminatorMappingAddedId = "request-body-discriminator-mapping-added" RequestBodyDiscriminatorMappingDeletedId = "request-body-discriminator-mapping-deleted" RequestBodyDiscriminatorMappingChangedId = "request-body-discriminator-mapping-changed" RequestPropertyDiscriminatorAddedId = "request-property-discriminator-added" RequestPropertyDiscriminatorRemovedId = "request-property-discriminator-removed" RequestPropertyDiscriminatorPropertyNameChangedId = "request-property-discriminator-property-name-changed" RequestPropertyDiscriminatorMappingAddedId = "request-property-discriminator-mapping-added" RequestPropertyDiscriminatorMappingDeletedId = "request-property-discriminator-mapping-deleted" RequestPropertyDiscriminatorMappingChangedId = "request-property-discriminator-mapping-changed" )
const ( RequestParameterReactivatedId = "request-parameter-reactivated" RequestParameterDeprecatedSunsetMissingId = "request-parameter-deprecated-sunset-missing" RequestParameterSunsetDateTooSmallId = "request-parameter-sunset-date-too-small" RequestParameterDeprecatedId = "request-parameter-deprecated" )
const ( RequestParameterEnumValueAddedId = "request-parameter-enum-value-added" RequestParameterEnumValueRemovedId = "request-parameter-enum-value-removed" RequestParameterPropertyEnumValueAddedId = "request-parameter-property-enum-value-added" RequestParameterPropertyEnumValueRemovedId = "request-parameter-property-enum-value-removed" )
const ( RequestParameterListOfTypesWidenedId = "request-parameter-list-of-types-widened" RequestParameterListOfTypesNarrowedId = "request-parameter-list-of-types-narrowed" RequestParameterPropertyListOfTypesWidenedId = "request-parameter-property-list-of-types-widened" RequestParameterPropertyListOfTypesNarrowedId = "request-parameter-property-list-of-types-narrowed" )
const ( RequestParameterPatternAddedId = "request-parameter-pattern-added" RequestParameterPatternRemovedId = "request-parameter-pattern-removed" RequestParameterPatternChangedId = "request-parameter-pattern-changed" RequestParameterPatternGeneralizedId = "request-parameter-pattern-generalized" PatternChangedCommentId = "pattern-changed-warn-comment" PatternAddedCommentId = "pattern-added-error-comment" )
const ( RequestParameterRemovedId = "request-parameter-removed" // this is actually the "without deprecation" case but we leave it as is for backward compatibility RequestParameterRemovedWithDeprecationId = "request-parameter-removed-with-deprecation" RequestParameterSunsetParseId = "request-parameter-sunset-parse" ParameterRemovedBeforeSunsetId = "request-parameter-removed-before-sunset" )
const ( RequestParameterBecomeRequiredId = "request-parameter-became-required" RequestParameterBecomeOptionalId = "request-parameter-became-optional" )
const ( RequestParameterSunsetDeletedId = "request-parameter-sunset-deleted" RequestParameterSunsetDateChangedTooSmallId = "request-parameter-sunset-date-changed-too-small" )
const ( RequestParameterDefaultValueChangedId = "request-parameter-default-value-changed" RequestParameterDefaultValueAddedId = "request-parameter-default-value-added" RequestParameterDefaultValueRemovedId = "request-parameter-default-value-removed" )
const ( RequestParameterMaxItemsIncreasedId = "request-parameter-max-items-increased" RequestParameterMaxItemsDecreasedId = "request-parameter-max-items-decreased" )
const ( RequestParameterMaxLengthDecreasedId = "request-parameter-max-length-decreased" RequestParameterMaxLengthIncreasedId = "request-parameter-max-length-increased" )
const ( RequestParameterMaxSetId = "request-parameter-max-set" RequestParameterExclusiveMaxSetId = "request-parameter-exclusive-max-set" )
const ( RequestParameterMaxDecreasedId = "request-parameter-max-decreased" RequestParameterMaxIncreasedId = "request-parameter-max-increased" RequestParameterExclusiveMaxDecreasedId = "request-parameter-exclusive-max-decreased" RequestParameterExclusiveMaxIncreasedId = "request-parameter-exclusive-max-increased" )
const ( RequestParameterMinItemsIncreasedId = "request-parameter-min-items-increased" RequestParameterMinItemsDecreasedId = "request-parameter-min-items-decreased" )
const ( RequestParameterMinLengthIncreasedId = "request-parameter-min-length-increased" RequestParameterMinLengthDecreasedId = "request-parameter-min-length-decreased" )
const ( RequestParameterMinSetId = "request-parameter-min-set" RequestParameterExclusiveMinSetId = "request-parameter-exclusive-min-set" )
const ( RequestParameterMinIncreasedId = "request-parameter-min-increased" RequestParameterMinDecreasedId = "request-parameter-min-decreased" RequestParameterExclusiveMinIncreasedId = "request-parameter-exclusive-min-increased" RequestParameterExclusiveMinDecreasedId = "request-parameter-exclusive-min-decreased" )
const ( RequestParameterTypeChangedId = "request-parameter-type-changed" RequestParameterTypeGeneralizedId = "request-parameter-type-generalized" RequestParameterPropertyTypeChangedId = "request-parameter-property-type-changed" RequestParameterPropertyTypeGeneralizedId = "request-parameter-property-type-generalized" RequestParameterPropertyTypeSpecializedId = "request-parameter-property-type-specialized" RequestParameterPropertyTypeChangedCommentId = "request-parameter-property-type-changed-warn-comment" RequestParameterTypeFormExplodeArrayCommentId = "request-parameter-type-form-explode-array-comment" )
const ( RequestBodyAllOfAddedId = "request-body-all-of-added" RequestBodyAllOfRemovedId = "request-body-all-of-removed" RequestPropertyAllOfAddedId = "request-property-all-of-added" RequestPropertyAllOfRemovedId = "request-property-all-of-removed" RequestBodyAllOfAddedAnnotationOnlyId = "request-body-all-of-added-annotation-only" RequestBodyAllOfRemovedAnnotationOnlyId = "request-body-all-of-removed-annotation-only" RequestPropertyAllOfAddedAnnotationOnlyId = "request-property-all-of-added-annotation-only" RequestPropertyAllOfRemovedAnnotationOnlyId = "request-property-all-of-removed-annotation-only" )
const ( RequestBodyAnyOfAddedId = "request-body-any-of-added" RequestBodyAnyOfRemovedId = "request-body-any-of-removed" RequestPropertyAnyOfAddedId = "request-property-any-of-added" RequestPropertyAnyOfRemovedId = "request-property-any-of-removed" )
const ( RequestBodyBecomeNotNullableId = "request-body-became-not-nullable" RequestBodyBecomeNullableId = "request-body-became-nullable" RequestPropertyBecomeNotNullableId = "request-property-became-not-nullable" RequestPropertyBecomeNullableId = "request-property-became-nullable" )
const ( RequestBodyConstAddedId = "request-body-const-added" RequestBodyConstRemovedId = "request-body-const-removed" RequestBodyConstChangedId = "request-body-const-changed" RequestPropertyConstAddedId = "request-property-const-added" RequestPropertyConstRemovedId = "request-property-const-removed" RequestPropertyConstChangedId = "request-property-const-changed" )
const ( RequestBodyContainsAddedId = "request-body-contains-added" RequestBodyContainsRemovedId = "request-body-contains-removed" RequestBodyMinContainsIncreasedId = "request-body-min-contains-increased" RequestBodyMinContainsDecreasedId = "request-body-min-contains-decreased" RequestBodyMaxContainsIncreasedId = "request-body-max-contains-increased" RequestBodyMaxContainsDecreasedId = "request-body-max-contains-decreased" RequestPropertyContainsAddedId = "request-property-contains-added" RequestPropertyContainsRemovedId = "request-property-contains-removed" RequestPropertyMinContainsIncreasedId = "request-property-min-contains-increased" RequestPropertyMinContainsDecreasedId = "request-property-min-contains-decreased" RequestPropertyMaxContainsIncreasedId = "request-property-max-contains-increased" RequestPropertyMaxContainsDecreasedId = "request-property-max-contains-decreased" )
const ( RequestBodyContentSchemaAddedId = "request-body-content-schema-added" RequestBodyContentSchemaRemovedId = "request-body-content-schema-removed" RequestBodyContentMediaTypeChangedId = "request-body-content-media-type-changed" RequestBodyContentEncodingChangedId = "request-body-content-encoding-changed" RequestPropertyContentSchemaAddedId = "request-property-content-schema-added" RequestPropertyContentSchemaRemovedId = "request-property-content-schema-removed" RequestPropertyContentMediaTypeChangedId = "request-property-content-media-type-changed" RequestPropertyContentEncodingChangedId = "request-property-content-encoding-changed" )
const ( RequestBodyDefaultValueAddedId = "request-body-default-value-added" RequestBodyDefaultValueRemovedId = "request-body-default-value-removed" RequestBodyDefaultValueChangedId = "request-body-default-value-changed" RequestPropertyDefaultValueAddedId = "request-property-default-value-added" RequestPropertyDefaultValueRemovedId = "request-property-default-value-removed" RequestPropertyDefaultValueChangedId = "request-property-default-value-changed" )
const ( RequestBodyDependentRequiredAddedId = "request-body-dependent-required-added" RequestBodyDependentRequiredRemovedId = "request-body-dependent-required-removed" RequestBodyDependentRequiredChangedId = "request-body-dependent-required-changed" RequestPropertyDependentRequiredAddedId = "request-property-dependent-required-added" RequestPropertyDependentRequiredRemovedId = "request-property-dependent-required-removed" RequestPropertyDependentRequiredChangedId = "request-property-dependent-required-changed" )
const ( RequestBodyDependentSchemaAddedId = "request-body-dependent-schema-added" RequestBodyDependentSchemaRemovedId = "request-body-dependent-schema-removed" RequestPropertyDependentSchemaAddedId = "request-property-dependent-schema-added" RequestPropertyDependentSchemaRemovedId = "request-property-dependent-schema-removed" )
const ( RequestPropertyDeprecatedId = "request-property-deprecated" RequestPropertyDeprecatedWithSunsetId = "request-property-deprecated-with-sunset" RequestPropertyDeprecatedSunsetMissingId = "request-property-deprecated-sunset-missing" RequestPropertyDeprecatedInvalidId = "request-property-deprecated-sunset-invalid" RequestPropertyReactivatedId = "request-property-reactivated" RequestPropertySunsetDateTooSmallId = "request-property-sunset-date-too-small" )
const ( RequestPropertyEnumValueRemovedId = "request-property-enum-value-removed" RequestReadOnlyPropertyEnumValueRemovedId = "request-read-only-property-enum-value-removed" RequestPropertyEnumValueAddedId = "request-property-enum-value-added" )
const ( RequestBodyIfAddedId = "request-body-if-added" RequestBodyIfRemovedId = "request-body-if-removed" RequestBodyThenAddedId = "request-body-then-added" RequestBodyThenRemovedId = "request-body-then-removed" RequestBodyElseAddedId = "request-body-else-added" RequestBodyElseRemovedId = "request-body-else-removed" RequestPropertyIfAddedId = "request-property-if-added" RequestPropertyIfRemovedId = "request-property-if-removed" RequestPropertyThenAddedId = "request-property-then-added" RequestPropertyThenRemovedId = "request-property-then-removed" RequestPropertyElseAddedId = "request-property-else-added" RequestPropertyElseRemovedId = "request-property-else-removed" )
const ( RequestBodyListOfTypesWidenedId = "request-body-list-of-types-widened" RequestBodyListOfTypesNarrowedId = "request-body-list-of-types-narrowed" RequestPropertyListOfTypesWidenedId = "request-property-list-of-types-widened" RequestPropertyListOfTypesNarrowedId = "request-property-list-of-types-narrowed" )
const ( RequestBodyMaxLengthSetId = "request-body-max-length-set" RequestPropertyMaxLengthSetId = "request-property-max-length-set" )
const ( RequestBodyMaxLengthDecreasedId = "request-body-max-length-decreased" RequestBodyMaxLengthIncreasedId = "request-body-max-length-increased" RequestPropertyMaxLengthDecreasedId = "request-property-max-length-decreased" RequestReadOnlyPropertyMaxLengthDecreasedId = "request-read-only-property-max-length-decreased" RequestPropertyMaxLengthIncreasedId = "request-property-max-length-increased" )
const ( RequestBodyMaxSetId = "request-body-max-set" RequestPropertyMaxSetId = "request-property-max-set" RequestBodyExclusiveMaxSetId = "request-body-exclusive-max-set" RequestPropertyExclusiveMaxSetId = "request-property-exclusive-max-set" )
const ( RequestBodyMaxDecreasedId = "request-body-max-decreased" RequestBodyMaxIncreasedId = "request-body-max-increased" RequestPropertyMaxDecreasedId = "request-property-max-decreased" RequestReadOnlyPropertyMaxDecreasedId = "request-read-only-property-max-decreased" RequestPropertyMaxIncreasedId = "request-property-max-increased" RequestBodyExclusiveMaxDecreasedId = "request-body-exclusive-max-decreased" RequestBodyExclusiveMaxIncreasedId = "request-body-exclusive-max-increased" RequestPropertyExclusiveMaxDecreasedId = "request-property-exclusive-max-decreased" RequestReadOnlyPropertyExclusiveMaxDecreasedId = "request-read-only-property-exclusive-max-decreased" RequestPropertyExclusiveMaxIncreasedId = "request-property-exclusive-max-increased" )
const ( RequestBodyMinItemsIncreasedId = "request-body-min-items-increased" RequestPropertyMinItemsIncreasedId = "request-property-min-items-increased" )
const ( RequestBodyMinItemsSetId = "request-body-min-items-set" RequestPropertyMinItemsSetId = "request-property-min-items-set" )
const ( RequestBodyMinLengthIncreasedId = "request-body-min-length-increased" RequestBodyMinLengthDecreasedId = "request-body-min-length-decreased" RequestPropertyMinLengthIncreasedId = "request-property-min-length-increased" RequestPropertyMinLengthDecreasedId = "request-property-min-length-decreased" )
const ( RequestBodyMinSetId = "request-body-min-set" RequestPropertyMinSetId = "request-property-min-set" RequestBodyExclusiveMinSetId = "request-body-exclusive-min-set" RequestPropertyExclusiveMinSetId = "request-property-exclusive-min-set" )
const ( RequestBodyMinIncreasedId = "request-body-min-increased" RequestBodyMinDecreasedId = "request-body-min-decreased" RequestPropertyMinIncreasedId = "request-property-min-increased" RequestReadOnlyPropertyMinIncreasedId = "request-read-only-property-min-increased" RequestPropertyMinDecreasedId = "request-property-min-decreased" RequestBodyExclusiveMinIncreasedId = "request-body-exclusive-min-increased" RequestBodyExclusiveMinDecreasedId = "request-body-exclusive-min-decreased" RequestPropertyExclusiveMinIncreasedId = "request-property-exclusive-min-increased" RequestReadOnlyPropertyExclusiveMinIncreasedId = "request-read-only-property-exclusive-min-increased" RequestPropertyExclusiveMinDecreasedId = "request-property-exclusive-min-decreased" )
const ( RequestBodyOneOfAddedId = "request-body-one-of-added" RequestBodyOneOfRemovedId = "request-body-one-of-removed" RequestPropertyOneOfAddedId = "request-property-one-of-added" RequestPropertyOneOfRemovedId = "request-property-one-of-removed" )
const ( RequestPropertyPatternRemovedId = "request-property-pattern-removed" RequestPropertyPatternAddedId = "request-property-pattern-added" RequestPropertyPatternChangedId = "request-property-pattern-changed" RequestPropertyPatternGeneralizedId = "request-property-pattern-generalized" )
const ( RequestBodyPatternPropertyAddedId = "request-body-pattern-property-added" RequestBodyPatternPropertyRemovedId = "request-body-pattern-property-removed" RequestPropertyPatternPropertyAddedId = "request-property-pattern-property-added" RequestPropertyPatternPropertyRemovedId = "request-property-pattern-property-removed" )
const ( RequestBodyPrefixItemsAddedId = "request-body-prefix-items-added" RequestBodyPrefixItemsRemovedId = "request-body-prefix-items-removed" RequestPropertyPrefixItemsAddedId = "request-property-prefix-items-added" RequestPropertyPrefixItemsRemovedId = "request-property-prefix-items-removed" )
const ( RequestBodyPropertyNamesAddedId = "request-body-property-names-added" RequestBodyPropertyNamesRemovedId = "request-body-property-names-removed" RequestPropertyPropertyNamesAddedId = "request-property-property-names-added" RequestPropertyPropertyNamesRemovedId = "request-property-property-names-removed" )
const ( RequestPropertyBecameRequiredId = "request-property-became-required" RequestPropertyBecameRequiredWithDefaultId = "request-property-became-required-with-default" RequestPropertyBecameOptionalId = "request-property-became-optional" )
const ( RequestBodyTypeGeneralizedId = "request-body-type-generalized" RequestBodyTypeChangedId = "request-body-type-changed" RequestPropertyTypeGeneralizedId = "request-property-type-generalized" RequestPropertyTypeChangedId = "request-property-type-changed" )
const ( RequestBodyUnevaluatedItemsAddedId = "request-body-unevaluated-items-added" RequestBodyUnevaluatedItemsRemovedId = "request-body-unevaluated-items-removed" RequestBodyUnevaluatedPropertiesAddedId = "request-body-unevaluated-properties-added" RequestBodyUnevaluatedPropertiesRemovedId = "request-body-unevaluated-properties-removed" RequestPropertyUnevaluatedItemsAddedId = "request-property-unevaluated-items-added" RequestPropertyUnevaluatedItemsRemovedId = "request-property-unevaluated-items-removed" RequestPropertyUnevaluatedPropertiesAddedId = "request-property-unevaluated-properties-added" RequestPropertyUnevaluatedPropertiesRemovedId = "request-property-unevaluated-properties-removed" )
const ( RequestPropertyRemovedId = "request-property-removed" NewRequiredRequestPropertyId = "new-required-request-property" NewRequiredRequestPropertyWithDefaultId = "new-required-request-property-with-default" NewOptionalRequestPropertyId = "new-optional-request-property" RequestBodyWrappedInOneOfId = "request-body-wrapped-in-one-of" )
const ( RequestOptionalPropertyBecameNonWriteOnlyCheckId = "request-optional-property-became-not-write-only" RequestOptionalPropertyBecameWriteOnlyCheckId = "request-optional-property-became-write-only" RequestOptionalPropertyBecameReadOnlyCheckId = "request-optional-property-became-read-only" RequestOptionalPropertyBecameNonReadOnlyCheckId = "request-optional-property-became-not-read-only" RequestRequiredPropertyBecameNonWriteOnlyCheckId = "request-required-property-became-not-write-only" RequestRequiredPropertyBecameWriteOnlyCheckId = "request-required-property-became-write-only" RequestRequiredPropertyBecameReadOnlyCheckId = "request-required-property-became-read-only" RequestRequiredPropertyBecameNonReadOnlyCheckId = "request-required-property-became-not-read-only" )
const ( ResponseBodyDiscriminatorAddedId = "response-body-discriminator-added" ResponseBodyDiscriminatorRemovedId = "response-body-discriminator-removed" ResponseBodyDiscriminatorPropertyNameChangedId = "response-body-discriminator-property-name-changed" ResponseBodyDiscriminatorMappingAddedId = "response-body-discriminator-mapping-added" ResponseBodyDiscriminatorMappingDeletedId = "response-body-discriminator-mapping-deleted" ResponseBodyDiscriminatorMappingChangedId = "response-body-discriminator-mapping-changed" ResponsePropertyDiscriminatorAddedId = "response-property-discriminator-added" ResponsePropertyDiscriminatorRemovedId = "response-property-discriminator-removed" ResponsePropertyDiscriminatorPropertyNameChangedId = "response-property-discriminator-property-name-changed" ResponsePropertyDiscriminatorMappingAddedId = "response-property-discriminator-mapping-added" ResponsePropertyDiscriminatorMappingDeletedId = "response-property-discriminator-mapping-deleted" ResponsePropertyDiscriminatorMappingChangedId = "response-property-discriminator-mapping-changed" )
const ( RequiredResponseHeaderRemovedId = "required-response-header-removed" OptionalResponseHeaderRemovedId = "optional-response-header-removed" )
const ( ResponseMediaTypeNameChangedId = "response-media-type-name-changed" ResponseMediaTypeNameGeneralizedId = "response-media-type-name-generalized" ResponseMediaTypeNameSpecializedId = "response-media-type-name-specialized" )
const ( ResponseMediaTypeRemovedId = "response-media-type-removed" ResponseMediaTypeAddedId = "response-media-type-added" )
const ( ResponseOptionalPropertyRemovedId = "response-optional-property-removed" ResponseOptionalWriteOnlyPropertyRemovedId = "response-optional-write-only-property-removed" ResponseOptionalPropertyAddedId = "response-optional-property-added" ResponseOptionalWriteOnlyPropertyAddedId = "response-optional-write-only-property-added" )
const ( ResponseOptionalPropertyBecameNonWriteOnlyId = "response-optional-property-became-not-write-only" ResponseOptionalPropertyBecameWriteOnlyId = "response-optional-property-became-write-only" ResponseOptionalPropertyBecameReadOnlyId = "response-optional-property-became-read-only" ResponseOptionalPropertyBecameNonReadOnlyId = "response-optional-property-became-not-read-only" )
const ( ResponsePropertyPatternAddedId = "response-property-pattern-added" ResponsePropertyPatternChangedId = "response-property-pattern-changed" ResponsePropertyPatternRemovedId = "response-property-pattern-removed" )
const ( ResponseBodyAllOfAddedId = "response-body-all-of-added" ResponseBodyAllOfRemovedId = "response-body-all-of-removed" ResponsePropertyAllOfAddedId = "response-property-all-of-added" ResponsePropertyAllOfRemovedId = "response-property-all-of-removed" ResponseBodyAllOfAddedAnnotationOnlyId = "response-body-all-of-added-annotation-only" ResponseBodyAllOfRemovedAnnotationOnlyId = "response-body-all-of-removed-annotation-only" ResponsePropertyAllOfAddedAnnotationOnlyId = "response-property-all-of-added-annotation-only" ResponsePropertyAllOfRemovedAnnotationOnlyId = "response-property-all-of-removed-annotation-only" )
const ( ResponseBodyAnyOfAddedId = "response-body-any-of-added" ResponseBodyAnyOfRemovedId = "response-body-any-of-removed" ResponsePropertyAnyOfAddedId = "response-property-any-of-added" ResponsePropertyAnyOfRemovedId = "response-property-any-of-removed" )
const ( ResponsePropertyBecameNullableId = "response-property-became-nullable" ResponseBodyBecameNullableId = "response-body-became-nullable" )
const ( ResponsePropertyBecameOptionalId = "response-property-became-optional" ResponseWriteOnlyPropertyBecameOptionalId = "response-write-only-property-became-optional" )
const ( ResponsePropertyBecameRequiredId = "response-property-became-required" ResponseWriteOnlyPropertyBecameRequiredId = "response-write-only-property-became-required" )
const ( ResponseBodyConstAddedId = "response-body-const-added" ResponseBodyConstRemovedId = "response-body-const-removed" ResponseBodyConstChangedId = "response-body-const-changed" ResponsePropertyConstAddedId = "response-property-const-added" ResponsePropertyConstRemovedId = "response-property-const-removed" ResponsePropertyConstChangedId = "response-property-const-changed" )
const ( ResponseBodyContainsAddedId = "response-body-contains-added" ResponseBodyContainsRemovedId = "response-body-contains-removed" ResponseBodyMinContainsIncreasedId = "response-body-min-contains-increased" ResponseBodyMinContainsDecreasedId = "response-body-min-contains-decreased" ResponseBodyMaxContainsIncreasedId = "response-body-max-contains-increased" ResponseBodyMaxContainsDecreasedId = "response-body-max-contains-decreased" ResponsePropertyContainsAddedId = "response-property-contains-added" ResponsePropertyContainsRemovedId = "response-property-contains-removed" ResponsePropertyMinContainsIncreasedId = "response-property-min-contains-increased" ResponsePropertyMinContainsDecreasedId = "response-property-min-contains-decreased" ResponsePropertyMaxContainsIncreasedId = "response-property-max-contains-increased" ResponsePropertyMaxContainsDecreasedId = "response-property-max-contains-decreased" )
const ( ResponseBodyContentSchemaAddedId = "response-body-content-schema-added" ResponseBodyContentSchemaRemovedId = "response-body-content-schema-removed" ResponseBodyContentMediaTypeChangedId = "response-body-content-media-type-changed" ResponseBodyContentEncodingChangedId = "response-body-content-encoding-changed" ResponsePropertyContentSchemaAddedId = "response-property-content-schema-added" ResponsePropertyContentSchemaRemovedId = "response-property-content-schema-removed" ResponsePropertyContentMediaTypeChangedId = "response-property-content-media-type-changed" ResponsePropertyContentEncodingChangedId = "response-property-content-encoding-changed" )
const ( ResponseBodyDefaultValueAddedId = "response-body-default-value-added" ResponseBodyDefaultValueRemovedId = "response-body-default-value-removed" ResponseBodyDefaultValueChangedId = "response-body-default-value-changed" ResponsePropertyDefaultValueAddedId = "response-property-default-value-added" ResponsePropertyDefaultValueRemovedId = "response-property-default-value-removed" ResponsePropertyDefaultValueChangedId = "response-property-default-value-changed" )
const ( ResponseBodyDependentRequiredAddedId = "response-body-dependent-required-added" ResponseBodyDependentRequiredRemovedId = "response-body-dependent-required-removed" ResponseBodyDependentRequiredChangedId = "response-body-dependent-required-changed" ResponsePropertyDependentRequiredAddedId = "response-property-dependent-required-added" ResponsePropertyDependentRequiredRemovedId = "response-property-dependent-required-removed" ResponsePropertyDependentRequiredChangedId = "response-property-dependent-required-changed" )
const ( ResponseBodyDependentSchemaAddedId = "response-body-dependent-schema-added" ResponseBodyDependentSchemaRemovedId = "response-body-dependent-schema-removed" ResponsePropertyDependentSchemaAddedId = "response-property-dependent-schema-added" ResponsePropertyDependentSchemaRemovedId = "response-property-dependent-schema-removed" )
const ( ResponsePropertyDeprecatedId = "response-property-deprecated" ResponsePropertyDeprecatedWithSunsetId = "response-property-deprecated-with-sunset" ResponsePropertyDeprecatedSunsetMissingId = "response-property-deprecated-sunset-missing" ResponsePropertyDeprecatedInvalidId = "response-property-deprecated-sunset-invalid" ResponsePropertyReactivatedId = "response-property-reactivated" ResponsePropertySunsetDateTooSmallId = "response-property-sunset-date-too-small" )
const ( ResponsePropertyEnumValueAddedId = "response-property-enum-value-added" ResponseWriteOnlyPropertyEnumValueAddedId = "response-write-only-property-enum-value-added" )
const ( ResponseBodyIfAddedId = "response-body-if-added" ResponseBodyIfRemovedId = "response-body-if-removed" ResponseBodyThenAddedId = "response-body-then-added" ResponseBodyThenRemovedId = "response-body-then-removed" ResponseBodyElseAddedId = "response-body-else-added" ResponseBodyElseRemovedId = "response-body-else-removed" ResponsePropertyIfAddedId = "response-property-if-added" ResponsePropertyIfRemovedId = "response-property-if-removed" ResponsePropertyThenAddedId = "response-property-then-added" ResponsePropertyThenRemovedId = "response-property-then-removed" ResponsePropertyElseAddedId = "response-property-else-added" ResponsePropertyElseRemovedId = "response-property-else-removed" )
const ( ResponseBodyListOfTypesWidenedId = "response-body-list-of-types-widened" ResponseBodyListOfTypesNarrowedId = "response-body-list-of-types-narrowed" ResponsePropertyListOfTypesWidenedId = "response-property-list-of-types-widened" ResponsePropertyListOfTypesNarrowedId = "response-property-list-of-types-narrowed" )
const ( ResponseBodyMaxIncreasedId = "response-body-max-increased" ResponsePropertyMaxIncreasedId = "response-property-max-increased" ResponseBodyExclusiveMaxIncreasedId = "response-body-exclusive-max-increased" ResponsePropertyExclusiveMaxIncreasedId = "response-property-exclusive-max-increased" )
const ( ResponseBodyMaxLengthIncreasedId = "response-body-max-length-increased" ResponsePropertyMaxLengthIncreasedId = "response-property-max-length-increased" )
const ( ResponseBodyMaxLengthUnsetId = "response-body-max-length-unset" ResponsePropertyMaxLengthUnsetId = "response-property-max-length-unset" )
const ( ResponseBodyMinDecreasedId = "response-body-min-decreased" ResponsePropertyMinDecreasedId = "response-property-min-decreased" ResponseBodyExclusiveMinDecreasedId = "response-body-exclusive-min-decreased" ResponsePropertyExclusiveMinDecreasedId = "response-property-exclusive-min-decreased" )
const ( ResponseBodyMinItemsDecreasedId = "response-body-min-items-decreased" ResponsePropertyMinItemsDecreasedId = "response-property-min-items-decreased" )
const ( ResponseBodyMinItemsUnsetId = "response-body-min-items-unset" ResponsePropertyMinItemsUnsetId = "response-property-min-items-unset" )
const ( ResponseBodyMinLengthDecreasedId = "response-body-min-length-decreased" ResponsePropertyMinLengthDecreasedId = "response-property-min-length-decreased" )
const ( ResponseBodyOneOfAddedId = "response-body-one-of-added" ResponseBodyOneOfRemovedId = "response-body-one-of-removed" ResponsePropertyOneOfAddedId = "response-property-one-of-added" ResponsePropertyOneOfRemovedId = "response-property-one-of-removed" )
const ( ResponseBodyPatternPropertyAddedId = "response-body-pattern-property-added" ResponseBodyPatternPropertyRemovedId = "response-body-pattern-property-removed" ResponsePropertyPatternPropertyAddedId = "response-property-pattern-property-added" ResponsePropertyPatternPropertyRemovedId = "response-property-pattern-property-removed" )
const ( ResponseBodyPrefixItemsAddedId = "response-body-prefix-items-added" ResponseBodyPrefixItemsRemovedId = "response-body-prefix-items-removed" ResponsePropertyPrefixItemsAddedId = "response-property-prefix-items-added" ResponsePropertyPrefixItemsRemovedId = "response-property-prefix-items-removed" )
const ( ResponseBodyPropertyNamesAddedId = "response-body-property-names-added" ResponseBodyPropertyNamesRemovedId = "response-body-property-names-removed" ResponsePropertyPropertyNamesAddedId = "response-property-property-names-added" ResponsePropertyPropertyNamesRemovedId = "response-property-property-names-removed" )
const ( ResponseBodyTypeChangedId = "response-body-type-changed" ResponseBodyTypeGeneralizedId = "response-body-type-generalized" ResponseBodyTypeSpecializedId = "response-body-type-specialized" ResponsePropertyTypeChangedId = "response-property-type-changed" ResponsePropertyTypeGeneralizedId = "response-property-type-generalized" ResponsePropertyTypeSpecializedId = "response-property-type-specialized" )
const ( ResponseBodyUnevaluatedItemsAddedId = "response-body-unevaluated-items-added" ResponseBodyUnevaluatedItemsRemovedId = "response-body-unevaluated-items-removed" ResponseBodyUnevaluatedPropertiesAddedId = "response-body-unevaluated-properties-added" ResponseBodyUnevaluatedPropertiesRemovedId = "response-body-unevaluated-properties-removed" ResponsePropertyUnevaluatedItemsAddedId = "response-property-unevaluated-items-added" ResponsePropertyUnevaluatedItemsRemovedId = "response-property-unevaluated-items-removed" ResponsePropertyUnevaluatedPropertiesAddedId = "response-property-unevaluated-properties-added" ResponsePropertyUnevaluatedPropertiesRemovedId = "response-property-unevaluated-properties-removed" )
const ( ResponseRequiredPropertyRemovedId = "response-required-property-removed" ResponseRequiredWriteOnlyPropertyRemovedId = "response-required-write-only-property-removed" ResponseRequiredPropertyAddedId = "response-required-property-added" ResponseRequiredWriteOnlyPropertyAddedId = "response-required-write-only-property-added" ResponseBodyWrappedInOneOfId = "response-body-wrapped-in-one-of" )
const ( ResponseRequiredPropertyBecameNonWriteOnlyId = "response-required-property-became-not-write-only" ResponseRequiredPropertyBecameWriteOnlyId = "response-required-property-became-write-only" ResponseRequiredPropertyBecameReadOnlyId = "response-required-property-became-read-only" ResponseRequiredPropertyBecameNonReadOnlyId = "response-required-property-became-not-read-only" )
const ( ResponseSuccessStatusRemovedId = "response-success-status-removed" ResponseNonSuccessStatusRemovedId = "response-non-success-status-removed" ResponseSuccessStatusAddedId = "response-success-status-added" ResponseNonSuccessStatusAddedId = "response-non-success-status-added" )
const ( WebhookAddedId = "webhook-added" WebhookRemovedId = "webhook-removed" ComponentWebhooks = "webhooks" )
const ( DefaultBetaDeprecationDays = uint(0) DefaultStableDeprecationDays = uint(0) )
const ComponentSecuritySchemes = "securitySchemes"
const DefaultStabilityLevel = StabilityLevelBeta
DefaultStabilityLevel is the default stability level when none is specified. This matches the documented CLI default of "beta".
const (
EndpointAddedId = "endpoint-added"
)
const (
NewRequestPathParameterId = "new-request-path-parameter"
)
const (
NewRequiredRequestHeaderPropertyId = "new-required-request-header-property"
)
const (
RequestBodyBecameEnumId = "request-body-became-enum"
)
const (
RequestBodyEnumValueRemovedId = "request-body-enum-value-removed"
)
const (
RequestBodyRemovedId = "request-body-removed"
)
const (
RequestHeaderPropertyBecameEnumId = "request-header-property-became-enum"
)
const (
RequestHeaderPropertyBecameRequiredId = "request-header-property-became-required"
)
const (
RequestParameterBecameEnumId = "request-parameter-became-enum"
)
const (
RequestParameterMaxLengthSetId = "request-parameter-max-length-set"
)
const (
RequestParameterMinItemsSetId = "request-parameter-min-items-set"
)
const (
RequestParameterXExtensibleEnumValueRemovedId = "request-parameter-x-extensible-enum-value-removed"
)
const (
RequestPropertyBecameEnumId = "request-property-became-enum"
)
const (
RequestPropertyXExtensibleEnumValueRemovedId = "request-property-x-extensible-enum-value-removed"
)
const (
ResponseHeaderAddedId = "response-header-added"
)
const (
ResponseHeaderBecameOptionalId = "response-header-became-optional"
)
const (
ResponseMediaTypeEnumValueRemovedId = "response-mediatype-enum-value-removed"
)
const (
ResponsePropertyEnumValueRemovedId = "response-property-enum-value-removed"
)
Variables ¶
This section is empty.
Functions ¶
func CompareChanges ¶ added in v1.11.10
func GetAllRuleIds ¶
func GetAllRuleIds() []string
func GetCheckLevels ¶
GetCheckLevels gets levels for all backward compatibility checks
func GetOptionalRuleIds ¶
func GetOptionalRuleIds() []string
func GetSeverityLevels ¶
GetSeverityLevels reads severity levels from a reader and returns a map of severity levels
func GetSupportedColorValues ¶
func GetSupportedColorValues() []string
func GetSupportedStabilityLevels ¶ added in v1.20.0
func GetSupportedStabilityLevels() []string
GetSupportedStabilityLevels returns the list of valid stability level strings.
func IsColorEnabled ¶ added in v1.16.0
IsColorEnabled is the exported form of isColorEnabled. Lets oasdiff packages outside checker (validate, future subcommands) gate their own color logic on the same auto-detect + override convention.
func IsDecreased ¶
func IsDecreasedValue ¶
func IsIncreased ¶
func IsIncreasedValue ¶
func OperationFieldSources ¶ added in v1.12.0
func OperationFieldSources(operationsSources *diff.OperationsSourcesMap, operationItem *diff.MethodDiff, field string) (*Source, *Source)
OperationFieldSources returns source locations from a specific field within operation Origins. Falls back to operation-level sources when the field is not found in origin data.
func ParameterFieldSources ¶ added in v1.12.0
func ParameterFieldSources(operationsSources *diff.OperationsSourcesMap, operationItem *diff.MethodDiff, paramDiff *diff.ParameterDiff, field string) (*Source, *Source)
ParameterFieldSources returns source locations from a specific field within parameter Origins. Falls back to parameter-level sources when the field is not found in origin data.
func ParameterSources ¶ added in v1.12.0
func ParameterSources(operationsSources *diff.OperationsSourcesMap, operationItem *diff.MethodDiff, paramDiff *diff.ParameterDiff) (*Source, *Source)
parameterSources returns source locations from parameter Origins. Falls back to operation-level sources when parameter origin data is unavailable.
func ProcessSeverityLevels ¶
ProcessSeverityLevels reads a file with severity levels and returns a map of severity levels
func ResponseSources ¶ added in v1.12.0
func ResponseSources(operationsSources *diff.OperationsSourcesMap, operationItem *diff.MethodDiff, responseDiff *diff.ResponseDiff) (*Source, *Source)
responseSources returns source locations from response Origins. Falls back to operation-level sources when response origin data is unavailable.
func SchemaAddedItemSources ¶ added in v1.12.0
func SchemaAddedItemSources(operationsSources *diff.OperationsSourcesMap, operationItem *diff.MethodDiff, schemaDiff *diff.SchemaDiff, field string, value string) (*Source, *Source)
SchemaAddedItemSources returns source locations for an added sequence item. Base source is nil, revision source points to the specific added item.
func SchemaDeletedItemSources ¶ added in v1.12.0
func SchemaDeletedItemSources(operationsSources *diff.OperationsSourcesMap, operationItem *diff.MethodDiff, schemaDiff *diff.SchemaDiff, field string, value string) (*Source, *Source)
SchemaDeletedItemSources returns source locations for a deleted sequence item. Base source points to the specific deleted item, revision source is nil.
func SchemaFieldSources ¶ added in v1.12.0
func SchemaFieldSources(operationsSources *diff.OperationsSourcesMap, operationItem *diff.MethodDiff, schemaDiff *diff.SchemaDiff, field string) (*Source, *Source)
schemaFieldSources returns source locations from a specific field within schema Origins. Falls back to schema-level sources when the field is not found in origin data.
func SchemaSources ¶ added in v1.12.0
func SchemaSources(operationsSources *diff.OperationsSourcesMap, operationItem *diff.MethodDiff, schemaDiff *diff.SchemaDiff) (*Source, *Source)
schemaSources returns source locations from schema Origins. Falls back to operation-level sources when schema origin data is unavailable.
func SetPipedOutput ¶
func SubschemaSources ¶ added in v1.15.0
func SubschemaSources(operationsSources *diff.OperationsSourcesMap, operationItem *diff.MethodDiff, schemaDiff *diff.SchemaDiff, field string, baseIndex, revisionIndex int) (*Source, *Source)
SubschemaSources returns source locations for a specific subschema within an allOf/oneOf/anyOf array. For added subschemas, baseIndex should be -1; for deleted subschemas, revisionIndex should be -1.
Types ¶
type ApiChange ¶
type ApiChange struct {
CommonChange
Id string
Args []any
Comment string
Details string
Level Level
Operation string
OperationId string
Path string
Source *load.Source
// DEPRECATED: Will be removed after migration to BaseSource/RevisionSource
SourceFile string
SourceLine int
SourceLineEnd int
SourceColumn int
SourceColumnEnd int
}
ApiChange represnts a change in the Paths Section of an OpenAPI spec
func NewApiChange ¶
func NewApiChange(id string, config *Config, args []any, comment string, operationsSources *diff.OperationsSourcesMap, operation *openapi3.Operation, method, path string) ApiChange
NewApiChange creates a new ApiChange TODO: use opInfo to simplify the function signature
func (ApiChange) GetComment ¶
func (ApiChange) GetOperation ¶
func (ApiChange) GetOperationId ¶
func (ApiChange) GetSection ¶
func (ApiChange) GetSourceColumn ¶
func (ApiChange) GetSourceColumnEnd ¶
func (ApiChange) GetSourceFile ¶
func (ApiChange) GetSourceLine ¶
func (ApiChange) GetSourceLineEnd ¶
func (ApiChange) GetUncolorizedText ¶
func (ApiChange) IsBreaking ¶
func (ApiChange) MatchIgnore ¶
func (ApiChange) MultiLineError ¶
func (ApiChange) SingleLineError ¶
func (ApiChange) WithDetails ¶ added in v1.11.9
WithDetails returns a copy of the ApiChange with Details set
func (ApiChange) WithSources ¶ added in v1.12.0
WithSources returns a copy of the ApiChange with BaseSource and RevisionSource populated
type Area ¶ added in v1.18.3
type Area int8
Area is the OpenAPI Object a rule concerns, aligned with the OpenAPI spec's object model.
type BackwardCompatibilityCheck ¶
type BackwardCompatibilityCheck func(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, config *Config) Changes
BackwardCompatibilityCheck, or a check, is a function that receives a diff report and returns a list of changes
type BackwardCompatibilityChecks ¶
type BackwardCompatibilityChecks []BackwardCompatibilityCheck
func GetAllChecks ¶
func GetAllChecks() BackwardCompatibilityChecks
GetAllChecks gets all backward compatibility checks
type BackwardCompatibilityRules ¶
type BackwardCompatibilityRules []BackwardCompatibilityRule
func GetAllRules ¶
func GetAllRules() BackwardCompatibilityRules
func GetOptionalRules ¶
func GetOptionalRules() BackwardCompatibilityRules
type Change ¶
type Change interface {
GetSection() string
IsBreaking() bool
GetId() string
GetText(l Localizer) string
GetArgs() []any
GetUncolorizedText(l Localizer) string
GetComment(l Localizer) string
GetLevel() Level
GetOperation() string
GetOperationId() string
GetPath() string
GetSource() string
GetAttributes() map[string]any
// Location tracking methods
GetBaseSource() *Source
GetRevisionSource() *Source
// DEPRECATED: Will be removed after GitHubActionsFormatter migration
GetSourceFile() string
GetSourceLine() int
GetSourceLineEnd() int
GetSourceColumn() int
GetSourceColumnEnd() int
MatchIgnore(ignorePath, ignoreLine string, l Localizer) bool
SingleLineError(l Localizer, colorMode ColorMode) string
MultiLineError(l Localizer, colorMode ColorMode) string
}
type Changes ¶
type Changes []Change
func APIAddedCheck ¶
func APIDeprecationCheck ¶
func APIRemovedCheck ¶
func APISecurityUpdatedCheck ¶
func APISunsetChangedCheck ¶
func APITagUpdatedCheck ¶
func AddedRequestBodyCheck ¶
func CheckBackwardCompatibility ¶
func CheckBackwardCompatibility(config *Config, diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap) Changes
CheckBackwardCompatibility runs the checks with level WARN and ERR
Example ¶
package main
import (
"fmt"
"os"
"strings"
"github.com/getkin/kin-openapi/openapi3"
"github.com/oasdiff/oasdiff/checker"
"github.com/oasdiff/oasdiff/diff"
"github.com/oasdiff/oasdiff/load"
)
func main() {
loader := openapi3.NewLoader()
loader.IsExternalRefsAllowed = true
s1, err := load.NewSpecInfo(loader, load.NewSource("../data/openapi-test1.yaml"))
if err != nil {
fmt.Fprintf(os.Stderr, "failed to load spec: %v", err)
return
}
s2, err := load.NewSpecInfo(loader, load.NewSource("../data/openapi-test3.yaml"))
if err != nil {
fmt.Fprintf(os.Stderr, "failed to load spec: %v", err)
return
}
diffRes, operationsSources, err := diff.GetPathsDiff(diff.NewConfig(),
[]*load.SpecInfo{s1},
[]*load.SpecInfo{s2},
)
if err != nil {
fmt.Fprintf(os.Stderr, "diff failed with %v", err)
return
}
errs := checker.CheckBackwardCompatibility(checker.NewConfig(checker.GetAllChecks()), diffRes, operationsSources)
// process configuration file for ignoring errors
errs, err = checker.ProcessIgnoredBackwardCompatibilityErrors(checker.ERR, errs, "../data/ignore-err-example.txt", checker.NewDefaultLocalizer())
if err != nil {
fmt.Fprintf(os.Stderr, "ignore errors failed with %v", err)
return
}
// process configuration file for ignoring warnings
errs, err = checker.ProcessIgnoredBackwardCompatibilityErrors(checker.WARN, errs, "../data/ignore-warn-example.txt", checker.NewDefaultLocalizer())
if err != nil {
fmt.Fprintf(os.Stderr, "ignore warnings failed with %v", err)
return
}
// pretty print breaking changes errors
if len(errs) > 0 {
localizer := checker.NewDefaultLocalizer()
count := errs.GetLevelCount()
fmt.Print(localizer("total-errors", len(errs), count[checker.ERR], "error", count[checker.WARN], "warning"))
for _, bcerr := range errs {
fmt.Printf("%s\n\n", strings.TrimRight(bcerr.SingleLineError(localizer, checker.ColorNever), " "))
}
}
}
Output: 4 breaking changes: 1 error, 3 warning error at ../data/openapi-test3.yaml, in API GET /api/{domain}/{project}/badges/security-score removed the success response with the status `201` [response-success-status-removed]. warning at ../data/openapi-test3.yaml, in API GET /api/{domain}/{project}/badges/security-score deleted the `cookie` request parameter `test` [request-parameter-removed]. This is a warning because some clients may return an error when receiving an unexpected parameter. It is recommended to deprecate the parameter first. warning at ../data/openapi-test3.yaml, in API GET /api/{domain}/{project}/badges/security-score deleted the `header` request parameter `user` [request-parameter-removed]. This is a warning because some clients may return an error when receiving an unexpected parameter. It is recommended to deprecate the parameter first. warning at ../data/openapi-test3.yaml, in API GET /api/{domain}/{project}/badges/security-score deleted the `query` request parameter `filter` [request-parameter-removed]. This is a warning because some clients may return an error when receiving an unexpected parameter. It is recommended to deprecate the parameter first.
func CheckBackwardCompatibilityUntilLevel ¶
func CheckBackwardCompatibilityUntilLevel(config *Config, diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, level Level) Changes
CheckBackwardCompatibilityUntilLevel runs the checks with level equal or higher than the given level. It does not mutate the caller's diffReport; clonePathsDiffForCheck isolates the pipeline's mutation surface.
func MediaTypeSchemaExistenceCheck ¶ added in v1.21.0
func MediaTypeSchemaExistenceCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, config *Config) Changes
MediaTypeSchemaExistenceCheck classifies a schema added to, or removed from, a media type that exists on both sides (the media type itself is unchanged, only its schema appears or disappears). The per-schema-change checks skip these one-sided schema diffs (see modifiedSchemaPresentBothSides / #1047), so this check is what reports them, by request/response contravariance:
request body, schema added -> breaking (ERR): a body that accepted anything
now requires a specific shape (narrowing)
request body, schema removed -> info: the body got more permissive
response, schema added -> info: the response got more specific
response, schema removed -> breaking (WARN): a typed response is no longer
guaranteed (the output contract loosened)
func RequestBodyRemovedCheck ¶ added in v1.11.2
func RequestParameterListOfTypesChangedCheck ¶ added in v1.11.6
func RequestPropertyConstChangedCheck ¶ added in v1.15.0
func RequestPropertyContainsUpdatedCheck ¶ added in v1.15.0
func RequestPropertyContentUpdatedCheck ¶ added in v1.15.0
func RequestPropertyDependentRequiredChangedCheck ¶ added in v1.15.0
func RequestPropertyDependentSchemasUpdatedCheck ¶ added in v1.15.0
func RequestPropertyDeprecationCheck ¶ added in v1.11.9
func RequestPropertyDeprecationCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, config *Config) Changes
RequestPropertyDeprecationCheck detects deprecated properties in request bodies
func RequestPropertyIfUpdatedCheck ¶ added in v1.15.0
func RequestPropertyListOfTypesChangedCheck ¶ added in v1.11.6
func RequestPropertyPatternPropertiesUpdatedCheck ¶ added in v1.15.0
func RequestPropertyPrefixItemsUpdatedCheck ¶ added in v1.15.0
func RequestPropertyPropertyNamesUpdatedCheck ¶ added in v1.15.0
func RequestPropertyStabilityUpdatedCheck ¶ added in v1.20.0
func RequestPropertyStabilityUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, config *Config) Changes
RequestPropertyStabilityUpdatedCheck detects request properties where x-stability-level changed. Only emits changes when the property's base stability meets the configured threshold.
func RequestPropertyUnevaluatedUpdatedCheck ¶ added in v1.15.0
func ResponseHeaderAddedCheck ¶ added in v1.21.0
func ResponseHeaderAddedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, config *Config) Changes
ResponseHeaderAddedCheck reports a response header that was added. Adding a response header is non-breaking, so it is reported at INFO. It is the mirror of ResponseHeaderRemovedCheck (see #1033).
func ResponseMediaTypeNameUpdatedCheck ¶ added in v1.11.4
func ResponsePropertyConstChangedCheck ¶ added in v1.15.0
func ResponsePropertyContainsUpdatedCheck ¶ added in v1.15.0
func ResponsePropertyContentUpdatedCheck ¶ added in v1.15.0
func ResponsePropertyDependentRequiredChangedCheck ¶ added in v1.15.0
func ResponsePropertyDependentSchemasUpdatedCheck ¶ added in v1.15.0
func ResponsePropertyDeprecationCheck ¶ added in v1.11.9
func ResponsePropertyDeprecationCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, config *Config) Changes
ResponsePropertyDeprecationCheck detects deprecated properties in response bodies
func ResponsePropertyIfUpdatedCheck ¶ added in v1.15.0
func ResponsePropertyListOfTypesChangedCheck ¶ added in v1.11.6
func ResponsePropertyPatternPropertiesUpdatedCheck ¶ added in v1.15.0
func ResponsePropertyPrefixItemsUpdatedCheck ¶ added in v1.15.0
func ResponsePropertyPropertyNamesUpdatedCheck ¶ added in v1.15.0
func ResponsePropertyStabilityUpdatedCheck ¶ added in v1.20.0
func ResponsePropertyStabilityUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, config *Config) Changes
ResponsePropertyStabilityUpdatedCheck detects response properties where x-stability-level changed. Only emits changes when the property's base stability meets the configured threshold.
func ResponsePropertyUnevaluatedUpdatedCheck ¶ added in v1.15.0
func WebhookUpdatedCheck ¶ added in v1.15.0
func (Changes) GetLevelCount ¶
func (Changes) HasLevelOrHigher ¶
type CommonChange ¶
type CommonChange struct {
// Location information for correlation UI
BaseSource *Source // Location in base (original) file
RevisionSource *Source // Location in revision (modified) file
Attributes map[string]any
}
func (CommonChange) GetAttributes ¶
func (c CommonChange) GetAttributes() map[string]any
func (CommonChange) GetBaseSource ¶ added in v1.12.0
func (c CommonChange) GetBaseSource() *Source
func (CommonChange) GetRevisionSource ¶ added in v1.12.0
func (c CommonChange) GetRevisionSource() *Source
type ComponentChange ¶
type ComponentChange struct {
CommonChange
Id string
Args []any
Comment string
Level Level
Component string
// DEPRECATED: Will be removed after migration to BaseSource/RevisionSource
SourceFile string
SourceLine int
SourceLineEnd int
SourceColumn int
SourceColumnEnd int
}
ComponentChange represnts a change in the Components Section: https://swagger.io/docs/specification/components/
func (ComponentChange) GetArgs ¶
func (c ComponentChange) GetArgs() []any
func (ComponentChange) GetComment ¶
func (c ComponentChange) GetComment(l Localizer) string
func (ComponentChange) GetId ¶
func (c ComponentChange) GetId() string
func (ComponentChange) GetLevel ¶
func (c ComponentChange) GetLevel() Level
func (ComponentChange) GetOperation ¶
func (ComponentChange) GetOperation() string
func (ComponentChange) GetOperationId ¶
func (ComponentChange) GetOperationId() string
func (ComponentChange) GetPath ¶
func (ComponentChange) GetPath() string
func (ComponentChange) GetSection ¶
func (c ComponentChange) GetSection() string
func (ComponentChange) GetSource ¶
func (c ComponentChange) GetSource() string
func (ComponentChange) GetSourceColumn ¶
func (c ComponentChange) GetSourceColumn() int
func (ComponentChange) GetSourceColumnEnd ¶
func (c ComponentChange) GetSourceColumnEnd() int
func (ComponentChange) GetSourceFile ¶
func (c ComponentChange) GetSourceFile() string
func (ComponentChange) GetSourceLine ¶
func (c ComponentChange) GetSourceLine() int
func (ComponentChange) GetSourceLineEnd ¶
func (c ComponentChange) GetSourceLineEnd() int
func (ComponentChange) GetText ¶
func (c ComponentChange) GetText(l Localizer) string
func (ComponentChange) GetUncolorizedText ¶
func (c ComponentChange) GetUncolorizedText(l Localizer) string
func (ComponentChange) IsBreaking ¶
func (c ComponentChange) IsBreaking() bool
func (ComponentChange) MatchIgnore ¶
func (c ComponentChange) MatchIgnore(ignorePath, ignoreLine string, l Localizer) bool
func (ComponentChange) MultiLineError ¶
func (c ComponentChange) MultiLineError(l Localizer, colorMode ColorMode) string
func (ComponentChange) SingleLineError ¶
func (c ComponentChange) SingleLineError(l Localizer, colorMode ColorMode) string
func (ComponentChange) WithSources ¶ added in v1.12.0
func (c ComponentChange) WithSources(baseSource, revisionSource *Source) ComponentChange
WithSources returns a copy of the ComponentChange with BaseSource and RevisionSource populated
type Config ¶
type Config struct {
Checks BackwardCompatibilityChecks
MinSunsetBetaDays uint
MinSunsetStableDays uint
LogLevels map[string]Level
Attributes []string
StabilityLevel StabilityLevel
}
func NewConfig ¶
func NewConfig(checks BackwardCompatibilityChecks, opts ...Option) *Config
NewConfig creates a new configuration with default values, then applies the given options in order.
type Kind ¶ added in v1.18.3
type Kind int8
Kind is the aspect of the API contract a rule concerns, orthogonal to Area.
type Level ¶
type Level int
func (Level) IsBreaking ¶
func (Level) PrettyString ¶
func (Level) StringCond ¶
type Localizer ¶
func NewDefaultLocalizer ¶
func NewDefaultLocalizer() Localizer
func NewLocalizer ¶
type Option ¶ added in v1.15.3
type Option func(*Config)
Option configures a Config during NewConfig. Options compose: each receives the Config after defaults and prior options have been applied. Use the With* constructors below to obtain Options.
func WithAttributes ¶ added in v1.15.3
WithAttributes sets the list of attributes to be used.
func WithChecks ¶ added in v1.15.3
func WithChecks(checks BackwardCompatibilityChecks) Option
WithChecks sets the list of checks to be used (replaces the constructor's checks argument).
func WithDeprecation ¶ added in v1.15.3
WithDeprecation sets the number of days before sunset for deprecation warnings.
func WithOptionalCheck ¶ added in v1.15.3
WithOptionalCheck adds a single check to the list of optional checks.
func WithOptionalChecks ¶ added in v1.15.3
WithOptionalChecks overrides the log level of the given checks to ERR so they will appear in `oasdiff breaking`.
func WithSeverityLevels ¶ added in v1.15.3
WithSeverityLevels overrides per-check log levels from the given map.
func WithSingleCheck ¶ added in v1.15.3
func WithSingleCheck(check BackwardCompatibilityCheck) Option
WithSingleCheck sets a single check to be used (replaces the constructor's checks argument).
func WithStabilityLevel ¶ added in v1.20.0
WithStabilityLevel sets the minimum stability level from a string. If the level is empty, the config is unchanged.
type SecurityChange ¶
type SecurityChange struct {
CommonChange
Id string
Args []any
Comment string
Level Level
// DEPRECATED: Will be removed after migration to BaseSource/RevisionSource
SourceFile string
SourceLine int
SourceLineEnd int
SourceColumn int
SourceColumnEnd int
}
SecurityChange represents a change in the Security Section (not to be confised with components/securitySchemes)
func (SecurityChange) GetArgs ¶
func (c SecurityChange) GetArgs() []any
func (SecurityChange) GetComment ¶
func (c SecurityChange) GetComment(l Localizer) string
func (SecurityChange) GetId ¶
func (c SecurityChange) GetId() string
func (SecurityChange) GetLevel ¶
func (c SecurityChange) GetLevel() Level
func (SecurityChange) GetOperation ¶
func (r SecurityChange) GetOperation() string
func (SecurityChange) GetOperationId ¶
func (SecurityChange) GetOperationId() string
func (SecurityChange) GetPath ¶
func (SecurityChange) GetPath() string
func (SecurityChange) GetSection ¶
func (c SecurityChange) GetSection() string
func (SecurityChange) GetSource ¶
func (c SecurityChange) GetSource() string
func (SecurityChange) GetSourceColumn ¶
func (c SecurityChange) GetSourceColumn() int
func (SecurityChange) GetSourceColumnEnd ¶
func (c SecurityChange) GetSourceColumnEnd() int
func (SecurityChange) GetSourceFile ¶
func (c SecurityChange) GetSourceFile() string
func (SecurityChange) GetSourceLine ¶
func (c SecurityChange) GetSourceLine() int
func (SecurityChange) GetSourceLineEnd ¶
func (c SecurityChange) GetSourceLineEnd() int
func (SecurityChange) GetText ¶
func (c SecurityChange) GetText(l Localizer) string
func (SecurityChange) GetUncolorizedText ¶
func (c SecurityChange) GetUncolorizedText(l Localizer) string
func (SecurityChange) IsBreaking ¶
func (c SecurityChange) IsBreaking() bool
func (SecurityChange) MatchIgnore ¶
func (c SecurityChange) MatchIgnore(ignorePath, ignoreLine string, l Localizer) bool
func (SecurityChange) MultiLineError ¶
func (c SecurityChange) MultiLineError(l Localizer, colorMode ColorMode) string
func (SecurityChange) SingleLineError ¶
func (c SecurityChange) SingleLineError(l Localizer, colorMode ColorMode) string
func (SecurityChange) WithSources ¶ added in v1.12.0
func (c SecurityChange) WithSources(baseSource, revisionSource *Source) SecurityChange
WithSources returns a copy of the SecurityChange with BaseSource and RevisionSource populated
type Source ¶ added in v1.12.0
type Source struct {
File string `json:"file,omitempty" yaml:"file,omitempty"` // File path (relative or absolute)
Line int `json:"line,omitempty" yaml:"line,omitempty"` // Line number (1-based)
Column int `json:"column,omitempty" yaml:"column,omitempty"` // Column number (1-based)
}
Source represents the location of a change in an OpenAPI spec file
func NewEmptySource ¶ added in v1.12.0
func NewEmptySource() *Source
func NewSourceFromField ¶ added in v1.12.0
func NewSourceFromOrigin ¶ added in v1.12.0
func NewSourceFromSequenceItem ¶ added in v1.12.0
func NewSourceFromSequenceItem(operationsSources *diff.OperationsSourcesMap, operation *openapi3.Operation, origin *openapi3.Origin, field string, value string) *Source
NewSourceFromSequenceItem returns the source location of a specific item in a sequence-valued field (e.g. type: [string, null]). It looks up the item by value in Origin.Sequences[field]. If multiple items share the same value, it returns the first match.
func SchemaMapItemSource ¶ added in v1.15.0
func SchemaMapItemSource(operationsSources *diff.OperationsSourcesMap, operation *openapi3.Operation, schemas openapi3.Schemas, name string) *Source
SchemaMapItemSource returns the source location for a named schema within a Schemas map (e.g., a specific key in dependentSchemas, patternProperties, or properties). It uses the schema's own Origin rather than the parent field's origin.
type StabilityLevel ¶ added in v1.20.0
type StabilityLevel int
StabilityLevel represents a threshold for filtering operations by their x-stability-level. Higher values include more stability levels (e.g., StabilityLevelDraft includes all levels). The enum is a pure ordering: level >= threshold means "included."
const ( // StabilityLevelDraft includes all operations (stable, beta, alpha, and draft). StabilityLevelDraft StabilityLevel = iota + 1 // StabilityLevelAlpha includes stable, beta, and alpha operations. StabilityLevelAlpha // StabilityLevelBeta includes stable and beta operations. StabilityLevelBeta // StabilityLevelStable includes only stable operations. StabilityLevelStable )
func ParseStabilityLevel ¶ added in v1.20.0
func ParseStabilityLevel(s string) StabilityLevel
ParseStabilityLevel converts a stability string to a StabilityLevel. An empty string is treated as stable (implicit stable).
func (StabilityLevel) IsIncluded ¶ added in v1.20.0
func (sl StabilityLevel) IsIncluded(stability string) bool
IsIncluded returns true if the given stability label meets the configured threshold. For example, if the threshold is StabilityLevelDraft, all levels are included. If the threshold is StabilityLevelAlpha, draft is excluded but alpha/beta/stable are included. An empty stability string is treated as "stable".
Source Files
¶
- api_change.go
- change.go
- changes.go
- check_added_required_request_body.go
- check_api_added.go
- check_api_deprecation.go
- check_api_operation_id_updated.go
- check_api_removed.go
- check_api_security_updated.go
- check_api_stability_level.go
- check_api_sunset_changed.go
- check_api_tag_updated.go
- check_components_schemas_removed.go
- check_components_security_updated.go
- check_media_type_schema_existence.go
- check_new_request_non_path_default_parameter.go
- check_new_request_non_path_parameter.go
- check_new_requried_request_header_property.go
- check_property_stability_level.go
- check_request_body_became_enum.go
- check_request_body_enum_deleted.go
- check_request_body_mediatype_updated.go
- check_request_body_removed.go
- check_request_body_required_value_updated.go
- check_request_discriminator_updated.go
- check_request_header_property_became_enum.go
- check_request_header_property_became_required.go
- check_request_parameter_became_enum.go
- check_request_parameter_deprecation.go
- check_request_parameter_enum_value_updated.go
- check_request_parameter_list_of_types_changed.go
- check_request_parameter_pattern_added_or_changed.go
- check_request_parameter_removed.go
- check_request_parameter_required_value_updated.go
- check_request_parameter_sunset_changed.go
- check_request_parameter_x_extensible_enum_value_removed.go
- check_request_parameters_default_value_changed.go
- check_request_parameters_max_items_updated.go
- check_request_parameters_max_length_set.go
- check_request_parameters_max_length_updated.go
- check_request_parameters_max_set.go
- check_request_parameters_max_updated.go
- check_request_parameters_min_items_set.go
- check_request_parameters_min_items_updated.go
- check_request_parameters_min_length_updated.go
- check_request_parameters_min_set.go
- check_request_parameters_min_updated.go
- check_request_parameters_type_changed.go
- check_request_path_parameter_added.go
- check_request_property_all_of_updated.go
- check_request_property_any_of_updated.go
- check_request_property_became_enum.go
- check_request_property_became_not_nuallable.go
- check_request_property_const_changed.go
- check_request_property_contains_updated.go
- check_request_property_content_updated.go
- check_request_property_default_value_changed.go
- check_request_property_dependent_required_changed.go
- check_request_property_dependent_schemas_updated.go
- check_request_property_deprecation.go
- check_request_property_enum_value_updated.go
- check_request_property_if_updated.go
- check_request_property_list_of_types_changed.go
- check_request_property_max_length_set.go
- check_request_property_max_length_updated.go
- check_request_property_max_set.go
- check_request_property_max_updated.go
- check_request_property_min_items_increased.go
- check_request_property_min_items_set.go
- check_request_property_min_length_updated.go
- check_request_property_min_set.go
- check_request_property_min_updated.go
- check_request_property_one_of_updated.go
- check_request_property_pattern_added_or_changed.go
- check_request_property_pattern_properties_updated.go
- check_request_property_prefix_items_updated.go
- check_request_property_property_names_updated.go
- check_request_property_required_updated.go
- check_request_property_type_changed.go
- check_request_property_unevaluated_updated.go
- check_request_property_updated.go
- check_request_property_write_only_read_only.go
- check_request_property_x_extensible_enum_value_removed.go
- check_response_discriminator_updated.go
- check_response_header_added.go
- check_response_header_became_optional.go
- check_response_header_removed.go
- check_response_mediatype_enum_value_removed.go
- check_response_mediatype_name_updated.go
- check_response_mediatype_updated.go
- check_response_optional_property_updated.go
- check_response_optional_property_write_only_read_only.go
- check_response_pattern_added_or_changed.go
- check_response_property_all_of_updated.go
- check_response_property_any_of_updated.go
- check_response_property_became_nuallable.go
- check_response_property_became_optional.go
- check_response_property_became_required.go
- check_response_property_const_changed.go
- check_response_property_contains_updated.go
- check_response_property_content_updated.go
- check_response_property_default_value_changed.go
- check_response_property_dependent_required_changed.go
- check_response_property_dependent_schemas_updated.go
- check_response_property_deprecation.go
- check_response_property_enum_value_added.go
- check_response_property_enum_value_removed.go
- check_response_property_if_updated.go
- check_response_property_list_of_types_changed.go
- check_response_property_max_increased.go
- check_response_property_max_length_increased.go
- check_response_property_max_length_unset.go
- check_response_property_min_decreased.go
- check_response_property_min_items_decreased.go
- check_response_property_min_items_unset.go
- check_response_property_min_length_decreased.go
- check_response_property_one_of_updated.go
- check_response_property_pattern_properties_updated.go
- check_response_property_prefix_items_updated.go
- check_response_property_property_names_updated.go
- check_response_property_type_changed.go
- check_response_property_unevaluated_updated.go
- check_response_required_property_updated.go
- check_response_required_property_write_only_read_only.go
- check_response_status_updated.go
- check_types.go
- check_webhook_updated.go
- checker.go
- checks.go
- checks_utils.go
- colorize.go
- component_change.go
- config.go
- dependent_required_format.go
- deprecation.go
- doc.go
- ignore.go
- level.go
- list_of_types_core.go
- localizer.go
- media_type.go
- media_type_walker.go
- nullable_type_utils.go
- op_info.go
- piped_output.go
- rules.go
- security_change.go
- source.go
- stability_level.go
- type_format.go
Directories
¶
| Path | Synopsis |
|---|---|
|
Package generator generates consistent breaking change and changelog message definitions.
|
Package generator generates consistent breaking change and changelog message definitions. |
|
Package localizations provides localized messages for breaking change and changelog output.
|
Package localizations provides localized messages for breaking change and changelog output. |