発行者プロジェクトの一環として、 自動的にモデレートするタスクを解決するボットがGitHub用に用意されています GitHubの追跡システム。 GitHubには、Issueシステムを介して人々を調整することを唯一の機能とするリポジトリがあります。
それらのいくつかでは、 Issueを終了すると、フォームに入力するように求められます、それから私は見たモデレーターがいて、フォームへの記入とタグの投稿の正確さを確認してください フォームで指定されたものに従います(タグは、テンプレートで指定されていない場合にのみ、特権ユーザーがハングアップできます)。 このようなコミュニティの例は、オープンソースのアイデアコミュニティです。
モデレーターはすぐには来ません。 したがって、 ニュースで取り上げられているGitHubアクションは、フォームを検証して操作を実行するために用意されています。
ボットはPythonで書かれています、ただし、GitHubにはnode.jsとdockerの2種類のアクションしかないため、node.jsを介して実行する必要があります。dockerの場合、最初にnode.jsと同じコンテナーが読み込まれ、他のコンテナーに読み込まれます。長いです。
python3と必要なものはすべてnode.jsのコンテナーにあることを考えると、依存関係は小さいので、そこにロードするのが合理的です。
これは、問題管理のために接続された3つの関数を備えたGitHubアクションです。
入ってくる問題が何らかの方法でテンプレートと一致するかどうかを確認します。
セクションにデフォルトテンプレートの行が含まれていないこと(通常、ユーザーがわざわざセクションを完成させていない場合に表示されます)。
ラベルとして設定するチェックボックスを含むセクションには、元のテンプレートに存在するチェックボックスのみが含まれていること
各セクションには、[最小、最大]の範囲でマークされたボックスの数があります。
チェックボックスに従ってラベルを設定します。
作成者が特定の時間枠内にリンターによって強調表示された問題を修正しなかった場合、問題を自動的に閉じます。
ユーザーに「セルフサービス」を許可するのが最善であるため、専任の担当者を使用してラベルを割り当てるのは負担です。 ユーザーは、Markdown拡張機能とチェックボックスを介して実行できる制限付きサブセットの問題にいくつかのラベルを割り当てることができます。
それと共に ユーザーがチェックボックスをオンにしたとき またはラジオボタン ボットはそれに応じてラベルを設定します。
際立った特徴の 準備されたこのボットのうち、次のとおりです。
- アクションはYAML設定によって制御されます およびMarkdownテンプレート。
- 各Markdownテンプレートにブロックが追加されます フォームに正しく記入するための条件と必要なアクションを説明します。
- グローバル設定の構成ファイルが追加されます。
- フォームはセクションで構成されています。
- セクションには2つのタイプがあります。
フリーテキスト: このアクションは、ユーザーがわざわざ何かを完了したことを確認できます。 テキストの意味は自動的に検証されません。
チェックボックスで n個のフラグを要求および/または完了することができるため、0 {= m1 {= n {= m2 {=セクション内のフラグの総数。 - アクションは、ボックスがテンプレートのボックスと一致することを確認します。 フラグが正しく設定されている場合、アクションは問題のタグでハングする可能性があります。 チェックボックス。
- フォームが正しく入力されていない場合、アクションはユーザーにフォームを正しく入力する方法を指示し、特別なタグを追加します。
- フォームが特定の時間内に修正されない場合、アクションは問題を閉じる可能性があります。 必要なアクションとストレージ状態の問題に対する公式APIがないため、問題の自動ユーザー禁止、削除、および再配置はまだ実装されていません。
- 問題が修正された場合、アクションはマークを削除します。
- もちろん、アクションテンプレートへの応答はカスタマイズ可能です。
最後に あなたがそれについてもっと知りたいのなら、に行くことで詳細を確認することができます 次のリンク。