get-repository
Retrieve repository details from GitHub Enterprise using owner and repository name to access metadata, issues, pull requests, and workflows via MCP Server integration.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| owner | Yes | User or organization name | |
| repo | Yes | Repository name |
Implementation Reference
- server/index.js:172-224 (registration)Registration of the 'get-repository' tool, including Zod input schema (owner, repo) and inline async handler that validates parameters, fetches repository data using RepositoryAPI, formats it with formatRepository, and returns structured text response.server.tool("get-repository", { owner: z.string().describe("저장소 소유자 (사용자 또는 조직)"), repo: z.string().describe("저장소 이름") }, async ({ owner, repo }) => { try { // 매개변수 검증 if (!owner || typeof owner !== 'string' || owner.trim() === '') { return { content: [ { type: "text", text: "오류: 저장소 소유자(owner)는 필수 항목입니다." } ], isError: true }; } if (!repo || typeof repo !== 'string' || repo.trim() === '') { return { content: [ { type: "text", text: "오류: 저장소 이름(repo)은 필수 항목입니다." } ], isError: true }; } const repository = await context.repository.getRepository(owner, repo); // 형식화된 저장소 정보 const formattedRepo = formatRepository(repository); return { content: [ { type: "text", text: `저장소 '${owner}/${repo}' 정보:\n\n${JSON.stringify(formattedRepo, null, 2)}` } ] }; } catch (error) { console.error('저장소 정보 조회 오류:', error); return { content: [ { type: "text", text: `저장소 정보 조회 중 오류가 발생했습니다: ${error.message}` } ], isError: true }; } });
- server/index.js:12-37 (helper)formatRepository helper function that transforms raw GitHub repository data into a user-friendly structured format, used in the get-repository tool handler.function formatRepository(repo) { return { id: repo.id, name: repo.name, full_name: repo.full_name, private: repo.private, description: repo.description || '설명 없음', html_url: repo.html_url, created_at: repo.created_at, updated_at: repo.updated_at, pushed_at: repo.pushed_at, language: repo.language, default_branch: repo.default_branch, stargazers_count: repo.stargazers_count, forks_count: repo.forks_count, watchers_count: repo.watchers_count, open_issues_count: repo.open_issues_count, license: repo.license ? repo.license.name : null, owner: { login: repo.owner.login, id: repo.owner.id, avatar_url: repo.owner.avatar_url, html_url: repo.owner.html_url, type: repo.owner.type } };
- api/repos/repository.js:36-40 (helper)RepositoryAPI.getRepository method implementation, which performs the actual HTTP GET request to the GitHub API endpoint for repository details, called from the tool handler.* 저장소 세부 정보 조회 */ async getRepository(owner, repo) { return this.client.get(`repos/${owner}/${repo}`); }