Skip to main content
Glama
kurdin

GitHub Repos Manager MCP Server

workflows.cjs4.46 kB
async function list_workflows(params, apiService) { const { owner, repo, per_page, page } = params; if (!owner || !repo) { throw new Error( "Owner and repository name are required for list_workflows. Please provide them in arguments or ensure a default is set." ); } try { const result = await apiService.listWorkflows( owner, repo, per_page, page ); return result; } catch (error) { console.error("Error in list_workflows handler:", error.message); return { error: error.message }; } } async function list_workflow_runs(params, apiService) { const { owner, repo, workflow_id, ...otherParams } = params; if (!owner || !repo) { throw new Error( "Owner and repository name are required for list_workflow_runs. Please provide them in arguments or ensure a default is set." ); } if (!workflow_id) { throw new Error("workflow_id is required for list_workflow_runs."); } try { const result = await apiService.listWorkflowRuns( owner, repo, workflow_id, otherParams ); return result; } catch (error) { console.error("Error in list_workflow_runs handler:", error.message); return { error: error.message }; } } async function get_workflow_run_details(params, apiService) { const { owner, repo, run_id, exclude_pull_requests, } = params; if (!owner || !repo) { throw new Error( "Owner and repository name are required for get_workflow_run_details. Please provide them in arguments or ensure a default is set." ); } if (!run_id) { throw new Error("run_id is required for get_workflow_run_details."); } try { const result = await apiService.getWorkflowRunDetails( owner, repo, run_id, exclude_pull_requests ); return result; } catch (error) { console.error("Error in get_workflow_run_details handler:", error.message); return { error: error.message }; } } async function trigger_workflow(params, apiService) { const { owner, repo, workflow_id, ref, inputs, } = params; if (!owner || !repo) { throw new Error( "Owner and repository name are required for trigger_workflow. Please provide them in arguments or ensure a default is set." ); } if (!workflow_id) { throw new Error("workflow_id is required for trigger_workflow."); } if (!ref) { throw new Error("ref (branch or tag) is required for trigger_workflow."); } try { const result = await apiService.triggerWorkflow( owner, repo, workflow_id, ref, inputs ); return result; } catch (error) { console.error("Error in trigger_workflow handler:", error.message); return { error: error.message }; } } async function download_workflow_artifacts(params, apiService) { const { owner, repo, artifact_id, archive_format, } = params; if (!owner || !repo) { throw new Error( "Owner and repository name are required for download_workflow_artifacts. Please provide them in arguments or ensure a default is set." ); } if (!artifact_id) { throw new Error("artifact_id is required for download_workflow_artifacts."); } try { const result = await apiService.downloadWorkflowArtifact( owner, repo, artifact_id, archive_format ); return result; } catch (error) { console.error( "Error in download_workflow_artifacts handler:", error.message ); return { error: error.message }; } } async function cancel_workflow_run(params, apiService) { const { owner, repo, run_id } = params; if (!owner || !repo) { throw new Error( "Owner and repository name are required for cancel_workflow_run. Please provide them in arguments or ensure a default is set." ); } if (!run_id) { throw new Error("run_id is required for cancel_workflow_run."); } try { const result = await apiService.cancelWorkflowRun( owner, repo, run_id ); return result; } catch (error) { console.error("Error in cancel_workflow_run handler:", error.message); return { error: error.message }; } } module.exports = { list_workflows, list_workflow_runs, get_workflow_run_details, trigger_workflow, download_workflow_artifacts, cancel_workflow_run, };

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/kurdin/github-repos-manager-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server