InfoGrab DocsInfoGrab Docs

개발 시드 파일

요약

개발용 시드 파일은 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를 자동으로 부여합니다.

Note

사용자 지정 경로로 만든 시드도 Duo Chat, 코드 제안 등 GitLab Duo 기능을 직접 사용하는 데는 문제가 없습니다. 한 가지 제약은 Central Evaluation Framework 데이터셋이 기본 경로로 생성되는 고정 ID를 전제한다는 점입니다. 자동 평가를 실행해야 한다면 기본 경로인 gitlab-duo/test를 사용합니다.

다음 프로젝트들이 이 픽스처에 의존합니다.

자세한 내용은 이 아키텍처 문서를 참고합니다.

개발 시드 파일

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를 자동으로 부여합니다.

Note

사용자 지정 경로로 만든 시드도 Duo Chat, 코드 제안 등 GitLab Duo 기능을 직접 사용하는 데는 문제가 없습니다. 한 가지 제약은 Central Evaluation Framework 데이터셋이 기본 경로로 생성되는 고정 ID를 전제한다는 점입니다. 자동 평가를 실행해야 한다면 기본 경로인 gitlab-duo/test를 사용합니다.

다음 프로젝트들이 이 픽스처에 의존합니다.

자세한 내용은 이 아키텍처 문서를 참고합니다.