internal

package
v0.0.0-...-75e9695 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 14, 2024 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var EmptyRepoRules = []labels.Rule{
	func(c codebase.Codebase, ls labels.LabelSet) (label labels.Label, err error) {
		label.Key = labels.EmptyRepo
		_, err = c.FindFileMatching(func(path string) bool {
			if path == "." || strings.TrimSpace(strings.ToLower(path)) == "readme.md" {
				return false
			}

			return true
		}, "*")

		if errors.Is(err, codebase.NotFoundError) {
			label.Valid = true
			return label, nil
		}
		return label, err
	},
}
View Source
var GithubActionRules = []labels.Rule{
	func(c codebase.Codebase, ls labels.LabelSet) (label labels.Label, err error) {
		label.Key = labels.CICDGithubActions
		configPath, err := c.FindFile(".github/workflows/*.yml", ".github/workflows/*.yaml")
		label.Valid = configPath != ""
		label.BasePath = path.Dir(configPath)
		return label, err
	},
}
View Source
var GitlabWorkflowRules = []labels.Rule{
	func(c codebase.Codebase, ls labels.LabelSet) (label labels.Label, err error) {
		label.Key = labels.CICDGitlabWorkflow
		configPath, err := c.FindFile(".gitlab-ci.yml")
		label.Valid = configPath != ""
		label.BasePath = path.Dir(configPath)
		return label, err
	},
}
View Source
var GoRules = []labels.Rule{
	func(c codebase.Codebase, ls labels.LabelSet) (label labels.Label, err error) {
		label.Key = labels.DepsGo
		goModPath, err := c.FindFile("go.mod")
		label.Valid = goModPath != ""
		label.BasePath = path.Dir(goModPath)
		lockFilePath, _ := c.FindFile("go.sum")
		label.LabelData.HasLockFile = lockFilePath != ""
		return label, err
	},
	func(c codebase.Codebase, ls labels.LabelSet) (label labels.Label, err error) {
		label.Key = labels.ArtifactGoExecutable
		if !ls[labels.DepsGo].Valid {
			return label, err
		}

		label.Valid = containsMainGoFiles(c)
		return label, err
	},
}
View Source
var JavaRules = []labels.Rule{
	func(c codebase.Codebase, ls labels.LabelSet) (label labels.Label, err error) {
		label.Key = labels.DepsJava
		pomXml, err := c.FindFile("pom.xml", "gradlew")
		label.Valid = pomXml != ""
		label.BasePath = path.Dir(pomXml)
		return label, err
	},
	func(c codebase.Codebase, ls labels.LabelSet) (label labels.Label, err error) {
		label.Key = labels.ToolGradle
		gradlew, err := c.FindFile("gradlew")
		label.Valid = gradlew != "" && path.Dir(gradlew) == ls[labels.DepsJava].BasePath
		return label, err
	},
}
View Source
var JenkinsRules = []labels.Rule{
	func(c codebase.Codebase, ls labels.LabelSet) (label labels.Label, err error) {
		label.Key = labels.CICDJenkins
		configPath, err := c.FindFile("Jenkinsfile")
		label.Valid = configPath != ""
		label.BasePath = path.Dir(configPath)
		return label, err
	},
}
View Source
var NodeRules = []labels.Rule{
	func(c codebase.Codebase, ls labels.LabelSet) (label labels.Label, err error) {
		label.Key = labels.DepsNode
		packagePath := findPackageJSON(c)
		label.Valid = packagePath != ""
		if !label.Valid {
			return label, err
		}
		err = readPackageJSON(c, packagePath, &label)

		lockFilesPath, _ := c.FindFile(lockFiles...)
		label.LabelData.HasLockFile = lockFilesPath != ""

		return label, err
	},
	func(c codebase.Codebase, ls labels.LabelSet) (label labels.Label, err error) {
		label.Key = labels.PackageManagerYarn
		yarnLock, _ := c.FindFile("yarn.lock")

		if yarnLock == "" {
			return label, err
		}

		label.Valid = true
		label.Version = "classic"

		yarnrc, _ := c.FindFile(".yarnrc.yml", ".yarnrc.yaml")
		if yarnrc != "" {
			label.Version = "berry"
		}

		return label, err
	},
	func(c codebase.Codebase, ls labels.LabelSet) (label labels.Label, err error) {
		label.Key = labels.TestJest
		label.Valid = hasDependency(ls, "jest")
		return label, err
	},
}
View Source
var PhpRules = []labels.Rule{
	func(c codebase.Codebase, ls labels.LabelSet) (label labels.Label, err error) {
		label.Key = labels.DepsPhp
		label.Dependencies = make(map[string]string)

		composerPath, err := c.FindFile("composer.json")
		if err != nil && !errors.Is(err, codebase.NotFoundError) {
			return label, err

		}
		if composerPath != "" {
			label.Valid = true
			label.BasePath = path.Dir(composerPath)
		}

		err = readComposerFile(c, composerPath, &label)
		return label, err
	},
}
View Source
var PythonRules = []labels.Rule{
	func(c codebase.Codebase, ls labels.LabelSet) (labels.Label, error) {
		label := labels.Label{
			Key: labels.DepsPython,
		}
		filePath, _ := c.FindFile(possiblePythonFiles...)
		label.Valid = filePath != ""
		label.BasePath = path.Dir(filePath)

		pythonVersion := getPythonVersion(c)
		if pythonVersion != "" {
			label.Dependencies = map[string]string{
				"python": pythonVersion,
			}
		}

		return label, nil
	},
	func(c codebase.Codebase, ls labels.LabelSet) (labels.Label, error) {
		label := labels.Label{
			Key: labels.PackageManagerPipenv,
		}
		pipfile, _ := c.FindFile(pipenvFiles...)
		label.Valid = pipfile != ""
		label.BasePath = path.Dir(pipfile)

		pyprojectPath, _ := c.FindFile("pyproject.toml")
		if pyprojectPath != "" && fileContainsString(c, pyprojectPath, "pipenv") {
			label.Valid = true
			label.BasePath = path.Dir(pyprojectPath)
		}

		return label, nil
	},
	func(c codebase.Codebase, ls labels.LabelSet) (labels.Label, error) {
		label := labels.Label{
			Key: labels.PackageManagerPoetry,
		}
		poetryLock, _ := c.FindFile(poetryFiles...)
		label.Valid = poetryLock != ""
		label.BasePath = path.Dir(poetryLock)

		pyprojectPath, _ := c.FindFile("pyproject.toml")
		if pyprojectPath != "" && fileContainsString(c, pyprojectPath, "poetry") {
			label.Valid = true
			label.BasePath = path.Dir(pyprojectPath)
		}

		return label, nil
	},
	func(c codebase.Codebase, ls labels.LabelSet) (labels.Label, error) {
		label := labels.Label{
			Key: labels.FileManagePy,
		}
		managePyPath, _ := c.FindFile("manage.py")
		label.Valid = managePyPath != ""
		label.BasePath = path.Dir(managePyPath)
		return label, nil
	},
	func(c codebase.Codebase, ls labels.LabelSet) (labels.Label, error) {
		label := labels.Label{
			Key: labels.FileSetupPy,
		}
		setupPath, _ := c.FindFile("setup.py")
		label.Valid = setupPath != ""
		label.BasePath = path.Dir(setupPath)
		return label, nil
	},
	func(c codebase.Codebase, ls labels.LabelSet) (labels.Label, error) {
		label := labels.Label{Key: labels.TestTox}
		toxPath, _ := c.FindFile("tox.ini")
		label.Valid = toxPath != ""
		label.BasePath = path.Dir(toxPath)
		return label, nil
	},
}
View Source
var RubyRules = []labels.Rule{
	func(c codebase.Codebase, ls labels.LabelSet) (label labels.Label, err error) {
		label.Key = labels.DepsRuby
		label.Dependencies = make(map[string]string)

		gemfilePath, err := c.FindFile("Gemfile")
		if err != nil && !errors.Is(err, codebase.NotFoundError) {
			return label, err
		}
		if gemfilePath != "" {
			label.Valid = true
			label.BasePath = path.Dir(gemfilePath)
			err = readDepsFile(c, label.Dependencies, gemfilePath)
			if err != nil {
				return label, err
			}
			label.HasLockFile = hasPath(c, path.Join(path.Dir(gemfilePath), "Gemfile.lock"))
		}
		return label, nil
	},
	func(c codebase.Codebase, ls labels.LabelSet) (label labels.Label, err error) {
		label.Key = labels.PackageManagerGemspec
		label.Dependencies = make(map[string]string)

		gemspecPath, err := c.FindFile("*.gemspec")
		if err != nil && !errors.Is(err, codebase.NotFoundError) {
			return label, err
		}

		if gemspecPath != "" {
			label.Valid = true
			label.BasePath = path.Dir(gemspecPath)
			err = readDepsFile(c, label.Dependencies, gemspecPath)
			if err != nil {
				return label, err
			}
		}
		return label, nil
	},
}
View Source
var RustRules = []labels.Rule{
	func(c codebase.Codebase, ls labels.LabelSet) (label labels.Label, err error) {
		label.Key = labels.DepsRust
		cargoTomlFile, err := c.FindFile("Cargo.toml", "cargo.toml")
		label.Valid = cargoTomlFile != ""
		label.BasePath = path.Dir(cargoTomlFile)
		return label, err
	},
}

Functions

This section is empty.

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL