はじめに 前回の記事を書く際に textlint + reviewdog + GitHub Actions を導入してみたところ、Zenn での執筆体験がさらに上がったので紹介します。 具体的には、このようにプルリクエストのレビューコメントが自動でつくようになります。 手順通りに行えば、おそらく 10 分程度で設定ができるはずです。Zenn でより質の高い記事を投稿したいと考えている方はぜひトライしてみてください。 導入手順
はじめに Snyk IaCとは CIでのIaC解析 aquaでSnyk CLIを簡単にインストール&バージョン管理 reviewdogでコメント形式の指摘を実現 まとめ はじめに こんにちは。技術戦略室SREチームのkoizumiです。 最近は、katoさんからオススメいただいた「スクワットの深さは人間性の深さ」という本を読み、日々スクワットに励んでいます(大嘘)。 さて、こちらの記事は Gunosy Advent Calendar 2022 の9日目になります。 昨日の記事はGunosy Tech Lab 石川さんの「リモートモブプログラミング開発の実践」でした。 本日は「Snyk IaC + reviewdog + aquaではじめるDevSecOps」と題して、CIへSnyk IaCを導入した事例についてご紹介します。 先日、私が執筆したこちらの記事でも、「Shift-Leftによる
はじめに 最近GitHub Actionsの記事をよく見かけるので、試してみることにしました。 本稿は、GitHub Actionsにreviewdogを連携させた記事となります。 reviewdogとは 各種linterの実行結果をプルリクエストのコメントで指摘してくれます。 詳細な説明は作者様の記事を参照するのが良いです。 Reviewdog を飼ってコードレビューや開発を改善しませんか reviewdogは、GitHub Actionsに対応しており、GitHub Actionsのusesで指定できるコードが用意されております。 詳細は、Pubilc Reviewdog GitHub Actionsを参照してください。今回はreviewdog/action-eslintを活用します。 用意するサンプル 用意したリポジトリは以下のようなプロジェクトです reactプロジェクト git
はじめに レビュワーの工数削減とヒューマンエラーを防ぎコードの品質をさらに向上させていく取り組みの一環として、自動コードレビュー(静的解析) を検討しました。 そこで、reviewdogというツールを用いて実装しようとしたのですが、 reviewdogはgithub-actionsベースで開発がされているため、gitlabでの使用に関しては、ほとんど事例・記事はありませんでした。 導入まで少しだけ苦労したので、この記事がgitlab上でreviewdogの使用を想定している人に向けて参考になれば幸いです。 reviewdogとは? Go言語で記述されたOSS。 各種 linter 解析の検出結果を MR(またはPull Request) にコメントする形で指摘してくれるツール 以下のreviewdog開発者の記事を読むと概要が掴めると思います。 Reviewdog を飼ってコードレビューや
reviewdog/action-rubocopというOSSプロジェクトをご存知でしょうか。Rubyの静的解析ツールであるRuboCopをGitHub Actionsで実行し、指摘箇所にコメントを付けてくれる便利なCustom Actionです。 本記事では筆者がこのOSSを改良して実装したSuggestion featureという便利機能とその実装についてご紹介します。RuboCopをお使いの方、より良いRuboCop生活をお求めの方、静的解析が好きな方向けの記事となります。 なお、この記事は2023-06-21に行われたGotanda.rb#53@ギフティで"RuboCop Custom Formatter for Reviewdog Diagnostic Format"と題して筆者が行った発表をもとにしています。 前提となる知識 初めにreviewdog/action-rubocop
インフラエンジニアの thaim です。 スペースリーではインフラの構築にTerraformを、Terraformのコードに対する静的解析にtflintを利用しています。 このtflintを上手く活用するために取り組んだこと、OSSコントリビュートに取り組んだことについて紹介します。 スペースリーにおけるインフラ開発の背景 始めにスペースリーのインフラ開発におけるtflintの活用状況について紹介します。 tflintを実行する Terraformのコードの静的解析ツールはいろいろと存在しますが、lintツールとしてtflintがあります。tflintはTerraformコードのコード規約を設定したり、terraform applyコマンドを実行できない不正な設定を検出したりできます。 スペースリーではTerraformコードの静的解析ツールとして terraform fmt (インデント
From reviewdog v0.9.13, it now supports GitHub Actions integration. You can use github-pr-check reporter to report results to GitHub Check with GITHUB_TOKEN which is automatically generated in GitHub Actions. No need to create a bot account and personal access token anymore and no need to install reviewdog GitHub App too! - name: Setup reviewdog run: | mkdir -p $HOME/bin && curl -sfL https://raw.g
こんにちは。株式会社ペライチ でサーバーサイドエンジニアをしている木村です。 入社以来主にペライチを継続利用していただくための機能追加や改善の開発を担当しております。 そのかたわら、ペライチシステムの品質を向上するための対応も行っており、今回はその一環として導入を進めているreviewdogを用いた静的解析について紹介させていただきます。 これまでのコード解析 ペライチでは Sider を利用して Pull Request 毎にソースコードの自動チェックを行っています。 Sider ではリポジトリ毎に解析を実施するツールの設定が可能で、 PHP で開発されているペライチアプリケーションでは以下を有効にしています。 PHP_CodeSniffer PHPMD Pull Request に含まれる変更のみを解析対象としてくれるため、人がコードレビューをする前段の文法やコーディング規約のチェック
textlint + Reviewdog + GitLab CI でアドベントカレンダーの校正をした話 2021.12.15 アドベントカレンダー2021 エンジニア テクノロジー これは、Qiita Advent Calendar 2021 GitLabの15日目の記事です。 はじめに こんにちは、フォルシアにて、旅行会社向けの web アプリケーションを開発しています、エンジニアの高橋です。普段のアプリ開発の業務のほかに技術広報も兼任しており、弊社で開催しているアドベントカレンダーの運営もお手伝いしています。 フォルシアではもともと、社内のイベントとしてアドベントカレンダーを始めましたが、2018 年からは弊社ブログ(FORCIA CUBE)にて外部の方向けに記事を公開しています。 社内のみで記事を公開していた頃は、誰かが多少締め切りをすぎても「かまへんかまへん」と言えますが、外部に公
概要 プロジェクトが進行するにつれて失敗からの学びを得たり、フェーズの変化により強力な eslint の rule を追加したい場合があります。しかし、次に示す特性を持つ rule を途中から追加するのは、手動で変更するファイルが多すぎて困難になるケースがあります。 既存コードに対してのエラーの件数が100件を超えている --fix による自動修正が提供されていない この記事では サービスを止めずにコードのクオリティを上げる TypeScript+Reactで安全に開発を続ける方法 - ログミーTech を参考に reviewdog を使用して、厳しい tsconfig や eslint rule を段階的に適用する方法を紹介します。 方法 以降は eslint rule について説明していきます。tsconfig やその他ツールについても同様に設定が可能です。 reviewdog は l
この記事は Sansan Advent Calendar 2023 の13日目の記事です。および【R&D DevOps通信】の連載記事のひとつです。 こんにちは、研究開発部 Architectグループの藤岡です。 今回は部で運用しているCI/CDに関する取り組みについてお話しします。共通化のノウハウや、どういった種類のCI/CDを導入してコード品質を担保しているかといった話をしたいと思います。 そのまま使える実装例もあるので、是非参考にしてみてください。 目次 目次 CI/CD共通化 reviewdog による Pull Request へのコメント 導入しているCI/CD PythonのCI その他のCI CD 実装例 reusable workflows composite action reusable workflows を利用する例 release-drafter によるリリース
# はじめに Markdownで書いた内容をtextlintでチェックして校正。そしてGitHubにPRとしてあげたときにGitHub Actions + reviewdogでレビューコメントを残すという機構をつくってみました。 このブログはVuePressで立ち上げているので、↓みたいなフローになります。 Markdownファイルで記事を書く GitHubにMarkdownファイルをpush GitHub Actionsでtextlintが動作 reviewdogでルールに引っかかった内容をレビューコメント TIP 記事執筆時点でのversionです。 textLint: v11.7.6 yarn: v1.22.4 vuepress: v1.3.1 # textlint Markdownファイルなどのプレーンテキストに対して、設定した任意のルールにしたがってチェックをしてくれるツールです
この記事では、文章校正ツールであるtextlintのチェックでエラーになったときの結果を、GitHubのPull Requestへコメントする設定について説明します。 textlintはGitHub Actionsを使って実行し、reviewdogを使ってPull Requestへコメントします。 reviewdogはGitHub Actionsで使えるDockerベースのPublic reviewdog actionsを公開しています。 しかしtextlint用のactionsはないので、この記事ではワークフローの定義ファイルを自作します。 動作を確認した環境 GitHub Actions β版(YAML Syntax)reviewdog v0.9.13textlint v11.4.0GitHub Actionsのワークフローの作成 GitHub Actionsを設定するリポジトリを準備
npm-groovy-lint + reviewdog で Jenkins Shared Library の PR チェック reviewdog は様々なツールの出力から PR に対してレビューをつけてくれるとても便利なツールです。私も GitHub Actions で reviewdog 使って shellcheck とか lint とかをよくかけています。 今回は Jenkins Shared Library の groovy スクリプトの lint をしたいと思い、npm-groovy-lint + reviewdog の GitHub Actions を用意したので紹介します。 reviewdog とツールがセットになったアクションがたくさんありますが、 npm-groovy-lint のアクションはなかったので作るか、アクション側で書くかのどちらかになります。 今回はアクション側
TL;DR Bitbucket Pipelines[1], reviewdog[2] を用いることで、textlint[3] の結果をプルリクエスト時に表示できました。 何ができるの? Bitbucket で管理されている日本語ドキュメントリポジトリにおいて、文章校正ツール textlint の指摘結果を自動的に PR 時にレポートしてくれます 🎉 実際の PR ページ でも確認できます(公開リポジトリで試していますが、指摘表示を見るためには Bitbucket ログインが必要になります)。 まずは使って確かめてみる 最初は、固定のルールで文章校正した結果を Bitbucket で表示してみましょう。 もし既に textlint を利用してローカルで確認しているような方は、この節を読み飛ばしてください。 まず対象のリポジトリのトップディレクトリに .textlintrc ファイルを作成、
tl;dr 人間の生成する文章はカス[1]なので,CI で textlint と chatgpt に推敲してもらい,最高の文章を生成しよう!! はじめに 対象読者 以下のような人を対象として書いています. 自分の書いた文章に自信がない 文章の推敲をしたいが,本質的でない部分の指摘に人的リソースを割きたくない 全てのものをCIによって自動化したい[2] なにをやるの?? プルリク駆動で書き上げる任意の文章に対して,自動的に 勝手に文法ミスを指摘してもらい, さらにChatGPTにより全体のレビューをしてもらえる 世界を作ります.(実際に文法ミスを指摘されているの図) ただし,あくまでもレビューコメントとして表示されるだけで,CI GREEN は担保していることにします[3]. 使う技術 textlint textlint は自然言語向けのlinterです.ESLint を既に知っている場合は
些細な指摘に時間を取られないようにreviewdogを導入してみました。 弊社のプランではGitHub Actionsが利用できないためJenkinsでの導入です。 導入の背景 ここ数ヶ月でチームの開発スピードが上がり、PRの数が増えてきました。 PRが増えるということはそれだけコードレビューに割く時間も増えることになります。 そうなってくると些細な指摘をするのが面倒になってきます。 「これ、elseいらないけど。でもわざわざ指摘するほどでもないかな、、」 こういうのは事前にlintして潰しておいてほしいと思いつつも、すべてのPRがlinterの指摘を修正しているとは保証できません。 うっかりlintを忘れることもある。 じゃあ単純にCIでlintすればいいかと言うとそれも難しい。 なぜなら修正範囲外の古いコードまで指摘を受けて、どこがPRに関係する指摘なのかわからなくなるから。 そこでr
reviewdogとDanger JSでコード内のスペルミスを発見し、修正を自動的に促す方法をご紹介します。 はじめに 「regist」という単語について Danger JS について reviewdog について プルリクエスト作成時に「regist」を検出し警告する Danger JSをGitHub Actionsで動かす設定 reviewdog を GitHub Actionsで動かす設定 プルリクエスト作成 reviewdogとDanger JSの使い分け 終わりに 参考 はじめに こんにちは、プロダクト技術本部の小川です。 みなさんは「regist」という単語、見覚えがありますか? この単語を見ると、「それって"register"じゃないの?」と思いませんか? もしそう思ったなら、あなたが正しいです。「regist」は英語では存在せず、「register」が正しい表現です。 しか
next lint の結果を Reviewdog に食わせて PR にコメントとして出したかったんだけど結構ハマったのでメモ。 普通に next lint を動かしてもだめ "scripts": { "lint": "next lint" } - uses: reviewdog/action-setup@v1 with: reviewdog_version: latest - name: Run reviewdog env: REVIEWDOG_GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: npm run lint | reviewdog -f=eslint -reporter=github-pr-review -filter-mode=diff_context -fail-on-error=true こんな感じでやってみたんだけど、
タイトルの通りですがcheckovは出力結果がreviewdogの入力形式に対応していないので、そのままだと組み合わせて使うことができません。そこで以下のようにスクリプトを書いて対応しました。 やりたい事 terraformを管理するGithubのリポジトリでPRを作成した際にterraformコードの静的解析を行い、問題があればPRにコメントを投稿してくれる、という形を目指します。 ここではcheckovで静的解析の結果を標準出力しreviewdogがパイプで結果を受け取ってPRにコメントします。 実際には以下のような表示になります。 各ツールについて checkov reviewdog 実装 まずreviewdogが受け取り可能な形式については以下に記載があります。 そのなかで今回はerrorformatという形式に合わせていこうと思います。errorformatは行単位で指定した形式
これは kawasaki.rb #77 で発表する予定の記事です。 Tl; Dr; これを参考にlintの結果をformatする CIに設定書く 🐶に怒られるようになる graphql-schema-linterを使いたかった 最近の業務では複数のマイクロサービスのレスポンスを束ねるBFF的な役割でgraphqlサーバーをフロントエンドの後ろに立てている。最近出たvvakameさんの薄い本で graphql-schema-linter が紹介されており、我々のプロダクトにも導入したいと思ったので早速実行してみた。 > ✖ 411 errors detected こんなもの入れたらCI通るまでにいつまで掛かるかわからないだろ!いいかげんにしてください。こういうlinterを後からプロダクトに入れようと思ったらPRの差分にだけ当てたくなるのが人間ってものです*1。なのでみんな大好きrevie
action-textlint v2 available どうも、action-textlintを作りました作者でございます。 いくつかの記事 (1, 2, 3)でも利用例を出していただいてうれしい限りです。 今回v2系へのアップデートと、それに伴う機能拡充があったので、どんなことをしたのかも含めて記事にします。 What is textlint あらためてちょっとだけtextlintについて紹介。 textlintはnpmパッケージとして提供されている、テキストドキュメントをlint(プログラ ミング方言かな、検査・検証)できるツールです。 プラグインでの拡張、ruleやその集合のpresetを導入することで柔軟な検査が行えます。 逆になにも入れてないときは、なにもしないですが。 What is reviewdog reviewdogにもたいへんお世話になっているので、紹介を……。 と思
概要 Github Actions への移行の一環として、これまで使っていた Sider というサービスを reviewdog + golangci-lint に移行してみました。結構ハマったのでメモ。 ちなみに Sider というのはいろいろな lint から好きなのを選んで、Pull Request の時に警告があれば差し込んでくれるサービスです。Sider は設定が簡単で、いろいろな言語、linter を UI でぽちぽち選択できとても便利なので、積極的に置き換える必要もないのですが(むしろ置き換えない方がいいのかも知れない)、GitHub Actions に置き換える気運が起きてしまったので仕方なかった・・・。 golangci-lint の設定 golangci-lint の設定を reviewdog に直接設定することも可能ですが、開発時にも利用することを見越して .golan
はじめに 個人開発でRubyを使って開発しています。 静的解析にはもちろんrubocopを使っているのですが、ローカルで実行するのみでした。 この作業をCIでも実行したいと思い、個人で触ったことのなかったGitHub ActionsとRun rubocop with reviewdogを使ってみることにしました。 GitHub Actionsとは 公式からの説明は以下のとおりです。 GitHub Actions は、ソフトウェア開発ライフサイクル内のタスクを自動化するのに役立ちます。 GitHub Actions はイベント駆動型で、指定されたイベントが発生した後に一連のコマンドを実行できます。 たとえば、誰かがリポジトリのプルリクエストを作成するたびに、ソフトウェアテストスクリプトを実行するコマンドを自動的に実行できます。 参照:GitHub Actions入門 ざっとまとめると、Git
こちらのブログは個人ブログと同じ内容です www.ritolab.com プルリクエストを作成した時に構文チェックや静的解析を走らせてソースコードのチェックを行っていた際に、検査に通らなかった場合は結果エラーと表示・通知されますが、その度に GithubActions / CircleCI / TravisCI などの結果画面へ遷移して検査に通らなかった箇所を確認するのって少しだけ面倒だったりします。 そんな時は、reviewdog を使って、検査結果をプルリクのレビューコメントに出力してあげると手間も減って少しだけ幸せになれます。 今回は、reviewdog で構文チェックや静的解析の結果をプルリクのレビューコメントとして出力してみます。 reviewdog reviewdog は、レビューコメントを出力してくれるツールです。 https://github.com/reviewdog/r
こんにちは、技術本部 Eight Engineering Unit でエンジニアをやっている茂木です。 普段はSansan株式会社で正社員としてフルコミットしつつ、情報系の大学に通っています。 今回は Reviewdog x RuboCop を使って、ローカル環境で Lint をかける機構を Eight に導入した話をしていきます。 目次 背景 要件方針 実装 導入後の効果 まとめ 背景 Eight では、コードの品質を保ち、バグや不具合を未然に防ぐために静的解析ツール RuboCop を導入しています。Pull Request が作成されると、GitHub Actions を用いた CI が自動的に実行され、RuboCop による静的解析が行われます。違反があった箇所にはコメントが付けられ、開発者はそれをもとに修正を行うことができます。 ただし、開発の初期には RuboCop が導入され
この記事ではreviewdogとtextlintを組み合わせてGitHub Actionsで利用する方法を説明します。 モチベーション 技術書典のRe:Viewで書籍を書くためのサンプルリポジトリでは、textlintとreviewdogによって誤字や、不適切な表現をチェックしています。 私は文章力を向上させるためにこのブログを更新しています。 そのため、技術書典と同等のレベルで内容のチェックをすることは非常によい訓練になります。 TechBoosterが公開しているRe:VIEW TemplateではCircleCIを利用してPull Requestにコメントを付けています。 しかし私はこのブログをデプロイするためにGitHub Actionsを利用しています。 そこでtextlintのチェックもGitHub Actionsで行えるように設定しました。 口語に近い文章を書いてしまってもす
lint-staged + huskyでプロジェクトのpre-commitフックにリンターを設定して…コミット前に指摘を潰しましょうというのはよくあるやり方である lint-stagedでは差分に対してのみ各種リンターのチェックができる認識でいたが差分があるファイル単位までフィルタリングできるという感じだった プロジェクトの途中からリンターを導入する場合など、すでに警告対象のコードが紛れてしまっている場合、そういうファイルを変更するとリンターに引っかかるので同時に直さないと行けないというような感じになる できれば差分のみに対して警告を出すようにしたい 一方、CIではよくreviewdogを使って差分のみに対してリンターを掛けコメントしている例をよく見る reviewdog/reviewdog: 🐶 Automated code review tool integrated with an
# gotest2rdfの紹介 github.com ![reviewdogがテストの失敗をGitHubの行コメントで報告している様子](https://raw.githubusercontent.com/aereal/gotest2rdf/main/docs/image.png) gotest2rdfというツールを作りました。go testの出力を受け取り、Reviewdog Diagnostic Formatに変換します。 これをreviewdogに渡すことで失敗したテストやスキップしたテストをPull Requestに行コメントで報告してくれます。 もちろんreviewdogのreporterを指定すればChecksとして報告もできますし、GitHub以外のサービスも対応できます。 ビルドジョブの失敗通知でテストが失敗したことがわかったけど、じゃあどこが落ちとるねんということを知るた
android { // ... lint { // ... sarifReport = true checkDependencies = true } マルチモジュール構成の場合は、上記のように checkDependencies = true を指定しておけばサブモジュールの結果も app モジュールのレポートに含まれるようになります。 ワークフロー コードのチェックアウトや Java のセットアップ等は省き、Android Lint のところだけ書くと次のようになります。 - run: ./gradlew app:lintDebug --continue continue-on-error: true - uses: reviewdog/action-setup@v1 - env: REVIEWDOG_GITHUB_API_TOKEN: ${{ github.token }} run
アイミツ開発チームでエンジニアリングをしている deliku です! 前回の記事で、Larastan を導入し、NextActionで CIで実行することを掲げていましたので、今回は実際にそれに取り組んでみた記事になります。 ▶︎ 前回の記事 ▶︎ reviewdogreviewdog は、linterなどの実行結果をGitHubのプルリクエストにコメントしてくれるもので、PHPの静的解析ツールであるPHPstanの実行結果を渡すことで、静的解析した結果をコメントしてくれるようになります。 reviewdog provides a way to post review comments to code hosting service, such as GitHub, automatically by integrating with any linter tools with ease.
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く