Cells: スニペット
このドキュメントは作業中であり、Cells 設計の非常に初期段階を表しています。重要な側面は文書化されていませんが、今後追加する予定です。これは Cells の可能なアーキテクチャの一つであり、どのアプローチを実装するかを決定する前に代替案と比較検討する予定です。このアプローチを実装しないことにした場合でも、その理由を文書化できるようにこのドキュメントは保持されます。
スニペットは Organization にスコープされます。当初は Organization をまたいでスニペットコレクションを集約することはできません。Issue #416954 も参照してください。
1. 定義
2 種類のスニペットが存在します:
- プロジェクトスニペット。これらのスニペットの URL は
/<group>/<project>/-/snippets/123の形式です。 - パーソナルスニペット。これらのスニペットの URL は
/-/snippets/123の形式です。
スニペットは Git リポジトリによってバックアップされます。
2. データフロー
3. 提案
3.1. Organization にスコープ
プロジェクトスニペットとパーソナルスニペットの両方が Organization にスコープされます。
- プロジェクトスニペットの URL はルーティング可能なため変更されません。
- パーソナルスニペットの URL は URL がルーティング可能になるよう
/-/organizations/<organization>/snippets/123に変更する必要があります。
スニペットの作成もユーザーの現在の Organization にスコープされます。そのため、Organization が展開された後は パーソナルスニペット を 組織スニペット にリネームすることを推奨します。ユーザーは複数の Organization にまたがって多数の独立したスニペットコレクションを作成できます。
4. 評価
Gitaly は Cell に限定されているため、スニペットは Organization にスコープされます。
4.1. メリット
- クラスター全体の Gitaly を持つ必要がありません。
4.2. デメリット
- スニペットの検索 が機能しなくなります。
- スニペットへのアクセスが Organization の可視性に従属する可能性があります。
