/
githubmirror
/
gitleaks
ΠΠ±Π·ΠΎΡ
ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ
ΠΠΎΠΉΡΠΈ
/
githubmirror
/
gitleaks
ΠΠΎΠ΄
ΠΠ°Π΄Π°ΡΠΈ
ΠΠΈΠΊΠΈ
ΠΠ°ΠΊΠ΅ΡΡ
0
Π Π΅Π»ΠΈΠ·Ρ
0
ΠΠ½Π°Π»ΠΈΡΠΈΠΊΠ°
ΠΠ΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ
v8.23.0
cmd/git.go
97 ΡΡΡΠΎΠΊ
2 KB
Richard Gomez
refactor: central logger (#1692)
13 ΡΠ½Π² 2025, 17:09
ΠΠ΅ Π²Π΅ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½
13 ΡΠ½Π² 2025, 17:09
ab38a46
ΠΠΎΠ΄
ΠΠ²ΡΠΎΡΡΡΠ²ΠΎ
Π ΡΡΠΌ ΠΊΠΎΠ΄?
package cmd import ( "time" "github.com/spf13/cobra" "github.com/zricethezav/gitleaks/v8/logging" "github.com/zricethezav/gitleaks/v8/report" "github.com/zricethezav/gitleaks/v8/sources" ) func init() { rootCmd.AddCommand(gitCmd) gitCmd.Flags().Bool("staged", false, "scan staged commits (good for pre-commit)") gitCmd.Flags().Bool("pre-commit", false, "scan using git diff") gitCmd.Flags().String("log-opts", "", "git log options") } var gitCmd = &cobra.Command{ Use: "git [flags] [repo]", Short: "scan git repositories for secrets", Args: cobra.MaximumNArgs(1), Run: runGit, } func runGit(cmd *cobra.Command, args []string) { var ( findings []report.Finding err error ) // grab source source := "." if len(args) == 1 { source = args[0] if source == "" { source = "." } } initConfig(source) // setup config (aka, the thing that defines rules) cfg := Config(cmd) // start timer start := time.Now() // grab source detector := Detector(cmd, cfg, source) // set exit code exitCode, err := cmd.Flags().GetInt("exit-code") if err != nil { logging.Fatal().Err(err).Msg("could not get exit code") } var ( gitCmd *sources.GitCmd logOpts string preCommit bool staged bool ) logOpts, err = cmd.Flags().GetString("log-opts") if err != nil { logging.Fatal().Err(err).Msg("could not call GetString() for log-opts") } staged, err = cmd.Flags().GetBool("staged") if err != nil { logging.Fatal().Err(err).Msg("could not call GetBool() for staged") } preCommit, err = cmd.Flags().GetBool("pre-commit") if err != nil { logging.Fatal().Err(err).Msg("could not call GetBool() for pre-commit") } if preCommit || staged { gitCmd, err = sources.NewGitDiffCmd(source, staged) if err != nil { logging.Fatal().Err(err).Msg("could not create Git diff cmd") } } else { gitCmd, err = sources.NewGitLogCmd(source, logOpts) if err != nil { logging.Fatal().Err(err).Msg("could not create Git log cmd") } } findings, err = detector.DetectGit(gitCmd) if err != nil { // don't exit on error, just log it logging.Error().Err(err).Msg("failed to scan Git repository") } findingSummaryAndExit(detector, findings, exitCode, start, err) }