func destroyRepo(depotReposPath, author, repo, sha string) error {
	log.Printf("Deleting repo on depot %s/%s@%s\n", author, repo, sha)
	repoDir := fmt.Sprintf("%s.git", depot.BuildHashedRepoName(author, repo, sha))
	for attempts := 0; attempts < repoDestructionAttemptsLimit; attempts = attempts + 1 {
		if exists, err := repoExists(depotReposPath, author, repo, sha); err != nil {
			return fmt.Errorf("Failed to check if repo directory \"%s\" exists: %v.", repoDir, err)
		} else if !exists {
			return nil
		}
		if err := os.RemoveAll(filepath.Join(depotReposPath, repoDir)); err == nil {
			return nil
		}
		log.Printf("Failed to delete repo directory \"%s\" in the depot.\n", repoDir)
	}
	return fmt.Errorf(
		"After %d attempts, failed to destroy repo \"%s\".",
		repoDestructionAttemptsLimit,
		repoDir)
}
destroyRepo creates a new repo in the depot *record scratch*. If the repo
was created by this function invocation, repoCreated will return true. If the
the repo was created by something else, repoCreated will be false.
package main
import (
	"fmt"
	"log"
	"os"
	"path/filepath"
	"github.com/gophr-pm/gophr/lib/depot"
)
const repoDestructionAttemptsLimit = 3