Skip to content

Commit 84b1f0c

Browse files
committed
Merge remote-tracking branch 'origin/main' into raw-client-error-annotation
2 parents 8dad5c2 + ce2e4f9 commit 84b1f0c

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

77 files changed

+13310
-9275
lines changed

.github/pull_request_template.md

Lines changed: 41 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,44 @@
11
<!--
2-
Thank you for contributing to GitHub MCP Server!
3-
Please reference an existing issue: `Closes #NUMBER`
4-
5-
Screenshots or videos of changed behavior is incredibly helpful and always appreciated.
6-
Consider addressing the following:
7-
- Tradeoffs: List tradeoffs you made to take on or pay down tech debt.
8-
- Alternatives: Describe alternative approaches you considered and why you discarded them.
2+
Copilot: Fill all sections. Prefer short, concrete answers.
3+
If a checkbox is selected, add a brief explanation.
94
-->
105

11-
Closes:
6+
## Summary
7+
<!-- In 1–2 sentences: what does this PR do? -->
8+
9+
## Why
10+
<!-- Why is this change needed? Link issues or discussions. -->
11+
Fixes #
12+
13+
## What changed
14+
<!-- Bullet list of concrete changes. -->
15+
-
16+
-
17+
18+
## MCP impact
19+
<!-- Select one or more. If selected, add 1–2 sentences. -->
20+
- [ ] No tool or API changes
21+
- [ ] Tool schema or behavior changed
22+
- [ ] New tool added
23+
24+
## Prompts tested (tool changes only)
25+
<!-- If you changed or added tools, list example prompts you tested. -->
26+
<!-- Include prompts that trigger the tool and describe the use case. -->
27+
<!-- Example: "List all open issues in the repo assigned to me" -->
28+
-
29+
30+
## Security / limits
31+
<!-- Select if relevant. Add a short note if checked. -->
32+
- [ ] No security or limits impact
33+
- [ ] Auth / permissions considered
34+
- [ ] Data exposure, filtering, or token/size limits considered
35+
36+
## Lint & tests
37+
<!-- Check what you ran. If not run, explain briefly. -->
38+
- [ ] Linted locally with `./script/lint`
39+
- [ ] Tested locally with `./script/test`
40+
41+
## Docs
42+
43+
- [ ] Not needed
44+
- [ ] Updated (README / docs / examples)

.github/workflows/conformance.yml

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
name: Conformance Test
2+
3+
on:
4+
pull_request:
5+
6+
permissions:
7+
contents: read
8+
9+
jobs:
10+
conformance:
11+
runs-on: ubuntu-latest
12+
13+
steps:
14+
- name: Check out code
15+
uses: actions/checkout@v6
16+
with:
17+
# Fetch full history to access merge-base
18+
fetch-depth: 0
19+
20+
- name: Set up Go
21+
uses: actions/setup-go@v6
22+
with:
23+
go-version-file: "go.mod"
24+
25+
- name: Download dependencies
26+
run: go mod download
27+
28+
- name: Run conformance test
29+
id: conformance
30+
run: |
31+
# Run conformance test, capture stdout for summary
32+
script/conformance-test > conformance-summary.txt 2>&1 || true
33+
34+
# Output the summary
35+
cat conformance-summary.txt
36+
37+
# Check result
38+
if grep -q "RESULT: ALL TESTS PASSED" conformance-summary.txt; then
39+
echo "status=passed" >> $GITHUB_OUTPUT
40+
else
41+
echo "status=differences" >> $GITHUB_OUTPUT
42+
fi
43+
44+
- name: Generate Job Summary
45+
run: |
46+
# Add the full markdown report to the job summary
47+
echo "# MCP Server Conformance Report" >> $GITHUB_STEP_SUMMARY
48+
echo "" >> $GITHUB_STEP_SUMMARY
49+
echo "Comparing PR branch against merge-base with \`origin/main\`" >> $GITHUB_STEP_SUMMARY
50+
echo "" >> $GITHUB_STEP_SUMMARY
51+
52+
# Extract and append the report content (skip the header since we added our own)
53+
tail -n +5 conformance-report/CONFORMANCE_REPORT.md >> $GITHUB_STEP_SUMMARY
54+
55+
echo "" >> $GITHUB_STEP_SUMMARY
56+
echo "---" >> $GITHUB_STEP_SUMMARY
57+
echo "" >> $GITHUB_STEP_SUMMARY
58+
59+
# Add interpretation note
60+
if [ "${{ steps.conformance.outputs.status }}" = "passed" ]; then
61+
echo "✅ **All conformance tests passed** - No behavioral differences detected." >> $GITHUB_STEP_SUMMARY
62+
else
63+
echo "⚠️ **Differences detected** - Review the diffs above to ensure changes are intentional." >> $GITHUB_STEP_SUMMARY
64+
echo "" >> $GITHUB_STEP_SUMMARY
65+
echo "Common expected differences:" >> $GITHUB_STEP_SUMMARY
66+
echo "- New tools/toolsets added" >> $GITHUB_STEP_SUMMARY
67+
echo "- Tool descriptions updated" >> $GITHUB_STEP_SUMMARY
68+
echo "- Capability changes (intentional improvements)" >> $GITHUB_STEP_SUMMARY
69+
fi

.github/workflows/docker-publish.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ jobs:
8787
type=raw,value=latest,enable=${{ github.ref_type == 'tag' && startsWith(github.ref, 'refs/tags/v') && !contains(github.ref, '-') }}
8888
8989
- name: Go Build Cache for Docker
90-
uses: actions/cache@v4
90+
uses: actions/cache@v5
9191
with:
9292
path: go-build-cache
9393
key: ${{ runner.os }}-go-build-cache-${{ hashFiles('**/go.sum') }}

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,4 +19,5 @@ bin/
1919
# binary
2020
github-mcp-server
2121

22-
.history
22+
.history
23+
conformance-report/

CONTRIBUTING.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ These are one time installations required to be able to test your changes locall
3939
- Run linter: `script/lint`
4040
- Update snapshots and run tests: `UPDATE_TOOLSNAPS=true go test ./...`
4141
- Update readme documentation: `script/generate-docs`
42+
- If renaming a tool, add a deprecation alias (see [Tool Renaming Guide](docs/tool-renaming.md))
4243
6. Push to your fork and [submit a pull request][pr] targeting the `main` branch
4344
7. Pat yourself on the back and wait for your pull request to be reviewed and merged.
4445

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -384,6 +384,7 @@ You can also configure specific tools using the `--tools` flag. Tools can be use
384384
- Tools, toolsets, and dynamic toolsets can all be used together
385385
- Read-only mode takes priority: write tools are skipped if `--read-only` is set, even if explicitly requested via `--tools`
386386
- Tool names must match exactly (e.g., `get_file_contents`, not `getFileContents`). Invalid tool names will cause the server to fail at startup with an error message
387+
- When tools are renamed, old names are preserved as aliases for backward compatibility. See [Deprecated Tool Aliases](docs/deprecated-tool-aliases.md) for details.
387388

388389
### Using Toolsets With Docker
389390

@@ -459,7 +460,6 @@ The following sets of tools are available:
459460
| `code_security` | Code security related tools, such as GitHub Code Scanning |
460461
| `dependabot` | Dependabot tools |
461462
| `discussions` | GitHub Discussions related tools |
462-
| `experiments` | Experimental features that are not considered stable yet |
463463
| `gists` | GitHub Gist related tools |
464464
| `git` | GitHub Git API related tools for low-level Git operations |
465465
| `issues` | GitHub Issues related tools |

0 commit comments

Comments
 (0)