import { normalizeProjectLocator, pickAuthInput, request } from '../core.ts' import { asRecord, slimProject } from '../shape.ts' /** * Fetch one GitLab project by numeric id, `namespace/project` path, or project URL. * * @example * import getGitlabProject from 'kody:@kody/gitlab/projects/get' * const project = await getGitlabProject({ project: 'example-group/example-project' }) */ export default async function getGitlabProject(params: Record = {}) { const auth = pickAuthInput(params) const { projectId, projectPath } = normalizeProjectLocator(params) const response = await request>({ ...auth, path: `/projects/${projectId}`, throwOnError: true, }) return { ...slimProject(asRecord(response.data)), projectPath, auth: response.auth, } }