Using a FilePath instead of the git object is bad
existsRefFile :: FilePath -> RefSpecTy -> IO Bool Source
writeRefFile :: FilePath -> RefSpecTy -> RefContentTy -> IO () Source
readRefFile :: FilePath -> RefSpecTy -> IO RefContentTy Source
looseHeadsList :: FilePath -> IO [RefName] Source
looseTagsList :: FilePath -> IO [RefName] Source
looseRemotesList :: FilePath -> IO [RefName]
All should be based off the git repo we have open.