Skip to content

Commit c6e0983

Browse files
authored
Merge branch 'main' into issue-461
2 parents ae4e6d3 + 02c8629 commit c6e0983

File tree

137 files changed

+15121
-1261
lines changed

Some content is hidden

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

137 files changed

+15121
-1261
lines changed

.github/ISSUE_TEMPLATE/feature_request.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,10 @@ A clear and concise description of what the feature or problem is.
1515

1616
How will it benefit GitHub MCP Server and its users?
1717

18+
### Example prompts or workflows (for tools/toolsets only)
19+
20+
If it's a new tool or improvement, share 3–5 example prompts or workflows it would enable. Just enough detail to show the value. Clear, valuable use cases are more likely to get approved.
21+
1822
### Additional context
1923

20-
Add any other context like screenshots or mockups are helpful, if applicable.
24+
Add any other context like screenshots or mockups are helpful, if applicable.
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
name: Close inactive issues
2+
on:
3+
schedule:
4+
- cron: "30 8 * * *"
5+
6+
jobs:
7+
close-issues:
8+
runs-on: ubuntu-latest
9+
env:
10+
PR_DAYS_BEFORE_STALE: 60
11+
PR_DAYS_BEFORE_CLOSE: 10
12+
PR_STALE_LABEL: stale
13+
permissions:
14+
issues: write
15+
pull-requests: write
16+
steps:
17+
- uses: actions/stale@v9
18+
with:
19+
days-before-issue-stale: ${{ env.PR_DAYS_BEFORE_STALE }}
20+
days-before-issue-close: ${{ env.PR_DAYS_BEFORE_CLOSE }}
21+
stale-issue-label: ${{ env.PR_STALE_LABEL }}
22+
stale-issue-message: "This issue is stale because it has been open for ${{ env.PR_DAYS_BEFORE_STALE }} days with no activity. Leave a comment to avoid closing this issue in ${{ env.PR_DAYS_BEFORE_CLOSE }} days."
23+
close-issue-message: "This issue was closed because it has been inactive for ${{ env.PR_DAYS_BEFORE_CLOSE }} days since being marked as stale."
24+
days-before-pr-stale: -1
25+
days-before-pr-close: -1
26+
# Start with the oldest items first
27+
ascending: true
28+
repo-token: ${{ secrets.GITHUB_TOKEN }}

.github/workflows/docker-publish.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,11 @@ on:
99
schedule:
1010
- cron: "27 0 * * *"
1111
push:
12-
branches: ["main"]
12+
branches: ["main", "next"]
1313
# Publish semver tags as releases.
1414
tags: ["v*.*.*"]
1515
pull_request:
16-
branches: ["main"]
16+
branches: ["main", "next"]
1717

1818
env:
1919
# Use docker.io for Docker Hub if empty

.github/workflows/docs-check.yml

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
name: Documentation Check
2+
3+
on:
4+
push:
5+
branches: [ main ]
6+
pull_request:
7+
branches: [ main ]
8+
9+
permissions:
10+
contents: read
11+
12+
jobs:
13+
docs-check:
14+
runs-on: ubuntu-latest
15+
steps:
16+
- name: Checkout code
17+
uses: actions/checkout@v4
18+
19+
- name: Set up Go
20+
uses: actions/setup-go@v5
21+
with:
22+
go-version-file: 'go.mod'
23+
24+
- name: Build docs generator
25+
run: go build -o github-mcp-server ./cmd/github-mcp-server
26+
27+
- name: Generate documentation
28+
run: ./github-mcp-server generate-docs
29+
30+
- name: Check for documentation changes
31+
run: |
32+
if ! git diff --exit-code README.md; then
33+
echo "❌ Documentation is out of date!"
34+
echo ""
35+
echo "The generated documentation differs from what's committed."
36+
echo "Please run the following command to update the documentation:"
37+
echo ""
38+
echo " go run ./cmd/github-mcp-server generate-docs"
39+
echo ""
40+
echo "Then commit the changes."
41+
echo ""
42+
echo "Changes detected:"
43+
git diff README.md
44+
exit 1
45+
else
46+
echo "✅ Documentation is up to date!"
47+
fi

.github/workflows/go.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: Unit Tests
1+
name: Build and Test Go Project
22
on: [push, pull_request]
33

44
permissions:
@@ -26,7 +26,7 @@ jobs:
2626
run: go mod download
2727

2828
- name: Run unit tests
29-
run: go test -race ./...
29+
run: script/test
3030

3131
- name: Build
3232
run: go build -v ./cmd/github-mcp-server

.github/workflows/lint.yaml

Lines changed: 0 additions & 45 deletions
This file was deleted.

