Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SonarQube (SonarCloud) を調べる #510

Closed
m-tmatma opened this issue Oct 1, 2018 · 23 comments
Closed

SonarQube (SonarCloud) を調べる #510

m-tmatma opened this issue Oct 1, 2018 · 23 comments
Labels
CI appveyor など CI 関連 【ChangeLog除外】 research 実現可能性調査【ChangeLog除外】 static analysis
Milestone

Comments

@m-tmatma
Copy link
Member

m-tmatma commented Oct 1, 2018

@m-tmatma m-tmatma added the refactoring リファクタリング 【ChangeLog除外】 label Oct 1, 2018
@m-tmatma
Copy link
Member Author

m-tmatma commented Oct 1, 2018

例によって、オープンソースに対してはタダです。

@m-tmatma m-tmatma added CI appveyor など CI 関連 【ChangeLog除外】 research 実現可能性調査【ChangeLog除外】 and removed refactoring リファクタリング 【ChangeLog除外】 labels Oct 7, 2018
@m-tmatma m-tmatma changed the title SonarQube を調べる SonarQube (SonarCloud) を調べる Oct 7, 2018
@m-tmatma
Copy link
Member Author

m-tmatma commented Oct 7, 2018

SonarQube Analysis
https://www.appveyor.com/blog/2016/12/23/sonarqube/

@m-tmatma
Copy link
Member Author

m-tmatma commented Dec 2, 2018

SonarQube Analysis
https://www.appveyor.com/blog/2016/12/23/sonarqube/

によると
https://chocolatey.org/install#install-with-cmdexe

で chocolatey をインストールして SonarQube 用のプログラムをインストールする手順が記載されている。

別PR (#653) で doxygen と cppcheck を chocolatey でインストールする話もあるので
とりあえず chocolatey で doxygen と cppcheck を インストールするのを試してみる。

@m-tmatma
Copy link
Member Author

m-tmatma commented Dec 2, 2018

別PR (#653) で doxygen と cppcheck を chocolatey でインストールする話もあるので
とりあえず chocolatey で doxygen と cppcheck を インストールするのを試してみる。

結構ダウンロードに時間がかかるみたい。

@ds14050
Copy link
Contributor

ds14050 commented Dec 7, 2018

SonarQube にどれだけのことが可能な許可を与えるのかが気になります。これだけ CI 界隈が賑わっていると金目に引き寄せられてくるものを警戒します。たとえば生成物にこっそりマイニングコードを埋め込むことが原理的に可能かどうかというようなことです。Firefox の有名アドオンであっても過去現在未来において変わらず全幅の信頼を置けるものは存在しないのですから。

@berryzplus
Copy link
Contributor

正直にいうとですね。
SonarCubeについてはリンクすら開いてなくて、何者か分かってないです。

たぶん、のレベルであれば、
githubのブランチを解析してprに情報を埋め込んでくれる便利ツールかな?と推測しています。

前に「そういうツールもある」って言ってましたよね、どこかで(いい加減

元の経緯が「使えるかどうか調べてみます」なので、
これが何者かの説明をしづらいのは仕方ないと思います。
ただ、少なくとも導入提案をするなら、分かった範囲のことは説明してほしいっす。

PR側にこういうコメントを書くのもどうかと思ったのでこっちに書きました。

@m-tmatma
Copy link
Member Author

m-tmatma commented Dec 7, 2018

明示的には書いてなかったですが、
SonarQube を有効にした状態でコンパイルしたバイナリ は使用しないです。

必要な権限は以下です。

  • No access to code
  • Read access to members and metadata
  • Read and write access to commit statuses and pull requests

ソースコードに対するアクセス権はないので、コードを書き換えることはできませんし、
生成バイナリも利用しないので、もし仮になにかバックドアを埋め込まれたとしても
影響はないです。

フロー的には以下です。

  1. SonarQube 関連のツールを chocolatey でインストールする。
  2. chocolatey で入手できないツールをダウンロードする (リポジトリに登録するのでもいいのかもしれませんが、更新したかの管理が面倒なので毎回ダウンロードするようにしている)
  3. SonarQube 関連のツールで開始処理を行う。(SonarCloud の API キーを指定する)
  4. SonarQube 関連のラッパーをかませた上で msbuild でビルドする
  5. SonarQube 関連のツールで終了処理を行う。(SonarCloud の API キーを指定する)
  • 5 で 解析結果がSonarCloud に送られて web で確認できるようになる。
  • 4 でビルドしたバイナリは利用しない。

@m-tmatma
Copy link
Member Author

m-tmatma commented Dec 8, 2018

ただ、少なくとも導入提案をするなら、分かった範囲のことは説明してほしいっす。

一応 PR 中にドキュメントを入れています。
https://github.com/sakura-editor/sakura/pull/674/files#diff-b28e806613ed1f401e0053134bda4d2f

以下を見たらなんとなく何をするもんかはわかると思って、何をするもんか?
というのは書いてないです。
#674 (comment)

ただ、少なくとも導入提案をするなら、分かった範囲のことは説明してほしいっす。

まだ、導入提案とまでは行ってなくて、調査中でまだ実験中というフェーズです。
現状の情報共有してます、という感じです。
興味がある人あるいは知識がある人いればコメントください、的な感じです。

だがら試行錯誤の経緯的なコメントいっぱい書いてます。

appveyor で実行するとjob の実行時間が1時間以上かかってタイムアウトしてしまうので
そのままでは実行できないので、どうしようかな? と考えている状態です。

@berryzplus
Copy link
Contributor

リンク開いてみました。

無料版と月額10ユーロ(=約1,300円)からの有償版が存在する Web サービスで、
リポジトリを解析して統計を見ることができるツールだということが読み取れます。
「SonarQubeとは何者か」についての具体的説明は一切ありませんでした。

要するに、作ってる人もこれが何者かよく分っていない?
公式サイトの説明がこれじゃ、人に説明できないのもしょうがないのかな、と思いました。

まだ、導入提案とまでは行ってなくて、調査中でまだ実験中というフェーズです。
現状の情報共有してます、という感じです。
興味がある人あるいは知識がある人いればコメントください、的な感じです。

了解っす。とりあえず眺めときます。

ふと思ったんですが、試験用にsakuraリポジトリの複製を作るアプローチはナシなんでしょうか?
sakura-editor/sakura → sakura-editor/sakura_work

試験のために色々やるのにPR承認が必要なのも面倒だろう、と思っただけで、
その後どうするか?とか考えてないんですけど、
必要なら目的別の検証専用リポジトリを作るのもアリかな、と思っています。

PR承認を得るには、調べたことを逐一説明する必要があります。
自分が見てきた資料を整理して、「結論としてこう思う」のカタチにまとめる必要があります。
たぶん、全部のアドレスを貼れるわけじゃないと思うので、そういうまとめが必要な気がします。

@ds14050
Copy link
Contributor

ds14050 commented Dec 8, 2018

  • No access to code
  • Read access to members and metadata
  • Read and write access to commit statuses and pull requests

これです。これを第一に求めていました。

PR の方の Files Changed を見ると MSBuild に手が入っているように見えたので、SonarQube の手のひらの上に載せられるような不安を覚えたのでした。

@m-tmatma
Copy link
Member Author

m-tmatma commented Apr 7, 2019

#674 で対応を行いました。
最初に SonarQube (SonarCloud) を見つけてから 6か月もかかった。

@m-tmatma
Copy link
Member Author

m-tmatma commented Apr 7, 2019

説明書いてないとことかいっぱいあるのでわからないことあれば聞いてください。
該当の PR でドキュメント追加しています。

@m-tmatma
Copy link
Member Author

@sakura-editor/sakura-developers

https://sonarcloud.io/documentation/organizations/manage-team/#managing-members-in-github
Bind this organization to GitHub の設定をしているので
https://sonarcloud.io/dashboard?id=sakura-editor_sakura で gitHub のアカウントでログインしてみてください。

@berryzplus
Copy link
Contributor

https://sonarcloud.io/documentation/organizations/manage-team/#managing-members-in-github
で Bind this organization to GitHub の設定をしているので
https://sonarcloud.io/dashboard?id=sakura-editor_sakura で gitHub のアカウントでログインしてみてください。

見れたよ~という報告。

トップに表示されている一文が何気に気になる

The last analysis has failed.

@m-tmatma
Copy link
Member Author

見れたよ~という報告。

https://sonarcloud.io/project/background_tasks?id=sakura-editor_sakura
のページアクセスできますか?

ログインしないと見れないページのようです。

@m-tmatma
Copy link
Member Author

トップに表示されている一文が何気に気になる

The last analysis has failed.

これは https://sonarcloud.io/project/background_tasks?id=sakura-editor_sakura のページにアクセスして見れるページで 設定アイコンで "Show Errro Details" の項目を選択して見れるページに以下のエラーが記載されていました。

Error Details

Validation of project failed:
  o Date of analysis cannot be older than the date of the last known analysis on this project. 
Value: "2019-04-26T17:07:40+0200". Latest analysis: "2019-04-26T17:08:10+0200". 
It's only possible to rebuild the past in a chronological order.

成功して、失敗して、を周期的に繰り返している。

→ この解析を実行するための PR のブランチは定期的に master に対して rebase しているせいで
前回実行した結果との差分を SonarQube が認識できなくなっているためかもしれません。、

https://community.sonarsource.com/t/the-last-analysis-has-failed/2318/8

@berryzplus
Copy link
Contributor

見れたよ~という報告。

https://sonarcloud.io/project/background_tasks?id=sakura-editor_sakura
のページアクセスできますか?

できないです。ログインページでGitHubを選ぶと「十分な権限がありません」という感じのエラーメッセージがでます。

見れたのはこっち。

https://sonarcloud.io/dashboard?id=sakura-editor_sakura で gitHub のアカウントでログインしてみてください。

@m-tmatma
Copy link
Member Author

オーナー権限をつけてみました

@berryzplus
Copy link
Contributor

ログインできたっぽい。

https://sonarcloud.io/dashboard?id=sakura-editor_sakura

ここにアクセスしたあと、右上のログインを選ぶとSAKURA Editor Organizationが表示されるので、それをクリックするとサインアップが完了する仕組みみたい。GitHubアカウントから直接のサインアップはできないのかも。

@m-tmatma m-tmatma added this to the v2.4.0 milestone Apr 27, 2019
@berryzplus
Copy link
Contributor

オーナー権限をつけてみました

タイミング的にどっちが効いたか微妙ですね。
他にも誰か試してみて欲しい感じです。

@berryzplus
Copy link
Contributor

vulnerability(=脆弱性)に16と出てたので何かと思ったら
「sprintf とか strcpy に _s版使ってね」的な内容で ...orz になった。

@m-tmatma
Copy link
Member Author

#674 をマージしたので閉じます。
何かありましたら、別チケット、PR で。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CI appveyor など CI 関連 【ChangeLog除外】 research 実現可能性調査【ChangeLog除外】 static analysis
Projects
None yet
Development

No branches or pull requests

3 participants