Skip to content

Commit c205649

Browse files
CopilotLadyKerr
andcommitted
Add comprehensive release creation script and documentation
Co-authored-by: LadyKerr <47188731+LadyKerr@users.noreply.github.com>
1 parent 6dfb4eb commit c205649

2 files changed

Lines changed: 256 additions & 0 deletions

File tree

RELEASE_v0.19.0_README.md

Lines changed: 117 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,117 @@
1+
# Creating GitHub Release v0.19.0
2+
3+
This PR prepares everything needed to create and publish the v0.19.0 release of the GitHub MCP Server.
4+
5+
## What This PR Includes
6+
7+
1. **GitHub Actions Workflow** (`.github/workflows/create-release-v0.19.0.yml`)
8+
- Automated workflow to create and publish the release
9+
- Can be triggered manually via GitHub Actions UI
10+
11+
2. **Release Creation Script** (`script/create-release-v0.19.0.sh`)
12+
- Standalone bash script for creating the release
13+
- Works with gh CLI
14+
- Includes error handling and validation
15+
16+
3. **Documentation** (`docs/RELEASE_v0.19.0_INSTRUCTIONS.md`)
17+
- Comprehensive instructions for all release creation methods
18+
- Includes manual steps if automation isn't available
19+
20+
## Quick Start: How to Create the Release
21+
22+
### Option 1: Run the Script (Recommended)
23+
24+
After this PR is merged to `main`:
25+
26+
```bash
27+
# Ensure you have gh CLI installed and authenticated
28+
gh auth login
29+
30+
# Run the release creation script
31+
./script/create-release-v0.19.0.sh
32+
```
33+
34+
The script will:
35+
- ✅ Verify gh CLI is installed and authenticated
36+
- ✅ Check if the release/tag already exists
37+
- ✅ Create the tag `v0.19.0` pointing to the correct commit
38+
- ✅ Publish the release with the specified title and notes
39+
- ✅ Provide a link to view the release
40+
41+
### Option 2: Manual Workflow Dispatch
42+
43+
After this PR is merged to `main`:
44+
45+
1. Go to [Actions → Create Release v0.19.0](../../actions/workflows/create-release-v0.19.0.yml)
46+
2. Click "Run workflow"
47+
3. Select `main` branch
48+
4. Click "Run workflow" button
49+
5. Wait for completion and verify
50+
51+
### Option 3: GitHub Web UI
52+
53+
1. Go to https://github.com/LadyKerr/github-mcp-server/releases/new
54+
2. Set **Tag** to `v0.19.0` and target the `main` branch
55+
3. Set **Title** to `GitHub MCP Server v0.19.0`
56+
4. Copy the release notes from `docs/RELEASE_v0.19.0_INSTRUCTIONS.md`
57+
5. Click "Publish release"
58+
59+
## Release Details
60+
61+
- **Tag**: v0.19.0
62+
- **Title**: GitHub MCP Server v0.19.0
63+
- **Target**: main branch (commit `d216b545e91ca12d6b1bf204e7136aa93254bf82`)
64+
- **Type**: Published release (not draft)
65+
66+
## Release Notes Summary
67+
68+
### 📚 Documentation
69+
- Improved GHES/GHEC visibility in README
70+
71+
### ✨ New Features
72+
- Optional unknown toolset handling
73+
74+
### 🔧 Maintenance & Refactoring
75+
- Consolidated pull request review tools
76+
- Simplified Registry release pipeline
77+
78+
For full release notes, see `docs/RELEASE_v0.19.0_INSTRUCTIONS.md`
79+
80+
## Verification Steps
81+
82+
After creating the release:
83+
84+
1. Visit: https://github.com/LadyKerr/github-mcp-server/releases/tag/v0.19.0
85+
2. Verify the release is published (not draft)
86+
3. Verify all links in the release notes work
87+
4. Verify the tag exists: `git fetch --tags && git tag | grep v0.19.0`
88+
89+
## Notes
90+
91+
- The release will be created directly without invoking goreleaser
92+
- If you want goreleaser to build binaries, you'll need to push the tag first
93+
- The target commit (`d216b545e91ca12d6b1bf204e7136aa93254bf82`) contains the release notes
94+
- This is a one-time release script specific to v0.19.0
95+
96+
## Troubleshooting
97+
98+
**"gh CLI is not authenticated"**
99+
```bash
100+
gh auth login
101+
# Or set GH_TOKEN environment variable
102+
export GH_TOKEN=your_token_here
103+
```
104+
105+
**"Release already exists"**
106+
- The script will prompt you to delete and recreate it
107+
- Or manually delete it first: `gh release delete v0.19.0 --yes`
108+
109+
**"Permission denied"**
110+
- Ensure your GitHub token has `repo` permissions
111+
- Or use a token with `public_repo` permissions for public repositories
112+
113+
## Additional Resources
114+
115+
- Detailed Instructions: `docs/RELEASE_v0.19.0_INSTRUCTIONS.md`
116+
- Release Script: `script/create-release-v0.19.0.sh`
117+
- Workflow File: `.github/workflows/create-release-v0.19.0.yml`

