Skip to content

Commit 04c3278

Browse files
authored
feat: don't do external checks by default (#36)
Add the ?external-checks query parameter to turn on external checks (false by default).
1 parent 37138cd commit 04c3278

1 file changed

Lines changed: 16 additions & 10 deletions

File tree

internal/handlers/validate.go

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,24 +9,31 @@ import (
99
)
1010

1111
type PubliccodeymlValidatorHandler struct {
12-
parser *publiccodeParser.Parser
12+
parser *publiccodeParser.Parser
13+
parserExternalChecks *publiccodeParser.Parser
1314
}
1415

1516
func NewPubliccodeymlValidatorHandler() *PubliccodeymlValidatorHandler {
16-
parser, err := publiccodeParser.NewDefaultParser()
17+
parser, err := publiccodeParser.NewParser(publiccodeParser.ParserConfig{DisableExternalChecks: true})
1718
if err != nil {
1819
panic("can't create a publiccode.yml parser: " + err.Error())
1920
}
2021

21-
return &PubliccodeymlValidatorHandler{parser: parser}
22+
parserExternalChecks, err := publiccodeParser.NewDefaultParser()
23+
if err != nil {
24+
panic("can't create a publiccode.yml parser: " + err.Error())
25+
}
26+
27+
return &PubliccodeymlValidatorHandler{parser: parser, parserExternalChecks: parserExternalChecks}
2228
}
2329

2430
func (vh *PubliccodeymlValidatorHandler) Query(ctx *fiber.Ctx) error {
2531
valid := true
32+
parser := vh.parser
2633

27-
// if all := ctx.QueryBool("all", false); !all {
28-
// stmt = stmt.Scopes(models.Active)
29-
// }
34+
if checks := ctx.QueryBool("external-checks", false); checks {
35+
parser = vh.parserExternalChecks
36+
}
3037

3138
// ct := c.Get("Content-Type")
3239
// if !strings.Contains(ct, "yaml") && ct != "application/octet-stream" {
@@ -41,12 +48,11 @@ func (vh *PubliccodeymlValidatorHandler) Query(ctx *fiber.Ctx) error {
4148
})
4249
}
4350

44-
reader := bytes.NewReader(ctx.Body())
45-
4651
results := make(publiccodeParser.ValidationResults, 0)
4752

48-
// parsed, err = parser.Parse(repository.FileRawURL)
49-
_, err := vh.parser.ParseStream(reader)
53+
reader := bytes.NewReader(ctx.Body())
54+
55+
_, err := parser.ParseStream(reader)
5056
if err != nil {
5157
var validationResults publiccodeParser.ValidationResults
5258
if errors.As(err, &validationResults) {

0 commit comments

Comments
 (0)