(ctx context.Context, path string, ref *gitutil.GitRef)
| 193 | } |
| 194 | |
| 195 | func (g gitRemoteLoader) checkout(ctx context.Context, path string, ref *gitutil.GitRef) error { |
| 196 | err := os.MkdirAll(path, 0o700) |
| 197 | if err != nil { |
| 198 | return err |
| 199 | } |
| 200 | err = exec.CommandContext(ctx, "git", "init", path).Run() |
| 201 | if err != nil { |
| 202 | return err |
| 203 | } |
| 204 | |
| 205 | cmd := exec.CommandContext(ctx, "git", "remote", "add", "origin", ref.Remote) |
| 206 | cmd.Dir = path |
| 207 | err = cmd.Run() |
| 208 | if err != nil { |
| 209 | return err |
| 210 | } |
| 211 | |
| 212 | cmd = exec.CommandContext(ctx, "git", "fetch", "--depth=1", "origin", ref.Ref) |
| 213 | cmd.Env = g.gitCommandEnv() |
| 214 | cmd.Dir = path |
| 215 | |
| 216 | err = g.run(cmd) |
| 217 | if err != nil { |
| 218 | return err |
| 219 | } |
| 220 | |
| 221 | cmd = exec.CommandContext(ctx, "git", "checkout", ref.Ref) |
| 222 | cmd.Dir = path |
| 223 | err = cmd.Run() |
| 224 | if err != nil { |
| 225 | return err |
| 226 | } |
| 227 | return nil |
| 228 | } |
| 229 | |
| 230 | func (g gitRemoteLoader) run(cmd *exec.Cmd) error { |
| 231 | if logrus.IsLevelEnabled(logrus.DebugLevel) { |
no test coverage detected