campoy/go-tooling-workshop
A workshop covering all the tools gophers use in their day to day life
- Repository: https://github.com/campoy/go-tooling-workshop
- Commit:
1c4da099e21150fe1152a27a363bbb5266bc64fd - Generated: 2026-11-13T23:26:07+00:00
- Scorer 0.1.0, scoring prov-4+qual-2+sec-2, report schema v2
Scores
| Pillar | Score | Signal | Confidence | Coverage |
|---|---|---|---|---|
| AI provenance (estimated AI-generated share) | 0 | none-detected | 59% | 100% |
| Code quality | 80 | adequate | 90% | 100% |
| Security | 56 | weak | 85% | 100% |
AI provenance
No AI attribution or AI-consistent velocity signals detected.
- Explicitly attributed share (lower bound): 0.0%
- Unattributed share in AI-consistent velocity bursts: 0.0%
- Estimated AI-generated share: 0.0%
| Month | Lines added | Attributed to AI |
|---|---|---|
| 2017-06 | 402 | 0% |
| 2017-07 | 157 | 0% |
| 2017-08 | 2 | 0% |
| 2017-10 | 22 | 0% |
| 2018-05 | 32 | 0% |
| 2018-06 | 14 | 0% |
| 2018-08 | 1 | 0% |
AI provenance describes how code was produced; it is not a quality judgment. Unless attribution is explicit, these are signals consistent with AI generation, not proof. Squash/rebase workflows, imported code, and rewritten history reduce accuracy.
Code quality
Code quality is adequate: test-to-source ratio 0.48, CI runs tests; 0% of function code in complex or long functions; 54% duplicated lines. Weakest area: duplication.
| Area | Score |
|---|---|
| Complexity (lizard) | 100 |
| Duplication | 4 |
| Code smells (Opengrep) | 100 |
| Tests and CI | 96 |
| Documentation | 80 |
| Type safety | n/a |
| Process (Scorecard review/maintenance) | n/a |
- Functions: 28; mean complexity 1.4, 90th percentile 2; 0 complex and 0 long functions
- Duplicated lines: 54.4% of 281 compared
- Tests: 223 test lines for 466 source lines (ratio 0.48); CI test commands: go test; 18% of recent source commits also change tests
- Docs missing or thin: changelog
Security
Security posture is weak: no high-impact findings. Weakest area: posture.
| Area | Score |
|---|---|
| Secrets (gitleaks, tree + history) | 100 |
| Static analysis (Opengrep) | 29 |
| Vulnerable dependencies (OSV) | n/a |
| CI workflows (zizmor) | n/a |
| Posture (policy, updates, signing, lockfiles) | 0 |
| OpenSSF Scorecard | n/a |
- Posture checks passed: lockfiles; missing: security policy, dependency updates, signed commits
Top findings
| Severity | Finding | Location |
|---|---|---|
| medium | opengrep/go.lang.security.audit.net.use-tls: Found an HTTP server without TLS. Use 'http.ListenAndServeTLS' instead. See https://golang.org/pkg/net/http/#ListenAndServeTLS for more information. [confidence medium] |
1-source-code/2-writing/errcheck/main.go:24 |
| medium | opengrep/go.lang.security.audit.net.fs-directory-listing: Detected usage of 'http.FileServer' as handler: this allows directory listing and an attacker could navigate through directories looking for sensitive files. Be sure to disable directory listing or restrict access to specific directories/files. [confidence medium] |
2-building-artifacts/web-server/main.go:27 |
| medium | opengrep/go.lang.security.audit.net.use-tls: Found an HTTP server without TLS. Use 'http.ListenAndServeTLS' instead. See https://golang.org/pkg/net/http/#ListenAndServeTLS for more information. [confidence medium] |
2-building-artifacts/web-server/main.go:29 |
| medium | opengrep/go.lang.security.audit.net.use-tls: Found an HTTP server without TLS. Use 'http.ListenAndServeTLS' instead. See https://golang.org/pkg/net/http/#ListenAndServeTLS for more information. [confidence medium] |
3-dynamic-analysis/3-profiling/webserver/main.go:27 |
| medium | opengrep/go.lang.security.audit.xss.no-fprintf-to-responsewriter: Detected 'Fprintf' or similar writing to 'http.ResponseWriter'. This bypasses HTML escaping that prevents cross-site scripting vulnerabilities. Instead, use the 'html/template' package to render data to users. [confidence low] |
3-dynamic-analysis/3-profiling/webserver/main.go:35 |
| medium | opengrep/go.lang.security.audit.net.use-tls: Found an HTTP server without TLS. Use 'http.ListenAndServeTLS' instead. See https://golang.org/pkg/net/http/#ListenAndServeTLS for more information. [confidence medium] |
3-dynamic-analysis/webserver/main.go:26 |
| medium | opengrep/go.lang.security.audit.xss.no-fprintf-to-responsewriter: Detected 'Fprintf' or similar writing to 'http.ResponseWriter'. This bypasses HTML escaping that prevents cross-site scripting vulnerabilities. Instead, use the 'html/template' package to render data to users. [confidence low] |
3-dynamic-analysis/webserver/main.go:36 |
Static signals only: the scorer never runs the project's code. Secret findings are pattern matches that were not verified, and secret values are never stored.
Repository profile
- Source lines: 466; test lines: 223
| Language | Lines |
|---|---|
| Go | 681 |
| Shell | 8 |