Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
2 changes: 1 addition & 1 deletion .github/workflows/master.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ jobs:
- name: Hugo setup
uses: peaceiris/actions-hugo@v2.6.0
with:
hugo-version: '0.140.2' # optional, default is latest
hugo-version: '0.152.2' # optional, default is latest
extended: true # optional, default is false
- name: NPM
run: npm install
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/staging.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ jobs:
- name: Hugo setup
uses: peaceiris/actions-hugo@v2.6.0
with:
hugo-version: '0.140.2' # optional, default is latest
hugo-version: '0.152.2' # optional, default is latest
extended: true # optional, default is false
- name: NPM
run: npm install
Expand Down
3 changes: 3 additions & 0 deletions content/21.1.317/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
---
date: 2026-01-29
---
27 changes: 27 additions & 0 deletions content/21.1.317/items.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
type,tags,title,weight,detail,item#
bug,"security,integration,system",Improvements to error message reporting when the Integration Agent encounters a TLS certificate error.,,,353967
bug,"afe,reporting,budget",The AFE Project Allocation Report now correctly allocates actuals and field costs in systems where an account-level filter is not in use.,,,351841
bug,"workflow,system",Fixed an issue where the Auto-release process was not updating the 'Next Reviewing Position' and 'Next Approving Position' fields.,,,355395
bug,"ui,system",Fixed a critical issue where selecting blocks in Blockly was not working in the latest versions of Chrome and Edge.,,,356620
bug,"reporting,ui",Fixed an issue where the browse reports screen incorrectly showed a calculated field edit icon next to every field.,,,355095
enhancement,"integration,security,api","SharePoint authentication has been updated to use certificate-based authentication instead of username and password, aligning with modern SharePoint security standards. ",,,356724
bug,"reporting,attachments,system",Fixed an issue where very long field names could break the Excel sheets downloaded from the browse screen.,,,353469
bug,"ui,system","Fixed an issue where Custom Tab Text Sections did not support multiple line input, allowing users to now enter and display text across several lines as intended.",,,295772
feature,"integration,workflow,system","Introducing Databricks Data Selectors & Sync (Beta), a new feature that allows users to easily select and synchronize data with a Databricks environment (via the Databricks API). This is beta functionality and not yet suitable for production use.",,,356515
bug,"ui,system","If you set your preferred date format to 'mmm dd yyyy' (a reasonable choice), you can now actually enter dates in that format like you'd expect.",,,349499
bug,"email,ui","Fixed an issue where emails appeared distorted or improperly formatted when viewed in Gmail Web, ensuring a cleaner and more consistent email display for users.",,,353687
bug,"ui,system","Error messages now display correctly without incorrect HTML escaping, making it easier to understand issues when they occur.",,,353996
bug,"integration,system","Fixed errors occurring when copying data from PostgreSQL to MSSQL using the database tool, ensuring smoother and more reliable data transfers between these systems.",,,355211
bug,"ui,reporting,opsched","The Job Report dropdown in the Schedule Editor now only displays Global reports, making it easier to find the right report without clutter from other report types.",,,306212
enhancement,"system,performance","The BallotUpload process now properly cleans up its temporary files after streaming rendered forms, helping keep the system tidy and preventing unnecessary file buildup.",,,296318
enhancement,"ui,system,security,admin",The custom business rule configuration interface has been migrated from Angular to jQuery.,,,350023
enhancement,"ui,system,security",The Comments view has been migrated from Angular to jQuery.,,,350025
enhancement,"admin,ui,system,security",The Document Types management tool has been migrated from Angular to jQuery.,,,350017
enhancement,"ui,system,security,admin",The reminder time selection interface has been migrated from Angular to jQuery.,,,350024
enhancement,"security,system,ui",Updated DataTables JavaScript from version 1.9.4 to 1.13 to address security concerns and improve compatibility.,,,352852
bug,"workflow,ui","The response date for a partner now correctly clears when the status is removed, ensuring your data stays accurate and up to date without any extra clicks.",,,354221
bug,"workflow,ui",Fixed an issue where slashes in text sections and separators within the workflow task modal would hide the text or separator.,,,353990
enhancement,"security,performance,ui","The marked.js library has been updated to the latest stable v12.x, bringing improved security, better performance, and new features to Markdown rendering across the application. This update affects areas like the MOTD banner, help text, and help page viewer, ensuring a smoother and safer user experience when viewing Markdown content.",,,354511
bug,"workflow,reporting,performance","We've resolved a performance issue affecting workflow reporting, so generating your reports should now be faster and smoother, even when handling large data sets.",,,355718
bug,"workflow,ui,security",Workflow tasks now correctly disable fields when you don't have edit rights.,,,354592
bug,"workflow,email,system",Workflow task reminders now correctly send notifications even when the underlying workflow definition was deleted.,,,355065
3 changes: 3 additions & 0 deletions generator/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
node_modules
.wrangler
.dev.vars
46 changes: 46 additions & 0 deletions generator/CLAUDE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

## Project Overview

Release Note Generator - a Cloudflare Worker that generates release notes by combining Azure DevOps work items with GitHub commits, using OpenAI for AI-enhanced title generation.

## Commands

```bash
# Local development
npm run dev # Start local Cloudflare Worker (requires .dev.vars with secrets)

# Deployment
npm run deploy # Deploy to Cloudflare Workers

# Set production secrets
npx wrangler secret put DEVOPS_PAT
npx wrangler secret put GITHUB_TOKEN
npx wrangler secret put OPENAI_API_KEY
```

## Architecture

**Single-file Worker** ([worker.js](worker.js)) - The entire application is in one file:

- **Routes**: `/` serves the UI, `/api/generate` returns SSE stream of generation progress
- **Data Flow**:
1. Fetch DevOps work items via saved query (`DEVOPS_SAVED_QUERY_ID`)
2. Fetch GitHub commits from master branch since last release tag
3. Match commits to DevOps items via `AB#{id}` pattern in commit messages
4. Enhance titles using OpenAI (`gpt-4.1-mini`)
5. Stream results back via Server-Sent Events

**Key Functions**:
- `fetchDevOpsItems()` - Queries Azure DevOps API using saved query
- `fetchGithubCommits()` - Gets commits after current release version tag from `updates.aucerna.app/execute/21/current.txt`
- `enhanceTitle()` - Sends items to OpenAI for release note generation
- `extractTags()` - Auto-tags items based on content keywords

**Environment Variables** (non-secrets in `wrangler.toml`, secrets in `.dev.vars` locally):
- `DEVOPS_PAT`, `GITHUB_TOKEN`, `OPENAI_API_KEY` - API credentials (secrets)
- `GITHUB_REPO`, `DEVOPS_ORG`, `DEVOPS_PROJECT`, `DEVOPS_SAVED_QUERY_ID` - Config (in wrangler.toml)

**UI**: Windows 95-style interface embedded in `serveUI()`, uses EventSource for real-time progress updates.
85 changes: 85 additions & 0 deletions generator/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
# Release Note Generator

Cloudflare Worker that generates release notes by combining Azure DevOps work items and GitHub commits, with AI-enhanced summaries.

**Production URL:** https://release-notes-generator.deliveryraptor.net

## How It Works

1. Queries Azure DevOps using a saved query (configured in `wrangler.toml`) to get pending work items
2. Fetches GitHub commits since the last release tag
3. Matches commits to DevOps items by `AB#123` references in commit messages
4. Uses OpenAI to generate user-friendly release note titles
5. Returns a CSV with the combined data

## Hosting

Runs on Cloudflare Workers under the Execute account (formerly Jeff's). To manage:
- Log into Cloudflare dashboard
- Go to Workers & Pages > release-note-generator
- Because this is under `deliveryraptor.net` it's only accessible for those with a @quorumsoftware.com address!

## Setup

### Local Development

1. Install dependencies:
```bash
npm install
```

2. Create a `.dev.vars` file with your secrets (see Environment Variables below).

3. Run locally:
```bash
npm run dev
```

### Production Deployment

1. Set secrets in Cloudflare:
```bash
npx wrangler secret put DEVOPS_PAT
npx wrangler secret put GITHUB_TOKEN
npx wrangler secret put OPENAI_API_KEY
```

2. Deploy:
```bash
npm run deploy
```

### Environment Variables

Non-private variables are baked into `wrangler.toml`

#### DEVOPS_PAT
Azure DevOps Personal Access Token with read access to work items.

To create one:
1. Go to Azure DevOps > User Settings (top right) > Personal Access Tokens
2. Click "New Token"
3. Set scope to "Work Items: Read"
4. Copy the generated token

#### GITHUB_TOKEN
GitHub Personal Access Token with repo read access.

To create one:
1. Go to GitHub > Settings > Developer settings > Personal access tokens > Tokens (classic)
2. Click "Generate new token (classic)"
3. Set scope to "repo" (for private repos) or "public_repo" (for public only)
4. Copy the generated token

#### OPENAI_API_KEY
OpenAI API key for AI-enhanced title generation.

**Action Required:** Currently uses Jeff Clement's personal OpenAI account. This will need to be migrated to either:
- A company OpenAI account, or
- Azure OpenAI once that's configured

To update: generate a new API key and run `npx wrangler secret put OPENAI_API_KEY`

## Usage

Make a GET request to your worker URL to download the CSV file with pending release items.
Loading