Actionsで動作するActionを作ったので紹介したいと思います。ActionsでActionを実行する設定を作成します。Requestにレビュアーを追加する設定を作成します。設定項目の詳細はこちらから確認可能です。wipこれでActionを使用するための準備は完了です。Requestを作成すれば、設定ファイルに従い、レビュアーが追加されるはずです。Requestに誰がレビュアーとして追加されたかを確認できます。Toolkitというパッケージを使用して、Actionを作りました。APIのコールやSecretsへのアクセス、ロギングなどの処理を簡潔に実装することが可能です。Actions.Toolkitを使用してActionを開発するためのテンプレートが公開されているので、Actionの開発に興味がある方は一度確認してみるとよいと思います。HelpここからはActionを実際に作って動作させるために行った作業を紹介します。Action設定ファイル作成リポジトリのルートにaction.ymlを追加し、Actionの設定を作成します。設定することが可能です。action.ymlで指定できる情報はGitHubのドキュメントをご覧ください。Requestにレビュアーを追加するまでに以下の処理が行われています。Action内部ではYAML形式の設定ファイルをObjectとして扱っています。Actionsのビルド結果に出力するサンプルコードを作ってみました。@actions/coreパッケージのgetInputメソッドを使用すると、Workflowファイルで設定したinputパラメータの値が取得できます。APIをコールして、設定ファイルを取得しています。Requestイベントをトリガーに動作します。発生したイベントの詳細は以下のようにPayloadに記録されます。Payloadに含まれる情報の詳細はこちらをご覧ください。'',}Payloadは@actions/githubパッケージを使用して取得可能です。APIをコールし、GitHub上の様々な操作の自動化を実現します。APIをコールして行います。core.setFailed(error.message)}ビルドJavaScriptで作ったActionを公開する場合はリポジトリに依存関係をすべて含める必要があります。これはWorkflow上でActionが実行される際はコードをダウンロードして、依存パッケージのインストールやビルドなしにすぐに実行されるためです。この制約に対応するために以下の2種類のビルド方法が利用できます。私は後者を採用しました。Marketplaceに公開しましょう。利用してもらう機会が増えると思います。Marketplaceに公開する手続きが可能です。action.ymlとREADME.mdをリポジトリに含める必要があります。README.mdに含めると良い情報はGitHubのページにまとまっています。ビルドで生成したファイルをリモートリポジトリのmasterブランチにコミットし、セマンティックバージョニングのルールでGitタグを切ります。releaseボタンを押すと、公開されます。Appではログを閲覧できるのは、アプリをホスティングしている管理者のみだったので、ユーザー視点では処理の成功や失敗以上の詳細情報を得ることが難しい状態でした。Actionsではリポジトリ単位で実行されるため、実行結果は各リポジトリのActionsタブから確認可能となっており、エラーメッセージから処理失敗の確認がしやすいのではないかと感じました。AppではOrganization単位でアプリをインストールすることができ、Organization配下の全リポジトリでアプリを利用することが簡単にできました。Actionsでは現状Organizationレベルでリポジトリの操作はできないようでした。ActionsではローカルでActionを実行するCLIツールがありました。現状、YAML形式のActionではそのような便利ツールは見当たりません。Requestを作成してテストを繰り返すような骨の折れる作業でした。このあたりが改善してくると、Actionの開発がよりやりやすくなると思いました。Actionsに移植できると思います。Organizationレベルの操作の可否など微妙な違いはありそうですが、同じような処理ができるようになったので、Probotの今後が個人的に気になっています。さいごにアイデア次第でGitHub上の様々な作業を自動化できるので、今後も様々なActionが増えていきそうです。みなさんも自作Actionで作業効率化にチャレンジしてみてください。