Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
dac2098
feat: introduce CreateIssue vcs plugin method, and create-issue cmd
japroc Aug 21, 2025
13cc07e
feat: add gihtub plugins methods to update and list issues
japroc Aug 22, 2025
10ff8b8
feat: introduce a cmd to create gh issues from sarif report
japroc Aug 22, 2025
2a60d2d
fix: better relative path handling on create-issue-from-sarif
japroc Sep 1, 2025
8a5f1cf
introduce body parser for later gh issue correlation
japroc Sep 2, 2025
a7a8afd
feat: introduce a Correlator struct to match known and new issues
japroc Sep 3, 2025
8a8483d
feat(create-issues-from-sarif): managed opening, correlation and clos…
japroc Sep 4, 2025
5c32c09
chore: remove github copilot instructions
japroc Sep 4, 2025
cf1076f
add git to dockerfile runtime stage
japroc Sep 5, 2025
9baa3e6
move git from .build-deps
japroc Sep 5, 2025
109c975
feat: crerate-issues-from-sarif takes fallback namepsace, repository …
japroc Sep 5, 2025
5d547d3
feat: add labels and assignees support
japroc Sep 16, 2025
f8a7a61
feat: add reference information to github issue
japroc Sep 17, 2025
3a309cc
feat: create an issue comment on issue closure
japroc Sep 18, 2025
2aa16d7
feat: update issue header
japroc Sep 22, 2025
fc6487e
misc: better markdown property parsing
japroc Sep 24, 2025
b0b0f08
feat: write display severity instead of raw sarif level value
japroc Sep 24, 2025
6e56599
chore: rename cmd
japroc Sep 25, 2025
1467fce
docs: add sarif-issues command reference documentation
japroc Sep 25, 2025
c426323
refactor: remove redundant code
japroc Sep 25, 2025
9921efd
refactor: remove duplicate API calls
japroc Sep 25, 2025
3107fa3
refactor: large processSARIFReport function decomposition
japroc Sep 25, 2025
b8c7787
refactor: split sarif-issues cmd to multi-file structure
japroc Sep 25, 2025
8d16328
refactor: remove redundant commands
japroc Sep 25, 2025
20d6532
tests: add sarif issues utils tets
japroc Oct 7, 2025
f1f8d12
fix: better metadata parsing to support more edge cases for sarif-iss…
japroc Oct 8, 2025
bb48bd3
fix: correctly handle relative paths from outside of repo
japroc Oct 8, 2025
0fe9607
docs: update usage examples for sarif-issues command to recommend run…
japroc Oct 8, 2025
df5443e
fix: initialize properties map before we write the derived level, pre…
japroc Oct 9, 2025
a8f75bd
feat: ad rule id toissue body metadata
japroc Oct 10, 2025
5815b6e
feat: write rule shoty desecription in issue header instead of rule id
japroc Oct 10, 2025
fb6d5d8
feat: take issue details from different fields
japroc Oct 10, 2025
0c82e4a
feat: enhance SARIF message formatting to include descriptions and hy…
japroc Oct 11, 2025
fc5c52b
feat: add git metadata fallback support for SARIF issues command and …
japroc Oct 11, 2025
4a6ba2a
feat: implement filtering of open issues by source folder scope for S…
japroc Oct 11, 2025
f86e606
feat: add code flow formatting to SARIF issue body and implement corr…
japroc Oct 11, 2025
f287f9e
refactor: replace local subfolder normalization with internal package…
japroc Oct 11, 2025
b2c7bd0
feat: implement BuildGitHubPermalink function for constructing GitHub…
japroc Oct 11, 2025
4981fde
refactor: migrate extractFileURIFromResult and extractRegionFromResul…
japroc Oct 12, 2025
f99bfdb
refactor: move computeSnippetHash function to issuecorrelation package
japroc Oct 12, 2025
f4bc926
refactor: consolidate displayRuleHeading logic into a single function…
japroc Oct 12, 2025
87c94a7
feat: add default source-folder handling for SARIF issues command
japroc Oct 12, 2025
1fa1eed
fix: update variable names from opts to options for consistency in is…
japroc Oct 12, 2025
a421b60
refactor: update closeUnmatchedIssues and processSARIFReport function…
japroc Oct 12, 2025
41c2a59
feat: add configurable severity levels for SARIF issues command and u…
japroc Oct 12, 2025
d312ef2
feat: implement dry-run mode for SARIF issues command
japroc Oct 12, 2025
e20b3ab
docs: update cmd-sarif-issues documentation to reflect changes in met…
japroc Oct 12, 2025
17dae77
Resolve merge conflict in cmd/root.go
japroc Oct 12, 2025
7500570
refactor: update sarifissues command to utilize a global logger and a…
japroc Oct 12, 2025
e38c459
refactor: enhance SARIF result level enrichment to support multiple r…
japroc Oct 12, 2025
f26af7b
chore: remove outdated SARIF issues path analysis documentation
japroc Oct 12, 2025
2a56acb
feat: add body filtering capability to list issues command on plugin …
japroc Oct 22, 2025
453c488
docs: simplify CreateIssue function documentation
japroc Nov 15, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 25 additions & 0 deletions .cursorrules
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Scan-io Cursor Rules

