diff --git a/backend/src/modules/repo/repo.controller.ts b/backend/src/modules/repo/repo.controller.ts index 6294e20..9830fed 100644 --- a/backend/src/modules/repo/repo.controller.ts +++ b/backend/src/modules/repo/repo.controller.ts @@ -47,6 +47,14 @@ export class RepoController { return this.repoService.create(dto, user.id); } + // ':repoId' 보다 먼저 선언해야 'owner' 가 파라미터로 매칭되지 않음 + @Get('owner') + @ApiOperation({ summary: '현재 조직(소유자) 조회 — 생성 폼 표시용' }) + @ApiResponse({ status: 200, description: '조회 성공' }) + getOwner(): { owner: string } { + return { owner: this.repoService.getOwner() }; + } + @Get(':repoId') @ApiOperation({ summary: '저장소 단건 조회' }) @ApiResponse({ status: 200, description: '조회 성공' }) diff --git a/backend/src/modules/repo/repo.service.ts b/backend/src/modules/repo/repo.service.ts index 6c1b96e..b2b2414 100644 --- a/backend/src/modules/repo/repo.service.ts +++ b/backend/src/modules/repo/repo.service.ts @@ -57,6 +57,12 @@ export class RepoService { private readonly gitea: GiteaService, ) {} + // 현재 저장소 소유자(조직) — Gitea 연동 시 GITEA_ORG, 아니면 기본 상수. + // 프론트 생성 폼의 "소유자 고정" 표시에 사용(저장소 생성 전 미리 노출). + getOwner(): string { + return this.gitea.enabled ? this.gitea.org : DEFAULT_OWNER; + } + // 내가 멤버인 저장소 목록 async findAllForUser(userId: string): Promise { const memberships = await this.memberRepo.find({ diff --git a/frontend/src/composables/useRepo.ts b/frontend/src/composables/useRepo.ts index e166ae9..45fb59f 100644 --- a/frontend/src/composables/useRepo.ts +++ b/frontend/src/composables/useRepo.ts @@ -9,6 +9,12 @@ export function useRepo() { return (await api.get('/repos')) as unknown as ApiRepo[] } + // 현재 조직(소유자) — 생성 폼의 "소유자 고정" 표시용 + async function owner(): Promise { + const res = (await api.get('/repos/owner')) as unknown as { owner: string } + return res.owner + } + async function get(id: string): Promise { return (await api.get(`/repos/${id}`)) as unknown as ApiRepo } @@ -25,5 +31,5 @@ export function useRepo() { await api.delete(`/repos/${id}`) } - return { list, get, create, update, remove } + return { list, owner, get, create, update, remove } } diff --git a/frontend/src/pages/relay/RepoCreatePage.vue b/frontend/src/pages/relay/RepoCreatePage.vue index b20e7b7..133e706 100644 --- a/frontend/src/pages/relay/RepoCreatePage.vue +++ b/frontend/src/pages/relay/RepoCreatePage.vue @@ -1,14 +1,23 @@