From 9126f5ae1c64701d1b28b899245d96d7ae8bf875 Mon Sep 17 00:00:00 2001 From: Paulin Todev Date: Tue, 10 Sep 2024 18:12:33 +0100 Subject: [PATCH] Don't allow certain values to be an import.git revision --- .../runtime/internal/importsource/import_git.go | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/internal/runtime/internal/importsource/import_git.go b/internal/runtime/internal/importsource/import_git.go index a304f6edb..f0b77965f 100644 --- a/internal/runtime/internal/importsource/import_git.go +++ b/internal/runtime/internal/importsource/import_git.go @@ -15,6 +15,7 @@ import ( "github.com/grafana/alloy/internal/component" "github.com/grafana/alloy/internal/runtime/logging/level" "github.com/grafana/alloy/internal/vcs" + "github.com/grafana/alloy/syntax" "github.com/grafana/alloy/syntax/vm" ) @@ -55,6 +56,21 @@ var DefaultGitArguments = GitArguments{ PullFrequency: time.Minute, } +var ( + _ syntax.Validator = (*GitArguments)(nil) + _ syntax.Defaulter = (*GitArguments)(nil) +) + +// Validate implements syntax.Validator. +func (args *GitArguments) Validate() error { + switch args.Revision { + case "HEAD", "FETCH_HEAD", "ORIG_HEAD", "MERGE_HEAD", "CHERRY_PICK_HEAD": + return fmt.Errorf("revision cannot be a special git reference such as HEAD, FETCH_HEAD, ORIG_HEAD, MERGE_HEAD, or CHERRY_PICK_HEAD") + } + + return nil +} + // SetToDefault implements syntax.Defaulter. func (args *GitArguments) SetToDefault() { *args = DefaultGitArguments