aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--options/locale/locale_ja-JP.ini63
-rw-r--r--web_src/js/features/repo-issue.ts7
-rw-r--r--web_src/js/features/repo-migration.ts8
3 files changed, 75 insertions, 3 deletions
diff --git a/options/locale/locale_ja-JP.ini b/options/locale/locale_ja-JP.ini
index 90c65148a3..46802af534 100644
--- a/options/locale/locale_ja-JP.ini
+++ b/options/locale/locale_ja-JP.ini
@@ -2243,6 +2243,7 @@ settings.event_repository=リポジトリ
settings.event_repository_desc=リポジトリが作成・削除されたとき。
settings.event_header_issue=イシューのイベント
settings.event_issues=イシュー
+settings.event_issues_desc=イシューがオープン・クローズ・再オープン・編集・削除されたとき。
settings.event_issue_assign=イシューのアサイン
settings.event_issue_assign_desc=イシューの担当者が割り当てられたとき、解除されたとき。
settings.event_issue_label=イシューのラベル
@@ -2253,6 +2254,7 @@ settings.event_issue_comment=イシューへのコメント
settings.event_issue_comment_desc=イシューへのコメントが作成・編集・削除されたとき。
settings.event_header_pull_request=プルリクエストのイベント
settings.event_pull_request=プルリクエスト
+settings.event_pull_request_desc=プルリクエストがオープン・クローズ・再オープン・編集・削除されたとき。
settings.event_pull_request_assign=プルリクエストのアサイン
settings.event_pull_request_assign_desc=プルリクエストの担当者が割り当て・解除されたとき。
settings.event_pull_request_label=プルリクエストのラベル
@@ -2397,6 +2399,7 @@ settings.block_on_official_review_requests_desc=公式レビュー依頼があ
settings.block_outdated_branch=遅れているプルリクエストのマージをブロック
settings.block_outdated_branch_desc=baseブランチがheadブランチより進んでいる場合、マージできないようにします。
settings.block_admin_merge_override=管理者もブランチ保護のルールに従う
+settings.block_admin_merge_override_desc=管理者はブランチ保護のルールに従う必要があり、回避することはできません。
settings.default_branch_desc=プルリクエストやコミット表示のデフォルトのブランチを選択:
settings.merge_style_desc=マージ スタイル
settings.default_merge_style_desc=デフォルトのマージスタイル
@@ -2445,6 +2448,7 @@ settings.archive.tagsettings_unavailable=タグ設定は、アーカイブリポ
settings.archive.mirrors_unavailable=リポジトリがアーカイブされている場合、ミラーは利用できません。
settings.unarchive.button=アーカイブ解除
settings.unarchive.header=このリポジトリをアーカイブ解除
+settings.unarchive.text=リポジトリのアーカイブを解除すると、コミット、プッシュ、新規のイシューやプルリクエストを受け付ける機能が復活します。
settings.unarchive.success=リポジトリのアーカイブを解除しました。
settings.unarchive.error=リポジトリのアーカイブ解除でエラーが発生しました。 詳細はログを確認してください。
settings.update_avatar_success=リポジトリのアバターを更新しました。
@@ -2462,9 +2466,11 @@ settings.lfs_invalid_locking_path=不正なパス: %s
settings.lfs_invalid_lock_directory=ディレクトリはロックできません: %s
settings.lfs_lock_already_exists=すでにロックされています: %s
settings.lfs_lock=ロック
+settings.lfs_lock_path=ロックするファイルパス…
settings.lfs_locks_no_locks=ロックなし
settings.lfs_lock_file_no_exist=ロックしたファイルがデフォルトブランチにありません
settings.lfs_force_unlock=強制ロック解除
+settings.lfs_pointers.found=%d件のblobポインタ — 登録済 %d件、未登録 %d件 (実体ファイルなし %d件)
settings.lfs_pointers.sha=Blob SHA
settings.lfs_pointers.oid=OID
settings.lfs_pointers.inRepo=Repo内
@@ -2644,6 +2650,7 @@ error.csv.invalid_field_count=このファイルは %d 行目のフィールド
error.broken_git_hook=このリポジトリのGitフックが壊れているようです。 <a target="_blank" rel="noreferrer" href="%s">ドキュメント</a>に従って修正し、その後いくつかのコミットをプッシュして状態を最新にしてください。
[graphs]
+component_loading=%sを読み込み中…
component_loading_failed=%sを読み込めませんでした
component_loading_info=少し時間がかかるかもしれません…
component_failed_to_load=予期しないエラーが発生しました。
@@ -2682,6 +2689,7 @@ form.create_org_not_allowed=組織を作成する権限がありません。
settings=設定
settings.options=組織
settings.full_name=フルネーム
+settings.email=連絡先メールアドレス
settings.website=Webサイト
settings.location=場所
settings.permission=許可
@@ -2698,7 +2706,10 @@ settings.update_setting_success=組織の設定を更新しました。
settings.rename=組織名の変更
settings.rename_desc=組織名を変更すると組織のURLも変更され、古い名前は解放されます。
+settings.rename_success=組織 %[1]s が正常に %[2]s に改名されました。
+settings.rename_no_change=組織名は変更されません。
settings.rename_new_org_name=新しい組織名
+settings.rename_failed=内部エラーのため組織名を変更できませんでした
settings.rename_notices_1=この操作は<strong>元に戻せません</strong> 。
settings.rename_notices_2=古い名前は、再使用されるまではリダイレクトします。
@@ -2708,9 +2719,11 @@ settings.delete_account=この組織を削除
settings.delete_prompt=組織は恒久的に削除されます。 元に戻すことは<strong>できません</strong>!
settings.name_confirm=確認のため組織名を入力:
settings.delete_notices_1=この操作は<strong>元に戻せません</strong> 。
+settings.delete_notices_2=この操作により、<strong>%s</strong>のすべての<strong>リポジトリ</strong>が恒久的に削除されます。 コード、イシュー、コメント、Wikiデータ、共同作業者の設定も含まれます。
settings.delete_notices_3=この操作により、<strong>%s</strong>のすべての<strong>パッケージ</strong>が恒久的に削除されます。
settings.delete_notices_4=この操作により、<strong>%s</strong>のすべての<strong>プロジェクト</strong>が恒久的に削除されます。
settings.confirm_delete_account=削除を確認
+settings.delete_failed=内部エラーのため組織を削除できませんでした
settings.delete_successful=組織の<b>%s</b>の削除に成功しました。
settings.hooks_desc=この組織の<strong>すべてのリポジトリ</strong>でトリガーされるWebhookを追加します。
@@ -2767,6 +2780,7 @@ teams.remove_all_repos_title=チームリポジトリをすべて除去
teams.remove_all_repos_desc=チームからすべてのリポジトリを除去します。
teams.add_all_repos_title=すべてのリポジトリを追加
teams.add_all_repos_desc=組織のすべてのリポジトリをチームに追加します。
+teams.add_nonexistent_repo=追加しようとしているリポジトリは存在しません。 先にリポジトリを作成してください。
teams.add_duplicate_users=ユーザーは既にチームのメンバーです。
teams.repos.none=このチームがアクセスできるリポジトリはありません。
teams.members.none=このチームにはメンバーがいません。
@@ -2807,6 +2821,7 @@ repositories=リポジトリ
hooks=Webhook
integrations=連携
authentication=認証ソース
+emails=ユーザーメールアドレス
config=設定
config_summary=サマリー
config_settings=設定
@@ -2838,8 +2853,11 @@ dashboard.cron.cancelled=Cron: %[1]s をキャンセル: %[3]s
dashboard.cron.error=Cronでエラー: %s: %[3]s
dashboard.cron.finished=Cron: %[1]s が完了
dashboard.delete_inactive_accounts=アクティベートされていないアカウントをすべて削除
+dashboard.delete_inactive_accounts.started=アクティベートされていないアカウントをすべて削除するタスクを開始しました。
dashboard.delete_repo_archives=リポジトリのアーカイブ (ZIP, TAR.GZ, etc..) をすべて削除
+dashboard.delete_repo_archives.started=リポジトリアーカイブをすべて削除するタスクを開始しました
dashboard.delete_missing_repos=Gitファイルが存在しないリポジトリをすべて削除
+dashboard.delete_missing_repos.started=Gitファイルが存在しないリポジトリをすべて削除するタスクを開始しました
dashboard.delete_generated_repository_avatars=自動生成したリポジトリアバターを削除
dashboard.sync_repo_branches=Gitデータからデータベースへ不足しているブランチを同期
dashboard.sync_repo_tags=Gitデータからデータベースへタグを同期
@@ -2847,7 +2865,12 @@ dashboard.update_mirrors=ミラーの更新
dashboard.repo_health_check=全リポジトリのヘルスチェック
dashboard.check_repo_stats=全リポジトリの統計情報を更新
dashboard.archive_cleanup=古いリポジトリアーカイブの削除
+dashboard.deleted_branches_cleanup=削除ブランチのクリーンアップ
dashboard.update_migration_poster_id=移行する投稿者IDの更新
+dashboard.git_gc_repos=すべてのリポジトリでガベージコレクションを実行
+dashboard.resync_all_sshkeys='.ssh/authorized_keys' ファイルをGitea上のSSHキーで更新
+dashboard.resync_all_sshprincipals='.ssh/authorized_principals' ファイルをGitea上のSSHプリンシパルで更新
+dashboard.resync_all_hooks=すべてのリポジトリの pre-receive, update, post-receive フックを再同期する
dashboard.reinit_missing_repos=レコードが存在するが見当たらないすべてのGitリポジトリを再初期化する
dashboard.sync_external_users=外部ユーザーデータの同期
dashboard.cleanup_hook_task_table=hook_taskテーブルのクリーンアップ
@@ -2883,8 +2906,10 @@ dashboard.total_gc_pause=GC停止時間の合計
dashboard.last_gc_pause=前回のGC停止時間
dashboard.gc_times=GC実行回数
dashboard.delete_old_actions=データベースから古い操作履歴をすべて削除
+dashboard.delete_old_actions.started=データベースからの古い操作履歴の削除を開始しました。
dashboard.update_checker=更新チェック
dashboard.delete_old_system_notices=データベースから古いシステム通知をすべて削除
+dashboard.gc_lfs=LFSメタオブジェクトのガベージコレクション
dashboard.stop_zombie_tasks=Actionsゾンビタスクを停止
dashboard.stop_endless_tasks=終わらないActionsタスクを停止
dashboard.cancel_abandoned_jobs=放置されたままのActionsジョブをキャンセル
@@ -2908,6 +2933,7 @@ users.2fa=2FA
users.repos=リポジトリ
users.created=作成日
users.last_login=前回のサインイン
+users.never_login=未サインイン
users.send_register_notify=ユーザーに登録通知を送る
users.new_success=ユーザーアカウント "%s" を作成しました。
users.edit=編集
@@ -2934,6 +2960,7 @@ users.still_own_repo=このユーザーはまだ1つ以上のリポジトリを
users.still_has_org=このユーザーは組織のメンバーになっています。 先に組織からこのユーザーを削除してください。
users.purge=ユーザーを抹消
users.purge_help=強制的にユーザーとそのユーザーが所有していたリポジトリ、組織、パッケージを削除します。コメントもすべて削除します。
+users.still_own_packages=このユーザーはまだ1つ以上のパッケージを所有しています。先にそれらのパッケージを削除してください。
users.deletion_success=ユーザーアカウントを削除しました。
users.reset_2fa=2要素認証をリセット
users.list_status_filter.menu_text=フィルター
@@ -2953,7 +2980,11 @@ users.details=ユーザーの詳細
emails.email_manage_panel=ユーザーメールアドレスの管理
emails.primary=プライマリー
emails.activated=アクティベート済み
+emails.filter_sort.email=メールアドレス
+emails.filter_sort.email_reverse=メールアドレス (逆順)
emails.filter_sort.name=ユーザー名
+emails.filter_sort.name_reverse=ユーザー名 (逆順)
+emails.updated=メールアドレス設定を更新しました
emails.not_updated=メール設定の更新に失敗しました: %v
emails.duplicate_active=メールアドレスは別のユーザーが既に使用中です。
emails.change_email_header=メール設定の更新
@@ -2961,6 +2992,7 @@ emails.change_email_text=このメールアドレスで更新してもよろし
emails.delete=メールアドレスの削除
emails.delete_desc=このメールアドレスを削除してよろしいですか?
emails.deletion_success=メールアドレスを削除しました。
+emails.delete_primary_email_error=プライマリメールアドレスを削除することはできません。
orgs.org_manage_panel=組織の管理
orgs.name=名称
@@ -3074,19 +3106,27 @@ auths.oauth2_required_claim_name_helper=このClaim名を設定すると、こ
auths.oauth2_required_claim_value=必須Claim値
auths.oauth2_required_claim_value_helper=この値を設定すると、このソースからのログインを、指定したClaim名とClaim値を持つユーザーに限定します。
auths.oauth2_group_claim_name=このソースでグループ名を提供するClaim名 (オプション)
+auths.oauth2_admin_group=管理者ユーザーのグループClaim値 (オプション — 上のClaim名が必要)
+auths.oauth2_restricted_group=制限付きユーザーのグループClaim値 (オプション — 上のClaim名が必要)
+auths.oauth2_map_group_to_team=見つかったグループを組織のチームにマップ (オプション — 上のClaim名が必要)
auths.oauth2_map_group_to_team_removal=対応するグループにユーザーが含まれない場合、同期しているチームからユーザーを削除する
auths.enable_auto_register=自動登録を有効にする
auths.sspi_auto_create_users=自動的にユーザーを作成
+auths.sspi_auto_create_users_helper=初回ログインのユーザーに対して、SSPI認証処理が新しいアカウントを自動的に作成することを許可します
auths.sspi_auto_activate_users=自動的にユーザーをアクティベート
auths.sspi_auto_activate_users_helper=SSPI認証処理が新規ユーザーを自動的にアクティベートすることを許可します
auths.sspi_strip_domain_names=ユーザー名からドメイン名を除去
+auths.sspi_strip_domain_names_helper=チェックを入れると、ログオン名からドメイン名を除去します。 (例. "DOMAIN\user" や "user@example.org" は、どちらも "user" となります)
auths.sspi_separator_replacement=\、/、@の代わりに使用するセパレーター
+auths.sspi_separator_replacement_helper=ダウンレベルログオン名のセパレーター (例. "DOMAIN\user" の \ ) やユーザープリンシパル名のセパレーター (例. "user@example.org" の @ ) を置き換えるときに使用する文字です。
auths.sspi_default_language=ユーザーのデフォルトの言語
+auths.sspi_default_language_helper=SSPI認証処理によって自動的に作成されるユーザーのデフォルトの言語です。 言語を自動検出するほうが良い場合は空のままにしてください。
auths.tips=ヒント
auths.tips.oauth2.general=OAuth2認証
auths.tips.oauth2.general.tip=新しいOAuth2認証を登録するときは、コールバック/リダイレクトURLは以下になります:
auths.tip.oauth2_provider=OAuth2プロバイダー
auths.tip.bitbucket=新しいOAuthコンシューマーを %s から登録し、"アカウント" に "読み取り" 権限を追加してください。
+auths.tip.nextcloud=あなたのインスタンス上でメニュー "Settings -> Security -> OAuth 2.0 client" を選択し、新しいOAuthコンシューマーを登録します
auths.tip.dropbox=新しいアプリケーションを %s から登録してください。
auths.tip.facebook=新しいアプリケーションを %s で登録し、"Facebook Login"を追加してください。
auths.tip.github=新しいOAuthアプリケーションを %s から登録してください。
@@ -3196,6 +3236,7 @@ config.mailer_sendmail_path=Sendmailのパス
config.mailer_sendmail_args=Sendmailの追加引数
config.mailer_sendmail_timeout=Sendmail のタイムアウト
config.mailer_use_dummy=Dummy
+config.test_email_placeholder=メールアドレス (例 test@example.com)
config.send_test_mail=テストメールを送信
config.send_test_mail_submit=送信
config.test_mail_failed=`"%s" へのテストメール送信に失敗しました: %v`
@@ -3284,6 +3325,7 @@ monitor.queue.numberinqueue=キュー内の数
monitor.queue.review_add=ワーカーの確認 / 追加
monitor.queue.settings.title=プール設定
monitor.queue.settings.desc=プールはワーカーキューの待機状態に応じて動的に大きくなります。
+monitor.queue.settings.maxnumberworkers=ワーカー数上限
monitor.queue.settings.maxnumberworkers.placeholder=現在の設定 %[1]d
monitor.queue.settings.maxnumberworkers.error=ワーカー数上限は数値にしてください
monitor.queue.settings.submit=設定を更新
@@ -3309,6 +3351,10 @@ notices.delete_success=システム通知を削除しました。
self_check.no_problem_found=今のところ問題は見つかっていません。
self_check.startup_warnings=起動時の警告:
self_check.database_collation_mismatch=データベースに想定される照合順序: %s
+self_check.database_collation_case_insensitive=データベースは照合順序 %s を使用しており、大文字小文字を区別しません。 Giteaはその照合順序でも動作するかもしれませんが、まれに期待どおり動作しないケースがあるかもしれません。
+self_check.database_inconsistent_collation_columns=データベースは照合順序 %s を使用していますが、以下のカラムはそれと一致しない照合順序を使用しており、予期せぬ問題を引き起こす可能性があります。
+self_check.database_fix_mysql=MySQL/MariaDBユーザーの方は、"gitea doctor convert" コマンドを使用することで、照合順序の問題を修正できます。 また、"ALTER ... COLLATE ..." のSQLを手で実行しても修正することができます。
+self_check.database_fix_mssql=MSSQLユーザーの方は、問題を修正するには今のところ "ALTER ... COLLATE ..." のSQLを手で実行するしかありません。
self_check.location_origin_mismatch=現在のURL (%[1]s) は、Giteaが見ているURL (%[2]s) に一致していません。 リバースプロキシを使用している場合は、"Host" ヘッダーと "X-Forwarded-Proto" ヘッダーが正しく設定されていることを確認してください。
[action]
@@ -3392,6 +3438,8 @@ error.no_committer_account=コミッターのメールアドレスに対応す
error.no_gpg_keys_found=この署名に対応する既知のキーがデータベースに存在しません
error.not_signed_commit=署名されたコミットではありません
error.failed_retrieval_gpg_keys=コミッターのアカウントに登録されたキーを取得できませんでした
+error.probable_bad_signature=警告! このIDの鍵はデータベースに登録されていますが、その鍵でコミットの検証が通りません! これは疑わしいコミットです。
+error.probable_bad_default_signature=警告! これはデフォルト鍵のIDですが、デフォルト鍵ではコミットの検証が通りません! これは疑わしいコミットです。
[units]
unit=ユニット
@@ -3430,6 +3478,7 @@ versions.view_all=すべて表示
dependency.id=ID
dependency.version=バージョン
search_in_external_registry=%s で検索
+alpine.registry=あなたの <code>/etc/apk/repositories</code> ファイルにURLを追加して、このレジストリをセットアップします:
alpine.registry.key=インデックス署名の検証のため、レジストリのRSA公開鍵を <code>/etc/apk/keys/</code> フォルダにダウンロードします:
alpine.registry.info=$branch と $repository は下にあるリストから選んでください。
alpine.install=パッケージをインストールするには、次のコマンドを実行します:
@@ -3442,13 +3491,18 @@ arch.install=pacmanでパッケージを同期します:
arch.repository=リポジトリ情報
arch.repository.repositories=リポジトリ
arch.repository.architectures=Architectures
+cargo.registry=Cargo 設定ファイルでこのレジストリをセットアップします。(例 <code>~/.cargo/config.toml</code>):
cargo.install=Cargo を使用してパッケージをインストールするには、次のコマンドを実行します:
+chef.registry=あなたの <code>~/.chef/config.rb</code> ファイルに、このレジストリをセットアップします:
chef.install=パッケージをインストールするには、次のコマンドを実行します:
+composer.registry=あなたの <code>~/.composer/config.json</code> ファイルに、このレジストリをセットアップします:
composer.install=Composer を使用してパッケージをインストールするには、次のコマンドを実行します:
composer.dependencies=依存関係
composer.dependencies.development=開発用依存関係
conan.details.repository=リポジトリ
+conan.registry=このレジストリをコマンドラインからセットアップします:
conan.install=Conan を使用してパッケージをインストールするには、次のコマンドを実行します:
+conda.registry=あなたの <code>.condarc</code> ファイルに、このレジストリを Conda リポジトリとしてセットアップします:
conda.install=Conda を使用してパッケージをインストールするには、次のコマンドを実行します:
container.details.type=イメージタイプ
container.details.platform=プラットフォーム
@@ -3460,7 +3514,9 @@ container.layers=イメージレイヤー
container.labels=ラベル
container.labels.key=キー
container.labels.value=値
+cran.registry=あなたの <code>Rprofile.site</code> ファイルに、このレジストリをセットアップします:
cran.install=パッケージをインストールするには、次のコマンドを実行します:
+debian.registry=このレジストリをコマンドラインからセットアップします:
debian.registry.info=$distribution と $component は下にあるリストから選んでください。
debian.install=パッケージをインストールするには、次のコマンドを実行します:
debian.repository=リポジトリ情報
@@ -3469,11 +3525,16 @@ debian.repository.components=Components
debian.repository.architectures=Architectures
generic.download=コマンドラインでパッケージをダウンロードします:
go.install=コマンドラインでパッケージをインストール:
+helm.registry=このレジストリをコマンドラインからセットアップします:
helm.install=パッケージをインストールするには、次のコマンドを実行します:
+maven.registry=あなたのプロジェクトの <code>pom.xml</code> ファイルに、このレジストリをセットアップします:
+maven.install=パッケージを使用するには、 <code>pom.xml</code> ファイル内の <code>dependencies</code> ブロックに以下を含めます:
maven.install2=コマンドラインで実行します:
maven.download=依存関係をダウンロードするには、コマンドラインでこれを実行します:
+nuget.registry=このレジストリをコマンドラインからセットアップします:
nuget.install=NuGet を使用してパッケージをインストールするには、次のコマンドを実行します:
nuget.dependency.framework=ターゲットフレームワーク
+npm.registry=あなたのプロジェクトの <code>.npmrc</code> ファイルに、このレジストリをセットアップします:
npm.install=npm を使用してパッケージをインストールするには、次のコマンドを実行します:
npm.install2=または package.json ファイルに追加します:
npm.dependencies=依存関係
@@ -3485,6 +3546,7 @@ npm.details.tag=タグ
pub.install=Dart を使用してパッケージをインストールするには、次のコマンドを実行します:
pypi.requires=必要なPython
pypi.install=pip を使用してパッケージをインストールするには、次のコマンドを実行します:
+rpm.registry=このレジストリをコマンドラインからセットアップします:
rpm.distros.redhat=RedHat系ディストリビューションの場合
rpm.distros.suse=SUSE系ディストリビューションの場合
rpm.install=パッケージをインストールするには、次のコマンドを実行します:
@@ -3497,6 +3559,7 @@ rubygems.dependencies.runtime=実行用依存関係
rubygems.dependencies.development=開発用依存関係
rubygems.required.ruby=必要なRubyバージョン
rubygems.required.rubygems=必要なRubyGemバージョン
+swift.registry=このレジストリをコマンドラインからセットアップします:
swift.install=あなたの <code>Package.swift</code> ファイルにパッケージを追加します:
swift.install2=そして次のコマンドを実行します:
vagrant.install=Vagrant ボックスを追加するには、次のコマンドを実行します。
diff --git a/web_src/js/features/repo-issue.ts b/web_src/js/features/repo-issue.ts
index 49e8fc40a2..b330b4869b 100644
--- a/web_src/js/features/repo-issue.ts
+++ b/web_src/js/features/repo-issue.ts
@@ -542,7 +542,12 @@ function initIssueTemplateCommentEditors(commentForm: HTMLFormElement) {
// deactivate all markdown editors
showElem(commentForm.querySelectorAll('.combo-editor-dropzone .form-field-real'));
hideElem(commentForm.querySelectorAll('.combo-editor-dropzone .combo-markdown-editor'));
- hideElem(commentForm.querySelectorAll('.combo-editor-dropzone .form-field-dropzone'));
+ queryElems(commentForm, '.combo-editor-dropzone .form-field-dropzone', (dropzoneContainer) => {
+ // if "form-field-dropzone" exists, then "dropzone" must also exist
+ const dropzone = dropzoneContainer.querySelector<HTMLElement>('.dropzone').dropzone;
+ const hasUploadedFiles = dropzone.files.length !== 0;
+ toggleElem(dropzoneContainer, hasUploadedFiles);
+ });
// activate this markdown editor
hideElem(fieldTextarea);
diff --git a/web_src/js/features/repo-migration.ts b/web_src/js/features/repo-migration.ts
index 4914e47267..0b348b45fb 100644
--- a/web_src/js/features/repo-migration.ts
+++ b/web_src/js/features/repo-migration.ts
@@ -34,8 +34,12 @@ export function initRepoMigration() {
elCloneAddr.addEventListener('input', () => {
if (repoNameChanged) return;
let repoNameFromUrl = elCloneAddr.value.split(/[?#]/)[0];
- repoNameFromUrl = /^(.*\/)?((.+?)\/?)$/.exec(repoNameFromUrl)[3];
- repoNameFromUrl = repoNameFromUrl.split(/[?#]/)[0];
+ const parts = /^(.*\/)?((.+?)\/?)$/.exec(repoNameFromUrl);
+ if (!parts || parts.length < 4) {
+ elRepoName.value = '';
+ return;
+ }
+ repoNameFromUrl = parts[3].split(/[?#]/)[0];
elRepoName.value = sanitizeRepoName(repoNameFromUrl);
});
}