Advertisement
Guest User

Untitled

a guest
Sep 1st, 2015
160
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Go 0.99 KB | None | 0 0
  1. package main
  2.  
  3. import (
  4.     "fmt"
  5.     "io/ioutil"
  6.  
  7.     "github.com/libgit2/git2go"
  8. )
  9.  
  10. func credentialsCallback(_, _ string, _ git.CredType) (git.ErrorCode, *git.Cred) {
  11.     fmt.Printf("Credentials callback called")
  12.     ret, cred := git.NewCredSshKeyFromAgent("marcinw")
  13.     return git.ErrorCode(ret), &cred
  14. }
  15.  
  16. func main() {
  17.     path, err := ioutil.TempDir("", "codebeat")
  18.     if err != nil {
  19.         panic(err)
  20.     }
  21.     repo, err := git.InitRepository(path, false /* is bare? */)
  22.     if err != nil {
  23.         panic(err)
  24.     }
  25.     defer repo.Free()
  26.     fmt.Printf("Repo initialized in %q\n", path)
  27.     remote, err := repo.Remotes.CreateAnonymous(
  28.         "git@github.com:waneck/linux-ios-toolchain.git")
  29.     fmt.Println(remote.Url())
  30.     if err != nil {
  31.         panic(err)
  32.     }
  33.     defer remote.Free()
  34.     err = remote.ConnectFetch(&git.RemoteCallbacks{
  35.         CredentialsCallback: credentialsCallback,
  36.     })
  37.     if err != nil {
  38.         panic(err)
  39.     }
  40.     heads, err := remote.Ls("refs/heads/master")
  41.     if err != nil {
  42.         panic(err)
  43.     }
  44.     fmt.Printf("Remote heads: %#v\n", heads)
  45. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement