Bug Description
When scanning konflux-ci/may, AgentReady reports "No type-check gate found in CI" despite the repository having full type-checking via golangci-lint and go vet. The issue is that these tools are invoked through Makefile targets rather than appearing directly in the CI workflow YAML files.
The CI workflows use make lint and make test, and the Makefile defines:
lint: golangci-lint — runs golangci-lint (which includes type checking)
test: depends on vet — runs go vet ./...
The assessor scans only CI YAML file contents for type-check patterns (golangci-lint, go vet, go build, etc.) but does not follow make targets into Makefiles. This is a different root cause than #473, which was about missing Go-specific patterns — here the patterns exist but are behind Makefile indirection.
Related: #473 (fixed Go pattern recognition in CI YAML), #471 (Makefile target resolution for test commands)
To Reproduce
- Clone konflux-ci/may
- Run AgentReady scan
- Review CI Quality Gates results
Expected Behavior
Type-check gate is detected, since golangci-lint and go vet run on every PR through the make lint and make test targets.
Actual Behavior
Report shows "No type-check gate found in CI" — lint and test gates are correctly detected, but the type-check gate is missed because the assessor cannot see through make target indirection.
CI Quality Gates 80/100
- Lint gate detected in CI
- Test gate detected in CI
- No type-check gate found in CI
Environment
- OS: Fedora 43 (64 bit)
- Version: latest
- Python Version: 3.13
Possible Solution
Options to consider:
- Scan Makefiles when
make <target> is found in CI YAML — resolve the target and check its recipe for type-check patterns
- Heuristic: recognize
make lint in Go projects as implying type-checking — since golangci-lint (the standard Go lint tool) includes type-check analysis by default
- Add
make docker-build as a type-check pattern for compiled languages — compilation implies type checking
Bug Description
When scanning konflux-ci/may, AgentReady reports "No type-check gate found in CI" despite the repository having full type-checking via
golangci-lintandgo vet. The issue is that these tools are invoked through Makefile targets rather than appearing directly in the CI workflow YAML files.The CI workflows use
make lintandmake test, and the Makefile defines:lint: golangci-lint— runsgolangci-lint(which includes type checking)test:depends onvet— runsgo vet ./...The assessor scans only CI YAML file contents for type-check patterns (
golangci-lint,go vet,go build, etc.) but does not followmaketargets into Makefiles. This is a different root cause than #473, which was about missing Go-specific patterns — here the patterns exist but are behind Makefile indirection.Related: #473 (fixed Go pattern recognition in CI YAML), #471 (Makefile target resolution for test commands)
To Reproduce
Expected Behavior
Type-check gate is detected, since
golangci-lintandgo vetrun on every PR through themake lintandmake testtargets.Actual Behavior
Report shows "No type-check gate found in CI" — lint and test gates are correctly detected, but the type-check gate is missed because the assessor cannot see through
maketarget indirection.Environment
Possible Solution
Options to consider:
make <target>is found in CI YAML — resolve the target and check its recipe for type-check patternsmake lintin Go projects as implying type-checking — sincegolangci-lint(the standard Go lint tool) includes type-check analysis by defaultmake docker-buildas a type-check pattern for compiled languages — compilation implies type checking