.github/workflows/lint.yml

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
name: golangci-lint
2+
on:
3+
push:
4+
branches:
5+
- main
6+
pull_request:
7+
8+
permissions:
9+
contents: read
10+
11+
jobs:
12+
golangci:
13+
name: lint
14+
runs-on: ubuntu-latest
15+
steps:
16+
- uses: actions/checkout@v4
17+
- uses: actions/setup-go@v5
18+
with:
19+
go-version: stable
20+
- name: golangci-lint
21+
uses: golangci/golangci-lint-action@v8
22+
with:
23+
version: v2.1

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,7 @@ __debug_bin*
1111

1212
# Go
1313
vendor
14+
bin/
15+
16+
# macOS
17+
.DS_Store

.golangci.yml

Lines changed: 25 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,47 +1,37 @@
1-
# https://golangci-lint.run/usage/configuration
21
version: "2"
3-
42
run:
5-
timeout: 5m
6-
tests: true
73
concurrency: 4
8-
4+
tests: true
95
linters:
106
enable:
11-
- govet
12-
- errcheck
13-
- staticcheck
14-
- revive
15-
- ineffassign
16-
- unused
17-
- misspell
18-
- nakedret
197
- bodyclose
208
- gocritic
21-
- makezero
229
- gosec
10+
- makezero
11+
- misspell
12+
- nakedret
13+
- revive
14+
exclusions:
15+
generated: lax
16+
presets:
17+
- comments
18+
- common-false-positives
19+
- legacy
20+
- std-error-handling
21+
paths:
22+
- third_party$
23+
- builtin$
24+
- examples$
2325
settings:
2426
staticcheck:
2527
checks:
26-
- all
27-
- '-QF1008' # Allow embedded structs to be referenced by field
28-
- '-ST1000' # Do not require package comments
29-
revive:
30-
rules:
31-
- name: exported
32-
disabled: true
33-
- name: exported
34-
disabled: true
35-
- name: package-comments
36-
disabled: true
37-
28+
- "all"
29+
- -QF1008
30+
- -ST1000
3831
formatters:
39-
enable:
40-
- gofmt
41-
- goimports
42-
43-
output:
44-
formats:
45-
text:
46-
print-linter-name: true
47-
print-issued-lines: true
32+
exclusions:
33+
generated: lax
34+
paths:
35+
- third_party$
36+
- builtin$
37+
- examples$

CONTRIBUTING.md

Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,22 +10,36 @@ Contributions to this project are [released](https://help.github.com/articles/gi
1010

1111
Please note that this project is released with a [Contributor Code of Conduct](CODE_OF_CONDUCT.md). By participating in this project you agree to abide by its terms.
1212

13+
## What we're looking for
14+
15+
We can't guarantee that every tool, feature, or pull request will be approved or merged. Our focus is on supporting high-quality, high-impact capabilities that advance agentic workflows and deliver clear value to developers.
16+
17+
To increase the chances your request is accepted:
18+
* Include real use cases or examples that demonstrate practical value
19+
* If your request stalls, you can open a Discussion post and link to your issue or PR
20+
* We actively revisit requests that gain strong community engagement (👍s, comments, or evidence of real-world use)
21+
22+
Thanks for contributing and for helping us build toolsets that are truly valuable!
23+
1324
## Prerequisites for running and testing code
1425

1526
These are one time installations required to be able to test your changes locally as part of the pull request (PR) submission process.
1627

17-
1. install Go [through download](https://go.dev/doc/install) | [through Homebrew](https://formulae.brew.sh/formula/go)
18-
1. [install golangci-lint v2](https://golangci-lint.run/welcome/install/#local-installation)
28+
1. Install Go [through download](https://go.dev/doc/install) | [through Homebrew](https://formulae.brew.sh/formula/go)
29+
2. [Install golangci-lint v2](https://golangci-lint.run/welcome/install/#local-installation)
1930

2031
## Submitting a pull request
2132

2233
1. [Fork][fork] and clone the repository
23-
1. Make sure the tests pass on your machine: `go test -v ./...`
24-
1. Make sure linter passes on your machine: `golangci-lint run`
25-
1. Create a new branch: `git checkout -b my-branch-name`
26-
1. Make your change, add tests, and make sure the tests and linter still pass
27-
1. Push to your fork and [submit a pull request][pr]
28-
1. Pat yourself on the back and wait for your pull request to be reviewed and merged.
34+
2. Make sure the tests pass on your machine: `go test -v ./...`
35+
3. Make sure linter passes on your machine: `golangci-lint run`
36+
4. Create a new branch: `git checkout -b my-branch-name`
37+
5. Add your changes and tests, and make sure the Action workflows still pass
38+
- Run linter: `script/lint`
39+
- Update snapshots and run tests: `UPDATE_TOOLSNAPS=true go test ./...`
40+
- Update readme documentation: `script/generate-docs`
41+
6. Push to your fork and [submit a pull request][pr] targeting the `main` branch
42+
7. Pat yourself on the back and wait for your pull request to be reviewed and merged.
2943

3044
Here are a few things you can do that will increase the likelihood of your pull request being accepted:
3145

0 commit comments

Comments
 (0)