Skip to content

Commit b901459

Browse files
committed
Merge branch 'main' into tommy/projects-tools-enhancement
2 parents 1a430da + 2621dbe commit b901459

40 files changed

+2787
-300
lines changed

.github/dependabot.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,7 @@ updates:
1313
directory: "/"
1414
schedule:
1515
interval: "weekly"
16+
- package-ecosystem: "github-actions"
17+
directory: "/"
18+
schedule:
19+
interval: "weekly"
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: 120
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 }}

README.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,7 @@ To keep your GitHub PAT secure and reusable across different MCP hosts:
153153
- **Minimum scopes**: Only grant necessary permissions
154154
- `repo` - Repository operations
155155
- `read:packages` - Docker image access
156+
- `read:org` - Organization team access
156157
- **Separate tokens**: Use different PATs for different projects/environments
157158
- **Regular rotation**: Update tokens periodically
158159
- **Never commit**: Keep tokens out of version control
@@ -445,6 +446,13 @@ The following sets of tools are available (all are on by default):
445446
- **get_me** - Get my user profile
446447
- No parameters required
447448

449+
- **get_team_members** - Get team members
450+
- `org`: Organization login (owner) that contains the team. (string, required)
451+
- `team_slug`: Team slug (string, required)
452+
453+
- **get_teams** - Get teams
454+
- `user`: Username to get teams for. If not provided, uses the authenticated user. (string, optional)
455+
448456
</details>
449457

450458
<details>
@@ -559,6 +567,7 @@ The following sets of tools are available (all are on by default):
559567
- `owner`: Repository owner (string, required)
560568
- `repo`: Repository name (string, required)
561569
- `title`: Issue title (string, required)
570+
- `type`: Type of this issue (string, optional)
562571

563572
- **get_issue** - Get issue details
564573

@@ -574,6 +583,9 @@ The following sets of tools are available (all are on by default):
574583
- `perPage`: Results per page for pagination (min 1, max 100) (number, optional)
575584
- `repo`: Repository name (string, required)
576585

586+
- **list_issue_types** - List available issue types
587+
- `owner`: The organization owner of the repository (string, required)
588+
577589
- **list_issues** - List issues
578590

579591
- `after`: Cursor for pagination. Use the endCursor from the previous page's PageInfo for GraphQL APIs. (string, optional)
@@ -630,6 +642,7 @@ The following sets of tools are available (all are on by default):
630642
- `repo`: Repository name (string, required)
631643
- `state`: New state (string, optional)
632644
- `title`: New title (string, optional)
645+
- `type`: New issue type (string, optional)
633646

634647
</details>
635648

@@ -899,6 +912,10 @@ The following sets of tools are available (all are on by default):
899912
- `repo`: Repository name (string, required)
900913
- `sha`: Accepts optional commit SHA. If specified, it will be used instead of ref (string, optional)
901914

915+
- **get_latest_release** - Get latest release
916+
- `owner`: Repository owner (string, required)
917+
- `repo`: Repository name (string, required)
918+
902919
- **get_tag** - Get tag details
903920

904921
- `owner`: Repository owner (string, required)
@@ -921,6 +938,12 @@ The following sets of tools are available (all are on by default):
921938
- `repo`: Repository name (string, required)
922939
- `sha`: Commit SHA, branch or tag name to list commits of. If not provided, uses the default branch of the repository. If a commit SHA is provided, will list commits up to that SHA. (string, optional)
923940

941+
- **list_releases** - List releases
942+
- `owner`: Repository owner (string, required)
943+
- `page`: Page number for pagination (min 1) (number, optional)
944+
- `perPage`: Results per page for pagination (min 1, max 100) (number, optional)
945+
- `repo`: Repository name (string, required)
946+
924947
- **list_tags** - List tags
925948

926949
- `owner`: Repository owner (string, required)

cmd/github-mcp-server/generate_docs.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ func generateReadmeDocs(readmePath string) error {
6464
t, _ := translations.TranslationHelper()
6565

6666
// Create toolset group with mock clients
67-
tsg := github.DefaultToolsetGroup(false, mockGetClient, mockGetGQLClient, mockGetRawClient, t)
67+
tsg := github.DefaultToolsetGroup(false, mockGetClient, mockGetGQLClient, mockGetRawClient, t, 5000)
6868

6969
// Generate toolsets documentation
7070
toolsetsDoc := generateToolsetsDoc(tsg)
@@ -302,7 +302,7 @@ func generateRemoteToolsetsDoc() string {
302302
t, _ := translations.TranslationHelper()
303303

304304
// Create toolset group with mock clients
305-
tsg := github.DefaultToolsetGroup(false, mockGetClient, mockGetGQLClient, mockGetRawClient, t)
305+
tsg := github.DefaultToolsetGroup(false, mockGetClient, mockGetGQLClient, mockGetRawClient, t, 5000)
306306

307307
// Generate table header
308308
buf.WriteString("| Name | Description | API URL | 1-Click Install (VS Code) | Read-only Link | 1-Click Read-only Install (VS Code) |\n")

cmd/github-mcp-server/main.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ var (
5555
ExportTranslations: viper.GetBool("export-translations"),
5656
EnableCommandLogging: viper.GetBool("enable-command-logging"),
5757
LogFilePath: viper.GetString("log-file"),
58+
ContentWindowSize: viper.GetInt("content-window-size"),
5859
}
5960
return ghmcp.RunStdioServer(stdioServerConfig)
6061
},
@@ -75,6 +76,7 @@ func init() {
7576
rootCmd.PersistentFlags().Bool("enable-command-logging", false, "When enabled, the server will log all command requests and responses to the log file")
7677
rootCmd.PersistentFlags().Bool("export-translations", false, "Save translations to a JSON file")
7778
rootCmd.PersistentFlags().String("gh-host", "", "Specify the GitHub hostname (for GitHub Enterprise etc.)")
79+
rootCmd.PersistentFlags().Int("content-window-size", 5000, "Specify the content window size")
7880

7981
// Bind flag to viper
8082
_ = viper.BindPFlag("toolsets", rootCmd.PersistentFlags().Lookup("toolsets"))
@@ -84,6 +86,7 @@ func init() {
8486
_ = viper.BindPFlag("enable-command-logging", rootCmd.PersistentFlags().Lookup("enable-command-logging"))
8587
_ = viper.BindPFlag("export-translations", rootCmd.PersistentFlags().Lookup("export-translations"))
8688
_ = viper.BindPFlag("host", rootCmd.PersistentFlags().Lookup("gh-host"))
89+
_ = viper.BindPFlag("content-window-size", rootCmd.PersistentFlags().Lookup("content-window-size"))
8790

8891
// Add subcommands
8992
rootCmd.AddCommand(stdioCmd)

0 commit comments

Comments
 (0)