GitLab Pages で公開しているサイトにアクセスしたときに、配下ディレクトリの一覧を表示させる方法です。

GitLab 12.8 までは nginx の autoindex を有効にして index of で表示させることができたようですが、セキュリティの観点からその機能は削除されたそうです。
なので、どうにかしてインデックスページを作成し、GitLab Pages に公開するしかありません。 例えば、Hugo や Jekyll で Sitemap やインデックスページの自動生成機能を使う方法があるようです。
ただ、今回私はシェルスクリプトファイルで作成することにしました。
以下、サンプルです。
#!/bin/bash
# 公開ディレクトリ内のディレクトリ一覧を取得
dirs=(public/*/)
# HTMLで一覧を表示するための変数
list="<ul>"
# ディレクトリのHTMLリストを生成
for d in "${dirs[@]}"; do
# フォルダ一覧のみに制限するため、publicディレクトリ内のサブディレクトリのみを対象としています。
dir=$(echo $d | sed -e 's/public\///' -e 's/\///')
list="$list<li><a href='$dir'>$dir</a></li>"
done
list="$list</ul>"
# index.htmlファイルを作成
title="タイトル"
cat > public/index.html << EOF
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>$title</title>
</head>
<body>
<h1>$title</h1>
$list
</body>
</html>
EOF
これを、.gitlab-ci.yml
の script の最後に実行すれば OK です。
上記はディレクトリに限定していますが、応用でファイル一覧を出力できると思います。