diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 517d431..0e68aa9 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -2,8 +2,9 @@ # # go-sdk is a library, not a binary - for a Go module the git tag *is* the # release (consumers fetch source via `go get`). This workflow therefore does -# not build or publish artifacts; it only creates a GitHub Release with -# auto-generated notes for the tag created by tag-release.yml. +# not build or publish artifacts; it only creates a GitHub Release. The release +# body is the matching section from CHANGELOG.md (curated notes), with the +# auto-generated commit/PR list appended below it. # # Triggered by tag-release.yml (workflow_dispatch at the new tag) or by a # manually pushed `v*` tag. @@ -27,7 +28,23 @@ jobs: with: fetch-depth: 0 + - name: Extract changelog section for this version + id: changelog + run: | + VERSION="${GITHUB_REF_NAME#v}" + if [ -f CHANGELOG.md ]; then + awk -v ver="$VERSION" ' + $0 ~ ("^## \\[" ver "\\]") { capture = 1; next } + capture && /^## \[/ { exit } + capture { print } + ' CHANGELOG.md > release-notes.md + fi + if [ ! -s release-notes.md ]; then + echo "Release v${VERSION}. See the full changelog in CHANGELOG.md." > release-notes.md + fi + - name: Create GitHub Release uses: softprops/action-gh-release@v2 with: + body_path: release-notes.md generate_release_notes: true diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..003b6cc --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,32 @@ +# Changelog + +All notable changes to the ChatBotKit Go SDK are documented in this file. The +format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and +this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +For releases prior to `0.2.0`, see the auto-generated notes on the +[GitHub Releases](https://github.com/chatbotkit/go-sdk/releases) page. + +## [0.2.0] - 2026-06-22 + +### Added + +- `SkillServer` integration client (`client.Integration.SkillServer`) with + `List`, `Fetch`, `Create`, `Update`, and `Delete`. The Skill Server + integration exposes a skillset's abilities as a text-first HTTP API. +- `Site` client under `Space` (`client.Space.Site`) with `List`, `Fetch`, + `Create`, `Update`, and `Delete`, keyed by the parent space ID. A space site + binds a `