概要
Gitコネクタは、Gitリポジトリのファイルを取得して Fess のインデックスに登録する機能を提供します。
この機能には fess-ds-git プラグインが必要です。
対応リポジトリ
GitHub(パブリック/プライベート)
GitLab(パブリック/プライベート)
Bitbucket(パブリック/プライベート)
ローカルGitリポジトリ
その他のGitホスティングサービス
前提条件
プラグインのインストールが必要です
プライベートリポジトリの場合は認証情報が必要です
リポジトリへの読み取りアクセス権が必要です
プラグインのインストール
管理画面の「システム」→「プラグイン」からインストールします。
または、詳細は プラグイン を参照してください。
設定方法
管理画面から「クローラー」→「データストア」→「新規作成」で設定します。
基本設定
| 項目 | 設定例 |
|---|---|
| 名前 | Project Git Repository |
| ハンドラ名 | GitDataStore |
| 有効 | オン |
パラメーター設定
パブリックリポジトリの例:
プライベートリポジトリの例(認証あり):
パラメーター一覧
スクリプト設定
利用可能なフィールド
| フィールド | 説明 |
|---|---|
url | ファイルのURL |
path | リポジトリ内のファイルパス |
name | ファイル名 |
content | ファイルのテキストコンテンツ |
contentLength | コンテンツの長さ |
timestamp | 最終更新日時 |
mimetype | ファイルのMIMEタイプ |
author | 最終コミット者の情報(PersonIdent) |
committer | コミッター情報(PersonIdent)。authorとは異なる場合があります |
uri | GitリポジトリのURI |
Gitリポジトリの認証
GitHub Personal Access Token
1. GitHubでPersonal Access Tokenを生成
https://github.com/settings/tokens にアクセス:
「Generate new token」→「Generate new token (classic)」をクリック
トークン名を入力(例: Fess Crawler)
スコープで「repo」にチェック
「Generate token」をクリック
生成されたトークンをコピー
2. URIに認証情報を含める
GitLab Private Token
1. GitLabでAccess Tokenを生成
GitLabのUser Settings → Access Tokens:
トークン名を入力
スコープで「read_repository」にチェック
「Create personal access token」をクリック
生成されたトークンをコピー
2. URIに認証情報を含める
SSH認証
SSH鍵を使用する場合:
注釈
SSH認証を使用する場合、Fess を実行しているユーザーのSSH鍵を設定する必要があります。
抽出器の設定
MIMEタイプ別の抽出器
extractors パラメーターでファイルタイプ別の抽出器を指定:
形式: <MIMEタイプ正規表現>:<抽出器名>,
デフォルトの抽出器
textExtractor- テキストファイル用tikaExtractor- バイナリファイル用(PDF、Word等)
テキストファイルのみクロール
すべてのファイルをクロール
特定のファイルタイプのみ
差分クロール
前回のコミットからの変更のみクロール
初回クロール後、prev_commit_id に前回のコミットIDを設定:
注釈
prev_commit_id はクロール成功後に自動的に最新のコミットIDに更新されます。 初回は空のまま設定すれば、全ファイルがクロールされ、以降は差分のみがクロールされます。
削除されたファイルの処理
base_url が設定されている場合、GitのDiffEntryで検出された削除ファイル(ChangeType.DELETE)は 自動的にインデックスから削除されます。
使用例
GitHubパブリックリポジトリ
パラメーター:
スクリプト:
GitHubプライベートリポジトリ
パラメーター:
スクリプト:
GitLab(セルフホスト)
パラメーター:
スクリプト:
ドキュメントのみクロール(Markdownファイル)
パラメーター:
スクリプト:
特定のディレクトリのみクロール
スクリプトでフィルタリング:
トラブルシューティング
認証エラー
症状: Authentication failed または Not authorized
確認事項:
Personal Access Tokenが正しいか確認
トークンに適切な権限があるか確認(
repoスコープ)URIのフォーマットが正しいか確認:
トークンの有効期限を確認
リポジトリが見つからない
症状: Repository not found
確認事項:
リポジトリのURLが正しいか確認
リポジトリが存在し、削除されていないか確認
認証情報が正しいか確認
リポジトリへのアクセス権があるか確認
ファイルが取得できない
症状: クロールは成功するがファイルが0件
確認事項:
extractors設定が適切か確認リポジトリにファイルが存在するか確認
スクリプト設定が正しいか確認
対象ブランチにファイルが存在するか確認
MIMEタイプエラー
症状: 特定のファイルがクロールされない
解決方法:
抽出器設定を調整:
大きなリポジトリ
症状: クロールに時間がかかる、またはメモリ不足
解決方法:
extractorsで対象ファイルを限定スクリプトで特定のディレクトリのみをフィルタリング
差分クロールを使用(
prev_commit_id設定)クロール間隔を調整
ブランチの指定
デフォルトブランチ以外をクロールする場合、commit_id パラメーターでブランチ名やタグを指定します:
URLの生成
base_urlの設定パターン
GitHub:
GitLab:
Bitbucket:
base_url とファイルパスが結合されてURLが生成されます。
スクリプトでのURL生成
または、カスタムURL:
参考情報
データストアコネクタの概要 - データストアコネクタ概要
データベースコネクタ - データベースコネクタ
データストアクロール - データストア設定ガイド