update.go 990 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. package main
  2. import (
  3. "os"
  4. "strconv"
  5. "github.com/gogits/gogs/models"
  6. "github.com/codegangsta/cli"
  7. git "github.com/gogits/git"
  8. )
  9. var CmdUpdate = cli.Command{
  10. Name: "update",
  11. Usage: "This command just should be called by ssh shell",
  12. Description: `
  13. gogs serv provide access auth for repositories`,
  14. Action: runUpdate,
  15. Flags: []cli.Flag{},
  16. }
  17. func runUpdate(*cli.Context) {
  18. userName := os.Getenv("userName")
  19. userId := os.Getenv("userId")
  20. repoId := os.Getenv("repoId")
  21. repoName := os.Getenv("repoName")
  22. f := models.RepoPath(userName, repoName)
  23. repo, err := git.OpenRepository(f)
  24. if err != nil {
  25. return
  26. }
  27. ref, err := repo.LookupReference("HEAD")
  28. if err != nil {
  29. return
  30. }
  31. lastCommit, err := repo.LookupCommit(ref.Oid)
  32. if err != nil {
  33. return
  34. }
  35. sUserId, _ := strconv.Atoi(userId)
  36. sRepoId, _ := strconv.Atoi(repoId)
  37. err = models.CommitRepoAction(int64(sUserId), userName,
  38. int64(sRepoId), repoName, lastCommit.Message())
  39. if err != nil {
  40. //TODO: log
  41. }
  42. }