MCPcopy
hub / github.com/github/git-sizer / augmentFromConfig

Method augmentFromConfig

internal/refopts/ref_group.go:80–122  ·  view source on GitHub ↗

augmentFromConfig augments `rg` based on configuration in the gitconfig and returns the result. It is not considered an error if there are no usable config entries for the filter.

(configger Configger)

Source from the content-addressed store, hash-verified

78// gitconfig and returns the result. It is not considered an error if
79// there are no usable config entries for the filter.
80func (rg *refGroup) augmentFromConfig(configger Configger) error {
81 config, err := configger.GetConfig(fmt.Sprintf("refgroup.%s", rg.Symbol))
82 if err != nil {
83 return err
84 }
85
86 for _, entry := range config.Entries {
87 switch entry.Key {
88 case "name":
89 rg.Name = entry.Value
90 case "include":
91 rg.filter = git.Include.Combine(
92 rg.filter, git.PrefixFilter(entry.Value),
93 )
94 case "includeregexp":
95 f, err := git.RegexpFilter(entry.Value)
96 if err != nil {
97 return fmt.Errorf(
98 "invalid regular expression for '%s': %w",
99 config.FullKey(entry.Key), err,
100 )
101 }
102 rg.filter = git.Include.Combine(rg.filter, f)
103 case "exclude":
104 rg.filter = git.Exclude.Combine(
105 rg.filter, git.PrefixFilter(entry.Value),
106 )
107 case "excluderegexp":
108 f, err := git.RegexpFilter(entry.Value)
109 if err != nil {
110 return fmt.Errorf(
111 "invalid regular expression for '%s': %w",
112 config.FullKey(entry.Key), err,
113 )
114 }
115 rg.filter = git.Exclude.Combine(rg.filter, f)
116 default:
117 // Ignore unrecognized keys.
118 }
119 }
120
121 return nil
122}

Callers 1

Calls 5

PrefixFilterFunction · 0.92
RegexpFilterFunction · 0.92
FullKeyMethod · 0.80
GetConfigMethod · 0.65
CombineMethod · 0.65

Tested by

no test coverage detected