InfoGrab Docs

프로젝트 문제 해결

요약

프로젝트 작업 시 다음과 같은 문제가 발생하거나 특정 작업을 완료하기 위한 대체 방법이 필요할 수 있습니다. 프로젝트를 방문할 때 브라우저에서 광고 차단기를 사용하면 An error occurred while fetching commit data 메시지가 표시될 수 있습니다.

프로젝트 작업 시 다음과 같은 문제가 발생하거나 특정 작업을 완료하기 위한 대체 방법이 필요할 수 있습니다.

An error occurred while fetching commit data#

프로젝트를 방문할 때 브라우저에서 광고 차단기를 사용하면 An error occurred while fetching commit data 메시지가 표시될 수 있습니다. 해결 방법은 액세스하려는 GitLab 인스턴스에 대해 광고 차단기를 비활성화하는 것입니다.

SQL 쿼리를 사용하여 프로젝트 찾기#

Rails 콘솔 세션에서 SQL 쿼리를 기반으로 프로젝트 배열을 찾고 저장할 수 있습니다:

# Finds projects that end with '%ject'
projects = Project.find_by_sql("SELECT * FROM projects WHERE name LIKE '%ject'")
=> [#>, #>]

프로젝트 또는 저장소 캐시 지우기#

프로젝트나 저장소가 업데이트되었지만 UI에 반영되지 않은 경우 프로젝트나 저장소의 캐시를 지워야 할 수 있습니다. Rails 콘솔 세션과 다음 중 하나를 통해 수행할 수 있습니다:

Warning

데이터를 변경하는 명령어는 올바르게 실행되지 않거나 적절한 조건에서 실행되지 않으면 손상을 일으킬 수 있습니다. 항상 테스트 환경에서 먼저 명령어를 실행하고 복원할 백업 인스턴스를 준비하십시오.

## Clear project cache
ProjectCacheWorker.perform_async(project.id)

## Clear repository .exists? cache
project.repository.expire_exists_cache

삭제 대기 중인 프로젝트 찾기#

삭제 표시가 되었지만 아직 삭제되지 않은 모든 프로젝트를 찾아야 하는 경우 Rails 콘솔 세션을 시작하고 다음을 실행합니다:

projects = Project.where(pending_delete: true)
projects.each do |p|
  puts "Project ID: #{p.id}"
  puts "Project name: #{p.name}"
  puts "Repository path: #{p.repository.full_path}"
end

콘솔을 사용하여 프로젝트 이전#

UI 또는 API를 통한 프로젝트 이전이 작동하지 않는 경우 Rails 콘솔 세션에서 이전을 시도할 수 있습니다.

p = Project.find_by_full_path('<project_path>')

# To set the owner of the project
current_user = p.creator

# Namespace where you want this to be moved
namespace = Namespace.find_by_full_path("<new_namespace>")

Projects::TransferService.new(p, current_user).execute(namespace)

콘솔을 사용하여 프로젝트 삭제#

프로젝트를 삭제할 수 없는 경우 Rails 콘솔을 통해 삭제를 시도할 수 있습니다.

Warning

데이터를 변경하는 명령어는 올바르게 실행되지 않거나 적절한 조건에서 실행되지 않으면 손상을 일으킬 수 있습니다. 항상 테스트 환경에서 먼저 명령어를 실행하고 복원할 백업 인스턴스를 준비하십시오.

project = Project.find_by_full_path('<project_path>')
user = User.find_by_username('<username>')
Projects::DestroyService.new(project, user, {}).execute

실패하는 경우 다음을 사용하여 작동하지 않는 이유를 표시합니다:

project = Project.find_by_full_path('<project_path>')
project.deletion_error

그룹 내 모든 프로젝트에 대한 기능 전환#

프로젝트의 기능을 전환하는 작업은 프로젝트 API를 통해 수행할 수 있지만 많은 수의 프로젝트에 대해 이를 수행해야 할 수 있습니다.

특정 기능을 전환하려면 Rails 콘솔 세션을 시작하고 다음 함수를 실행합니다:

Warning

데이터를 변경하는 명령어는 올바르게 실행되지 않거나 적절한 조건에서 실행되지 않으면 손상을 일으킬 수 있습니다. 항상 테스트 환경에서 먼저 명령어를 실행하고 복원할 백업 인스턴스를 준비하십시오.

projects = Group.find_by_name('_group_name').projects
projects.each do |p|
  ## replace <feature-name> with the appropriate feature name in all instances
  state = p.<feature-name>

  if state != 0
    puts "#{p.name} has <feature-name> already enabled. Skipping..."
  else
    puts "#{p.name} didn't have <feature-name> enabled. Enabling..."
    p.project_feature.update!(<feature-name>: ProjectFeature::PRIVATE)
  end
end

전환할 수 있는 기능을 찾으려면 pp p.project_feature를 실행합니다. 사용 가능한 권한 수준은 concerns/featurable.rb에 나열되어 있습니다.

지원 지식 기반#

문제가 계속 발생하면 GitLab 지원 지식 기반을 참조하십시오.

프로젝트 문제 해결

원문 보기
요약

프로젝트 작업 시 다음과 같은 문제가 발생하거나 특정 작업을 완료하기 위한 대체 방법이 필요할 수 있습니다. 프로젝트를 방문할 때 브라우저에서 광고 차단기를 사용하면 An error occurred while fetching commit data 메시지가 표시될 수 있습니다.

프로젝트 작업 시 다음과 같은 문제가 발생하거나 특정 작업을 완료하기 위한 대체 방법이 필요할 수 있습니다.

An error occurred while fetching commit data#

프로젝트를 방문할 때 브라우저에서 광고 차단기를 사용하면 An error occurred while fetching commit data 메시지가 표시될 수 있습니다. 해결 방법은 액세스하려는 GitLab 인스턴스에 대해 광고 차단기를 비활성화하는 것입니다.

SQL 쿼리를 사용하여 프로젝트 찾기#

Rails 콘솔 세션에서 SQL 쿼리를 기반으로 프로젝트 배열을 찾고 저장할 수 있습니다:

# Finds projects that end with '%ject'
projects = Project.find_by_sql("SELECT * FROM projects WHERE name LIKE '%ject'")
=> [#>, #>]

프로젝트 또는 저장소 캐시 지우기#

프로젝트나 저장소가 업데이트되었지만 UI에 반영되지 않은 경우 프로젝트나 저장소의 캐시를 지워야 할 수 있습니다. Rails 콘솔 세션과 다음 중 하나를 통해 수행할 수 있습니다:

Warning

데이터를 변경하는 명령어는 올바르게 실행되지 않거나 적절한 조건에서 실행되지 않으면 손상을 일으킬 수 있습니다. 항상 테스트 환경에서 먼저 명령어를 실행하고 복원할 백업 인스턴스를 준비하십시오.

## Clear project cache
ProjectCacheWorker.perform_async(project.id)

## Clear repository .exists? cache
project.repository.expire_exists_cache

삭제 대기 중인 프로젝트 찾기#

삭제 표시가 되었지만 아직 삭제되지 않은 모든 프로젝트를 찾아야 하는 경우 Rails 콘솔 세션을 시작하고 다음을 실행합니다:

projects = Project.where(pending_delete: true)
projects.each do |p|
  puts "Project ID: #{p.id}"
  puts "Project name: #{p.name}"
  puts "Repository path: #{p.repository.full_path}"
end

콘솔을 사용하여 프로젝트 이전#

UI 또는 API를 통한 프로젝트 이전이 작동하지 않는 경우 Rails 콘솔 세션에서 이전을 시도할 수 있습니다.

p = Project.find_by_full_path('<project_path>')

# To set the owner of the project
current_user = p.creator

# Namespace where you want this to be moved
namespace = Namespace.find_by_full_path("<new_namespace>")

Projects::TransferService.new(p, current_user).execute(namespace)

콘솔을 사용하여 프로젝트 삭제#

프로젝트를 삭제할 수 없는 경우 Rails 콘솔을 통해 삭제를 시도할 수 있습니다.

Warning

데이터를 변경하는 명령어는 올바르게 실행되지 않거나 적절한 조건에서 실행되지 않으면 손상을 일으킬 수 있습니다. 항상 테스트 환경에서 먼저 명령어를 실행하고 복원할 백업 인스턴스를 준비하십시오.

project = Project.find_by_full_path('<project_path>')
user = User.find_by_username('<username>')
Projects::DestroyService.new(project, user, {}).execute

실패하는 경우 다음을 사용하여 작동하지 않는 이유를 표시합니다:

project = Project.find_by_full_path('<project_path>')
project.deletion_error

그룹 내 모든 프로젝트에 대한 기능 전환#

프로젝트의 기능을 전환하는 작업은 프로젝트 API를 통해 수행할 수 있지만 많은 수의 프로젝트에 대해 이를 수행해야 할 수 있습니다.

특정 기능을 전환하려면 Rails 콘솔 세션을 시작하고 다음 함수를 실행합니다:

Warning

데이터를 변경하는 명령어는 올바르게 실행되지 않거나 적절한 조건에서 실행되지 않으면 손상을 일으킬 수 있습니다. 항상 테스트 환경에서 먼저 명령어를 실행하고 복원할 백업 인스턴스를 준비하십시오.

projects = Group.find_by_name('_group_name').projects
projects.each do |p|
  ## replace <feature-name> with the appropriate feature name in all instances
  state = p.<feature-name>

  if state != 0
    puts "#{p.name} has <feature-name> already enabled. Skipping..."
  else
    puts "#{p.name} didn't have <feature-name> enabled. Enabling..."
    p.project_feature.update!(<feature-name>: ProjectFeature::PRIVATE)
  end
end

전환할 수 있는 기능을 찾으려면 pp p.project_feature를 실행합니다. 사용 가능한 권한 수준은 concerns/featurable.rb에 나열되어 있습니다.

지원 지식 기반#

문제가 계속 발생하면 GitLab 지원 지식 기반을 참조하십시오.