Skip to content

Commit 4143ff4

Browse files
committed
Merge branch 'tommy/create-or-update-file-context' of github.com:github/github-mcp-server into tommy/create-or-update-file-context
2 parents fdf45d7 + 4d36fe6 commit 4143ff4

File tree

8 files changed

+667
-78
lines changed

8 files changed

+667
-78
lines changed

README.md

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -983,9 +983,10 @@ The following sets of tools are available:
983983
- `fields`: Specific list of field IDs to include in the response when getting a project item (e.g. ["102589", "985201", "169875"]). If not provided, only the title field is included. Only used for 'get_project_item' method. (string[], optional)
984984
- `item_id`: The item's ID. Required for 'get_project_item' method. (number, optional)
985985
- `method`: The method to execute (string, required)
986-
- `owner`: The owner (user or organization login). The name is not case sensitive. (string, required)
986+
- `owner`: The owner (user or organization login). The name is not case sensitive. (string, optional)
987987
- `owner_type`: Owner type (user or org). If not provided, will be automatically detected. (string, optional)
988-
- `project_number`: The project's number. (number, required)
988+
- `project_number`: The project's number. (number, optional)
989+
- `status_update_id`: The node ID of the project status update. Required for 'get_project_status_update' method. (string, optional)
989990

990991
- **projects_list** - List GitHub Projects resources
991992
- **Required OAuth Scopes**: `read:project`
@@ -997,11 +998,12 @@ The following sets of tools are available:
997998
- `owner`: The owner (user or organization login). The name is not case sensitive. (string, required)
998999
- `owner_type`: Owner type (user or org). If not provided, will automatically try both. (string, optional)
9991000
- `per_page`: Results per page (max 50) (number, optional)
1000-
- `project_number`: The project's number. Required for 'list_project_fields' and 'list_project_items' methods. (number, optional)
1001+
- `project_number`: The project's number. Required for 'list_project_fields', 'list_project_items', and 'list_project_status_updates' methods. (number, optional)
10011002
- `query`: Filter/query string. For list_projects: filter by title text and state (e.g. "roadmap is:open"). For list_project_items: advanced filtering using GitHub's project filtering syntax. (string, optional)
10021003

10031004
- **projects_write** - Modify GitHub Project items
10041005
- **Required OAuth Scopes**: `project`
1006+
- `body`: The body of the status update (markdown). Used for 'create_project_status_update' method. (string, optional)
10051007
- `issue_number`: The issue number (use when item_type is 'issue' for 'add_project_item' method). Provide either issue_number or pull_request_number. (number, optional)
10061008
- `item_id`: The project item ID. Required for 'update_project_item' and 'delete_project_item' methods. (number, optional)
10071009
- `item_owner`: The owner (user or organization) of the repository containing the issue or pull request. Required for 'add_project_item' method. (string, optional)
@@ -1012,6 +1014,9 @@ The following sets of tools are available:
10121014
- `owner_type`: Owner type (user or org). If not provided, will be automatically detected. (string, optional)
10131015
- `project_number`: The project's number. (number, required)
10141016
- `pull_request_number`: The pull request number (use when item_type is 'pull_request' for 'add_project_item' method). Provide either issue_number or pull_request_number. (number, optional)
1017+
- `start_date`: The start date of the status update in YYYY-MM-DD format. Used for 'create_project_status_update' method. (string, optional)
1018+
- `status`: The status of the project. Used for 'create_project_status_update' method. (string, optional)
1019+
- `target_date`: The target date of the status update in YYYY-MM-DD format. Used for 'create_project_status_update' method. (string, optional)
10151020
- `updated_field`: Object consisting of the ID of the project field to update and the new value for the field. To clear the field, set value to null. Example: {"id": 123456, "value": "New Value"}. Required for 'update_project_item' method. (object, optional)
10161021

10171022
</details>

