feat: 저장소 소유자(조직)를 백엔드 설정값으로 표시

생성 폼/목록의 하드코딩된 'marketing-team' 을 실제 설정값으로 교체한다.
- 백엔드: GET /repos/owner ({ owner }) — GITEA_ORG(미연동 시 기본 상수) 반환
- 프론트: useRepo.owner() + repo.store owner/fetchOwner(캐시)
- RepoCreatePage 소유자 고정 표시, RepoListPage 배너를 실제 조직명으로

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-16 23:53:39 +09:00
parent efe7b29581
commit 6652e79768
6 changed files with 58 additions and 7 deletions
+12 -3
View File
@@ -1,14 +1,23 @@
<script setup lang="ts">
// 새 저장소 만들기 — 저장소 생성 폼
import { ref } from 'vue'
import { computed, onMounted, ref } from 'vue'
import { storeToRefs } from 'pinia'
import { useRouter, RouterLink } from 'vue-router'
import AppShell from '@/layouts/AppShell.vue'
import { useRepoStore } from '@/stores/repo.store'
import { initialOf } from '@/shared/utils/format'
import type { Visibility } from '@/mock/relay.mock'
const router = useRouter()
const repoStore = useRepoStore()
// 현재 조직(소유자) — 백엔드 설정값(GITEA_ORG)을 받아 고정 표시
const { owner } = storeToRefs(repoStore)
const ownerInitial = computed(() => initialOf(owner.value || '?').toUpperCase())
onMounted(() => {
void repoStore.fetchOwner()
})
// 폼 상태
const repoName = ref('')
const displayTitle = ref('')
@@ -107,8 +116,8 @@ async function createRepo() {
class="owner-fixed"
title="소유자는 변경할 수 없습니다"
>
<span class="owner-avatar">M</span>
marketing-team
<span class="owner-avatar">{{ ownerInitial }}</span>
{{ owner || '조직 불러오는 중…' }}
<span class="lock">
<svg
width="13"
+3 -2
View File
@@ -13,10 +13,11 @@ const keyword = ref('')
const filter = ref<Filter>('all')
const repoStore = useRepoStore()
const { repos, loading } = storeToRefs(repoStore)
const { repos, loading, owner } = storeToRefs(repoStore)
onMounted(() => {
void repoStore.fetchList()
void repoStore.fetchOwner()
})
// 검색어 + 공개여부 필터 적용
@@ -59,7 +60,7 @@ const filteredRepos = computed(() =>
</span>
</div>
<p class="lede">
<b>marketing-team</b> 조직의 저장소입니다. 저장소를 열어 업무를 작성하고 담당자에게
<b>{{ owner || '내' }}</b> 조직의 저장소입니다. 저장소를 열어 업무를 작성하고 담당자에게
전달하세요.
</p>