Ejemplo n.º 1
0
func (r *Github) Adapt(p *http.Request, c *config.Config) (*scm.Push, error) {
	if err := json.Unmarshal([]byte(p.FormValue("payload")), r); err != nil {
		log.Println(err)
		return nil, err
	}

	var m scm.Push
	if repo, ok := c.Repositories[r.Repository.Url]; ok && repo.Ref == r.Ref {
		m.Repository = r.Repository
		m.Repository.Path = repo.Path
		m.After = r.After
		m.Ref = r.Ref
		m.Commits = r.Commits
	} else {
		return nil, UnknownRepoError{
			msg: "unknown repo " + r.Repository.Name + " or ref " + r.Ref,
		}
	}
	return &m, nil
}