pkg/github/__toolsnaps__/projects_get.snap

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,8 @@
2626
"enum": [
2727
"get_project",
2828
"get_project_field",
29-
"get_project_item"
29+
"get_project_item",
30+
"get_project_status_update"
3031
],
3132
"type": "string"
3233
},
@@ -45,12 +46,14 @@
4546
"project_number": {
4647
"description": "The project's number.",
4748
"type": "number"
49+
},
50+
"status_update_id": {
51+
"description": "The node ID of the project status update. Required for 'get_project_status_update' method.",
52+
"type": "string"
4853
}
4954
},
5055
"required": [
51-
"method",
52-
"owner",
53-
"project_number"
56+
"method"
5457
],
5558
"type": "object"
5659
},

pkg/github/__toolsnaps__/projects_list.snap

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,8 @@
2626
"enum": [
2727
"list_projects",
2828
"list_project_fields",
29-
"list_project_items"
29+
"list_project_items",
30+
"list_project_status_updates"
3031
],
3132
"type": "string"
3233
},
@@ -47,7 +48,7 @@
4748
"type": "number"
4849
},
4950
"project_number": {
50-
"description": "The project's number. Required for 'list_project_fields' and 'list_project_items' methods.",
51+
"description": "The project's number. Required for 'list_project_fields', 'list_project_items', and 'list_project_status_updates' methods.",
5152
"type": "number"
5253
},
5354
"query": {

pkg/github/__toolsnaps__/projects_write.snap

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,13 @@
33
"destructiveHint": true,
44
"title": "Modify GitHub Project items"
55
},
6-
"description": "Add, update, or delete project items in a GitHub Project.",
6+
"description": "Add, update, or delete project items, or create status updates in a GitHub Project.",
77
"inputSchema": {
88
"properties": {
9+
"body": {
10+
"description": "The body of the status update (markdown). Used for 'create_project_status_update' method.",
11+
"type": "string"
12+
},
913
"issue_number": {
1014
"description": "The issue number (use when item_type is 'issue' for 'add_project_item' method). Provide either issue_number or pull_request_number.",
1115
"type": "number"
@@ -35,7 +39,8 @@
3539
"enum": [
3640
"add_project_item",
3741
"update_project_item",
38-
"delete_project_item"
42+
"delete_project_item",
43+
"create_project_status_update"
3944
],
4045
"type": "string"
4146
},
@@ -59,6 +64,25 @@
5964
"description": "The pull request number (use when item_type is 'pull_request' for 'add_project_item' method). Provide either issue_number or pull_request_number.",
6065
"type": "number"
6166
},
67+
"start_date": {
68+
"description": "The start date of the status update in YYYY-MM-DD format. Used for 'create_project_status_update' method.",
69+
"type": "string"
70+
},
71+
"status": {
72+
"description": "The status of the project. Used for 'create_project_status_update' method.",
73+
"enum": [
74+
"INACTIVE",
75+
"ON_TRACK",
76+
"AT_RISK",
77+
"OFF_TRACK",
78+
"COMPLETE"
79+
],
80+
"type": "string"
81+
},
82+
"target_date": {
83+
"description": "The target date of the status update in YYYY-MM-DD format. Used for 'create_project_status_update' method.",
84+
"type": "string"
85+
},
6286
"updated_field": {
6387
"description": "Object consisting of the ID of the project field to update and the new value for the field. To clear the field, set value to null. Example: {\"id\": 123456, \"value\": \"New Value\"}. Required for 'update_project_item' method.",
6488
"type": "object"

pkg/github/minimal_types.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -250,6 +250,16 @@ type MinimalPRBranchRepo struct {
250250
Description string `json:"description,omitempty"`
251251
}
252252

253+
type MinimalProjectStatusUpdate struct {
254+
ID string `json:"id"`
255+
Body string `json:"body,omitempty"`
256+
Status string `json:"status,omitempty"`
257+
CreatedAt string `json:"created_at,omitempty"`
258+
StartDate string `json:"start_date,omitempty"`
259+
TargetDate string `json:"target_date,omitempty"`
260+
Creator *MinimalUser `json:"creator,omitempty"`
261+
}
262+
253263
// Helper functions
254264

255265
func convertToMinimalIssue(issue *github.Issue) MinimalIssue {

0 commit comments

Comments
 (0)