refactor: 저장소(Repo)·Gitea 연동 기능 완전 제거 — 프로젝트 단독 구조
복잡도를 줄이기 위해 저장소 연동 기능을 전부 제거하고 프로젝트를 단독 단위로 운영한다. 백엔드: - modules/repo, modules/gitea 모듈 전체 삭제(엔티티/서비스/컨트롤러/DTO/역방향 동기화) - app.module 에서 RepoModule 제거 - ProjectService: repoCount 집계·repoRepo·"미분류" 시스템 프로젝트(ensureUnassigned/ onApplicationBootstrap)·isSystem 게이트 전부 제거. ProjectResponse 에서 repoCount/isSystem 제거 - Project 엔티티 is_system 컬럼 제거(dev synchronize 가 DROP) - ProjectModule forFeature 에서 Repo 제거 - Activity 타입 repo.linked/unlinked 제거 - env example 에서 Gitea/REPO_IMPORT 섹션 제거 프론트: - ProjectReposPage, useRepo 삭제. ProjectTabs 의 '저장소' 탭·repoCount prop 제거 - 4개 페이지의 :repo-count 제거, 라우트 /projects/:id/repos 제거 - types/project·project.store·mock 에서 repoCount/isSystem·Repo 뷰 제거 - ProjectListPage 저장소수/시스템 배지·gitea CSS 제거, activity 의 repo.* 케이스 제거 - types/repo 는 공용 ApiMember 만 유지 - 잔여 '저장소'/Gitea 사용자 문구를 프로젝트로 정리 검증: 백엔드 build/lint 0·8 tests, 프론트 type-check/lint/build 0. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -35,52 +35,16 @@ export interface ChecklistItem {
|
||||
done: boolean
|
||||
}
|
||||
|
||||
/** 저장소 */
|
||||
export interface Repo {
|
||||
/** 라우팅 식별자(slug 의 마지막 segment) */
|
||||
id: string
|
||||
name: string
|
||||
owner: string
|
||||
slug: string
|
||||
desc: string
|
||||
branch: string
|
||||
members: User[]
|
||||
/** 멤버 스택에서 추가로 더 있는 인원 수(+N) */
|
||||
moreCount: number
|
||||
updatedAgo: string
|
||||
doneCount: number
|
||||
totalCount: number
|
||||
progressPct: number
|
||||
/** 진행률 바 색상 단계 */
|
||||
progressLevel: 'done' | 'mid' | 'low'
|
||||
/** 진행률 텍스트(예: "67% 완료", "시작 전") */
|
||||
progressLabel: string
|
||||
/** Gitea HTTPS clone URL (미연동 시 null/undefined) */
|
||||
cloneUrl?: string | null
|
||||
/** Gitea 웹 UI URL (미연동 시 null/undefined) */
|
||||
htmlUrl?: string | null
|
||||
/** Gitea 조직에서 사라진 저장소 표시(역방향 동기화로 갱신) */
|
||||
giteaMissing?: boolean
|
||||
/** 현재 사용자가 이 저장소 관리자(admin)인지 — 단건 조회에서만 채워짐(설정 탭 노출/진입) */
|
||||
canManage?: boolean
|
||||
/** 현재 사용자가 소유자인지 — 저장소 삭제 권한 */
|
||||
isOwner?: boolean
|
||||
}
|
||||
|
||||
/** 프로젝트 — 작업의 기본 단위(우선). 저장소는 프로젝트에 0~N개 연동된다. */
|
||||
/** 프로젝트 — 작업의 기본 단위(우선) */
|
||||
export interface Project {
|
||||
/** 라우팅 식별자(UUID) */
|
||||
id: string
|
||||
name: string
|
||||
desc: string
|
||||
/** "미분류" 시스템 프로젝트 */
|
||||
isSystem: boolean
|
||||
members: User[]
|
||||
/** 멤버 스택 초과분(+N) */
|
||||
moreCount: number
|
||||
updatedAgo: string
|
||||
/** 연동 저장소 수 */
|
||||
repoCount: number
|
||||
doneCount: number
|
||||
totalCount: number
|
||||
progressPct: number
|
||||
|
||||
Reference in New Issue
Block a user