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

2022-06-20 #45

Open
r7kamura opened this issue Jun 19, 2022 · 4 comments
Open

2022-06-20 #45

r7kamura opened this issue Jun 19, 2022 · 4 comments

Comments

@r7kamura
Copy link
Owner

No description provided.

@r7kamura
Copy link
Owner Author

@r7kamura
Copy link
Owner Author

r7kamura commented Jun 19, 2022

semgrepperの試用と改善をして、差分を適切に求めてくれない問題を修正できた。

環境変数を元に適切な差分を求めているようで、更にその環境変数にはパスが入っていて実際には内部でパスの参照するファイルを読んでいて……ということだったので、composite custom actionの中でdocker run --rm ... semgrep ci ... とやるのは大変そう。結果的に、docker custom actionとして提供することにした。

@r7kamura
Copy link
Owner Author

r7kamura commented Jun 19, 2022

semgrepにPRを出すために、pyenvを入れてpython 3.10.5を入れて……ということをしていた。

この辺を読んでいくと、どうやらsemgrep-cliをいじればいいらしい。

WSL2でPythonを入れてpipenv installしようとしたらハマってググった。

# NG
SEMGREP_SKIP_BIN=true python -m pipenv install --dev

# OK
SEMGREP_SKIP_BIN=true python -m pipenv install --dev --python=/home/r7kamura/.pyenv/shims/python

pypa/pipenv#3488 helped me a lot, thanks.

手元でsemgrep-cliを動かすことに成功したが、ドキュメントに書いてある通り、semgrep-coreって実行ファイルがねえよと怒られているので、prebuiltなやつを持ってくるか自分で20分かけてビルドするかして持ってこないといけない。面倒だ……

manual shortcutの項目にある通り、releasesの最新版のtar.gzからsemgrep-coreバイナリを持ってきてPATHの通るところに配置した上で、pipenv shellやら何やらを組み合わせた結果、ようやく手元でインストールしたsemgrepが動いた

image

一度ローカルでのsemgrepインストール手順を踏むと、コードを変更したときに反映される、つまりコピーしてるのではなく実体を参照するようになるらしい。

$ python -m semgrep scan --github-actions
Scanning 2 files with 3 ruby rules.
  100%|██████████████████████████████████████████████████████████████████████████████████████████████████|2/2 tasks
::warning file=semgrep_another_example.rb,line=1,col=1,endLine=1,endCol=6::foo is deprecated. Use baz instead.
::warning file=semgrep_example.rb,line=1,col=1,endLine=1,endCol=6::foo is deprecated. Use baz instead.
::error file=semgrep_example.rb,line=2,col=1,endLine=2,endCol=6::bar is removed. Use baz instead.
::notice file=semgrep_example.rb,line=3,col=1,endLine=3,endCol=6::baz is great.

Some files were skipped or only partially analyzed.
  Scan was limited to files tracked by git.

Ran 3 rules on 2 files: 4 findings.

動くようになった。

semgrepにPull Requestを出した。

@r7kamura
Copy link
Owner Author

懸垂、ディップス、腕立て、腹筋ローラーをやった。
ディップスは身体を壊しそうな気配があるので、トレーナーに見てもらわない限りは今後やらないことにした。
腹筋ローラーの様子を動画に撮ることにして、今回試しにiPhoneで動画を撮った。とりあえず100回やった。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant