Github Actions — Scan Code

Jane
Aug 27, 2021

--

GitHub Actions是一個Github自家推出的CI/CD服務

而CI的過程中也包含了Scan Image的動作

Github自家也推出了Scan Code Service

CodeQL

自動找出程式碼中的vulnerabilities 與 errors

CodeQL support的語言有

  • C/C++
  • C#
  • Go
  • Java
  • JavaScript/TypeScript
  • Python

Github Actions當然也可以使用自家的CodeQL Scan

這邊的用法跟一般的要從console先做設定才能使用Actions

各個repo的Security下Overview

找到Code scanning alerts點選Set up code scanning

就可以看到以下畫面 套用官方給的CodeQL Workflow Template

點選Set up this workflow就可以用template了

若是要在自己的CI/CD workflow中加上CodeQL 的話可以參照以下的example

- name: Initialize CodeQL
uses: github/codeql-action/init@v1
with:
languages: python
# languages: go, javascript, csharp, python, cpp, java
- name: Build package
run: python -m main
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v1

build package的部分~如果是C/C++, C#, Java可以直接使用CodeQL的Autobuild作替代

以下用Java做為範例

- name: Initialize CodeQL
uses: github/codeql-action/init@v1
with:
languages: java
- name: Autobuild
uses: github/codeql-action/autobuild@v1
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v1

Job執行結果就會像這樣

也可以在Console中Security-> Code scanning alerts檢查程式碼中有沒有vulnerabilities 與 errors

CodeQL與Github相依性很高

是個很方便的Scan Code工具

但就Scan能力來說Fortify還是較為穩定強壯....XD

商業用途可能選擇後者較優

--

--