Skip to content

Commit 1ac66d2

Browse files
committed
update: .tool-versions
* add dTrack client
1 parent ebcbfdf commit 1ac66d2

File tree

227 files changed

+100276
-44
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

227 files changed

+100276
-44
lines changed

.gitignore

+4
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,6 @@
11
/.idea/
22
bin/
3+
/internal/dependencytrack/client/.travis.yml
4+
/internal/dependencytrack/client/git_push.sh
5+
/internal/dependencytrack/client/go.mo
6+
.env

.tool-versions

+4-2
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,4 @@
1-
protoc-gen-go 1.36.2
2-
protoc-gen-go-grpc 1.3.0
1+
golang 1.23.5
2+
protoc-gen-go-grpc 1.5.1
3+
protoc-gen-go 1.36.3
4+
protoc 29.3

Makefile

+15-1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,20 @@ generate-proto:
88
build:
99
go build -o bin/api ./cmd/api
1010

11-
fmt: prettier
11+
fmt:
1212
go run mvdan.cc/gofumpt@latest -w ./
1313

14+
generate_dp_track:
15+
@echo "Generating Go code from the OpenAPI specification..."
16+
@openapi-generator generate \
17+
-i schema/dtrack.json \
18+
-g go \
19+
-o internal/dependencytrack/client \
20+
--global-property apiTests=false,modelTests=false \
21+
--package-name client \
22+
--additional-properties=withGoMod=false \
23+
--additional-properties=packageName=client || { \
24+
echo "Error: openapi-generator is not installed or failed to execute."; \
25+
echo "Please visit https://openapi-generator.tech/docs/installation/ for installation instructions."; \
26+
exit 1; \
27+
}

cmd/api/main.go

+17-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
package main
22

33
import (
4+
"fmt"
5+
"github.com/joho/godotenv"
6+
"github.com/nais/v13s/internal/dependencytrack"
47
"github.com/nais/v13s/internal/server"
58
"github.com/nais/v13s/pkg/api/vulnerabilities"
69
"google.golang.org/grpc"
@@ -12,13 +15,26 @@ import (
1215
)
1316

1417
func main() {
18+
err := godotenv.Load()
19+
if err != nil {
20+
fmt.Println("No .env file found")
21+
}
22+
1523
listener, err := net.Listen("tcp", ":50051")
1624
if err != nil {
1725
log.Fatalf("Failed to listen: %v", err)
1826
}
1927

2028
grpcServer := grpc.NewServer()
21-
vulnerabilities.RegisterVulnerabilitiesServer(grpcServer, &server.Server{})
29+
dpClient, err := dependencytrack.NewClient(
30+
os.Getenv("V13S_DEPENDENCYTRACK_API_KEY"),
31+
os.Getenv("V13S_DEPENDENCYTRACK_URL"),
32+
)
33+
if err != nil {
34+
log.Fatalf("Failed to create DependencyTrack client: %v", err)
35+
}
36+
37+
vulnerabilities.RegisterVulnerabilitiesServer(grpcServer, &server.Server{DpClient: dpClient})
2238

2339
stop := make(chan os.Signal, 1)
2440
signal.Notify(stop, os.Interrupt, syscall.SIGTERM)

cmd/client/main.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,8 @@ func main() {
1919

2020
resp, err := c.ListVulnerabilitySummaries(
2121
context.Background(),
22-
vulnerabilities.ClusterFilter("cluster-1"),
22+
vulnerabilities.NamespaceFilter("nais-system"),
23+
vulnerabilities.WorkloadTypeFilter("app"),
2324
)
2425
handle(resp, err)
2526
}

go.mod

+21-2
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,34 @@
11
module github.com/nais/v13s
22

3-
go 1.23.1
3+
go 1.23.5
44

55
require (
6+
github.com/joho/godotenv v1.5.1
67
google.golang.org/grpc v1.69.4
7-
google.golang.org/protobuf v1.36.2
8+
google.golang.org/protobuf v1.36.3
89
)
910

1011
require (
12+
github.com/apapsch/go-jsonmerge/v2 v2.0.0 // indirect
13+
github.com/dprotaso/go-yit v0.0.0-20220510233725-9ba8df137936 // indirect
14+
github.com/getkin/kin-openapi v0.127.0 // indirect
15+
github.com/go-openapi/jsonpointer v0.21.0 // indirect
16+
github.com/go-openapi/swag v0.23.0 // indirect
17+
github.com/golang/protobuf v1.5.4 // indirect
18+
github.com/google/uuid v1.6.0 // indirect
19+
github.com/invopop/yaml v0.3.1 // indirect
20+
github.com/josharian/intern v1.0.0 // indirect
21+
github.com/mailru/easyjson v0.7.7 // indirect
22+
github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect
23+
github.com/perimeterx/marshmallow v1.1.5 // indirect
24+
github.com/speakeasy-api/openapi-overlay v0.9.0 // indirect
25+
github.com/vmware-labs/yaml-jsonpath v0.3.2 // indirect
26+
golang.org/x/mod v0.17.0 // indirect
1127
golang.org/x/net v0.30.0 // indirect
1228
golang.org/x/sys v0.26.0 // indirect
1329
golang.org/x/text v0.19.0 // indirect
30+
golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d // indirect
1431
google.golang.org/genproto/googleapis/rpc v0.0.0-20241015192408-796eee8c2d53 // indirect
32+
gopkg.in/yaml.v2 v2.4.0 // indirect
33+
gopkg.in/yaml.v3 v3.0.1 // indirect
1534
)

go.sum

+175
Large diffs are not rendered by default.
+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# Compiled Object files, Static and Dynamic libs (Shared Objects)
2+
*.o
3+
*.a
4+
*.so
5+
6+
# Folders
7+
_obj
8+
_test
9+
10+
# Architecture specific extensions/prefixes
11+
*.[568vq]
12+
[568vq].out
13+
14+
*.cgo1.go
15+
*.cgo2.c
16+
_cgo_defun.c
17+
_cgo_gotypes.go
18+
_cgo_export.*
19+
20+
_testmain.go
21+
22+
*.exe
23+
*.test
24+
*.prof
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# OpenAPI Generator Ignore
2+
# Generated by openapi-generator https://github.com/openapitools/openapi-generator
3+
4+
# Use this file to prevent files from being overwritten by the generator.
5+
# The patterns follow closely to .gitignore or .dockerignore.
6+
7+
# As an example, the C# client generator defines ApiClient.cs.
8+
# You can make changes and tell OpenAPI Generator to ignore just this file by uncommenting the following line:
9+
#ApiClient.cs
10+
11+
# You can match any string of characters against a directory, file or extension with a single asterisk (*):
12+
#foo/*/qux
13+
# The above matches foo/bar/qux and foo/baz/qux, but not foo/bar/baz/qux
14+
15+
# You can recursively match patterns against a directory, file or extension with a double asterisk (**):
16+
#foo/**/qux
17+
# This matches foo/bar/qux, foo/baz/qux, and foo/bar/baz/qux
18+
19+
# You can also negate patterns with an exclamation (!).
20+
# For example, you can ignore all files in a docs folder with the file extension .md:
21+
#docs/*.md
22+
# Then explicitly reverse the ignore rule for a single file:
23+
#!docs/README.md
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,212 @@
1+
.gitignore
2+
.openapi-generator-ignore
3+
.travis.yml
4+
README.md
5+
api/openapi.yaml
6+
api_acl.go
7+
api_analysis.go
8+
api_badge.go
9+
api_bom.go
10+
api_calculator.go
11+
api_component.go
12+
api_component_property.go
13+
api_config_property.go
14+
api_cwe.go
15+
api_dependency_graph.go
16+
api_event.go
17+
api_finding.go
18+
api_integration.go
19+
api_ldap.go
20+
api_license.go
21+
api_license_group.go
22+
api_metrics.go
23+
api_notification.go
24+
api_oidc.go
25+
api_permission.go
26+
api_policy.go
27+
api_policy_condition.go
28+
api_project.go
29+
api_project_property.go
30+
api_repository.go
31+
api_search.go
32+
api_service.go
33+
api_tag.go
34+
api_team.go
35+
api_user.go
36+
api_version.go
37+
api_vex.go
38+
api_violation.go
39+
api_violationanalysis.go
40+
api_vulnerability.go
41+
client.go
42+
configuration.go
43+
docs/About.md
44+
docs/AclAPI.md
45+
docs/AclMappingRequest.md
46+
docs/AffectedComponent.md
47+
docs/AffectedVersionAttribution.md
48+
docs/Analysis.md
49+
docs/AnalysisAPI.md
50+
docs/AnalysisComment.md
51+
docs/AnalysisRequest.md
52+
docs/ApiKey.md
53+
docs/BadgeAPI.md
54+
docs/BomAPI.md
55+
docs/BomSubmitRequest.md
56+
docs/BomUploadResponse.md
57+
docs/CalculatorAPI.md
58+
docs/CloneProjectRequest.md
59+
docs/Component.md
60+
docs/ComponentAPI.md
61+
docs/ComponentProperty.md
62+
docs/ComponentPropertyAPI.md
63+
docs/ConfigProperty.md
64+
docs/ConfigPropertyAPI.md
65+
docs/Cwe.md
66+
docs/CweAPI.md
67+
docs/DataClassification.md
68+
docs/DependencyGraphAPI.md
69+
docs/DependencyGraphResponse.md
70+
docs/DependencyMetrics.md
71+
docs/EventAPI.md
72+
docs/ExternalReference.md
73+
docs/Finding.md
74+
docs/FindingAPI.md
75+
docs/FindingAttribution.md
76+
docs/Framework.md
77+
docs/GroupedFinding.md
78+
docs/IdentifiableObject.md
79+
docs/IntegrationAPI.md
80+
docs/InvalidBomProblemDetails.md
81+
docs/IsTokenBeingProcessedResponse.md
82+
docs/LdapAPI.md
83+
docs/LdapUser.md
84+
docs/License.md
85+
docs/LicenseAPI.md
86+
docs/LicenseGroup.md
87+
docs/LicenseGroupAPI.md
88+
docs/ManagedUser.md
89+
docs/MappedLdapGroup.md
90+
docs/MappedLdapGroupRequest.md
91+
docs/MappedOidcGroup.md
92+
docs/MappedOidcGroupRequest.md
93+
docs/MetricsAPI.md
94+
docs/NotificationAPI.md
95+
docs/NotificationPublisher.md
96+
docs/NotificationRule.md
97+
docs/OidcAPI.md
98+
docs/OidcGroup.md
99+
docs/OidcUser.md
100+
docs/OrganizationalContact.md
101+
docs/OrganizationalEntity.md
102+
docs/Permission.md
103+
docs/PermissionAPI.md
104+
docs/Policy.md
105+
docs/PolicyAPI.md
106+
docs/PolicyCondition.md
107+
docs/PolicyConditionAPI.md
108+
docs/PolicyViolation.md
109+
docs/PortfolioMetrics.md
110+
docs/Project.md
111+
docs/ProjectAPI.md
112+
docs/ProjectMetadata.md
113+
docs/ProjectMetrics.md
114+
docs/ProjectProperty.md
115+
docs/ProjectPropertyAPI.md
116+
docs/ProjectVersion.md
117+
docs/Repository.md
118+
docs/RepositoryAPI.md
119+
docs/RepositoryMetaComponent.md
120+
docs/Score.md
121+
docs/SearchAPI.md
122+
docs/SearchResult.md
123+
docs/ServiceAPI.md
124+
docs/ServiceComponent.md
125+
docs/Tag.md
126+
docs/TagAPI.md
127+
docs/Team.md
128+
docs/TeamAPI.md
129+
docs/TeamSelfResponse.md
130+
docs/UserAPI.md
131+
docs/UserPrincipal.md
132+
docs/VersionAPI.md
133+
docs/VexAPI.md
134+
docs/VexSubmitRequest.md
135+
docs/ViolationAPI.md
136+
docs/ViolationAnalysis.md
137+
docs/ViolationAnalysisComment.md
138+
docs/ViolationAnalysisRequest.md
139+
docs/ViolationanalysisAPI.md
140+
docs/Vulnerability.md
141+
docs/VulnerabilityAPI.md
142+
docs/VulnerabilityAlias.md
143+
docs/VulnerabilityMetrics.md
144+
git_push.sh
145+
model_about.go
146+
model_acl_mapping_request.go
147+
model_affected_component.go
148+
model_affected_version_attribution.go
149+
model_analysis.go
150+
model_analysis_comment.go
151+
model_analysis_request.go
152+
model_api_key.go
153+
model_bom_submit_request.go
154+
model_bom_upload_response.go
155+
model_clone_project_request.go
156+
model_component.go
157+
model_component_property.go
158+
model_config_property.go
159+
model_cwe.go
160+
model_data_classification.go
161+
model_dependency_graph_response.go
162+
model_dependency_metrics.go
163+
model_external_reference.go
164+
model_finding.go
165+
model_finding_attribution.go
166+
model_framework.go
167+
model_grouped_finding.go
168+
model_identifiable_object.go
169+
model_invalid_bom_problem_details.go
170+
model_is_token_being_processed_response.go
171+
model_ldap_user.go
172+
model_license.go
173+
model_license_group.go
174+
model_managed_user.go
175+
model_mapped_ldap_group.go
176+
model_mapped_ldap_group_request.go
177+
model_mapped_oidc_group.go
178+
model_mapped_oidc_group_request.go
179+
model_notification_publisher.go
180+
model_notification_rule.go
181+
model_oidc_group.go
182+
model_oidc_user.go
183+
model_organizational_contact.go
184+
model_organizational_entity.go
185+
model_permission.go
186+
model_policy.go
187+
model_policy_condition.go
188+
model_policy_violation.go
189+
model_portfolio_metrics.go
190+
model_project.go
191+
model_project_metadata.go
192+
model_project_metrics.go
193+
model_project_property.go
194+
model_project_version.go
195+
model_repository.go
196+
model_repository_meta_component.go
197+
model_score.go
198+
model_search_result.go
199+
model_service_component.go
200+
model_tag.go
201+
model_team.go
202+
model_team_self_response.go
203+
model_user_principal.go
204+
model_vex_submit_request.go
205+
model_violation_analysis.go
206+
model_violation_analysis_comment.go
207+
model_violation_analysis_request.go
208+
model_vulnerability.go
209+
model_vulnerability_alias.go
210+
model_vulnerability_metrics.go
211+
response.go
212+
utils.go
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
7.10.0

0 commit comments

Comments
 (0)