feat(14-01): add 5 CI/CD log sources (GitHubActions, TravisCI, CircleCI, Jenkins, GitLabCI)
- GitHubActionsSource: searches GitHub code search for workflow files with provider keywords (token-gated) - TravisCISource: queries Travis CI v3 API for public build logs (credentialless) - CircleCISource: queries CircleCI v2 pipeline API for build pipelines (token-gated) - JenkinsSource: queries open Jenkins /api/json for job build consoles (credentialless) - GitLabCISource: queries GitLab projects API for CI-enabled projects (token-gated) - RegisterAll extended to 45 sources (40 Phase 10-13 + 5 Phase 14) - Integration test updated with fixtures for all 5 new sources - cmd/recon.go wires CIRCLECI_TOKEN env var
This commit is contained in:
@@ -49,6 +49,9 @@ type SourcesConfig struct {
|
||||
NetlasAPIKey string
|
||||
BinaryEdgeAPIKey string
|
||||
|
||||
// Phase 14: CI/CD source tokens.
|
||||
CircleCIToken string
|
||||
|
||||
// Registry drives query generation for every source via BuildQueries.
|
||||
Registry *providers.Registry
|
||||
// Limiters is the shared per-source rate-limiter registry.
|
||||
@@ -56,8 +59,9 @@ type SourcesConfig struct {
|
||||
}
|
||||
|
||||
// RegisterAll registers every Phase 10 code-hosting, Phase 11 search engine /
|
||||
// paste site, Phase 12 IoT scanner / cloud storage, and Phase 13 package
|
||||
// registry / container / IaC source on engine (40 sources total).
|
||||
// paste site, Phase 12 IoT scanner / cloud storage, Phase 13 package
|
||||
// registry / container / IaC, and Phase 14 CI/CD source on engine (45 sources
|
||||
// total).
|
||||
//
|
||||
// All sources are registered unconditionally so that cmd/recon.go can surface
|
||||
// the full catalog via `keyhunter recon list` regardless of which credentials
|
||||
@@ -228,4 +232,23 @@ func RegisterAll(engine *recon.Engine, cfg SourcesConfig) {
|
||||
engine.Register(&KubernetesSource{Registry: reg, Limiters: lim})
|
||||
engine.Register(&TerraformSource{Registry: reg, Limiters: lim})
|
||||
engine.Register(&HelmSource{Registry: reg, Limiters: lim})
|
||||
|
||||
// Phase 14: CI/CD log sources.
|
||||
engine.Register(&GitHubActionsSource{
|
||||
Token: cfg.GitHubToken,
|
||||
Registry: reg,
|
||||
Limiters: lim,
|
||||
})
|
||||
engine.Register(&TravisCISource{Registry: reg, Limiters: lim})
|
||||
engine.Register(&CircleCISource{
|
||||
Token: cfg.CircleCIToken,
|
||||
Registry: reg,
|
||||
Limiters: lim,
|
||||
})
|
||||
engine.Register(&JenkinsSource{Registry: reg, Limiters: lim})
|
||||
engine.Register(&GitLabCISource{
|
||||
Token: cfg.GitLabToken,
|
||||
Registry: reg,
|
||||
Limiters: lim,
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user