script/create-release-v0.19.0.sh

Lines changed: 139 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,139 @@
1+
#!/usr/bin/env bash
2+
#
3+
# Create and Publish GitHub Release v0.19.0
4+
#
5+
# This script creates and publishes the v0.19.0 release for the GitHub MCP Server.
6+
# It requires a GitHub token with repo permissions.
7+
#
8+
# Usage:
9+
# export GH_TOKEN=your_github_token
10+
# ./script/create-release-v0.19.0.sh
11+
#
12+
# Or with gh CLI already authenticated:
13+
# ./script/create-release-v0.19.0.sh
14+
15+
set -e
16+
set -o pipefail
17+
18+
# Colors for output
19+
RED='\033[0;31m'
20+
GREEN='\033[0;32m'
21+
YELLOW='\033[1;33m'
22+
NC='\033[0m' # No Color
23+
24+
# Configuration
25+
REPO="LadyKerr/github-mcp-server"
26+
TAG="v0.19.0"
27+
TITLE="GitHub MCP Server v0.19.0"
28+
TARGET_COMMIT="d216b545e91ca12d6b1bf204e7136aa93254bf82"
29+
30+
# Release notes content
31+
read -r -d '' RELEASE_NOTES << 'EOF' || true
32+
# GitHub MCP Server 0.19.0
33+
34+
## 📚 Documentation
35+
36+
- **Improved GHES/GHEC visibility in README** - Restructured documentation to better highlight GitHub Enterprise Server and GitHub Enterprise Cloud configuration, including fixing an error in the example URL. Addresses user feedback about lacking enterprise documentation. [#1210](https://github.com/github/github-mcp-server/pull/1210) by @tonytrg
37+
38+
## ✨ New Features
39+
40+
- **Optional unknown toolset handling** - Added ability to ignore unknown toolsets rather than raising an error, providing more flexible configuration options. [#1202](https://github.com/github/github-mcp-server/pull/1202) by @omgitsads
41+
42+
## 🔧 Maintenance & Refactoring
43+
44+
- **Consolidated pull request review tools** - Simplified the PR review tool interface by consolidating `create_and_submit_pull_request_review`, `create_pending_pull_request_review`, `submit_pending_pull_request_review`, and `delete_pending_pull_request_review` into a single `pull_request_review_write` tool with method parameters (`create`, `submit_pending`, `delete_pending`). Validated across models with no regressions. [#1192](https://github.com/github/github-mcp-server/pull/1192) by @almaleksia
45+
46+
- **Simplified Registry release pipeline** - Streamlined the registry publication workflow to use version tag triggers instead of repository dispatch, eliminating the need for elevated permissions. Added 5-minute availability check for Docker images before MCP Registry publication to improve reliability. [#1204](https://github.com/github/github-mcp-server/pull/1204) by @MattBabbage
47+
48+
---
49+
50+
**Full Changelog**: https://github.com/github/github-mcp-server/compare/v0.18.0...v0.19.0
51+
EOF
52+
53+
echo -e "${YELLOW}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
54+
echo -e "${YELLOW} GitHub MCP Server - Release Creator${NC}"
55+
echo -e "${YELLOW}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
56+
echo ""
57+
echo "Repository: ${REPO}"
58+
echo "Tag: ${TAG}"
59+
echo "Title: ${TITLE}"
60+
echo "Target Commit: ${TARGET_COMMIT}"
61+
echo ""
62+
63+
# Check if gh CLI is available
64+
if ! command -v gh &> /dev/null; then
65+
echo -e "${RED}✗ Error: gh CLI is not installed${NC}"
66+
echo "Please install gh CLI from: https://cli.github.com/"
67+
exit 1
68+
fi
69+
70+
echo -e "${GREEN}${NC} gh CLI is installed"
71+
72+
# Check if authenticated
73+
if ! gh auth status &> /dev/null; then
74+
echo -e "${RED}✗ Error: gh CLI is not authenticated${NC}"
75+
echo ""
76+
echo "Please authenticate using one of these methods:"
77+
echo " 1. gh auth login"
78+
echo " 2. export GH_TOKEN=your_github_token"
79+
echo " 3. export GITHUB_TOKEN=your_github_token"
80+
exit 1
81+
fi
82+
83+
echo -e "${GREEN}${NC} gh CLI is authenticated"
84+
echo ""
85+
86+
# Check if release already exists
87+
if gh release view "${TAG}" --repo "${REPO}" &> /dev/null; then
88+
echo -e "${YELLOW}⚠ Warning: Release ${TAG} already exists${NC}"
89+
echo ""
90+
read -p "Do you want to delete and recreate it? (y/N) " -n 1 -r
91+
echo
92+
if [[ $REPLY =~ ^[Yy]$ ]]; then
93+
echo "Deleting existing release..."
94+
gh release delete "${TAG}" --repo "${REPO}" --yes
95+
echo -e "${GREEN}${NC} Deleted existing release"
96+
else
97+
echo "Aborting."
98+
exit 1
99+
fi
100+
fi
101+
102+
# Check if tag already exists
103+
if git ls-remote --tags "https://github.com/${REPO}.git" | grep -q "refs/tags/${TAG}$"; then
104+
echo -e "${YELLOW}⚠ Warning: Tag ${TAG} already exists${NC}"
105+
echo "The release will be created using the existing tag."
106+
echo ""
107+
fi
108+
109+
# Create temporary file for release notes
110+
NOTES_FILE=$(mktemp)
111+
echo "${RELEASE_NOTES}" > "${NOTES_FILE}"
112+
113+
# Create and publish the release
114+
echo "Creating and publishing release ${TAG}..."
115+
echo ""
116+
117+
if gh release create "${TAG}" \
118+
--repo "${REPO}" \
119+
--title "${TITLE}" \
120+
--notes-file "${NOTES_FILE}" \
121+
--target "${TARGET_COMMIT}"; then
122+
123+
# Clean up
124+
rm -f "${NOTES_FILE}"
125+
126+
echo ""
127+
echo -e "${GREEN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
128+
echo -e "${GREEN}✓ Successfully created and published release ${TAG}${NC}"
129+
echo -e "${GREEN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
130+
echo ""
131+
echo "🔗 View release: https://github.com/${REPO}/releases/tag/${TAG}"
132+
echo ""
133+
else
134+
# Clean up on error
135+
rm -f "${NOTES_FILE}"
136+
echo ""
137+
echo -e "${RED}✗ Failed to create release${NC}"
138+
exit 1
139+
fi

0 commit comments

Comments
 (0)