Documentation ¶
Index ¶
- Constants
- Variables
- func CheckLinter(image string)
- func ConfigureProject(projectDir string) []string
- func Contains(s []string, str string) bool
- func DisableColor()
- func DockerCleanup()
- func EmptyMessage()
- func EnsureDockerRunning()
- func ErrorMessage(message string, a ...interface{})
- func GetLinter(path string) string
- func GetLinterSystemDir(project string, linter string) string
- func IsInteractive() bool
- func OpenDir(path string) error
- func PrepareFolders(opts *QodanaOptions)
- func Primary(text string, a ...interface{}) string
- func PrimaryBold(text string, a ...interface{}) string
- func PrintProcess(f func(), start string, finished string)
- func ReadSarif(resultsDir string, printProblems bool)
- func RunLinter(ctx context.Context, options *QodanaOptions) int
- func ShowReport(path string, port int)
- func SuccessMessage(message string, a ...interface{})
- func WarningMessage(message string, a ...interface{})
- func WriteQodanaYaml(path string, linters []string)
- type Exclude
- type Include
- type Profile
- type QodanaOptions
- type QodanaYaml
Constants ¶
const ( QodanaSuccessExitCode = 0 QodanaFailThresholdExitCode = 255 OfficialDockerPrefix = "jetbrains/qodana" )
Variables ¶
var ( Version = "dev" DoNotTrack = false Interrupted = false )
var ( SpinnerSequence = []string{"| ", "/ ", "- ", "\\ "} QodanaSpinner = pterm.DefaultSpinner PrimaryStyle = pterm.NewStyle() // PrimaryStyle is primary text style. PrimaryBoldStyle = pterm.NewStyle(pterm.Bold) // PrimaryBoldStyle is primary bold text style. ErrorStyle = pterm.NewStyle(pterm.FgRed) // ErrorStyle is an error style. WarningStyle = pterm.NewStyle(pterm.FgYellow) // WarningStyle is a warning style. MiscStyle = pterm.NewStyle(pterm.FgGray) // MiscStyle is a log style. )
styles and different declarations intended to be used only inside this file
var Info = fmt.Sprintf(` %s (v%s) https://jetbrains.com/qodana Documentation – https://jb.gg/qodana-docs Contact us at qodana-support@jetbrains.com Bug Tracker: https://jb.gg/qodana-issue Discussions: https://jb.gg/qodana-forum `, "Qodana CLI", Version)
Info Two newlines at the start are important to lay the output nicely in CLI.
var (
UnofficialLinter = false
)
Functions ¶
func CheckLinter ¶
func CheckLinter(image string)
CheckLinter validates the image used for the scan.
func ConfigureProject ¶
ConfigureProject sets up the project directory for Qodana CLI to run Looks up .idea directory to determine used modules If a project doesn't have .idea, then runs language detector
func EmptyMessage ¶ added in v0.6.2
func EmptyMessage()
EmptyMessage is a message that is used when there is no message to show.
func EnsureDockerRunning ¶
func EnsureDockerRunning()
EnsureDockerRunning checks if docker daemon is running.
func ErrorMessage ¶
func ErrorMessage(message string, a ...interface{})
ErrorMessage prints an error message with the icon.
func GetLinterSystemDir ¶ added in v0.6.0
GetLinterSystemDir returns path to <userCacheDir>/JetBrains/<linter>/<project-hash>/
func IsInteractive ¶
func IsInteractive() bool
IsInteractive returns true if the current execution environment is interactive (useful for colors/animations toggle).
func PrepareFolders ¶
func PrepareFolders(opts *QodanaOptions)
PrepareFolders cleans up report folder, creates the necessary folders for the analysis
func PrimaryBold ¶
func PrintProcess ¶
PrintProcess prints the message for processing phase. TODO: Add ETA based on previous runs
func RunLinter ¶
func RunLinter(ctx context.Context, options *QodanaOptions) int
RunLinter runs the linter with the given options.
func SuccessMessage ¶
func SuccessMessage(message string, a ...interface{})
SuccessMessage prints a success message with the icon.
func WarningMessage ¶
func WarningMessage(message string, a ...interface{})
WarningMessage prints a warning message with the icon.
func WriteQodanaYaml ¶
WriteQodanaYaml writes the qodana.yaml file to the given path.
Types ¶
type Exclude ¶
type Exclude struct { // The name of check to exclude. Name string `yaml:"name"` // Relative to the project root path to disable analysis. Paths []string `yaml:"paths,omitempty"` }
Exclude A check id to disable.
type Include ¶
type Include struct { // The name of check to exclude. Name string `yaml:"name"` }
Include A check id to enable.
type QodanaOptions ¶
type QodanaOptions struct { ResultsDir string CacheDir string ProjectDir string Linter string SourceDirectory string DisableSanity bool ProfileName string ProfilePath string RunPromo bool StubProfile string Baseline string BaselineIncludeAbsent bool SaveReport bool ShowReport bool Port int Property string Script string FailThreshold string Changes bool SendReport bool Token string AnalysisId string EnvVariables []string UnveilProblems bool }
type QodanaYaml ¶
type QodanaYaml struct { // The qodana.yaml version of this log file. Version string `yaml:"version,omitempty"` // Linter to run. Linter string `yaml:"linter"` // Profile is the profile configuration for Qodana analysis. Profile Profile `yaml:"profile,omitempty"` // FailThreshold is a number of problems to fail the analysis (to exit from Qodana with code 255). FailThreshold int `yaml:"failThreshold,omitempty"` // Exclude property to disable the wanted checks on the wanted paths. Exclude []Exclude `yaml:"exclude,omitempty"` // Include property to enable the wanted checks. Include []Include `yaml:"include,omitempty"` // Properties property to override IDE properties Properties map[string]string `yaml:"properties,omitempty"` // Plugins property containing plugins to install Plugins []string `yaml:"plugins,omitempty"` }
QodanaYaml A standard qodana.yaml (or qodana.yml) format for Qodana configuration. https://github.com/JetBrains/qodana-profiles/blob/master/schemas/qodana-yaml-1.0.json
func GetQodanaYaml ¶
func GetQodanaYaml(project string) *QodanaYaml
GetQodanaYaml gets Qodana YAML from the project.