From 37d490ede34281741d8cc7066a66f5389bb3a867 Mon Sep 17 00:00:00 2001 From: x032205 Date: Thu, 3 Jul 2025 00:09:28 -0400 Subject: [PATCH 1/3] Add BitBucket platform to secret scanning --- cli/detect/cmd/scm/scm.go | 4 ++++ cli/detect/git.go | 2 ++ cli/detect/utils.go | 9 +++++++++ 3 files changed, 15 insertions(+) diff --git a/cli/detect/cmd/scm/scm.go b/cli/detect/cmd/scm/scm.go index 66868aadc..dddeffdf5 100644 --- a/cli/detect/cmd/scm/scm.go +++ b/cli/detect/cmd/scm/scm.go @@ -35,6 +35,7 @@ const ( GitHubPlatform GitLabPlatform AzureDevOpsPlatform + BitBucketPlatform // TODO: Add others. ) @@ -45,6 +46,7 @@ func (p Platform) String() string { "github", "gitlab", "azuredevops", + "bitbucket", }[p] } @@ -60,6 +62,8 @@ func PlatformFromString(s string) (Platform, error) { return GitLabPlatform, nil case "azuredevops": return AzureDevOpsPlatform, nil + case "bitbucket": + return BitBucketPlatform, nil default: return UnknownPlatform, fmt.Errorf("invalid scm platform value: %s", s) } diff --git a/cli/detect/git.go b/cli/detect/git.go index ddde0757d..83ed8a853 100644 --- a/cli/detect/git.go +++ b/cli/detect/git.go @@ -208,6 +208,8 @@ func platformFromHost(u *url.URL) scm.Platform { return scm.GitLabPlatform case "dev.azure.com", "visualstudio.com": return scm.AzureDevOpsPlatform + case "bitbucket.org": + return scm.BitBucketPlatform default: return scm.UnknownPlatform } diff --git a/cli/detect/utils.go b/cli/detect/utils.go index 255d01fbe..0ab755319 100644 --- a/cli/detect/utils.go +++ b/cli/detect/utils.go @@ -112,6 +112,15 @@ func createScmLink(scmPlatform scm.Platform, remoteUrl string, finding report.Fi // This is a bit dirty, but Azure DevOps does not highlight the line when the lineStartColumn and lineEndColumn are not provided link += "&lineStartColumn=1&lineEndColumn=10000000&type=2&lineStyle=plain&_a=files" return link + case scm.BitBucketPlatform: + link := fmt.Sprintf("%s/src/%s/%s", remoteUrl, finding.Commit, filePath) + if finding.StartLine != 0 { + link += fmt.Sprintf("#lines-%d", finding.StartLine) + if finding.EndLine != finding.StartLine { + link += fmt.Sprintf(":%d", finding.EndLine) + } + } + return link default: // This should never happen. return "" From 23b20ebdab0da830404e91e02305dfe6698336c4 Mon Sep 17 00:00:00 2001 From: x032205 Date: Thu, 3 Jul 2025 00:49:31 -0400 Subject: [PATCH 2/3] Fix CLI always defaulting to github --- cli/packages/cmd/scan.go | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/cli/packages/cmd/scan.go b/cli/packages/cmd/scan.go index 42ff0f1e1..4a721d2c5 100644 --- a/cli/packages/cmd/scan.go +++ b/cli/packages/cmd/scan.go @@ -337,9 +337,7 @@ var scanCmd = &cobra.Command{ if gitCmd, err = sources.NewGitLogCmd(source, logOpts); err != nil { logging.Fatal().Err(err).Msg("could not create Git cmd") } - if scmPlatform, err = scm.PlatformFromString("github"); err != nil { - logging.Fatal().Err(err).Send() - } + scmPlatform = scm.UnknownPlatform remote = detect.NewRemoteInfo(scmPlatform, source) if findings, err = detector.DetectGit(gitCmd, remote); err != nil { From 42648a134c07a5a9987e20b2aa12c4fc2612a38a Mon Sep 17 00:00:00 2001 From: x032205 Date: Thu, 3 Jul 2025 12:47:25 -0400 Subject: [PATCH 3/3] Update utils.go to look more like Gitleaks version --- cli/detect/utils.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cli/detect/utils.go b/cli/detect/utils.go index 0ab755319..84b1017fc 100644 --- a/cli/detect/utils.go +++ b/cli/detect/utils.go @@ -116,9 +116,9 @@ func createScmLink(scmPlatform scm.Platform, remoteUrl string, finding report.Fi link := fmt.Sprintf("%s/src/%s/%s", remoteUrl, finding.Commit, filePath) if finding.StartLine != 0 { link += fmt.Sprintf("#lines-%d", finding.StartLine) - if finding.EndLine != finding.StartLine { - link += fmt.Sprintf(":%d", finding.EndLine) - } + } + if finding.EndLine != finding.StartLine { + link += fmt.Sprintf(":%d", finding.EndLine) } return link default: