1package git23import (4 "os"5 "path/filepath"67 gcfg "github.com/go-git/go-git/v5/plumbing/format/config"8)910// Config returns the repository Git configuration.11func (r *Repository) Config() (*gcfg.Config, error) {12 cp := filepath.Join(r.Path, "config")13 f, err := os.Open(cp)14 if err != nil {15 return nil, err16 }1718 defer f.Close() // nolint: errcheck19 d := gcfg.NewDecoder(f)20 cfg := gcfg.New()21 if err := d.Decode(cfg); err != nil {22 return nil, err23 }2425 return cfg, nil26}2728// SetConfig sets the repository Git configuration.29func (r *Repository) SetConfig(cfg *gcfg.Config) error {30 cp := filepath.Join(r.Path, "config")31 f, err := os.Create(cp)32 if err != nil {33 return err34 }3536 defer f.Close() // nolint: errcheck37 e := gcfg.NewEncoder(f)38 return e.Encode(cfg)39}