개발 시드 파일
GitLab v19.4요약
개발용 시드 파일은 gitlab/db/fixtures/development/와 gitlab/ee/db/fixtures/development/ 폴더에 있습니다. rake db:seed_fu 태스크를 사용하면 개발용 시드를 모두 실행합니다.
개발용 시드 파일은 gitlab/db/fixtures/development/와 gitlab/ee/db/fixtures/development/
폴더에 있습니다. 이 파일들은 차트와 같은 기능이 로컬 호스트에서 의도대로 동작하는지 확인할 수 있도록 데이터베이스에 레코드를 채우는 데 사용합니다.
rake db:seed_fu 태스크를 사용하면 개발용 시드를 모두 실행합니다. 다만 보통 환경 변수로 전달되는 플래그가 붙은 시드는 제외됩니다.
다음 표는 기능별 데이터를 생성할 때 사용할 수 있는 시드와 태스크를 정리한 것입니다.
| 기능 | 명령 | 시드 |
|---|---|---|
| DevOps Adoption | FILTER=devops_adoption bundle exec rake db:seed_fu |
31_devops_adoption.rb |
| Value Streams Dashboard | FILTER=cycle_analytics SEED_VSA=1 bundle exec rake db:seed_fu |
17_cycle_analytics.rb |
| Value Streams Dashboard 개요 집계 | FILTER=vsd_overview_counts SEED_VSD_COUNTS=1 bundle exec rake db:seed_fu |
93_vsd_overview_counts.rb |
| Value Stream Analytics | FILTER=customizable_cycle_analytics SEED_CUSTOMIZABLE_CYCLE_ANALYTICS=1 bundle exec rake db:seed_fu |
30_customizable_cycle_analytics.rb |
| CI/CD analytics | FILTER=ci_cd_analytics SEED_CI_CD_ANALYTICS=1 bundle exec rake db:seed_fu |
38_ci_cd_analytics.rb |
| Contributions Analytics Productivity Analytics Code review Analytics Merge Request Analytics |
FILTER=productivity_analytics SEED_PRODUCTIVITY_ANALYTICS=1 bundle exec rake db:seed_fu |
90_productivity_analytics.rb |
| Repository Analytics | FILTER=14_pipelines NEW_PROJECT=1 bundle exec rake db:seed_fu |
14_pipelines.rb |
| Issue Analytics Insights |
NEW_PROJECT=1 bin/rake gitlab:seed:insights:issues |
insights Rake 태스크 |
| DORA metrics | SEED_DORA=1 FILTER=dora_metrics bundle exec rake db:seed_fu |
92_dora_metrics.rb |
| ClickHouse의 Code Suggestion 데이터 | FILTER=ai_usage_stats bundle exec rake db:seed_fu |
94_ai_usage_stats.rb |
| GitLab Duo | SEED_GITLAB_DUO=1 FILTER=gitlab_duo bundle exec rake db:seed_fu |
95_gitlab_duo.rb |
GitLab Duo: 근본 원인 분석(/troubleshoot) 평가를 위한 실패한 CI job 시드 |
LANGCHAIN_API_KEY=$Key bundle exec rake gitlab:duo_chat:seed:failed_ci_jobs |
seed_failed_ci_jobs Rake 태스크 |
| Pipeline metrics | FILTER=pipeline_metrics SEED_PIPELINE_METRICS=1 bundle exec rake db:seed_fu |
98_pipeline_metrics.rb |
GitLab Duo 용 프로젝트 및 그룹 리소스 시드#
gitlab:duo:setup 설정 스크립트는 GitLab Duo 프로젝트 및 그룹 리소스를 위한 개발용 시드 파일을 실행합니다. GitLab Self-Managed 모드에서 이 태스크는 멱등적이며, gitlab-duo 그룹이 이미 있으면 다시 시드하지 않고 건너뜁니다. 설정 태스크에서 강제로 다시 시드하려면 GITLAB_DUO_RESEED=1을 설정합니다.
설정 태스크를 거치지 않고 시드를 직접 실행해 모든 리소스를 다시 생성하려면 다음을 실행합니다.
SEED_GITLAB_DUO=1 FILTER=gitlab_duo bundle exec rake db:seed_fu
경로 설정#
기본적으로 시더는 gitlab-duo 경로에 그룹을 만들고 그 안에 gitlab-duo/test 프로젝트를 만듭니다. 프로젝트는
test-repo에서 복제합니다.
다음 환경 변수로 이 기본값을 재정의할 수 있습니다.
| 환경 변수 | 기본값 | 설명 |
|---|---|---|
GITLAB_DUO_GROUP_PATH |
gitlab-duo |
생성할 그룹의 경로입니다. |
GITLAB_DUO_PROJECT_PATH |
test |
그룹 안에 생성할 프로젝트의 경로입니다. |
GITLAB_DUO_PROJECT_CLONE_URL |
https://gitlab.com/.../test-repo.git |
프로젝트 리포지터리로 복제할 Git URL 입니다. |
예를 들어 사용자 지정 그룹과 프로젝트에 시드하려면 다음을 실행합니다.
GITLAB_DUO_GROUP_PATH=my-duo-group GITLAB_DUO_PROJECT_PATH=my-project \
SEED_GITLAB_DUO=1 FILTER=gitlab_duo bundle exec rake db:seed_fu
gitlab:duo:setup Rake 태스크도 동일한 환경 변수를 따릅니다.
고정 ID와 평가 프레임워크 호환성#
GitLab Duo 그룹 및 프로젝트 리소스는 GitLab Duo 자동 평가를 위해 Central Evaluation Framework에서도 사용합니다.
일부 평가 데이터셋은 그룹이나 프로젝트 리소스를 참조합니다(예를 들어 Summarize issue #123은 PostgreSQL에 대응하는 이슈 레코드가 있어야 합니다).
현재 이 개발용 시드 파일과 평가 데이터셋은 각각 따로 관리됩니다. 연동이 계속 동작하도록 하려면 이 시더가 매번 동일한 그룹 및 프로젝트 리소스를 생성해야 합니다. 예를 들어 삽입되는 PostgreSQL 레코드의 ID와 IID는 시드 과정을 실행할 때마다 같아야 합니다.
기본 그룹 및 프로젝트 경로(gitlab-duo/test)를 사용하면 시더는 시드된 모든 레코드(그룹, 프로젝트, 에픽,
이슈, 머지 리퀘스트 등)에 1_000_000이라는 고정 기준 ID를 부여합니다. 이렇게 하면 평가 데이터셋이
의존하는 결정적 ID가 보장됩니다.
위의 환경 변수로 사용자 지정 경로를 지정하면 고정 ID가 적용되지 않고 PostgreSQL 이 ID를 자동으로 부여합니다.
사용자 지정 경로로 만든 시드도 Duo Chat, 코드 제안 등 GitLab Duo 기능을
직접 사용하는 데는 문제가 없습니다. 한 가지 제약은
Central Evaluation Framework
데이터셋이 기본 경로로 생성되는 고정 ID를 전제한다는 점입니다. 자동 평가를
실행해야 한다면 기본 경로인 gitlab-duo/test를 사용합니다.
다음 프로젝트들이 이 픽스처에 의존합니다.
자세한 내용은 이 아키텍처 문서를 참고합니다.