正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。

ユーザーを削除する

  • プラン: Free、Premium、Ultimate
  • 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated

ユーザーはGitLabインスタンスから削除できます。削除できるのは次のいずれかの方法によります:

  • ユーザー自身。
  • 管理者として

ユーザーを削除すると、そのユーザーネームスペース内のすべてのプロジェクトが削除されます。

自分のアカウントを削除する

  • 提供形態: GitLab.com、GitLab Self-Managed

GitLab Self-Managedインスタンスでは、この機能はデフォルトで無効になっています。インスタンスのdelay_user_account_self_deletion設定を有効にするには、アプリケーション設定APIを使用します。

アカウントの削除をスケジュールできます。アカウントを削除すると、削除保留状態になります。通常、削除は1時間以内に行われますが、次のアカウントでは最大7日かかる場合があります:

  • コメント、イシュー、マージリクエスト、注記、またはスニペットに関連付けられている
  • 有料プランの一部ではない

アカウントが削除保留中の場合:

  • アカウントはブロックされます。
  • 同じユーザー名で新しいアカウントを作成することはできません。
  • 最初にメールアドレスを変更しない限り、同じプライマリメールアドレスで新しいアカウントを作成することはできません。

アカウントが削除された後、任意のユーザーが同じユーザー名でユーザーアカウントを作成できます。別のユーザーがユーザー名を取得した場合、それを取り戻すことはできません。

自分のアカウントを削除するには:

  1. 左側のサイドバーで、自分のアバターを選択します。
  2. プロファイルの編集を選択します。
  3. 左側のサイドバーで、アカウントを選択します。
  4. アカウントを削除を選択します。

GitLab.comでアカウントを削除できない場合は、GitLabからアカウントとデータを削除するための個人情報リクエストを送信してください。

ユーザーとユーザーのコントリビュートを削除する

  • プラン: Free、Premium、Ultimate
  • 提供形態: GitLab Self-Managed、GitLab Dedicated

前提要件:

  • インスタンスの管理者である。

ユーザーを削除するには:

  1. 左側のサイドバーの下部で、管理者を選択します。
  2. 概要 > ユーザーを選択します。
  3. ユーザーを選択します。
  4. アカウントタブで、以下を選択します:
    • ユーザーを削除を選択して、ユーザーのみを削除し、関連レコードを保持します。選択したユーザーが任意のグループの唯一のオーナーである場合、このオプションは使用できません。
    • ユーザーとコントリビュートを削除を選択して、ユーザーとそれに関連するレコードを削除します。このオプションでは、ユーザーがグループの唯一の直接のオーナーであるすべてのグループ(およびこれらのグループ内のプロジェクト)も削除されます。継承された所有権は適用されません。

ユーザーとコントリビュートを削除オプションを使用すると、意図したよりも多くのデータが削除される可能性があります。詳細については、関連レコードを参照してください。

関連レコード

ユーザーを削除するときは、次のいずれかを選択できます:

  • ユーザーのみを削除し、コントリビュートをシステム全体の「Ghostユーザー」に移動します:
    • @ghostは、削除されたすべてのユーザーのコントリビュートのコンテナとして機能します。
    • ユーザーのプロファイルと個人プロジェクトは、Ghostユーザーに移動される代わりに削除されます。
  • ユーザーとそのコントリビュートを完全に削除します:

どちらの場合も、コミットはユーザー情報を保持するため、Gitリポジトリ内のデータ整合性が維持されます。

削除の代替手段は、ユーザーをブロックすることです。

ユーザーが不正行為レポートまたはスパムログから削除されると、これらの関連レコードは常に削除されます。

関連レコードの削除オプションは、API管理者エリアでリクエストできます。

ユーザーの承認は、ユーザーIDに関連付けられています。他のユーザーのコントリビュートには、関連付けられたユーザーIDがありません。ユーザーを削除し、そのコントリビュートが「Ghostユーザー」に移動されると、承認のコントリビュートは、見つからないか無効なユーザーIDを参照します。ユーザーを削除する代わりに、ブロックするBANする 、または非アクティブ化することを検討してください。

GitLab Self-Managedインスタンスでルートアカウントを削除する

  • 提供形態: GitLab Self-Managed

ルートアカウントは、システムで最も特権のあるアカウントです。ルートアカウントを削除すると、インスタンスに他の管理者がいない場合、インスタンスの管理者エリアへのアクセスを失う可能性があります。

UIまたはGitLab Railsコンソールを使用して、ルートアカウントを削除できます。

ルートアカウントを削除する前に:

  1. ルートアカウントのプロジェクトまたはパーソナルアクセストークンを作成し、ワークフローで使用している場合は、ルートアカウントから新しい管理者に、必要な権限または所有権をすべて譲渡します。
  2. GitLab Self-Managedインスタンスをバックアップします。
  3. 代わりに、ルートアカウントを非アクティブ化またはブロックすることを検討してください。

UIを使用する

前提要件:

  • GitLab Self-Managedインスタンスの管理者である必要があります。

ルートアカウントを削除するには:

  1. 管理者エリアで、管理者アクセス権を持つ新しいユーザーを作成します。これにより、ルートアカウントの削除に関連するリスクを軽減しながら、インスタンスへの管理者アクセスを維持できます。
  2. ルートアカウントを削除します。

GitLab Railsコンソールを使用します

データを変更するコマンドは、正しく実行されなかった場合、または適切な条件下で実行されなかった場合、損害を与える可能性があります。最初にテスト環境でコマンドを実行し、復元できるバックアップインスタンスを準備してください。

前提要件:

  • GitLab Railsコンソールにアクセスできる必要があります。

ルートアカウントを削除するには、Railsコンソールで次のようにします:

  1. 別の既存のユーザーに管理者アクセス権を付与します:

    user = User.find(username: 'Username') # or use User.find_by(email: 'email@example.com') to find by email
    user.admin = true
    user.save!

    これにより、ルートアカウントの削除に関連するリスクを軽減しながら、インスタンスへの管理者アクセスを維持できます。

  2. ルートアカウントを削除するには、次のいずれかを実行します:

    • ルートアカウントをブロックします:

      # This needs to be a current admin user
      current_user = User.find(username: 'Username')
      
      # This is the root user we want to block
      user = User.find(username: 'Username')
      
      ::Users::BlockService.new(current_user).execute(user)
    • ルートユーザーを非アクティブ化します:

      # This needs to be a current admin user
      current_user = User.find(username: 'Username')
      
      # This is the root user we want to deactivate
      user = User.find(username: 'Username')
      
      ::Users::DeactivateService.new(current_user, skip_authorization: true).execute(user)

トラブルシューティング

ユーザーを削除すると、PostgreSQLのNULL値エラーが発生する

ユーザーが削除されず、次のエラーが生成される既知の問題があります:

ERROR: null value in column "user_id" violates not-null constraint

このエラーは、PostgreSQLログと、管理者エリアのバックグラウンドジョブビューのRetries(再試行)セクションにあります。

削除されるユーザーがイテレーション機能(イシューをイテレーションに追加するなど)を使用していた場合は、イシューに記載されている回避策を使用してユーザーを削除する必要があります。