Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
32c80e2
Add release-note create command
lcawl Dec 2, 2025
67e4f85
Fix IDE0002 linting error
lcawl Dec 2, 2025
dd3a7c4
Change headline to title command option
lcawl Dec 2, 2025
5f46774
Potential fix for pull request finding 'Call to System.IO.Path.Combine'
lcawl Dec 2, 2025
26a1f69
Apply github-code-quality suggestions
lcawl Dec 2, 2025
a9be764
Fix formatting
lcawl Dec 2, 2025
6e34670
Merge branch 'main' into feature/release-notes
lcawl Dec 2, 2025
7f940c6
Use --products instead of --product, target, and lifecycle options
lcawl Dec 2, 2025
155335e
Merge branch 'main' into feature/release-notes
lcawl Dec 3, 2025
c8f3633
Remove --id command option
lcawl Dec 3, 2025
e766a3f
Rename command to changelog add
lcawl Dec 3, 2025
2492be2
Add config command option
lcawl Dec 3, 2025
c255c5e
Rename config example; remove labelmappings
lcawl Dec 3, 2025
a7f16ac
Add areas and products to the config
lcawl Dec 3, 2025
7e2cce7
Validate type, subtype, and lifecycle
lcawl Dec 3, 2025
7b2eeb4
Potential fix for pull request finding 'Missed opportunity to use Where'
lcawl Dec 4, 2025
0b1054d
Potential fix for pull request finding 'Nested 'if' statements can be…
lcawl Dec 4, 2025
66d67ec
Fix linting
lcawl Dec 4, 2025
7915e92
Potential fix for pull request finding 'Missed opportunity to use Where'
lcawl Dec 4, 2025
ace3790
Potential fix for pull request finding 'Nested 'if' statements can be…
lcawl Dec 4, 2025
9ce0442
Rename files
lcawl Dec 4, 2025
660847e
Use raw string literal
lcawl Dec 4, 2025
ec4157e
Potential fix for pull request finding 'Missed opportunity to use Where'
lcawl Dec 4, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 56 additions & 0 deletions config/changelog.yml.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
# Changelog Configuration
# This file configures the valid values for changelog fields.
# Place this file as `changelog.yml` in the `docs/` directory

# Available types for changelog entries
available_types:
- feature
- enhancement
- bug-fix
- known-issue
- breaking-change
- deprecation
- docs
- regression
- security
- other

# Available subtypes for breaking changes
available_subtypes:
- api
- behavioral
- configuration
- dependency
- subscription
- plugin
- security
- other

# Available lifecycle values
available_lifecycles:
- preview
- beta
- ga

# Available areas (optional - if not specified, all areas are allowed)
available_areas:
- search
- security
- machine-learning
- observability
- index-management
# Add more areas as needed

# Available products (optional - if not specified, all products are allowed)
available_products:
- elasticsearch
- kibana
- apm
- beats
- elastic-agent
- fleet
- cloud-hosted
- cloud-serverless
- cloud-enterprise
# Add more products as needed

Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
// Licensed to Elasticsearch B.V under one or more agreements.
// Elasticsearch B.V licenses this file to you under the Apache 2.0 License.
// See the LICENSE file in the project root for more information

namespace Elastic.Documentation.Services.Changelog;

/// <summary>
/// Configuration for changelog generation
/// </summary>
public class ChangelogConfiguration
{
public List<string> AvailableTypes { get; set; } =
[
"feature",
"enhancement",
"bug-fix",
"known-issue",
"breaking-change",
"deprecation",
"docs",
"regression",
"security",
"other"
];

public List<string> AvailableSubtypes { get; set; } =
[
"api",
"behavioral",
"configuration",
"dependency",
"subscription",
"plugin",
"security",
"other"
];

public List<string> AvailableLifecycles { get; set; } =
[
"preview",
"beta",
"ga"
];

public List<string>? AvailableAreas { get; set; }

public List<string>? AvailableProducts { get; set; }

public static ChangelogConfiguration Default => new();
}

Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
// Licensed to Elasticsearch B.V under one or more agreements.
// Elasticsearch B.V licenses this file to you under the Apache 2.0 License.
// See the LICENSE file in the project root for more information

namespace Elastic.Documentation.Services.Changelog;

/// <summary>
/// Data structure for changelog YAML file matching the exact schema
/// </summary>
public class ChangelogData
{
// Automated fields
public string? Pr { get; set; }
public List<string>? Issues { get; set; }
public string Type { get; set; } = string.Empty;
public string? Subtype { get; set; }
public List<ProductInfo> Products { get; set; } = [];
public List<string>? Areas { get; set; }

// Non-automated fields
public string Title { get; set; } = string.Empty;
public string? Description { get; set; }
public string? Impact { get; set; }
public string? Action { get; set; }
public string? FeatureId { get; set; }
public bool? Highlight { get; set; }
}

public class ProductInfo
{
public string Product { get; set; } = string.Empty;
public string? Target { get; set; }
public string? Lifecycle { get; set; }
}

Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
// Licensed to Elasticsearch B.V under one or more agreements.
// Elasticsearch B.V licenses this file to you under the Apache 2.0 License.
// See the LICENSE file in the project root for more information

namespace Elastic.Documentation.Services.Changelog;

/// <summary>
/// Input data for creating a changelog fragment
/// </summary>
public class ChangelogInput
{
public required string Title { get; set; }
public required string Type { get; set; }
public required List<ProductInfo> Products { get; set; }
public string? Subtype { get; set; }
public string[] Areas { get; set; } = [];
public string? Pr { get; set; }
public string[] Issues { get; set; } = [];
public string? Description { get; set; }
public string? Impact { get; set; }
public string? Action { get; set; }
public string? FeatureId { get; set; }
public bool? Highlight { get; set; }
public string? Output { get; set; }
public string? Config { get; set; }
}

Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
// Licensed to Elasticsearch B.V under one or more agreements.
// Elasticsearch B.V licenses this file to you under the Apache 2.0 License.
// See the LICENSE file in the project root for more information

using YamlDotNet.Serialization;

namespace Elastic.Documentation.Services.Changelog;

[YamlStaticContext]
[YamlSerializable(typeof(ChangelogData))]
[YamlSerializable(typeof(ProductInfo))]
[YamlSerializable(typeof(ChangelogConfiguration))]
public partial class ChangelogYamlStaticContext;

Loading
Loading