Skip to content

Commit 269709f

Browse files
author
Offensive360
committed
Offensive360 SAST plugin.
0 parents  commit 269709f

34 files changed

Lines changed: 15742 additions & 0 deletions

.DS_Store

8 KB
Binary file not shown.

.eslintrc.json

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
{
2+
"root": true,
3+
"parser": "@typescript-eslint/parser",
4+
"parserOptions": {
5+
"ecmaVersion": 6,
6+
"sourceType": "module"
7+
},
8+
"plugins": [
9+
"@typescript-eslint"
10+
],
11+
"rules": {
12+
"@typescript-eslint/naming-convention": "warn",
13+
"@typescript-eslint/semi": "warn",
14+
"curly": "warn",
15+
"eqeqeq": "warn",
16+
"no-throw-literal": "warn",
17+
"semi": "off"
18+
},
19+
"ignorePatterns": [
20+
"out",
21+
"dist",
22+
"**/*.d.ts"
23+
]
24+
}

.github/workflows/publish.yml

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
name: Publish VS Code Extension
2+
3+
on:
4+
push:
5+
branches: [ master, main ]
6+
workflow_dispatch:
7+
8+
jobs:
9+
publish:
10+
runs-on: ubuntu-latest
11+
12+
steps:
13+
- uses: actions/checkout@v4
14+
15+
- name: Setup Node.js
16+
uses: actions/setup-node@v4
17+
with:
18+
node-version: "20"
19+
20+
- name: Install dependencies
21+
run: npm install
22+
23+
- name: Package extension
24+
run: npx @vscode/vsce package --no-dependencies
25+
26+
- name: Upload VSIX artifact
27+
uses: actions/upload-artifact@v4
28+
with:
29+
name: o360-sast-vscode
30+
path: "*.vsix"
31+
if-no-files-found: error
32+
retention-days: 30
33+
34+
- name: Publish to VS Code Marketplace
35+
env:
36+
MARKETPLACE_PAT: ${{ secrets.MARKETPLACE_PAT }}
37+
run: npx @vscode/vsce publish --no-dependencies -p "$MARKETPLACE_PAT"

.gitignore

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
out
2+
dist
3+
node_modules
4+
.vscode-test/
5+
*.vsix
6+
/.vs

.vscode/extensions.json

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
// See http://go.microsoft.com/fwlink/?LinkId=827846
3+
// for the documentation about the extensions.json format
4+
"recommendations": [
5+
"dbaeumer.vscode-eslint"
6+
]
7+
}

.vscode/launch.json

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
// A launch configuration that compiles the extension and then opens it inside a new window
2+
// Use IntelliSense to learn about possible attributes.
3+
// Hover to view descriptions of existing attributes.
4+
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
5+
{
6+
"version": "0.2.0",
7+
"configurations": [
8+
{
9+
"name": "Run Extension",
10+
"type": "extensionHost",
11+
"request": "launch",
12+
"args": [
13+
"--extensionDevelopmentPath=${workspaceFolder}"
14+
],
15+
"outFiles": [
16+
"${workspaceFolder}/out/**/*.js"
17+
],
18+
"preLaunchTask": "${defaultBuildTask}"
19+
},
20+
{
21+
"name": "Extension Tests",
22+
"type": "extensionHost",
23+
"request": "launch",
24+
"args": [
25+
"--extensionDevelopmentPath=${workspaceFolder}",
26+
"--extensionTestsPath=${workspaceFolder}/out/test/suite/index"
27+
],
28+
"outFiles": [
29+
"${workspaceFolder}/out/test/**/*.js"
30+
],
31+
"preLaunchTask": "${defaultBuildTask}"
32+
}
33+
]
34+
}

.vscode/settings.json

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
// Place your settings in this file to overwrite default and user settings.
2+
{
3+
"files.exclude": {
4+
"out": false // set this to true to hide the "out" folder with the compiled JS files
5+
},
6+
"search.exclude": {
7+
"out": true // set this to false to include "out" folder in search results
8+
},
9+
// Turn off tsc task auto detection since we have the necessary tasks as npm scripts
10+
"typescript.tsc.autoDetect": "off"
11+
}

.vscode/tasks.json

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
// See https://go.microsoft.com/fwlink/?LinkId=733558
2+
// for the documentation about the tasks.json format
3+
{
4+
"version": "2.0.0",
5+
"tasks": [
6+
{
7+
"type": "npm",
8+
"script": "watch",
9+
"problemMatcher": "$tsc-watch",
10+
"isBackground": true,
11+
"presentation": {
12+
"reveal": "never"
13+
},
14+
"group": {
15+
"kind": "build",
16+
"isDefault": true
17+
}
18+
}
19+
]
20+
}

.vscodeignore

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
.vscode/**
2+
.vscode-test/**
3+
src/**
4+
.gitignore
5+
.eslintrc.json
6+
tsconfig.json
7+
vsc-extension-quickstart.md
8+
**/node_modules/**
9+
**/.DS_Store
10+
*.ts
11+
!out/**

CHANGELOG.md

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
# Change Log
2+
3+
All notable changes to the O360 SAST extension will be documented in this file.
4+
5+
## [1.0.0] - 2026-03-10
6+
7+
### Added
8+
- Dedicated sidebar panel with vulnerability tree view (grouped by severity, file, and finding)
9+
- Six code actions: Fix Recommendation, Explain Vulnerability, View References, Suppress, Mark as False Positive, Clear All
10+
- Rich WebView detail panel with tabbed UI (Vulnerability Details, How to Fix, References)
11+
- Hover provider showing inline vulnerability summary with action links
12+
- File-level scanning via right-click context menu
13+
- Auto-scan on save (configurable in settings)
14+
- Dependency scanning (SCA) toggle
15+
- License compliance scanning toggle
16+
- Malware detection scanning toggle
17+
- Native VS Code progress notifications with cancellation support
18+
- Status bar indicator showing scan status and finding count
19+
- Output channel for scan logging and debugging
20+
- False positive tracking with reason tags in `.SASTO360/sastIgnore`
21+
22+
### Changed
23+
- Rebranded from "Offensive 360" to "O360 SAST"
24+
- Updated settings namespace from `offensive.*` to `o360.*`
25+
- Upgraded to TypeScript 5, axios 1.6, VS Code engine 1.75+
26+
- Improved progress UX using VS Code native progress API
27+
- Better error messages with quick-link to settings
28+
29+
### Fixed
30+
- Numeric enum mapping from API (riskLevel and status returned as numbers)
31+
- HTML entity decoding in vulnerability descriptions
32+
- Escape sequence handling (`\r\n`) in API response text fields
33+
- Deprecated `new Buffer()` constructor usage
34+
35+
## [0.2.0] - 2023-12-18
36+
37+
- Initial marketplace release
38+
- Basic folder and workspace scanning
39+
- Simple diagnostic display
40+
- Get Help, Suppress, Clear All Errors code actions

0 commit comments

Comments
 (0)