Skip to content

Commit

Permalink
Add basic outline for security issues tool & action
Browse files Browse the repository at this point in the history
  • Loading branch information
Nicoretti committed Oct 23, 2023
1 parent 735b9ff commit c763552
Show file tree
Hide file tree
Showing 3 changed files with 102 additions and 0 deletions.
62 changes: 62 additions & 0 deletions .github/actions/security-issues/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
name: 'SIA'
description: 'The Security Issues Action creates github issues for open security issues in the repository'

# TODOs & Ideas
# * Change format to official CVE schema
# * Change action to support all kinds of formats
# * Add custom/additional details on ticket creation (e.g. dependency tree)

inputs:

scan-command:
description: 'Command which creates a security report for the repository'
required: true
default: "mvn org.sonatype.ossindex.maven:ossindex-maven-plugin:audit org.sonatype.ossindex.maven:ossindex-maven-plugin:audit-aggregate -Dossindex.reportFile=security-issues.json"

scan-output:
description: 'Output file generated by the scan-command'
required: true
default: "security-issues.json"

input-converter:
description: 'Converter to apply on the scan-output before processing'
required: false
# passthrough in case of None
default: maven

runs:

using: "composite"
steps:

- name: Setup Python (${{ inputs.python-version}})
uses: actions/setup-python@v4
with:
python-version: ${{ inputs.python-version }}

# Pin this to specifically released verison
- name: Install Python Toolbox / Security tool
run: |
pip install 'git+https://github.com/exasol/python-toolbox.git@security-issues-action'
- name: Install Python Toolbox / Security Issues tool
run: |
scan-command > $scan-output
- name: Run scan-command
run: |
scan-command > $scan-output
- name: Run input-converter
run: |
security-issues convert maven < $scan-output > issues.json
- name: Filter Existing Issues (Open & Closed)
run: |
security-issues filter github < scan.json > issues.json
# This could be added in the future
# tbx security-issues filter exclusions < issues.json > filtered-pt2.json

- name: Create Issues for
run: |
security-issues create github < issues.json
39 changes: 39 additions & 0 deletions exasol/toolbox/tools/security_issues.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
import difflib
import io
from contextlib import ExitStack
from pathlib import Path
from typing import (
Any,
Mapping,
Union,
)

import importlib_resources as resources
import typer
from rich.columns import Columns
from rich.console import Console
from rich.syntax import Syntax

stdout = Console()
stderr = Console(stderr=True)

CLI = typer.Typer()


@CLI.command(name="convert")
def convert() -> None:
pass


@CLI.command(name="filter")
def filter() -> None:
pass


@CLI.command(name="create")
def create() -> None:
pass


if __name__ == "__main__":
CLI()
1 change: 1 addition & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -102,3 +102,4 @@ ignore_errors = true

[tool.poetry.scripts]
tbx = 'exasol.toolbox.tools.tbx:CLI'
security-issues = 'exasol.toolbox.tools.security_issues:CLI'

0 comments on commit c763552

Please sign in to comment.