読者です 読者をやめる 読者になる 読者になる

SideCI Blog

継続的インテグレーションツール(CI)のSideCIが運営しています。コード品質向上や生産性向上など、ソフトウェアエンジニアに役立つCI全般について記事を投稿しています。

ESLint実行時にプラグインやコンフィグをnpm installできるようになりました 他

こんにちは。今週のアップデート情報です。

ESLint実行時にプラグインやコンフィグをnpm installできるようになりました

SideCI上でのESLint実行時、.eslintrcの設定ファイル内にpluginsやextendsが指定されている場合にそれらのインストールした上で解析を実行するようになりました。

例えば .eslintrc.json が

{
  "rules": {
     ...
  },
  "plugins": [
    "react",
    "jade",
  ],
  "extends": [
    "eslint:recommended",
    "plugin:react/recommended"
  ]
}

のようなとき、

  • eslint-plugin-react
  • eslint-plugin-jade
  • eslint-config-eslint

がnpm installされeslintの解析が実行されます。

SideCIではeslintrcのファイル形式として以下の形式をサポートしています。

  • .eslintrc.yaml
  • .eslintrc.yml
  • .eslintrc.json
  • .eslintrc (JSON, YAMLどちらでも可/公式ではdeprecated)
  • package.json

package.jsonについては eslintConfig という項目でESLintのコンフィグ項目として設定可能です。 インストールしたいESLintのバージョンや、各種ESLintプラグインのバージョンを指定したい場合は、package.json内でdevDependenciesとして指定することが可能です。

package.jsonについてはこちらの公式ドキュメント をご参照ください。

SideCI経由でPull Requestに付いた指摘を初期化(cleanup)できるようになりました

f:id:sideci:20160912191040p:plain

Pull Request内でのコメントやディスカッションが増えてきたり、開発後期でマージ前で静的解析の瑣末な指摘は表示したくないケースはあるかと思います。 そんなときにSideCI経由で付いた静的解析のコメントを一斉に削除できるようになりました。

SideCIのニュースフィード上内の該当のPRの指摘ページ(Feed)から実行できます。

※コメント削除は一時的な削除なため、同一PR内のブランチに再度PUSHが行われると再度SideCI指摘が付記されます。恒常的にPRへのコメントを無効にしたい場合は SideCIの画面の解析ツール選択から設定が可能です。

ぜひご利用頂ければ幸いです!

SideCI上でESLintの自動修正が行えるようになりました ほか

SideCI Update

こんにちは。今週のアップデート情報です。

SideCI上でESLintの自動修正が行えるようになりました。

ESLint経由で指摘したもののうち、修正可能な指摘を自動修正したPull Requestを生成することができます。 この機能を既存のワークフローに組み込むことによって「Pull Requestに対するESLintの指摘を修正するPull RequestをSideCIから作成し、それをマージする」ことでローカルで修正せずともコード指摘を反映できるようになります。

この自動修正の対象は 該当Pull Request内のコミットで変更があったファイル になります。差分箇所のみではない点をご留意下さい。

設定方法

SideCI上の 解析ツール選択 からESLintを有効にしておきます。また、 GitHub上にコメントを行わない オプションは 外して おきます。

f:id:sideci:20160715105429p:plain

実行方法

1. SideCI上から

SideCIの Pull Requestに対するESLintの指摘 から ESLintの指摘を自動修正する をクリックすると、ESLintの指摘を自動修正するPull Requestが生成されます。

f:id:sideci:20160715112045p:plain

2. GitHubのPull Requestから

GitHubのPull Requestにコメントされるリンクから実行します。

ESLintの指摘が1件以上あるPull Request に対してコメントされる形で修正リンクが付記されます。 Auto Correct by SideCIボタンをクリックすると、Pull Request生成が実行されます。

f:id:sideci:20160715112050p:plain

自動修正されたPull Requestをマージする

自動修正のPull Requestが生成されます。

また、修正元のPull Requestに自動生成されたPull Requestについてのコメントが付与されます。

生成されたPull Requestをレビューの上、マージしてください。

RuboCopの自動修正実行前に差分プレビューが表示されるようになりました

RuboCopでも上記の自動修正が行えますが、SideCI上でPull Request生成前に 自動修正を実行した場合に生成されるPull Requestのコード差分を確認 できるようになりました。

「自動修正でどんな内容のPull Requestが作られるのか」「変なコードに書き換えられないか」などの確認が事前にできるようになるので便利です。

f:id:sideci:20160715112124p:plain

設定方法は特に不要で、実行方法はESLint同様に「RuboCopの指摘を自動修正する」を行うと、実行時にSideCI側で差分プレビューが表示されます。

ぜひご利用頂ければ幸いです!

GitHub Enterpriseをご利用中の皆様、お待たせ致しました。SideCIのGHEへの提供を開始しました

SideCI Update

GitHub Enterpriseをご利用中のチームへのSideCIの提供を開始致します。

SideCIは今まではクラウド版のGitHubにのみしており、Enterprise版については個別お問い合わせとさせて頂いておりました。今後、以下に記載の要件での提供については、すぐにご利用頂けるようになります。

特徴

  • インフラの構築作業やホスティング費用は不要。SideCIのご利用料のみでご利用頂けます
  • SideCIとGitHub Enterprise間の通信は全て暗号化し行われます(HTTPS)
  • オーガニゼーション数、リポジトリ数は無制限にご利用頂けます

その他、セキュリティーポリシーなどは以下に準じます。
https://sideci.com/ja/security

ご利用要件

GitHub Enterprise要件

  • GitHub Enterpriseは外部からアクセス可能なドメイン名を持っている必要があります(github.example.comなど)
  • GitHub Enterpriseのホストに正規のSSL証明書が設定されている必要があります

ネットワーク要件

弊社SideCI側とGitHub Enterpriseとの通信周りでいくつかネットワーク要件があります。
詳しくはお問い合わせください。

ご利用料金

GitHub向けとは料金体系が異なりますので、お問い合わせ下さい。
GitHub向けの料金プランは料金ページ記載の通りです。

申し込みからご利用までの流れ

  1. support@sideci.com までお問い合わせ下さい
  2. ご利用要件や料金等についてご訪問、ご紹介させて頂きます(Skype等リモートでも可能です)
  3. ネットワーク要件等に合わせて初期構築
    1. 所要時間は環境に応じますが、比較的短時間でご利用可能になります
  4. トライアル開始
  5. ご利用開始

おわりに

SideCIはスタートアップから上場企業様まで、多くの会社様でご利用頂いております。
お問い合わせ頂いておりました方々や企業様、Enterpriseに対応していないためお見送りせざるを得なかった方々や企業様、ぜひこの機会に一度お話させて頂けましたら幸いです。

こちらからご連絡をお待ちしております。
support@sideci.com

メソッド定義を変更した場合の修正漏れを検知できるようになりました。

Update SideCI

こんにちは。今週のSideCIのアップデート情報です。

Ruby用の新しい解析ツール Method Definition Validator が利用できるようになりました。

メソッド定義を変更した場合の修正漏れを検知できるようになりました。

メソッドをリネームした場合や引数の数を変更した場合、そのメソッドを呼び出している箇所に対応漏れがないか?を検知します。

Pull Request内の変更差分だけではなくリポジトリ全体のコードが対象になるので「メソッド定義を変更したが、そのメソッドを使用している先の変更が漏れていた」などを検知できます。 対応言語はRubyです。

def do_something
  puts 'do_something'
end

do_something

例えば上記のdo_somethingメソッドをdef do_something(p)の様に変更した場合、呼び出し元では引数が足りないためエラーとなってしまいます。

今回追加した Method Definition Validator を有効にしておくことで、このような変更漏れを本番環境に紛れ込む前に事前検知して指摘することが可能です。

コードレビューを行う際はファイルの差分をもとに行うことが多いかと思いますが、このツールでは 差分がなかった箇所 を検知できるので便利かと思います。

f:id:sideci:20160610131534p:plain

SideCIの解析ツール選択画面から Method Definition Validator を有効にすることで、この機能を使用することが可能です。 ※SideCI上で既存でRuboCopを利用しているリポジトリに対してはデフォルトでONになっています

f:id:sideci:20160610131517p:plain

Rubocop DefinitionValidator はGitHub上でソースコードを公開してあります。

https://github.com/actcat/rubocop-definition_validator

クレジットカードでのお支払いに対応しました。

Update SideCI

今年の4月から正式サービス化させていただいているSideCIですが、PayPalに加えてクレジットカードでの支払いにも対応致しました!

