@@ -125,6 +125,73 @@ empty commit`, commitFromReader.Signature.Payload)
125
125
assert .EqualValues (t , commitFromReader , commitFromReader2 )
126
126
}
127
127
128
+ func TestCommitWithEncodingFromReader (t * testing.T ) {
129
+ commitString := `feaf4ba6bc635fec442f46ddd4512416ec43c2c2 commit 1074
130
+ tree ca3fad42080dd1a6d291b75acdfc46e5b9b307e5
131
+ parent 47b24e7ab977ed31c5a39989d570847d6d0052af
132
+ author KN4CK3R <[email protected] > 1711702962 +0100
133
+ committer KN4CK3R <[email protected] > 1711702962 +0100
134
+ encoding ISO-8859-1
135
+ gpgsig -----BEGIN PGP SIGNATURE-----
136
+
137
+ iQGzBAABCgAdFiEE9HRrbqvYxPT8PXbefPSEkrowAa8FAmYGg7IACgkQfPSEkrow
138
+ Aa9olwv+P0HhtCM6CRvlUmPaqswRsDPNR4i66xyXGiSxdI9V5oJL7HLiQIM7KrFR
139
+ gizKa2COiGtugv8fE+TKqXKaJx6uJUJEjaBd8E9Af9PrAzjWj+A84lU6/PgPS8hq
140
+ zOfZraLOEWRH4tZcS+u2yFLu3ez2Wqh1xW5LNy7xqEedMXEFD1HwSJ0+pjacNkzr
141
+ frp6Asyt7xRI6YmgFJZJoRsS3Ktr6rtKeRL2IErSQQyorOqj6gKrglhrhfG/114j
142
+ FKB1v4or0WZ1DE8iP2SJZ3n+/K1IuWAINh7MVdb7PndfBPEa+IL+ucNk5uzEE8Jd
143
+ G8smGxXUeFEt2cP1dj2W8EgAxuA9sTnH9dqI5aRqy5ifDjuya7Emm8sdOUvtGdmn
144
+ SONRzusmu5n3DgV956REL7x62h7JuqmBz/12HZkr0z0zgXkcZ04q08pSJATX5N1F
145
+ yN+tWxTsWg+zhDk96d5Esdo9JMjcFvPv0eioo30GAERaz1hoD7zCMT4jgUFTQwgz
146
+ jw4YcO5u
147
+ =r3UU
148
+ -----END PGP SIGNATURE-----
149
+
150
+ ISO-8859-1`
151
+
152
+ sha := SHA1 {0xfe , 0xaf , 0x4b , 0xa6 , 0xbc , 0x63 , 0x5f , 0xec , 0x44 , 0x2f , 0x46 , 0xdd , 0xd4 , 0x51 , 0x24 , 0x16 , 0xec , 0x43 , 0xc2 , 0xc2 }
153
+ gitRepo , err := openRepositoryWithDefaultContext (filepath .Join (testReposDir , "repo1_bare" ))
154
+ assert .NoError (t , err )
155
+ assert .NotNil (t , gitRepo )
156
+ defer gitRepo .Close ()
157
+
158
+ commitFromReader , err := CommitFromReader (gitRepo , sha , strings .NewReader (commitString ))
159
+ assert .NoError (t , err )
160
+ if ! assert .NotNil (t , commitFromReader ) {
161
+ return
162
+ }
163
+ assert .EqualValues (t , sha , commitFromReader .ID )
164
+ assert .EqualValues (t , `-----BEGIN PGP SIGNATURE-----
165
+
166
+ iQGzBAABCgAdFiEE9HRrbqvYxPT8PXbefPSEkrowAa8FAmYGg7IACgkQfPSEkrow
167
+ Aa9olwv+P0HhtCM6CRvlUmPaqswRsDPNR4i66xyXGiSxdI9V5oJL7HLiQIM7KrFR
168
+ gizKa2COiGtugv8fE+TKqXKaJx6uJUJEjaBd8E9Af9PrAzjWj+A84lU6/PgPS8hq
169
+ zOfZraLOEWRH4tZcS+u2yFLu3ez2Wqh1xW5LNy7xqEedMXEFD1HwSJ0+pjacNkzr
170
+ frp6Asyt7xRI6YmgFJZJoRsS3Ktr6rtKeRL2IErSQQyorOqj6gKrglhrhfG/114j
171
+ FKB1v4or0WZ1DE8iP2SJZ3n+/K1IuWAINh7MVdb7PndfBPEa+IL+ucNk5uzEE8Jd
172
+ G8smGxXUeFEt2cP1dj2W8EgAxuA9sTnH9dqI5aRqy5ifDjuya7Emm8sdOUvtGdmn
173
+ SONRzusmu5n3DgV956REL7x62h7JuqmBz/12HZkr0z0zgXkcZ04q08pSJATX5N1F
174
+ yN+tWxTsWg+zhDk96d5Esdo9JMjcFvPv0eioo30GAERaz1hoD7zCMT4jgUFTQwgz
175
+ jw4YcO5u
176
+ =r3UU
177
+ -----END PGP SIGNATURE-----
178
+ ` , commitFromReader .Signature .Signature )
179
+ assert .EqualValues (t , `tree ca3fad42080dd1a6d291b75acdfc46e5b9b307e5
180
+ parent 47b24e7ab977ed31c5a39989d570847d6d0052af
181
+ author KN4CK3R <[email protected] > 1711702962 +0100
182
+ committer KN4CK3R <[email protected] > 1711702962 +0100
183
+ encoding ISO-8859-1
184
+
185
+ ISO-8859-1` , commitFromReader .Signature .Payload )
186
+ assert .
EqualValues (
t ,
"KN4CK3R <[email protected] >" ,
commitFromReader .
Author .
String ())
187
+
188
+ commitFromReader2 , err := CommitFromReader (gitRepo , sha , strings .NewReader (commitString + "\n \n " ))
189
+ assert .NoError (t , err )
190
+ commitFromReader .CommitMessage += "\n \n "
191
+ commitFromReader .Signature .Payload += "\n \n "
192
+ assert .EqualValues (t , commitFromReader , commitFromReader2 )
193
+ }
194
+
128
195
func TestHasPreviousCommit (t * testing.T ) {
129
196
bareRepo1Path := filepath .Join (testReposDir , "repo1_bare" )
130
197
0 commit comments