diff --git a/forge.go b/forge.go index 9aa64a99769c5a3b099a76e49bf88c787342f2fc..8348a483e19af29d583059e08d387c503b16cedf 100644 --- a/forge.go +++ b/forge.go @@ -60,7 +60,7 @@ func (c *config) Login(ctx context.Context, r *types.OAuthRequest) (*model.User, string, error) { slog.Info("Login") provider, err := oidc.NewProvider(ctx, c.clientProvider) if err != nil { - slog.Error("could not create OIDC provider", slog.Any("err", err)) + slog.Error("", slog.Any("err", err)) return nil, "", err } config := oauth2.Config{ @@ -77,13 +77,13 @@ } oauthToken, err := config.Exchange(ctx, r.Code) if err != nil { - slog.Error("could not exchange oauth token", slog.Any("err", err)) + slog.Error("", slog.Any("err", err)) return nil, redirectURL, err } userInfo, err := provider.UserInfo(ctx, oauth2.StaticTokenSource(oauthToken)) if err != nil { - slog.Error("could not get user info", slog.Any("err", err)) + slog.Error("", slog.Any("err", err)) return nil, redirectURL, err } @@ -109,12 +109,12 @@ func (c *config) Auth(ctx context.Context, token string, secret string) (string, error) { slog.Info("Auth") provider, err := oidc.NewProvider(ctx, c.clientProvider) if err != nil { - slog.Error("could not create oidc provider", slog.Any("err", err)) + slog.Error("", slog.Any("err", err)) return "", err } userInfo, err := provider.UserInfo(ctx, oauth2.StaticTokenSource(&oauth2.Token{AccessToken: token})) if err != nil { - slog.Error("could not get user info", slog.Any("err", err)) + slog.Error("", slog.Any("err", err)) return "", err } @@ -159,7 +159,7 @@ name = string(remoteID) } _, err := c.gitRepo(name) if err != nil { - slog.Error("could not get git repo", slog.String("repo", name), slog.Any("err", err)) + slog.Error("", slog.Any("err", err)) return nil, err } return c.toRepo(name), nil @@ -173,7 +173,7 @@ return []*model.Repo{}, nil } entries, err := os.ReadDir(c.repoDir) if err != nil { - slog.Error("could not read repo dir", slog.Any("err", err)) + slog.Error("", slog.Any("err", err)) return nil, fmt.Errorf("could not read repo dir: %w", err) } repos := make([]*model.Repo, 0, len(entries)) @@ -181,7 +181,7 @@ for _, entry := range entries { if strings.HasSuffix(entry.Name(), ".git") { repo, err := c.Repo(ctx, nil, "", "", strings.TrimSuffix(entry.Name(), ".git")) if err != nil { - slog.Error("could not get repo", slog.Any("err", err)) + slog.Error("", slog.Any("err", err)) return nil, err } repos = append(repos, repo) @@ -196,22 +196,22 @@ func (c *config) File(ctx context.Context, u *model.User, r *model.Repo, b *model.Pipeline, f string) ([]byte, error) { slog.Info("File") repo, err := c.gitRepo(r.Name) if err != nil { - slog.Error("could not get git repo", slog.Any("err", err)) + slog.Error("", slog.Any("err", err)) return nil, err } commit, err := repo.CommitObject(plumbing.NewHash(b.Commit)) if err != nil { - slog.Error("could not get commit object", slog.String("commit", b.Commit), slog.String("repo", r.Name), slog.Any("err", err)) + slog.Error("", slog.Any("err", err)) return nil, fmt.Errorf("could not get commit for %q: %w", b.Commit, err) } file, err := commit.File(f) if err != nil { - slog.Error("could not get file", slog.Any("err", err)) + slog.Error("", slog.Any("err", err)) return nil, fmt.Errorf("could not get file %q: %w", f, err) } content, err := file.Contents() if err != nil { - slog.Error("could not get file contents", slog.Any("err", err)) + slog.Error("", slog.Any("err", err)) return nil, fmt.Errorf("could not get file contents from %q: %w", f, err) } return []byte(content), nil @@ -222,17 +222,17 @@ func (c *config) Dir(ctx context.Context, u *model.User, r *model.Repo, b *model.Pipeline, f string) ([]*types.FileMeta, error) { slog.Info("Dir") repo, err := c.gitRepo(r.Name) if err != nil { - slog.Error("could not get git repo", slog.Any("err", err)) + slog.Error("", slog.Any("err", err)) return nil, err } commit, err := repo.CommitObject(plumbing.NewHash(b.Commit)) if err != nil { - slog.Error("could not get commit object", slog.String("commit", b.Commit), slog.String("repo", r.Name), slog.Any("err", err)) + slog.Error("", slog.Any("err", err)) return nil, fmt.Errorf("could not get commit for %q: %w", b.Commit, err) } files, err := commit.Files() if err != nil { - slog.Error("could not get commit files", slog.Any("err", err)) + slog.Error("", slog.Any("err", err)) return nil, fmt.Errorf("could not get files for %q: %w", b.Commit, err) } f = path.Clean(f) @@ -242,7 +242,7 @@ if err := files.ForEach(func(fi *object.File) error { if m, _ := filepath.Match(f, fi.Name); m { data, err := c.File(ctx, u, r, b, fi.Name) if err != nil { - slog.Error("could not get file", slog.Any("err", err)) + slog.Error("", slog.Any("err", err)) return err } metas = append(metas, &types.FileMeta{ @@ -252,7 +252,7 @@ }) } return nil }); err != nil { - slog.Error("could not iterate files", slog.Any("err", err)) + slog.Error("", slog.Any("err", err)) return nil, fmt.Errorf("problem while iterating over files: %w", err) } return metas, nil @@ -298,12 +298,12 @@ return []string{}, nil } repo, err := c.gitRepo(r.Name) if err != nil { - slog.Error("could not get git repo", slog.Any("err", err)) + slog.Error("", slog.Any("err", err)) return nil, err } branches, err := repo.Branches() if err != nil { - slog.Error("could not get branches", slog.Any("err", err)) + slog.Error("", slog.Any("err", err)) return nil, fmt.Errorf("could not get branches: %w", err) } result := make([]string, 0) @@ -311,7 +311,7 @@ if err := branches.ForEach(func(r *plumbing.Reference) error { result = append(result, string(r.Name().Short())) return nil }); err != nil { - slog.Error("could not iterate over branches", slog.Any("err", err)) + slog.Error("", slog.Any("err", err)) return nil, fmt.Errorf("problem while iterating over branches: %w", err) } return result, nil @@ -322,12 +322,12 @@ func (c *config) BranchHead(ctx context.Context, u *model.User, r *model.Repo, branch string) (*model.Commit, error) { slog.Info("BranchHead") repo, err := c.gitRepo(r.Name) if err != nil { - slog.Error("could not get git repo", slog.Any("err", err)) + slog.Error("", slog.Any("err", err)) return nil, err } ref, err := repo.Reference(plumbing.NewBranchReferenceName(branch), true) if err != nil { - slog.Error("could not get branch ref", slog.Any("err", err)) + slog.Error("", slog.Any("err", err)) return nil, fmt.Errorf("could not resolve branch reference for %q: %w", branch, err) } return &model.Commit{ diff --git a/main.go b/main.go index dd68673c3921d41de88f4aca167023150756b47a..2933392f91a3048e241f0da798976069221f9a4c 100644 --- a/main.go +++ b/main.go @@ -23,7 +23,6 @@ clientRedirect string // Misc logFilePath string - logJSON bool } func main() { @@ -36,9 +35,7 @@ clientSecretFile: env("client_secret_file"), clientProvider: mustEnv("provider"), clientRedirect: mustEnv("redirect"), logFilePath: env("log_file"), - logJSON: env("log_json") == "1", } - if cfg.clientSecretFile != "" { content, err := os.ReadFile(cfg.clientSecretFile) if err != nil { @@ -49,7 +46,6 @@ } if cfg.clientSecret == "" { panic("client secret is required") } - logLevel := slog.LevelInfo switch env("log_level") { case "debug": @@ -59,26 +55,16 @@ logLevel = slog.LevelWarn case "error": logLevel = slog.LevelError } - - logOutput := os.Stderr + logFile := os.Stderr if cfg.logFilePath != "" { fi, err := os.Create(cfg.logFilePath) if err != nil { panic(err) } defer fi.Close() - logOutput = fi - } - - logOpts := &slog.HandlerOptions{Level: logLevel} - var logger slog.Handler - if cfg.logJSON { - logger = slog.NewJSONHandler(logOutput, logOpts) - } else { - logger = slog.NewTextHandler(logOutput, logOpts) + logFile = fi } - slog.SetDefault(slog.New(logger)) - + slog.SetDefault(slog.New(slog.NewTextHandler(logFile, &slog.HandlerOptions{Level: logLevel}))) defer func() { if r := recover(); r != nil { slog.Info("addon forge panic", slog.Any("message", r))