https://d226lax1qjow5r.cloudfront.net/blog/blogposts/12-bots-to-better-your-open-source-project/Blog_Bots-Better-Opensource_1200x600.png

オープンソースプロジェクトを改善する12のボット

最終更新日 October 28, 2020

所要時間:1 分

オープンソースプロジェクトが長く存在し、成長すればするほど、より多くの問題や未解決のプルリクエストが蓄積されていきます。新しいコントリビュートについていくのは、特に過去の未解決の問題が残っている場合、簡単なことではありません。

ボットの登場だ!作業を自動化し、ボットにアウトソーシングすることで、メンテナンス担当者の負担を軽減し、よりインパクトのある作業に時間を割くことができます。

この記事では、Probotを使用してオープンソースプロジェクトを改善する12の方法を紹介します。 プロボット(GitHub Apps) と GitHub Actions-という 2 つの別々のプロジェクトが、次のような共通の目標を掲げています。 開発者がワークフローを拡張できるようにするそして GitHub の機能をカスタマイズする.

プロジェクトの違いについてもっと知りたい方は、ジェイソン・エトコビッチの素晴らしい ブログ記事をご覧いただきたい。この2つの比較はこちら:

github apps vs actionsgithub apps vs actions

それでは、プロジェクトメンテナーとしてのあなたの生活を楽にする自動化ツールを紹介しましょう。ここでは、あなたのオープンソース・プロジェクトをより良くするためのボットを紹介しよう!

Probot(GitHubアプリ)

資料請求

デフォルトのタイトルまたは空の本文を持つ課題やプルリクエストの詳細情報を要求します。

Request-Infoは、新しく開かれたPull RequestやIssuesのうち、デフォルトのタイトルが含まれていたり、説明が空欄になっているものに対して、より詳しい情報を要求します。これは、.github/config.ymlからデータを取得することで行います。

Request-Info botRequest-Info bot

応答なし

作者が詳細情報のリクエストに応答していない問題をクローズします。

適切な調査を行うのに十分な情報がないまま、issueが提出されることがよくあります。このような場合、メンテナはそのissueに、元の作者からさらに情報が必要であるというラベルを付けることができます。もし作者がタイムリーに必要な情報を提供しない場合、課題はボットによって自動的にクローズされます。元の作者が戻ってきてより多くの情報を提供した場合、No Responseボットはラベルを削除し、issueは必要に応じて自動的に再開されます。

No response botNo response bot

マージ可能

設定に基づくPull Requestのマージを防ぐ。

特定の用語がタイトルやラベルに含まれておらず、プルリクエストのマイルストーンが設定されているものと一致し、承認されたレビューが少なくともn件(nは設定可能)ある場合にのみ、プルリクエストを「マージ可能」にします。

オートアサイン

プルリクエストが開かれたときに、プルリクエストにレビュアー/アサイニーを追加する。

プルリクエストがオープンされると、このボットは自動的にレビュアー/アサイニーをプルリクエストに追加します。レビュアー/アサイニーの数が指定されている場合は、ランダムにレビュアー/アサイニーをプルリクエストに追加します。プルリクエストのタイトルに特定のキーワードが含まれている場合、ボットはレビュアー/アサイニーをプルリクエストに追加しません。

陳腐

プロジェクト中に溜まりがちな古くなったIssueやPull Requestを自動的にクローズします。

一定期間操作が行われないと、issueにstaleラベルが貼られ、issueやPull Requestがクローズされることを知らせるコメントが投稿されます。課題またはプルリクエストが更新されたり、誰かがコメントしたりすると、古くなったラベルは削除され、再び古くなるまで何も行われません。それ以上活動がない場合、Issue や Pull Request は自動的に閉じられ、オプションのコメントが表示されます。

Stale botStale bot

ファーストタイマー

新しいオープンソース・コントリビューターを受け入れるためのスターター課題を作成する。

プルリクエストを作成するプロセスは、新しい貢献者にとって最も大きな障壁です。First Timersは、より多くの人が初めてオープンソースの貢献者になることを支援するために、貢献者にやさしい課題を作成するプロセスを合理化します。

