Class: LinearToonMcp::Tools::GetProject
- Defined in:
- lib/linear_toon_mcp/tools/get_project.rb
Overview
Fetch a single Linear project by ID, name, or slug and return it as TOON. Supports optional includes for members, milestones, and resources.
Constant Summary collapse
- BASE_FIELDS =
<<~GRAPHQL id name slugId icon color url description state priority priorityLabel startDate targetDate createdAt updatedAt archivedAt progress scope completedScopeHistory lead { id name } status { id name } teams { nodes { id name } } labels { nodes { id name } } initiatives { nodes { id name } } GRAPHQL
- MEMBERS_FIELDS =
"members { nodes { id name email } }"- MILESTONES_FIELDS =
"projectMilestones { nodes { id name targetDate } }"- RESOURCES_FIELDS =
"documents { nodes { id title } }"
Instance Method Summary collapse
-
#perform(query:, includeMembers: false, includeMilestones: false, includeResources: false) ⇒ Object
standard:disable Naming/VariableName.
Methods inherited from Get
entity, entity_label, entity_name, #not_found_message, query_string, #variables
Methods inherited from Base
call, #call, error_response, success_response
Instance Method Details
#perform(query:, includeMembers: false, includeMilestones: false, includeResources: false) ⇒ Object
standard:disable Naming/VariableName
59 60 61 62 63 64 |
# File 'lib/linear_toon_mcp/tools/get_project.rb', line 59 def perform(query:, includeMembers: false, includeMilestones: false, includeResources: false) project_id = Resolvers::Project.call(value: query) graphql = build_query(includeMembers:, includeMilestones:, includeResources:) data = client.query(graphql, variables: {id: project_id}) data["project"] or raise Error, "Project not found: #{query}" end |