+21
types/repo.go
+21
types/repo.go
···
1
1
package types
2
2
3
3
import (
4
+
"encoding/json"
5
+
4
6
"github.com/bluekeyes/go-gitdiff/gitdiff"
5
7
"github.com/go-git/go-git/v5/plumbing/object"
6
8
)
···
67
69
Reference `json:"reference"`
68
70
Commit *object.Commit `json:"commit,omitempty"`
69
71
IsDefault bool `json:"is_default,omitempty"`
72
+
}
73
+
74
+
func (b *Branch) UnmarshalJSON(data []byte) error {
75
+
aux := &struct {
76
+
Reference `json:"reference"`
77
+
Commit *object.Commit `json:"commit,omitempty"`
78
+
IsDefault bool `json:"is_default,omitempty"`
79
+
MispelledIsDefault bool `json:"is_deafult,omitempty"` // mispelled name
80
+
}{}
81
+
82
+
if err := json.Unmarshal(data, aux); err != nil {
83
+
return err
84
+
}
85
+
86
+
b.Reference = aux.Reference
87
+
b.Commit = aux.Commit
88
+
b.IsDefault = aux.IsDefault || aux.MispelledIsDefault // whichever was set
89
+
90
+
return nil
70
91
}
71
92
72
93
type RepoTagsResponse struct {