GitHub アクション

リント

多くのプログラミング言語のリントエラーを表示し、自動修正します。

LintはGitHubのコミットやPRのリントエラーを表示し、問題の自動修正を可能にし、多くのリンタやフォーマッタをサポートする。

Lint ActionLint Action

サイズ制限

プルリクエストごとに、パフォーマンスを維持するためにJSアプリケーションやライブラリを実行するための実際のコストを比較します。

このアクションはSize Limit (JavaScriptのパフォーマンス予算ツール)を使って、エンドユーザーにとってのJavaScriptの本当のコストを計算します。このアクションの主な機能は、Size Limitの出力を比較してプルリクエストにコメントすることと、コストが制限を超えた場合にプルリクエストを拒否することです。

Size limit actionSize limit action

リブレセラリー

プロジェクトの貢献者や依存関係に資金を継続的に分配する。

LibreSeleryは、フリーでオープンソースのプロジェクトに資金を分配するツールです。新しい資金提供モデルにより、透明で自動化された、適応可能な貢献者への報酬を提供します。その目的は、自由で透明なアルゴリズムによって、寄付の分配における仲介者を可能な限り置き換えることです。他の多くの寄付システムとは異なり、LibreSeleryは分散型ツールのみを提供し、プラットフォームは提供しません。

ロックスレッド

クローズされた課題やプルリクエストは、一定期間操作が行われないとロックされます。

このアクションでは、GitHub の更新された検索条件を使用して非アクティブを判断します。コメントやラベルの変更、マイルストーンの適用や削除、コミットのプッシュなど、課題やプルリクエストに対するあらゆる変更が更新とみなされます。Lock Threads は GitHub のアクションで、一定期間操作がないとクローズした課題やプルリクエストをロックします。

Lock Threads ActionLock Threads Action

プル・リクエスト・ラベラー

コミットされたファイルに基づいて、プルリクエストに自動的にラベルを付けます。

プッシュするとアクションが起動し、ブランチ上でコミットされたファイルを探します。関連する正規表現にマッチする名前のファイルを見つけると、設定したラベルを適用します。

PR Labeler ActionPR Labeler Action

アレックス

無神経で思いやりのない書き込みを摘発する。

アレックスは、ジェンダーに有利な表現、偏向的な表現、人種に関連した表現、宗教に配慮のない表現、その他あらゆる不平等な表現をテキストから見つける手助けをする。

次のステップ

がある。 他にも自動化ツールは、あなたのメンテナとしてのワークフローを改善するかもしれません。より多くの選択肢を探したり、自分で作ってみたりすることをお勧めします!

Probotアプリは 書き、デプロイし、共有できる.最も人気のあるProbotアプリの多くはホストされているため、デプロイして管理する必要はありません。また、以下のチュートリアルを参考に、自分のアクションを作成したり、GitHubコミュニティで共有されているアクションをカスタマイズしたりすることもできます。 チュートリアル.

お気に入りのオープンソース自動化ツールは何ですか?自分で構築したことがありますか?以下のコメント欄で教えてください。 ツイッターまたは Vonage開発者コミュニティSlack!

その他のリソース

VonageはHacktoberfest 2020のパートナーであることに興奮しています。私たちは オープンソース当社のライブラリ、コード・スニペット、デモはすべてGitHubにあります。このお祭りにどっぷり浸かるために、ぜひ当社の ハクトーバーフェストのページをご覧ください。

オープンソース関連のブログ記事は以下からもご覧いただけます:

シェア:

https://a.storyblok.com/f/270183/250x250/54e86bba88/nahrinjalal.png
Nahrin Jalalヴォネージの卒業生

NahrinはVonageのデベロッパー・エデュケーターでした。インクルーシブなコミュニティの構築、実用的なソフトウェア・ソリューションによる現実世界のニーズへの対応、あらゆるスキルレベルの人がアクセスできる技術コンテンツの作成に情熱を注いでいる。