※クレジットカードの決済代行サービスとしてStripeを利用しているため、ご登録いただいたカード情報を弊社で閲覧・利用・保持することはありません。

f:id:sideci:20160602164918p:plain

通常の決済プラン変更画面の右下からクレジットカード支払いのフォームに切り替えることが可能です。

既にPayPal決済されている場合にクレジットカード支払いに切り替える必要がある場合、一旦既存プランをTrialプランにダウングレードすることで再度プラン変更が可能になります。

SideCIからPull Requestのcommit statusを細かくカスタマイズできるようになりました ほか

SideCI Update

こんにちは。@vexus2です。明日からゴールデンウィークですね! さて、いくつか溜まってしまっておりましたが、SideCIのアップデート情報です。

Pull Requestのcommit statusを細かくカスタマイズできるようになりました

f:id:sideci:20160428164724p:plain

f:id:sideci:20160428164743p:plain

各ツール毎に commit statusの強制度を設定できるようになりました。 これにより、例えばPull Request内でRubocopの指摘件数が1件以上あっても問題ないが、 Brakeman(security検知)で1件以上指摘がある場合はstatusをfailureにする、などの設定が可能です。

本機能とGitHubのRequired status check機能を組み合わせることで、failure statusが含まれるPRはmergeできないように制御できるので、より安全な開発が行いやすくなります。

RuboCop/CodeSnifferのauto correctを無効にできるようになりました

f:id:sideci:20160428165125p:plain

RubyならRuboCopでのauto correct、 PHPならPHP_CodeSnifferでのauto correctをSideCI上から提供しておりますが、 本機能を設定から無効にできるようになりました。

SideCIでの解析をコミット単位でSkipできるようになりました

直近のコミットコメントに以下の文言が含まれる場合、SideCI上での解析をスキップできるようになりました。 コード内のコメントのみの修正によるCode Inspectionが不要なコミット、Trialビルド数の関係で解析を実行したくないコミットなどにご利用下さい。

[skip sideci]
[sideci skip]
[skip ci]
[ci skip]

ツール選択時に各解析ツールのバージョンが表示されるようになりました

f:id:sideci:20160428164524p:plain

SideCIダッシュボード上の 解析ツール選択 画面から、各ツールごとのSideCIでのツールバージョンが確認できるようになりました。 また、SideCIでご利用頂ける各ツールは原則最新バージョンのものを利用しています。

SideCI上でPHP_CodeSniffer自動修正が行えるようになりました

SideCI Update

SideCIはphp-cs-fixerを利用して、修正可能なPHP_CodeSnifferによる指摘を自動修正したPull Requestを生成することができます。 この機能を既存のワークフローに組み込むことによって「Pull Requestに対するPHP_CodeSnifferの指摘を修正するPull RequestをSideCIから作成し、それをマージする」ことでローカルで修正せずともコード指摘を反映できるようになります。

この自動修正の対象は 該当Pull Request内のコミットで変更があったファイル になります。差分箇所のみではない点をご留意下さい。

また、php-cs-fixerの修正は、sideci.ymlのPHP_CodeSnifferの設定に沿って行われます。
ただし、自動修正に指定できるのは以下のみとなり、該当しない場合は PSR2 として自動修正が行われます。 - PSR0 - PSR1 - PSR2 - Symfony

設定方法

SideCI上の 解析ツール選択 からPHP CodeSnifferを有効にしておきます。また、 GitHub上にコメントを行わない オプションは外しておきます。

実行方法

CodeSnifferの指摘を自動修正する方法については、2つの実行方法があります。

1. SideCIから

SideCIの Pull Requestに対するCodeSnifferの指摘 から PHP Code Snifferの指摘を自動修正する をクリックすると、PHP_CodeSnifferの指摘を自動修正するPull Requestが生成されます。

2. GitHubのPull Requestから

GitHubのPull Requestにコメントされるリンクから実行します。

RuboCopの指摘が1件以上あるPull Request に対してコメントされる形で修正リンクが付記されます。 Auto Correct by SideCIボタンをクリックすると、Pull Request生成が実行されます。

自動修正されたPull Requestをマージする

自動修正のPull Requestが生成されます。

また、修正元のPull Requestに自動生成されたPull Requestについてのコメントが付与されます。

生成されたPull Requestをレビューの上、マージしてください。