## Development workflow
- When implementing new features or making changes to the codebase, always check the `docs/engineering/` directory first for established patterns and guidelines:
- When in doubt about implementation details, always refer to the engineering documentation first, then examine similar existing implementations in the codebase.
- Try to reuse internal packages if relevant. Extend if required functionality does not exist.
- Don't use `data` folder in tests, it will not be available in other environment. But feel free to read content to make proper mocks.
- Try to use `make build-cli` or `make build-plugins` or `make build` instead of `go build ...`

## Commands
- Build cli with: `make build-cli`
- Build plugins with: `make build-plugins`
- Build everything with: `make build`
- Test with: `make test`
- Use `go fmt` for formatting

## Code style
- Use early returns when handling errors or special cases to reduce nesting and improve readability.

## Planning
- When generating a plan for new features, refactoring and so on, make an analysis of codebase, then write a plan in phases.
- The plan may contain one or more phases. Each phase contains tasks. Write inputs and deliverables for each phase, task or group of tasks.
- Ensure that new functionality has tasks related to having tests for that functionality.
- Default plan file is `PLAN.md` in the root.
- Add documentation and help message update when necessary.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -67,3 +67,5 @@ __debug_bin*
*.json
*report.html
*results.html

data/
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ RUN set -euxo pipefail && \
echo "Building dependencies for '$TARGETOS/$TARGETARCH'" && \
apk update && \
apk upgrade && \
apk add --no-cache bash python3 py3-pip openssh && \
apk add --no-cache bash python3 py3-pip openssh git && \
apk add --no-cache --virtual .build-deps \
jq \
libc6-compat \
Expand Down
5 changes: 4 additions & 1 deletion cmd/root.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,9 @@ import (

"github.com/scan-io-git/scan-io/cmd/analyse"
"github.com/scan-io-git/scan-io/cmd/fetch"
"github.com/scan-io-git/scan-io/cmd/integration-vcs"
integrationvcs "github.com/scan-io-git/scan-io/cmd/integration-vcs"
"github.com/scan-io-git/scan-io/cmd/list"
sarifissues "github.com/scan-io-git/scan-io/cmd/sarif-issues"
"github.com/scan-io-git/scan-io/cmd/upload"
"github.com/scan-io-git/scan-io/cmd/version"
"github.com/scan-io-git/scan-io/pkg/shared"
Expand Down Expand Up @@ -87,6 +88,7 @@ func initConfig() {
fetch.Init(AppConfig, Logger.Named("fetch"))
analyse.Init(AppConfig, Logger.Named("analyse"))
integrationvcs.Init(AppConfig, Logger.Named("integration-vcs"))
sarifissues.Init(AppConfig, Logger.Named("sarif-issues"))
version.Init(AppConfig, Logger.Named("version"))
tohtml.Init(AppConfig, Logger.Named("to-html"))
upload.Init(AppConfig, Logger.Named("upload"))
Expand All @@ -100,6 +102,7 @@ func init() {
rootCmd.AddCommand(fetch.FetchCmd)
rootCmd.AddCommand(analyse.AnalyseCmd)
rootCmd.AddCommand(integrationvcs.IntegrationVCSCmd)
rootCmd.AddCommand(sarifissues.SarifIssuesCmd)
rootCmd.AddCommand(version.NewVersionCmd())
rootCmd.AddCommand(tohtml.ToHtmlCmd)
rootCmd.AddCommand(upload.UploadCmd)
Expand Down
Loading