-
Notifications
You must be signed in to change notification settings - Fork 10
feat: add changelog system #9134
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
feat: add changelog system #9134
Conversation
Merge ProtectionsYour pull request matches the following merge protections and will not be merged until they are valid. 🔴 🤖 Continuous IntegrationThis rule is failing.
🔴 👀 Review RequirementsThis rule is failing.
🔴 🔎 ReviewsThis rule is failing.
🟢 Enforce conventional commitWonderful, this rule succeeded.Make sure that we follow https://www.conventionalcommits.org/en/v1.0.0/
🟢 📕 PR descriptionWonderful, this rule succeeded.
|
6ea2825 to
feed624
Compare
feed624 to
25de18e
Compare
25de18e to
3da1e76
Compare
|
@jd this pull request is now in conflict 😩 |
3da1e76 to
2b4b8c7
Compare
2b4b8c7 to
3af0637
Compare
|
@jd this pull request is now in conflict 😩 |
This implements a new changelog system to the docs so it's easy to browse it and subscribe via RSS. Fixes MRGFY-5981 Change-Id: Ia2551cf70a6317a02376c287da41230680a05be4
3af0637 to
27c3b0f
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR adds a comprehensive changelog feature to the documentation site, allowing users to view and filter product updates directly within the docs.
- Adds a new
changelogcontent collection with schema validation for title, date, description, and tags - Implements utility functions for sorting, grouping, and formatting changelog entries
- Creates both an index page with filtering/search and individual detail pages for each changelog entry
- Integrates changelog into site navigation and updates internal links from external changelog
Reviewed Changes
Copilot reviewed 15 out of 17 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| src/util/changelog.ts | Utility functions for sorting, grouping, and formatting changelog entries |
| src/pages/changelog/index.astro | Main changelog page with search, filtering, and RSS subscription |
| src/pages/changelog/[slug].astro | Individual changelog entry detail page |
| src/pages/changelog/rss.xml.ts | RSS feed endpoint for changelog entries |
| src/content.config.ts | Adds changelog collection schema with validation |
| src/components/Breadcrumbs.astro | Adds breadcrumb support for changelog pages |
| src/layouts/MainLayout.astro | Makes headings optional and adds breadcrumbTitle prop |
| src/components/Header/Header.astro | Updates changelog link to internal page |
| src/components/Footer/footer.ts | Updates footer changelog link to internal page |
| src/components/Button.astro | Adds target prop with default '_blank' |
| src/components/Header/HeaderLink.astro | Adds target prop support |
| src/content/navItems.tsx | Adds changelog to navigation items |
| src/styles/index.css | Adds no-counter class to exclude elements from auto-numbering |
| package.json | Adds @astrojs/rss dependency |
| eslint.config.js | Excludes changelog content from linting |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| export function sortChangelog( | ||
| entries: CollectionEntry<'changelog'>[] | ||
| ): CollectionEntry<'changelog'>[] { | ||
| return entries.sort((a, b) => { | ||
| const dateA = new Date(a.data.date); | ||
| const dateB = new Date(b.data.date); | ||
| return dateB.getTime() - dateA.getTime(); | ||
| }); | ||
| } |
Copilot
AI
Nov 5, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The sortChangelog function mutates the original array. Use entries.slice().sort() or [...entries].sort() to avoid side effects.
|
|
||
| <MainLayout content={{ title, description, suppressTitle: false }}> | ||
| <div class="changelog-header"> | ||
| <div class="search-wrap"> |
Copilot
AI
Nov 5, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The search input should have an associated label element (even if visually hidden) in addition to aria-label for better accessibility support across all assistive technologies.
| <div class="search-wrap"> | |
| <div class="search-wrap"> | |
| <label for="search" class="visually-hidden">Search changelog</label> |
| <span class="slack-text">Stay updated on Slack! Subscribe to get changelog updates in your workspace:</span> | ||
| </div> | ||
| <div class="slack-command"> | ||
| <code id="slack-command-text">/feed subscribe https://docs.mergify.com/changelog/rss.xml</code> |
Copilot
AI
Nov 5, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The hardcoded URL 'https://docs.mergify.com' should use context.site or be derived from configuration to ensure consistency across environments.
This implements a new changelog system to the docs so it's easy to
browse it and subscribe via RSS.
Fixes MRGFY-5981