トラブルシューティングのグループ

ネームスペースとグループの検証エラー

GitLab 14.4以降では、名前空間やグループを作成・更新する際に以下のチェックを行います:

  • 名前空間に親が存在しないこと。
  • グループの親は、名前空間ではなくグループでなければなりません。

万が一、GitLabのインストールでこれらのエラーが表示された場合は、この検証を改善するためにサポートまでご連絡ください。

SQL クエリを使ったグループの検索

rails コンソールで SQL クエリに基づいてグループの配列を検索して保存します:

# Finds groups and subgroups that end with '%oup'
Group.find_by_sql("SELECT * FROM namespaces WHERE name LIKE '%oup'")
=> [#<Group id:3 @test-group>, #<Group id:4 @template-group/template-subgroup>]

Railsコンソールを使ってサブグループを別の場所に転送

グループの転送がUIやAPIでうまくいかない場合は、Railsコンソールセッションで転送を試みるとよいでしょう:

caution
データを変更するコマンドは、正しく実行しなかったり適切な条件下で実行しなかったりすると、ダメージを与える可能性があります。必ず最初にテスト環境でコマンドを実行し、リストアできるようにバックアップインスタンスを用意してください。
user = User.find_by_username('<username>')
group = Group.find_by_name("<group_name>")
## Set parent_group = nil to make the subgroup a top-level group
parent_group = Group.find_by(id: "<group_id>")
service = ::Groups::TransferService.new(group, user)
service.execute(parent_group)

Railsコンソールを使った削除待ちグループの検索

削除を保留しているグループをすべて見つける必要がある場合は、Railsコンソールセッションで次のコマンドを使用できます:

Group.all.each do |g|
 if g.marked_for_deletion?
    puts "Group ID: #{g.id}"
    puts "Group name: #{g.name}"
    puts "Group path: #{g.full_path}"
 end
end

Railsコンソールを使ったグループの削除

グループの削除が行き詰まることがあります。必要に応じて、Railsコンソールセッションで以下のコマンドを使ってグループの削除を試みることができます:

caution
データを変更するコマンドは、正しく実行しなかったり適切な条件下で実行しなかったりすると、ダメージを与える可能性があります。必ず最初にテスト環境でコマンドを実行し、リストアできるようにバックアップインスタンスを用意してください。
GroupDestroyWorker.new.perform(group_id, user_id)

グループまたはプロジェクトに対するユーザーの最大権限の検索

管理者は、グループまたはプロジェクトのユーザーの最大権限を検索できます。

  1. Railsコンソールセッションを開始します。
  2. 以下のコマンドを実行してください:

    user = User.find_by_username 'username'
    project = Project.find_by_full_path 'group/project'
    user.max_member_access_for_project project.id
    
    user = User.find_by_username 'username'
    group = Group.find_by_full_path 'group'
    user.max_member_access_for_group group.id
    

バッジを持つ請求可能メンバーを削除できませんProject Invite/Group Invite

Members who were invited via a group invitation cannot be removed. You can either remove the entire group, or ask an Owner of the invited group to remove the member.

このエラーは通常、削除しようとしているユーザーが、1つ以上のプロジェクトまたはグループで共有されている外部グループの一部である場合に発生します。ユーザーを請求可能メンバーとして削除するには、いずれかのオプションに従ってください:

  • プロジェクトまたはグループのメンバーページから招待されたグループのメンバーを削除します。
  • 推奨。グループにアクセスできる場合は、招待されたグループからユーザーを直接削除します。

billable_membersエンドポイントを更新して招待グループを含めるという機能要求は現在作業中です。詳細については、イシュー386583を参照してください。