notes
BlackDuckのSynopsys Detectを使う
docs
8.6 https://community.synopsys.com/s/document-item?bundleId=integrations-detect&topicId=properties%2Fall-properties.html&_LANG=enus
9.0 https://sig-product-docs.synopsys.com/bundle/integrations-detect/page/properties/all-properties.html
src
https://github.com/blackducksoftware/synopsys-detect/tree/master/detectable/src/main/java/com/synopsys/integration/detectable/detectables
https://github.com/blackducksoftware/synopsys-detect/tree/89898576fe4f2d06ab25204effe3e2fd2c52c32d/documentation/src/main/markdown/packagemgrs
supported language
https://www.synopsys.com/content/dam/synopsys/sig-assets/datasheets/blackduck-sca-ds-ul.pdf
---
path
(install-dir)\Synopsys Detect\Synopsys Detect.exe
log
%appdata%\Synopsys Detect\results\runs
プロパティ設定まわり
Windows版のexeだと環境変数からなら使える
❌detect.accuracy.required=NONE
🔴set DETECT_ACCURACY_REQUIRED=NONE
セットした後、そのターミナルでdetect.exeを起動すればいい
プロキシ
detectは裏でスキャン対象のビルドを走らせる
このとき(スキャン対象側のビルドで)パケマネの通信も行うのでプロキシ設定できてないと死ぬ
が、detectのプロキシ設定からは伝搬しない
どうする?
環境変数にて伝搬させるしかない(detect側のプロキシ設定ではない)
https_proxyとかセットした状態でdetectを起動すればいい
コマンドライン
java -jar (install-dir)\Synopsys Detect\resources\resources\build\detect\synopsys-detect.jar
嘘です、普通にsynopsis側が用意されてるのを使え、ドキュメント見たら普通に書いてあるべ🐰
https://sig-repo.synopsys.com/artifactory/bds-integrations-release/com/synopsys/integration/synopsys-detect/
とはいえ、artifactoryからゲットできるjarと、detect guiが保つjarは中身は一緒(sha1sumで見た)
以下は実行例
プロキシはhttp_proxy環境変数にて
事前にtokenをつくっておく
タイムアウト長いのはうざいので手短に
実行例、改行して記した
  $ proxy
  Result of "set | findstr HTTP"
  HTTPS_PROXY=http://SERVER:PORT
  HTTP_PROXY=http://SERVER:PORT
  
  $ java -jar "(installdir)\Synopsys Detect\resources\resources\build\detect\synopsys-detect.jar"
    --blackduck.api.token="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX=="
    --blackduck.url="https://SERVER"
    --detect.timeout=10
    --detect.accuracy.required="NONE"
    --detect.project.name="pj1"
    --detect.project.version.name="version1"
場合によってはSSL certも絡むだろう
javaというかjvmの証明書ストアに証明書を追加する
トラブルシュート
Q: ERROR: Scan failed: [An internal server error occurred while processing the scan. (can't parse argument が出る
Ans: たぶん project name か project version にスペースが入っている
そのせいで内部的なコマンドラインで引数展開が上手く行ってない
なので当該の値を明示的に "" で囲んでやることで、内部的にも上手くいくようにしてあげる
---
Links From <- Log4jに対するSysnopsis_Detect_DETECTOR_スキャンを通すまで tilscb
Links To -> BlackDuckのSynopsys_Detectを使う javaというかjvmの証明書ストアに証明書を追加する