Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -1097,6 +1097,7 @@ The following sets of tools are available:
- `owner_type`: Owner type (user or org). If not provided, will be automatically detected. (string, optional)
- `project_number`: The project's number. (number, optional)
- `status_update_id`: The node ID of the project status update. Required for 'get_project_status_update' method. (string, optional)
- `view_id`: The node ID of the project view. Required for 'get_project_view' method. (string, optional)

- **projects_list** - List GitHub Projects resources
- **Required OAuth Scopes**: `read:project`
Expand All @@ -1109,21 +1110,24 @@ The following sets of tools are available:
- `owner`: The owner (user or organization login). The name is not case sensitive. (string, required)
- `owner_type`: Owner type (user or org). If not provided, will automatically try both. (string, optional)
- `per_page`: Results per page (max 50) (number, optional)
- `project_number`: The project's number. Required for 'list_project_fields', 'list_project_items', and 'list_project_status_updates' methods. (number, optional)
- `project_number`: The project's number. Required for 'list_project_fields', 'list_project_items', 'list_project_views', and 'list_project_status_updates' methods. (number, optional)
- `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)

- **projects_write** - Manage GitHub Projects
- **Required OAuth Scopes**: `project`
- `body`: The body of the status update (markdown). Used for 'create_project_status_update' method. (string, optional)
- `field_name`: The name of the iteration field (e.g. 'Sprint'). Required for 'create_iteration_field' method. (string, optional)
- `filter`: Saved view filter; omit on update to preserve it, or pass an empty string to clear it. (string, optional)
- `issue_number`: The issue number. Required for 'add_project_item' when item_type is 'issue'. Also accepted by 'update_project_item' to resolve the item by issue number (combine with item_owner and item_repo). (number, optional)
- `item_id`: The project item ID. Required for 'delete_project_item'. For 'update_project_item', provide either item_id, or (item_owner + item_repo + issue_number) to resolve the item by issue. (number, optional)
- `item_owner`: The owner (user or organization) of the repository containing the issue or pull request. Required for 'add_project_item' method. Also accepted by 'update_project_item' when resolving the item by issue number. (string, optional)
- `item_repo`: The name of the repository containing the issue or pull request. Required for 'add_project_item' method. Also accepted by 'update_project_item' when resolving the item by issue number. (string, optional)
- `item_type`: The item's type, either issue or pull_request. Required for 'add_project_item' method. (string, optional)
- `iteration_duration`: Duration in days for iterations of the field (e.g. 7 for weekly, 14 for bi-weekly). Required for 'create_iteration_field' method. (number, optional)
- `iterations`: Custom iterations for 'create_iteration_field' method. Only set this when you need iterations with varying durations, breaks between them, or specific titles. Otherwise omit it: GitHub auto-creates three iterations of 'iteration_duration' days starting on 'start_date', which is the right choice for most cases. (object[], optional)
- `layout`: View layout; required when creating a view. (string, optional)
- `method`: The method to execute (string, required)
- `name`: View name; required when creating a view. (string, optional)
- `owner`: The project owner (user or organization login). The name is not case sensitive. (string, required)
- `owner_type`: Owner type (user or org). Required for 'create_project' method. If not provided for other methods, will be automatically detected. (string, optional)
- `project_number`: The project's number. Required for all methods except 'create_project'. (number, optional)
Expand All @@ -1133,6 +1137,8 @@ The following sets of tools are available:
- `target_date`: The target date of the status update in YYYY-MM-DD format. Used for 'create_project_status_update' method. (string, optional)
- `title`: The project title. Required for 'create_project' method. (string, optional)
- `updated_field`: Object describing the field to update and its new value. Required for 'update_project_item'. Two shapes are accepted: (1) by ID — {"id": 123456, "value": "..."}; (2) by name — {"name": "Status", "value": "In Progress"}. For single-select fields, option-name resolution requires the by-name shape; on the by-ID shape, pass the option ID. Set value to null to clear the field. (object, optional)
- `view_id`: Project view node ID for update or delete; must belong to owner/project_number. (string, optional)
- `visible_fields`: Field database ID strings or case-insensitive names for table or board creation; valid base-10 int64 strings are IDs. Unsupported for roadmap. (string[], optional)

</details>

Expand Down
9 changes: 7 additions & 2 deletions pkg/github/__toolsnaps__/projects_get.snap
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"readOnlyHint": true,
"title": "Get details of GitHub Projects resources"
},
"description": "Get details about specific GitHub Projects resources.\nUse this tool to get details about individual projects, project fields, and project items by their unique IDs.\n",
"description": "Get details about specific GitHub Projects resources.\nUse this tool to get details about individual projects, project fields, project items, and project views by their unique IDs.\n",
"inputSchema": {
"properties": {
"field_id": {
Expand Down Expand Up @@ -35,7 +35,8 @@
"get_project",
"get_project_field",
"get_project_item",
"get_project_status_update"
"get_project_status_update",
"get_project_view"
],
"type": "string"
},
Expand All @@ -58,6 +59,10 @@
"status_update_id": {
"description": "The node ID of the project status update. Required for 'get_project_status_update' method.",
"type": "string"
},
"view_id": {
"description": "The node ID of the project view. Required for 'get_project_view' method.",
"type": "string"
}
},
"required": [
Expand Down
7 changes: 4 additions & 3 deletions pkg/github/__toolsnaps__/projects_list.snap
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"readOnlyHint": true,
"title": "List GitHub Projects resources"
},
"description": "Tools for listing GitHub Projects resources.\nUse this tool to list projects for a user or organization, or list project fields and items for a specific project.\n",
"description": "Tools for listing GitHub Projects resources.\nUse this tool to list projects for a user or organization, or list project fields, items, views, and status updates for a specific project.\n",
"inputSchema": {
"properties": {
"after": {
Expand Down Expand Up @@ -35,7 +35,8 @@
"list_projects",
"list_project_fields",
"list_project_items",
"list_project_status_updates"
"list_project_status_updates",
"list_project_views"
],
"type": "string"
},
Expand All @@ -56,7 +57,7 @@
"type": "number"
},
"project_number": {
"description": "The project's number. Required for 'list_project_fields', 'list_project_items', and 'list_project_status_updates' methods.",
"description": "The project's number. Required for 'list_project_fields', 'list_project_items', 'list_project_views', and 'list_project_status_updates' methods.",
"type": "number"
},
"query": {
Expand Down
33 changes: 32 additions & 1 deletion pkg/github/__toolsnaps__/projects_write.snap
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
"readOnlyHint": false,
"title": "Manage GitHub Projects"
},
"description": "Create and manage GitHub Projects: create projects, add/update/delete items, create status updates, and add iteration fields.",
"description": "Create and manage GitHub Projects: create projects, manage items and views, create status updates, and add iteration fields.",
"inputSchema": {
"properties": {
"body": {
Expand All @@ -16,6 +16,10 @@
"description": "The name of the iteration field (e.g. 'Sprint'). Required for 'create_iteration_field' method.",
"type": "string"
},
"filter": {
"description": "Saved view filter; omit on update to preserve it, or pass an empty string to clear it.",
"type": "string"
},
"issue_number": {
"description": "The issue number. Required for 'add_project_item' when item_type is 'issue'. Also accepted by 'update_project_item' to resolve the item by issue number (combine with item_owner and item_repo).",
"type": "number"
Expand Down Expand Up @@ -71,18 +75,34 @@
},
"type": "array"
},
"layout": {
"description": "View layout; required when creating a view.",
"enum": [
"table",
"board",
"roadmap"
],
"type": "string"
},
"method": {
"description": "The method to execute",
"enum": [
"add_project_item",
"update_project_item",
"delete_project_item",
"create_project_status_update",
"create_project_view",
"update_project_view",
"delete_project_view",
"create_project",
"create_iteration_field"
],
"type": "string"
},
"name": {
"description": "View name; required when creating a view.",
"type": "string"
},
"owner": {
"description": "The project owner (user or organization login). The name is not case sensitive.",
"type": "string"
Expand Down Expand Up @@ -129,6 +149,17 @@
"updated_field": {
"description": "Object describing the field to update and its new value. Required for 'update_project_item'. Two shapes are accepted: (1) by ID — {\"id\": 123456, \"value\": \"...\"}; (2) by name — {\"name\": \"Status\", \"value\": \"In Progress\"}. For single-select fields, option-name resolution requires the by-name shape; on the by-ID shape, pass the option ID. Set value to null to clear the field.",
"type": "object"
},
"view_id": {
"description": "Project view node ID for update or delete; must belong to owner/project_number.",
"type": "string"
},
"visible_fields": {
"description": "Field database ID strings or case-insensitive names for table or board creation; valid base-10 int64 strings are IDs. Unsupported for roadmap.",
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
Expand Down
9 changes: 9 additions & 0 deletions pkg/github/minimal_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -351,6 +351,15 @@ type MinimalProject struct {
OwnerType string `json:"owner_type,omitempty"`
}

type MinimalProjectView struct {
ID string `json:"id"`
Number int `json:"number"`
Name string `json:"name"`
Layout string `json:"layout"`
Filter string `json:"filter"`
VisibleFields []int64 `json:"visible_fields,omitempty"`
}

type MinimalProjectItem struct {
ID int64 `json:"id"`
NodeID string `json:"node_id,omitempty"`
Expand Down
Loading
Loading