Advertisement
Guest User

Untitled

a guest
Sep 1st, 2015
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Go 1.08 KB | None | 0 0
  1. package main
  2.  
  3. import (
  4.     "fmt"
  5.     "io/ioutil"
  6.  
  7.     "gopkg.in/libgit2/git2go.v22"
  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 /* isbare */, true)
  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.CreateRemote(
  28.         /* name */ "origin",
  29.         /* url */ "git@github.com:waneck/linux-ios-toolchain.git",
  30.     )
  31.     fmt.Println(remote.Url())
  32.     if err != nil {
  33.         panic(err)
  34.     }
  35.     defer remote.Free()
  36.     err = remote.SetCallbacks(&git.RemoteCallbacks{
  37.         CredentialsCallback: credentialsCallback,
  38.     })
  39.     if err != nil {
  40.         panic(err)
  41.     }
  42.     if err = remote.ConnectFetch(); err != nil {
  43.         panic(err)
  44.     }
  45.     heads, err := remote.Ls("refs/heads/master")
  46.     if err != nil {
  47.         panic(err)
  48.     }
  49.     fmt.Printf("Remote heads: %#v\n", heads)
  50. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement