![画像](https://habrastorage.org/getpro/habr/post_images/52b/290/19d/52b29019d1783d5f7b5c9c77e8b37877.png)
Redmineをニーズに合わせて仕上げていきます。
さまざまな時点で、いくつかの大規模な(およびそれだけではない)クライアントに対して、個々のredmineインスタンスが要求に応じてインストールされました。
基本的に、これらはクライアントの個人的なニーズに使用されます:コードリポジトリ、内部タスクの管理。
しかし、これらのトラッカーでも、システム管理者、つまり私たちのためにタスクが設定されました。
プロジェクトの量と量が増加し、複数のトラッカーを一度に追跡することが困難になった重要な瞬間がやってきました。 同時に、クライアントは自分のトラッカーを使用するのが便利であり、管理タスクをセットアップするために私たちのものに行くのは面倒で、単に余分な時間を無駄にします。
この状況を考慮して、ルビー開発者kanfetの助けを借りて、すべてのトラッカーからタスクを収集するredmineのプラグインを作成することにしました。
猫の下でプラグインのインストールと操作が説明されています。
プラグインをインストールして構成する
標準インストール。
githubでプラグインのクローンを作成します。
git clone https://github.com/olemskoi/redmine_synchrony.git /opt/redmine/plugins/redmine_synchrony
移行を開始します。
bundle exec rake redmine:plugins:migrate RAILS_ENV="production"
Redmineを再起動します。
次に、構成します。次のメニュー項目に移動します-「管理」-「モジュール」。
リストにプラグインが表示されます:
![画像](https://habrastorage.org/getpro/habr/post_images/c43/50c/d8b/c4350cd8bdd5a1357ae383a5620956e3.jpg)
「オプション」を選択します。
クリックして
![画像](https://habrastorage.org/getpro/habr/post_images/f53/e9a/434/f53e9a4346b726a4165c9c296b27bb16.png)
入力するフィールドのリストを取得します。
![画像](https://habrastorage.org/getpro/habr/post_images/68d/e2f/6cf/68de2f6cf85970861209c8a8dcf9c77a.png)
何が何ですか:
- 同期用のサイトアドレスは、情報を取得する必要があるリモートRedmineのURLです
- APIキーは、RedmineからリモートのAPIへの認証が行われるユーザーのapiキーです。 ユーザーには、少なくともプロジェクトに対する読み取り権限が必要です。
- 同期用のトラッカー-リモートRedmine上のトラッカーの名前。 タスクに関する情報は、このターカーから取得されます。 タスクを同期するには、リモートRedmineのこのトラッカーでタスクを設定する必要があります。
- タスクのローカルプロジェクトは、Redmineのプロジェクトの名前です。 リモートトラッカーからのタスクは、その中で作成/更新されます。
- タスクのローカルトラッカー-ローカルトラッカーの名前。
- コメントを作成するための言語は、コメントの言語です。
フィールドに入力すると、変更が保存されます。
好きなだけトラッカーを追加できます。
次の制限があります。
- ローカルRedmineのプロジェクトIDは重複してはなりません。 つまり、1つのローカルプロジェクトに同期できるリモートプロジェクトは1つだけです。
- このスキームは、2.2.x以降のRedmineのバージョンで機能します。
動作するには、更新を開始するcronのタスクが必要です。
特定のケースでは、タスクは次のようになります。
*/05 * * * * redmine cd /opt/redmine && PATH=/usr/local/bin:$PATH /usr/bin/bundle exec rake -f /opt/redmine/Rakefile redmine_synchrony:issues RAILS_ENV="production" >/dev/null 2>&1
プラグインの設定が正しくない場合、このタスクはエラーで失敗します。 したがって、オンにしてデバッグする段階で、コマンドの出力をログファイルに含めることをお勧めします。
動作原理
プラグインは次のスキームに従って動作します。同期はcronタスクによって開始されます。
ローカルRedmineはAPIを介してリモートAPIを通過し、「同期のトラッカー」設定フィールドで指定されたトラッカーでタスクの変更を監視します。
過去1日間の変更が追跡されます。
リモートRedmineで新しいタスクを作成する場合、タスクの全文と元のタスクを参照してローカルタスクで作成されます。
ローカルのリモートRedmineでタスクを更新すると、対応するタスクにコメントが作成されます。 コメントのテキストは、タスクのステータスの変更、タスクを更新したユーザー、変更された場合の優先度、および元のタスクのコメントのテキストを示します。
ステータス、優先度、およびユーザーは、ローカルおよびリモートredmineのこれらのパラメーターの値が一致しないという単純な理由により、コメントでテキストで記述されます。
それがすべてです。
私はアドバイスや提案を喜んでいます。
それらに基づいて、必要な改善を行います。
ご清聴ありがとうございました!