| 121 | func (r sourceRepo) Type() string { return "local" } |
| 122 | |
| 123 | func (r sourceRepo) GetMeta(ctx context.Context, commit string) (content.Meta, error) { |
| 124 | l := r.l.Lock(r.dirName) |
| 125 | defer l.Unlock() |
| 126 | |
| 127 | r.trace(ctx, slog.LevelInfo, "upstream call", |
| 128 | slog.String("target", "localgit.GetMeta"), |
| 129 | slog.String("owner", r.repo.Owner), |
| 130 | slog.String("repo", r.repo.Name), |
| 131 | slog.String("module", r.repo.Name), |
| 132 | slog.String("commit", commit), |
| 133 | slog.String("commit_id", commit), |
| 134 | ) |
| 135 | start := time.Now() |
| 136 | |
| 137 | defaultBranch, resolvedCommit, err := getRepoSwitchedCommit(r.dirName, commit) |
| 138 | if err != nil { |
| 139 | r.trace(ctx, slog.LevelWarn, "upstream result", |
| 140 | slog.String("target", "localgit.GetMeta"), |
| 141 | slog.String("owner", r.repo.Owner), |
| 142 | slog.String("repo", r.repo.Name), |
| 143 | slog.String("module", r.repo.Name), |
| 144 | slog.String("commit", commit), |
| 145 | slog.String("commit_id", commit), |
| 146 | slog.String("outcome", "error"), |
| 147 | slog.Duration("duration", time.Since(start)), |
| 148 | slog.String("error", err.Error()), |
| 149 | ) |
| 150 | return content.Meta{DefaultBranch: defaultBranch, Commit: resolvedCommit}, //nolint:exhaustruct |
| 151 | fmt.Errorf("investigating %q/%q:%q: %w", r.repo.Owner, r.repo.Name, resolvedCommit, err) |
| 152 | } |
| 153 | |
| 154 | r.trace(ctx, slog.LevelInfo, "upstream result", |
| 155 | slog.String("target", "localgit.GetMeta"), |
| 156 | slog.String("owner", r.repo.Owner), |
| 157 | slog.String("repo", r.repo.Name), |
| 158 | slog.String("module", r.repo.Name), |
| 159 | slog.String("commit", commit), |
| 160 | slog.String("resolved_commit", resolvedCommit), |
| 161 | slog.String("commit_id", resolvedCommit), |
| 162 | slog.String("outcome", "ok"), |
| 163 | slog.String("default_branch", defaultBranch), |
| 164 | slog.Duration("duration", time.Since(start)), |
| 165 | ) |
| 166 | return content.Meta{DefaultBranch: defaultBranch, Commit: resolvedCommit}, nil //nolint:exhaustruct |
| 167 | } |
| 168 | |
| 169 | func (r sourceRepo) GetFiles(ctx context.Context, commit string) ([]content.File, error) { |
| 170 | l := r.l.Lock(r.dirName) |