forked from nodegit/nodegit
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathCHANGELOG.md
4101 lines (3013 loc) · 263 KB
/
CHANGELOG.md
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
# Change Log
## <a name="v0-28-0-alpha.28" href="#v0-28-0-alpha-28">v0.28.0-alpha.28</a> [(2024-07-01)](https://github.com/nodegit/nodegit/releases/tag/v0.28.0-alpha.28)
[Full Changelog](https://github.com/nodegit/nodegit/compare/v0.28.0-alpha.27...v0.28.0-alpha.28)
#### Summary of changes
- Build on Electron 31+
#### Merged PRs into NodeGit
- [Bump nan again for electron 31](https://github.com/nodegit/nodegit/pull/2000)
## <a name="v0-28-0-alpha.27" href="#v0-28-0-alpha-27">v0.28.0-alpha.27</a> [(2024-06-06)](https://github.com/nodegit/nodegit/releases/tag/v0.28.0-alpha.27)
[Full Changelog](https://github.com/nodegit/nodegit/compare/v0.28.0-alpha.26...v0.28.0-alpha.27)
#### Summary of changes
- Build on Electron 29+
#### Merged PRs into NodeGit
- [Fix build failure on electron 29+](https://github.com/nodegit/nodegit/pull/1998)
## <a name="v0-28-0-alpha.26" href="#v0-28-0-alpha-26">v0.28.0-alpha.26</a> [(2024-04-19)](https://github.com/nodegit/nodegit/releases/tag/v0.28.0-alpha.26)
[Full Changelog](https://github.com/nodegit/nodegit/compare/v0.28.0-alpha.25...v0.28.0-alpha.26)
#### Summary of changes
- Fix use-after-free in getRemotes
#### Merged PRs into NodeGit
- [Fix double-free introduced trying to fix other double-free](https://github.com/nodegit/nodegit/pull/1996)
## <a name="v0-28-0-alpha.25" href="#v0-28-0-alpha-25">v0.28.0-alpha.25</a> [(2024-04-15)](https://github.com/nodegit/nodegit/releases/tag/v0.28.0-alpha.25)
[Full Changelog](https://github.com/nodegit/nodegit/compare/v0.28.0-alpha.24...v0.28.0-alpha.25)
#### Summary of changes
- Fix use-after-free in getReferences
#### Merged PRs into NodeGit
- [Don't free the given repo on error in getReferences and getRemotes](https://github.com/nodegit/nodegit/pull/1995)
## <a name="v0-28-0-alpha.24" href="#v0-28-0-alpha-24">v0.28.0-alpha.24</a> [(2024-02-20)](https://github.com/nodegit/nodegit/releases/tag/v0.28.0-alpha.24)
[Full Changelog](https://github.com/nodegit/nodegit/compare/v0.28.0-alpha.23...v0.28.0-alpha.24)
#### Summary of changes
- Use Collision Detection SHA1 implementation
- Fix win32 Electron build due to incorrect OpenSSL include path
#### Merged PRs into NodeGit
- [Use builtin SHA1 for libgit compilation](https://github.com/nodegit/nodegit/pull/1992)
- [Ensure OpenSSL root included in win32 Electron builds](https://github.com/nodegit/nodegit/pull/1991)
## <a name="v0-28-0-alpha.23" href="#v0-28-0-alpha-23">v0.28.0-alpha.23</a> [(2024-02-14)](https://github.com/nodegit/nodegit/releases/tag/v0.28.0-alpha.23)
[Full Changelog](https://github.com/nodegit/nodegit/compare/v0.28.0-alpha.22...v0.28.0-alpha.23)
#### Summary of changes
- Bump libgit2 to 1.7.2
#### Merged PRs into NodeGit
- [Bump libgit2 to 1.7.2](https://github.com/nodegit/nodegit/pull/1990)
## <a name="v0-28-0-alpha.22" href="#v0-28-0-alpha-22">v0.28.0-alpha.22</a> [(2024-02-05)](https://github.com/nodegit/nodegit/releases/tag/v0.28.0-alpha.22)
[Full Changelog](https://github.com/nodegit/nodegit/compare/v0.28.0-alpha.21...v0.28.0-alpha.22)
#### Summary of changes
- Compatibility with Electron 28
- NodeGit now requires Node 16+
#### Merged PRs into NodeGit
- [Fix electron 28 build failure](https://github.com/nodegit/nodegit/pull/1988)
- [Bump node-gyp to 10.0.1](https://github.com/nodegit/nodegit/pull/1989)
## <a name="v0-28-0-alpha.21" href="#v0-28-0-alpha-21">v0.28.0-alpha.21</a> [(2023-02-10)](https://github.com/nodegit/nodegit/releases/tag/v0.28.0-alpha.21)
[Full Changelog](https://github.com/nodegit/nodegit/compare/v0.28.0-alpha.20...v0.28.0-alpha.21)
#### Summary of changes
- Update OpenSSL to 1.1.1t
- Update got + other packages with security vulnerabilities
- Fix tag.createWithSignature function definition
#### Merged PRs into NodeGit
- [Bump OpenSSL to 1.1.1t](https://github.com/nodegit/nodegit/pull/1971)
- [Update got + other locked package versions](https://github.com/nodegit/nodegit/pull/1969)
- [Fix tag createWithSignature function](https://github.com/nodegit/nodegit/pull/1945)
## <a name="v0-28-0-alpha.20" href="#v0-28-0-alpha-20">v0.28.0-alpha.20</a> [(2022-11-11)](https://github.com/nodegit/nodegit/releases/tag/v0.28.0-alpha.20)
[Full Changelog](https://github.com/nodegit/nodegit/compare/v0.28.0-alpha.19...v0.28.0-alpha.20)
#### Summary of changes
- Fix electron build issues
#### Merged PRs into NodeGit
- [Fix electron build issues](https://github.com/nodegit/nodegit/pull/1955)
## <a name="v0-28-0-alpha.19" href="#v0-28-0-alpha-19">v0.28.0-alpha.19</a> [(2022-11-08)](https://github.com/nodegit/nodegit/releases/tag/v0.28.0-alpha.19)
[Full Changelog](https://github.com/nodegit/nodegit/compare/v0.28.0-alpha.18...v0.28.0-alpha.19)
#### Summary of changes
- OpenSSL bump
- OpenSSL binaries will be automatically downloaded when building for Electron on Windows and macOS
- Crash fix on Electron 18+ due to Nan bug
- Partial stash support
#### Merged PRs into NodeGit
- [Allow overriding C++ standard](https://github.com/nodegit/nodegit/pull/1953)
- [Bump OpenSSL to 1.1.1s](https://github.com/nodegit/nodegit/pull/1952)
- [Fix intermittent crash on Electron 18+](https://github.com/nodegit/nodegit/pull/1951)
- [type is a call](https://github.com/nodegit/nodegit/pull/1942)
- [Fix leak in agent](https://github.com/nodegit/nodegit/pull/1947)
- [Default to using precompiled OpenSSL for Electron](https://github.com/nodegit/nodegit/pull/1949)
- [Partial stash support](https://github.com/nodegit/nodegit/pull/1948)
- [Switch CI to macOS-11](https://github.com/nodegit/nodegit/pull/1950)
- [Preemptively Patch OpenSSL 1.1.1q](https://github.com/nodegit/nodegit/pull/1928)
- [Add getAllFilepaths function in tree object](https://github.com/nodegit/nodegit/pull/1919)
## <a name="v0-28-0-alpha.18" href="#v0-28-0-alpha-18">v0.28.0-alpha.18</a> [(2022-05-27)](https://github.com/nodegit/nodegit/releases/tag/v0.28.0-alpha.18)
[Full Changelog](https://github.com/nodegit/nodegit/compare/v0.28.0-alpha.17...v0.28.0-alpha.18)
#### Summary of changes
- Allow fetching partial patches from diff
- Fix nanosecond comparison typo
#### Merged PRs into NodeGit
- [Improve Diff.patches to allow an index array](https://github.com/nodegit/nodegit/pull/1916)
- [Bring in GIT_USE_NSEC fix](https://github.com/nodegit/nodegit/pull/1917)
## <a name="v0-28-0-alpha.17" href="#v0-28-0-alpha-17">v0.28.0-alpha.17</a> [(2022-05-24)](https://github.com/nodegit/nodegit/releases/tag/v0.28.0-alpha.17)
[Full Changelog](https://github.com/nodegit/nodegit/compare/v0.28.0-alpha.16...v0.28.0-alpha.17)
#### Summary of changes
- Enable nanosecond precision for file operations
#### Merged PRs into NodeGit
- [Enable GIT_USE_NSEC](https://github.com/nodegit/nodegit/pull/1912)
## <a name="v0-28-0-alpha.16" href="#v0-28-0-alpha-16">v0.28.0-alpha.16</a> [(2022-05-09)](https://github.com/nodegit/nodegit/releases/tag/v0.28.0-alpha.16)
[Full Changelog](https://github.com/nodegit/nodegit/compare/v0.28.0-alpha.15...v0.28.0-alpha.16)
#### Summary of changes
- Allow disabling specific filters during checkout
#### Merged PRs into NodeGit
- [Allow disabling specific filters during checkout](https://github.com/nodegit/nodegit/pull/1911)
## <a name="v0-28-0-alpha.15" href="#v0-28-0-alpha-15">v0.28.0-alpha.15</a> [(2022-05-05)](https://github.com/nodegit/nodegit/releases/tag/v0.28.0-alpha.15)
[Full Changelog](https://github.com/nodegit/nodegit/compare/v0.28.0-alpha.14...v0.28.0-alpha.15)
#### Summary of changes
- Expose `GIT_OPT_GET_OWNER_VALIDATION` and `GIT_OPT_SET_OWNER_VALIDATION`
#### Merged PRs into NodeGit
- [Expose get/set owner validation opts](https://github.com/nodegit/nodegit/pull/1910)
## <a name="v0-28-0-alpha.14" href="#v0-28-0-alpha-14">v0.28.0-alpha.14</a> [(2022-05-02)](https://github.com/nodegit/nodegit/releases/tag/v0.28.0-alpha.14)
[Full Changelog](https://github.com/nodegit/nodegit/compare/v0.28.0-alpha.13...v0.28.0-alpha.14)
#### Summary of changes
- Allow statically linking OpenSSL on Linux
- Update libgit2 to 1.3.1
#### Merged PRs into NodeGit
- [Statically compile OpenSSL on linux for electron](https://github.com/nodegit/nodegit/pull/1905)
- [Upgrade libgit2 to 1.3.1](https://github.com/nodegit/nodegit/pull/1894)
## <a name="v0-28-0-alpha.13" href="#v0-28-0-alpha-13">v0.28.0-alpha.13</a> [(2022-03-22)](https://github.com/nodegit/nodegit/releases/tag/v0.28.0-alpha.13)
[Full Changelog](https://github.com/nodegit/nodegit/compare/v0.28.0-alpha.12...v0.28.0-alpha.13)
#### Summary of changes
- Partially fix issue with building for Electron
#### Merged PRs into NodeGit
- [Fix electron build](https://github.com/nodegit/nodegit/pull/1901)
## <a name="v0-28-0-alpha.12" href="#v0-28-0-alpha-12">v0.28.0-alpha.12</a> [(2022-03-18)](https://github.com/nodegit/nodegit/releases/tag/v0.28.0-alpha.12)
[Full Changelog](https://github.com/nodegit/nodegit/compare/v0.28.0-alpha.11...v0.28.0-alpha.12)
#### Summary of changes
- Updated CI because of GitHub deprecations
- Added workaround for LFS performance regression
#### Merged PRs into NodeGit
- [Update windows 2016 CI to 2019](https://github.com/nodegit/nodegit/pull/1897)
- [Skip "can clone with git" test, unauthenticated git protocol is no longer supported in Github](https://github.com/nodegit/nodegit/pull/1899)
- [UNSAFE Temporary workaround for LFS checkout performance regression](https://github.com/nodegit/nodegit/pull/1883)
- [Update Github Actions for node 16](https://github.com/nodegit/nodegit/pull/1896)
## <a name="v0-28-0-alpha.11" href="#v0-28-0-alpha-11">v0.28.0-alpha.11</a> [(2022-02-08)](https://github.com/nodegit/nodegit/releases/tag/v0.28.0-alpha.11)
[Full Changelog](https://github.com/nodegit/nodegit/compare/v0.28.0-alpha.10...v0.28.0-alpha.11)
#### Summary of changes
- Updated libssh2 to add RSA SHA2 256/512 SSH key support
#### Merged PRs into NodeGit
- [RSA SHA2 256/512 key upgrade support RFC 8332 #536 (#626)](https://github.com/nodegit/nodegit/pull/1888)
- [Fix typos in examples](https://github.com/nodegit/nodegit/pull/1884)
- [Don't build shared OpenSSL libs](https://github.com/nodegit/nodegit/pull/1877)
## <a name="v0-28-0-alpha.10" href="#v0-28-0-alpha-10">v0.28.0-alpha.10</a> [(2021-11-11)](https://github.com/nodegit/nodegit/releases/tag/v0.28.0-alpha.10)
[Full Changelog](https://github.com/nodegit/nodegit/compare/v0.28.0-alpha.9...v0.28.0-alpha.10)
#### Summary of changes
- Reworked CI due to GitHub dropping Ubuntu 16.04 support
- When building for Electron on Windows/macOS and prebuilts are unavailable: NodeGit will attempt to build OpenSSL locally by default. This is due to Conan changing their API/provided OpenSSL binaries. There are options for pointing to an installed OpenSSL location or URL for downloading prebuilt binaries, see [Building from source](http://www.nodegit.org/guides/install/from-source/).
- Updated OpenSSL to 1.1.1l
- Updated libssh2 to 1.10.0
- Added `Repo.prototype.statistics` method for calculating repository statistics
- More progress towards becoming context-aware
#### Merged PRs into NodeGit
- [Allow download of prebuilt OpenSSL](https://github.com/nodegit/nodegit/pull/1875)
- [Update libssh2 to 1.10.0](https://github.com/nodegit/nodegit/pull/1874)
- [Statistics with same output as "git-sizer -j"](https://github.com/nodegit/nodegit/pull/1846)
- [Fix memory leak on context shutdown](https://github.com/nodegit/nodegit/pull/1856)
- [Build OpenSSL locally for Electron](https://github.com/nodegit/nodegit/pull/1870)
- [Fix a reference error when compiling with VC2019](https://github.com/nodegit/nodegit/pull/1859)
- [Use containers for Linux CI](https://github.com/nodegit/nodegit/pull/1860)
## <a name="v0-28-0-alpha.9" href="#v0-28-0-alpha-9">v0.28.0-alpha.9</a> [(2021-06-04)](https://github.com/nodegit/nodegit/releases/tag/v0.28.0-alpha.9)
[Full Changelog](https://github.com/nodegit/nodegit/compare/v0.28.0-alpha.8...v0.28.0-alpha.9)
#### Summary of changes
- Fixes an issue where rebase.init and rebase.open were ignoring callbacks in some situations
#### Merged PRs into NodeGit
- [Shallow clone rebase options before modifying #1845](https://github.com/nodegit/nodegit/pull/1845)
## <a name="v0-28-0-alpha.8" href="#v0-28-0-alpha-8">v0.28.0-alpha.8</a> [(2021-05-10)](https://github.com/nodegit/nodegit/releases/tag/v0.28.0-alpha.8)
[Full Changelog](https://github.com/nodegit/nodegit/compare/v0.28.0-alpha.7...v0.28.0-alpha.8)
#### Summary of changes
- Fixes another issue where Kerberos proxy authentication causes network failures
#### Merged PRs into NodeGit
- [Bump libgit2 to include libgit2#5852 #1844](https://github.com/nodegit/nodegit/pull/1844)
#### Merged PRs into Libgit2
- [Fix issues with Proxy Authentication after httpclient refactor #5852](https://github.com/libgit2/libgit2/pull/5852)
## <a name="v0-28-0-alpha.7" href="#v0-28-0-alpha-7">v0.28.0-alpha.7</a> [(2021-04-30)](https://github.com/nodegit/nodegit/releases/tag/v0.28.0-alpha.7)
[Full Changelog](https://github.com/nodegit/nodegit/compare/v0.28.0-alpha.6...v0.28.0-alpha.7)
#### Summary of changes
- Fixes issue with where proxy authentication fails on linux/osx with assertion error.
#### Merged PRs into NodeGit
- [Bump Libgit2 to fix proxy auth on linux / osx #1841](https://github.com/nodegit/nodegit/pull/1841)
#### Merged PRs into Libgit2
- [https://github.com/libgit2/libgit2/pull/5852](https://github.com/libgit2/libgit2/pull/5852)
## <a name="v0-28-0-alpha.6" href="#v0-28-0-alpha-6">v0.28.0-alpha.6</a> [(2021-04-23)](https://github.com/nodegit/nodegit/releases/tag/v0.28.0-alpha.6)
[Full Changelog](https://github.com/nodegit/nodegit/compare/v0.28.0-alpha.5...v0.28.0-alpha.6)
#### Summary of changes
- Rewrote options normalization such that it is done in C++. Provided deprecated classes for backwards compatibility. These will be removed in a later version of Nodegit.
- Deprecated construction of these objects, in the future, please pass plain objects with just the fields you wish to override to NodeGit, and the library will take care of the rest.
- NodeGit.ApplyOptions
- NodeGit.BlameOptions
- NodeGit.BlobFilterOptions
- NodeGit.CheckoutOptions
- NodeGit.CherrypickOptions
- NodeGit.CloneOptions
- NodeGit.DescribeFormatOptions
- NodeGit.DiffFindOptions
- NodeGit.FetchOptions
- NodeGit.MergeFileInput
- NodeGit.MergeFileOptions
- NodeGit.MergeOptions
- NodeGit.ProxyOptions
- NodeGit.PushOptions
- NodeGit.RebaseOptions
- NodeGit.RemoteCreatOptions
- NodeGit.RepositoryInitOptions
- NodeGit.RevertOptions
- NodeGit.StashApplyOptions
- NodeGit.StatusOptions
- NodeGit.SubmoduleUpdateOptions
- Ensured the following functions have their optional arguments labeled/working as optional:
- NodeGit.Apply
- NodeGit.Checkout.index
- NodeGit.Cherrypick
- NodeGit.Cherrypick.commit
- NodeGit.Merge
- NodeGit.PatchBlobs
- NodeGit.Rebase.open
- NodeGit.Remote.prototype.connect
- NodeGit.Remote.prototype.download
- NodeGit.Remote.prototype.fetch
- NodeGit.Remote.prototype.prune
- NodeGit.Remote.prototype.push
- NodeGit.Remote.prototype.upload
- NodeGit.Stash.apply
- NodeGit.Stash.pop
- NodeGit.Worktree.isPrunable
- NodeGit.Worktree.prune
- Updated the following functions to be async:
- NodeGit.Apply
- NodeGit.Remote.prototype.prune
- NodeGit.Worktree.isPrunable
- NodeGit.Worktree.prune
- Addressed issue where GitWorktreePruneOptions and GitWorktreeAddOptions were impossible to instantiate, thus making working with worktress possible now.
- Addressed issue where GitIndexTime was not configurable
- Addressed issue where the following functions did not return errors from libgit2:
- NodeGit.Merge.analysis
- NodeGit.Note.commitRemove
#### Merged PRs into NodeGit
- [Eliminate need for normalize options #1837](https://github.com/nodegit/nodegit/pull/1837)
- [Define optional arguments for Patch.fromBlobs() #1835](https://github.com/nodegit/nodegit/pull/1835)
## <a name="v0-28-0-alpha.5" href="#v0-28-0-alpha-5">v0.28.0-alpha.5</a> [(2021-04-09)](https://github.com/nodegit/nodegit/releases/tag/v0.28.0-alpha.5)
[Full Changelog](https://github.com/nodegit/nodegit/compare/v0.28.0-alpha.4...v0.28.0-alpha.5)
#### Summary of changes
- Fixes crash in multithreaded checkout in fork of libgit2
#### Merged PRs into NodeGit
- [Update multithreaded checkout in libgit2 #1834](https://github.com/nodegit/nodegit/pull/1834)
#### Merged PRs into Libgit2
- [Default to GIT_BRANCH_DEFAULT if init.defaultBranch is empty string](https://github.com/libgit2/libgit2/pull/5832)
- [Remove duplicate line, in example code](https://github.com/libgit2/libgit2/pull/5821)
## <a name="v0-28-0-alpha.4" href="#v0-28-0-alpha-4">v0.28.0-alpha.4</a> [(2021-04-07)](https://github.com/nodegit/nodegit/releases/tag/v0.28.0-alpha.4)
[Full Changelog](https://github.com/nodegit/nodegit/compare/v0.28.0-alpha.3...v0.28.0-alpha.4)
#### Summary of changes
- Introduces harder safeguards on persistent references to prevent garbage collection during async work
#### Merged PRs into NodeGit
- [Workaround: Prevent objectwrap from being cleaned up during async work #1833](https://github.com/nodegit/nodegit/pull/1833)
## <a name="v0-28-0-alpha.3" href="#v0-28-0-alpha-3">v0.28.0-alpha.3</a> [(2021-04-02)](https://github.com/nodegit/nodegit/releases/tag/v0.28.0-alpha.3)
[Full Changelog](https://github.com/nodegit/nodegit/compare/v0.28.0-alpha.2...v0.28.0-alpha.3)
#### Summary of changes
- Addresses failure to open repo with empty default branch name
#### Merged PRs into NodeGit
- [Bring in changes from libgit2 #5832 #1832](https://github.com/nodegit/nodegit/pull/1832)
#### Cherrypicked PRs into Libgit2
- [Default to GIT_BRANCH_DEFAULT if init.defaultBranch is empty string #5832](https://github.com/libgit2/libgit2/pull/5832)
## <a name="v0-28-0-alpha.2" href="#v0-28-0-alpha-2">v0.28.0-alpha.2</a> [(2021-03-31)](https://github.com/nodegit/nodegit/releases/tag/v0.28.0-alpha.2)
[Full Changelog](https://github.com/nodegit/nodegit/compare/v0.28.0-alpha.1...v0.28.0-alpha.2)
#### Summary of changes
- Addresses crash in mwindow from libgit2
- Bumps libgit2 to bring in bug fixes
#### Merged PRs into NodeGit
- [Bump Libgit2 to 1.1.0 (on current head of libgit2) #1831](https://github.com/nodegit/nodegit/pull/1831)
#### Merged PRs into Libgit2
- [tree: deprecate `git_treebuilder_write_with_buffer`](https://github.com/libgit2/libgit2/pull/5815)
- [winhttp: skip certificate check if unable to send request](https://github.com/libgit2/libgit2/pull/5814)
- [commit-graph: Introduce `git_commit_graph_needs_refresh()`](https://github.com/libgit2/libgit2/pull/5764)
- [commit-graph: Support lookups of entries in a commit-graph](https://github.com/libgit2/libgit2/pull/5763)
- [merge: Check insert_head_ids error in create_virtual_base](https://github.com/libgit2/libgit2/pull/5818)
- [Check git_signature_dup failure](https://github.com/libgit2/libgit2/pull/5817)
- [Fix some typos](https://github.com/libgit2/libgit2/pull/5797)
- [include: fix typos in comments](https://github.com/libgit2/libgit2/pull/5805)
- [Fix documentation formating on repository.h](https://github.com/libgit2/libgit2/pull/5806)
- [index: Check git_vector_dup error in write_entries](https://github.com/libgit2/libgit2/pull/5801)
- [refdb_fs: Check git_sortedcache wlock/rlock errors](https://github.com/libgit2/libgit2/pull/5800)
- [Add new bindings for the R language](https://github.com/libgit2/libgit2/pull/5795)
- [Update .gitignore](https://github.com/libgit2/libgit2/pull/5787)
- [patch: add owner accessor](https://github.com/libgit2/libgit2/pull/5731)
- [commit-graph: Introduce a parser for commit-graph files](https://github.com/libgit2/libgit2/pull/5762)
- [revspec: rename git_revparse_mode_t to git_revspec_t](https://github.com/libgit2/libgit2/pull/5786)
- [mwindow: Fix a bug in the LRU window finding code](https://github.com/libgit2/libgit2/pull/5783)
- [ci: don't use ninja on macOS](https://github.com/libgit2/libgit2/pull/5780)
- [midx: Fix a bug in `git_midx_needs_refresh()`](https://github.com/libgit2/libgit2/pull/5768)
- [clone: set refs/remotes/origin/HEAD when branch is specified](https://github.com/libgit2/libgit2/pull/5775)
- [Use `p_pwrite`/`p_pread` consistently throughout the codebase](https://github.com/libgit2/libgit2/pull/5769)
- [README: instructions for using libgit2 without compiling](https://github.com/libgit2/libgit2/pull/5772)
- [Cope with empty default branch](https://github.com/libgit2/libgit2/pull/5770)
- [github-actions: Also rename the main branch here](https://github.com/libgit2/libgit2/pull/5771)
- [blob: fix name of `GIT_BLOB_FILTER_ATTRIBUTES_FROM_HEAD`](https://github.com/libgit2/libgit2/pull/5760)
- [Add documentation for git_blob_filter_options.version](https://github.com/libgit2/libgit2/pull/5759)
- [Build with NO_MMAP](https://github.com/libgit2/libgit2/pull/5583)
- [zlib: Add support for building with Chromium's zlib implementation](https://github.com/libgit2/libgit2/pull/5748)
- [Handle ipv6 addresses](https://github.com/libgit2/libgit2/pull/5741)
- [Add support for additional SSH hostkey types.](https://github.com/libgit2/libgit2/pull/5750)
- [Fix the `-DENABLE_WERROR=ON` build for gcc 10.2](https://github.com/libgit2/libgit2/pull/5749)
- [repository: use intptr_t's in the config map cache](https://github.com/libgit2/libgit2/pull/5746)
- [Add tests for `git__multiply_int64_overflow`](https://github.com/libgit2/libgit2/pull/5744)
- [Third attempt to fix the 32-bit version of `git__multiply_int64_overf…](https://github.com/libgit2/libgit2/pull/5743)
- [Avoid using `__builtin_mul_overflow` with the clang+32-bit combo](https://github.com/libgit2/libgit2/pull/5742)
- [ci: run codeql](https://github.com/libgit2/libgit2/pull/5709)
- [pack: continue zlib while we can make progress](https://github.com/libgit2/libgit2/pull/5740)
- [Re-enable the RC4 test](https://github.com/libgit2/libgit2/pull/4418)
- [Cache the parsed submodule config when diffing](https://github.com/libgit2/libgit2/pull/5727)
- [Make git__strntol64() ~70%* faster](https://github.com/libgit2/libgit2/pull/5735)
- [winhttp: support optional client cert](https://github.com/libgit2/libgit2/pull/5384)
- [git.git-authors: Replacing his/her with their](https://github.com/libgit2/libgit2/pull/5724)
- [Friendlier getting started in the lack of git_libgit2_init](https://github.com/libgit2/libgit2/pull/5578)
- [Thread-local storage: a generic internal library (with no allocations)](https://github.com/libgit2/libgit2/pull/5720)
- [Thread-free implementation](https://github.com/libgit2/libgit2/pull/5719)
- [Make the pack and mwindow implementations data-race-free](https://github.com/libgit2/libgit2/pull/5593)
- [Make the odb race-free](https://github.com/libgit2/libgit2/pull/5595)
- [Also add the raw hostkey to `git_cert_hostkey`](https://github.com/libgit2/libgit2/pull/5704)
- [Fix the `ENABLE_WERROR=ON` build in Groovy Gorilla (gcc 10.2)](https://github.com/libgit2/libgit2/pull/5715)
- [odb: Add git_odb_options](https://github.com/libgit2/libgit2/pull/5447)
- [Introduce GIT_ASSERT macros](https://github.com/libgit2/libgit2/pull/5327)
- [ci: only report main branch in README status](https://github.com/libgit2/libgit2/pull/5708)
- [ci: run coverity in the nightly builds](https://github.com/libgit2/libgit2/pull/5707)
- [ci: more GitHub Actions](https://github.com/libgit2/libgit2/pull/5706)
- [Add a ThreadSanitizer build](https://github.com/libgit2/libgit2/pull/5597)
- [msvc crtdbg -> win32 leakcheck](https://github.com/libgit2/libgit2/pull/5580)
- [Add missing worktree_dir check and test case](https://github.com/libgit2/libgit2/pull/5692)
- [Fix the `-DTHREADSAFE=OFF` build](https://github.com/libgit2/libgit2/pull/5690)
- [ci: propagate environment variables](https://github.com/libgit2/libgit2/pull/5703)
- [ci: supply a token for self-hosted runners](https://github.com/libgit2/libgit2/pull/5702)
- [ci: supply a token for self-hosted runners](https://github.com/libgit2/libgit2/pull/5701)
- [ci: GitHub Actions for arm64](https://github.com/libgit2/libgit2/pull/5700)
- [ci: stop using deprecated set-env in GitHub Actions](https://github.com/libgit2/libgit2/pull/5697)
- [Deprecate `is_valid_name` functions; replace with `name_is_valid` functions](https://github.com/libgit2/libgit2/pull/5659)
- [Include `${MBEDTLS_INCLUDE_DIR}` when compiling `crypt_mbedtls.c`](https://github.com/libgit2/libgit2/pull/5685)
- [threadstate: rename tlsdata when building w/o threads](https://github.com/libgit2/libgit2/pull/5668)
- [Refactor "global" state](https://github.com/libgit2/libgit2/pull/5546)
- [Make the Windows leak detection more robust](https://github.com/libgit2/libgit2/pull/5661)
- [Define `git___load` when building with `-DTHREADSAFE=OFF`](https://github.com/libgit2/libgit2/pull/5664)
- [ntlm: update ntlm dependency for htonll](https://github.com/libgit2/libgit2/pull/5658)
- [libgit2 v1.1.0](https://github.com/libgit2/libgit2/pull/5660)
- [Update PCRE to 8.44](https://github.com/libgit2/libgit2/pull/5649)
- [clone: update origin's HEAD](https://github.com/libgit2/libgit2/pull/5651)
- [Improve the support of atomics](https://github.com/libgit2/libgit2/pull/5594)
- [Fix error return for invalid extensions.](https://github.com/libgit2/libgit2/pull/5656)
- [Change bare free to allocator free (fixes #5653)](https://github.com/libgit2/libgit2/pull/5654)
- [midx: Introduce a parser for multi-pack-index files](https://github.com/libgit2/libgit2/pull/5401)
- [Fixed typo in comment](https://github.com/libgit2/libgit2/pull/5648)
- [Fix binary diff showing /dev/null](https://github.com/libgit2/libgit2/pull/5494)
- [httpclient: only free challenges for current_server type](https://github.com/libgit2/libgit2/pull/5576)
- [Respect `init.defaultBranch` setting](https://github.com/libgit2/libgit2/pull/5581)
- [patch_parse: handle absence of "index" header for new/deleted cases](https://github.com/libgit2/libgit2/pull/5620)
- [boolean config parsing fails in some cases with mapped values](https://github.com/libgit2/libgit2/pull/5626)
- [Fix config file parsing with multi line values containing quoted parts](https://github.com/libgit2/libgit2/pull/5629)
- [Fix release build warnings](https://github.com/libgit2/libgit2/pull/5636)
- [Fix deprecation links inside of documentation not working](https://github.com/libgit2/libgit2/pull/5631)
- [Fix typo: Make ifndef macroname the same as the define name](https://github.com/libgit2/libgit2/pull/5632)
- [diff stats: fix segfaults with new files](https://github.com/libgit2/libgit2/pull/5619)
- [WinHTTP: Try to use TLS1.3](https://github.com/libgit2/libgit2/pull/5633)
- [Fixed includes for FreeBSD](https://github.com/libgit2/libgit2/pull/5628)
- [Don't fail if a HTTP server announces he supports a protocol upgrade](https://github.com/libgit2/libgit2/pull/5624)
- [Return false instead of segfaulting when checking for default port](https://github.com/libgit2/libgit2/pull/5621)
- [deps: ntlmclient: fix htonll for Haiku](https://github.com/libgit2/libgit2/pull/5612)
- [azure: Remove job generating documentation](https://github.com/libgit2/libgit2/pull/5615)
- [Fix crash in git_describe_commit when opts are NULL.](https://github.com/libgit2/libgit2/pull/5617)
- [Fix `git_mwindow_scan_recently_used` spuriously returning true](https://github.com/libgit2/libgit2/pull/5600)
- [zstream: handle Z_BUF_ERROR appropriately in get_output_chunk](https://github.com/libgit2/libgit2/pull/5599)
- [docs: fix typo](https://github.com/libgit2/libgit2/pull/5610)
## <a name="v0-28-0-alpha.1" href="#v0-28-0-alpha-1">v0.28.0-alpha.1</a> [(2021-03-12)](https://github.com/nodegit/nodegit/releases/tag/v0.28.0-alpha.1)
[Full Changelog](https://github.com/nodegit/nodegit/compare/v0.27.0...v0.28.0-alpha.1)
#### Summary of changes
- *Notice* We planned to fix / address Electron 11 compatibility, but ran into some roadblocks. Fix is coming soon, follow [#114](https://github.com/nodegit/nodegit/issues/1774) for details
- Drops support for Node 10.x.y, < 12.19.x, < 14.10.0
- Brings in LibGit2 1.0.0
- NodeGit.Config.prototype.setBool handles truthiness, and NodeGit.Config.prototype.getBool returns true or false
- Fix GC ownership memory issue
- Exposes sidebandProgress callback in GitRemoteCallbacks
- Fixes issue with winhttp and optional client certificates
- Addresses proxy issue with certification validation in Windows
- Fix crash in NodeGit.Repository.prototype.refreshReferences
- Deprecations
- NodeGit.Cred is deprecated in favor of NodeGit.Credential
#### Merged PRs into NodeGit
- [Include libgit2 winhttp proxy fix #1824](https://github.com/nodegit/nodegit/pull/1824)
- [Return/accept boolean for Config#get/setBool #1827](https://github.com/nodegit/nodegit/pull/1827)
- [First stab at #1800 (async/await in examples) #1802](https://github.com/nodegit/nodegit/pull/1802)
- [returns_info: fix ownedByIndices #1823](https://github.com/nodegit/nodegit/pull/1823)
- [Remove block for sideband_progress in remote_callbacks #1801](https://github.com/nodegit/nodegit/pull/1801)
- [Use key to grab credential type #1828](https://github.com/nodegit/nodegit/pull/1828)
- [Don't strdup nullptr from git_tag_message #1822](https://github.com/nodegit/nodegit/pull/1822)
- [Refactor for context-awareness #1795](https://github.com/nodegit/nodegit/pull/1795)
- [Update longpath enums to match libgit2 #1797](https://github.com/nodegit/nodegit/pull/1797)
- [Bump libgit2 to fork of v1.0.0 #1788](https://github.com/nodegit/nodegit/pull/1788)
#### Merged PRs into Libgit2
- [winhttp: skip certificate check if unable to send request #5814](https://github.com/libgit2/libgit2/pull/5814)
- [sanitizer ci: skip negotiate tests](https://github.com/libgit2/libgit2/pull/5596)
- [Add CI support for Memory and UndefinedBehavior Sanitizers](https://github.com/libgit2/libgit2/pull/5569)
- [Access HEAD via the refdb backends](https://github.com/libgit2/libgit2/pull/5563)
- [config_entries: Avoid excessive map operations](https://github.com/libgit2/libgit2/pull/5582)
- [mwindow: set limit on number of open files](https://github.com/libgit2/libgit2/pull/5396)
- [refdb: a set of preliminary refactorings for the reftable backend](https://github.com/libgit2/libgit2/pull/5570)
- [CMake modernization pt2](https://github.com/libgit2/libgit2/pull/5547)
- [Make the tests run cleanly under UndefinedBehaviorSanitizer](https://github.com/libgit2/libgit2/pull/5568)
- [Make the tests pass cleanly with MemorySanitizer](https://github.com/libgit2/libgit2/pull/5567)
- [Enable building git2.rc resource script with GCC](https://github.com/libgit2/libgit2/pull/5561)
- [Make NTLMClient Memory and UndefinedBehavior Sanitizer-clean](https://github.com/libgit2/libgit2/pull/5571)
- [Random fixes for diff-printing](https://github.com/libgit2/libgit2/pull/5559)
- [index: Update the documentation for git_index_add_from_buffer()](https://github.com/libgit2/libgit2/pull/5419)
- [Introduce CI with GitHub Actions](https://github.com/libgit2/libgit2/pull/5550)
- [Random code cleanups and fixes](https://github.com/libgit2/libgit2/pull/5552)
- [examples: log: fix documentation generation](https://github.com/libgit2/libgit2/pull/5553)
- [Missing declarations](https://github.com/libgit2/libgit2/pull/5551)
- [clar: add tap output option](https://github.com/libgit2/libgit2/pull/5541)
- [diff::parse: don't include `diff.h`](https://github.com/libgit2/libgit2/pull/5545)
- [release script: fix typo](https://github.com/libgit2/libgit2/pull/5543)
- [tests: offer exact name matching with a `$` suffix](https://github.com/libgit2/libgit2/pull/5537)
- [httpclient: support googlesource](https://github.com/libgit2/libgit2/pull/5536)
- [git_packbuilder_write: Allow setting path to NULL to use the default path](https://github.com/libgit2/libgit2/pull/5532)
- [mempack: Use threads when building the pack](https://github.com/libgit2/libgit2/pull/5531)
- [clar: use internal functions instead of /bin/cp and /bin/rm](https://github.com/libgit2/libgit2/pull/5528)
- [strarray refactoring](https://github.com/libgit2/libgit2/pull/5535)
- [CMake cleanups](https://github.com/libgit2/libgit2/pull/5481)
- [git_pool_init: allow the function to fail](https://github.com/libgit2/libgit2/pull/5526)
- [diff::workdir: actually test the buffers](https://github.com/libgit2/libgit2/pull/5529)
- [Handle unreadable configuration files](https://github.com/libgit2/libgit2/pull/5527)
- [Make git_index_write() generate valid v4 index](https://github.com/libgit2/libgit2/pull/5533)
- [OpenSSL certificate memory leak](https://github.com/libgit2/libgit2/pull/5522)
- [tests: checkout: fix flaky test due to mtime race](https://github.com/libgit2/libgit2/pull/5515)
- [cmake: Sort source files for reproducible builds](https://github.com/libgit2/libgit2/pull/5523)
- [futils: fix order of declared parameters for `git_futils_fake_symlink`](https://github.com/libgit2/libgit2/pull/5517)
- [Check the version in package.json](https://github.com/libgit2/libgit2/pull/5516)
- [tests: merge: fix printf formatter on 32 bit arches](https://github.com/libgit2/libgit2/pull/5513)
- [Update package.json](https://github.com/libgit2/libgit2/pull/5511)
- [Introduce GIT_ASSERT macros](https://github.com/libgit2/libgit2/pull/5509)
- [README.md: Add instructions for building in MinGW environment](https://github.com/libgit2/libgit2/pull/5512)
- [Fix uninitialized stack memory and NULL ptr dereference in stash_to_index](https://github.com/libgit2/libgit2/pull/5510)
- [Honor GIT_CHECKOUT_DISABLE_PATHSPEC_MATCH for all checkout types ](https://github.com/libgit2/libgit2/pull/5378)
- [docs: add documentation for our coding style](https://github.com/libgit2/libgit2/pull/5482)
- [MSVC: Enable Control Flow Guard (CFG)](https://github.com/libgit2/libgit2/pull/5500)
- [git__hexdump: better mimic `hexdump -C`](https://github.com/libgit2/libgit2/pull/5431)
- [Feature: Allow blame to ignore whitespace change](https://github.com/libgit2/libgit2/pull/5383)
- [deps: ntlmclient: use htobe64 on NetBSD too](https://github.com/libgit2/libgit2/pull/5487)
- [sysdir: remove unused git_sysdir_get_str](https://github.com/libgit2/libgit2/pull/5485)
- [Fix typo causing removal of symbol 'git_worktree_prune_init_options'](https://github.com/libgit2/libgit2/pull/5483)
- [pack: Improve error handling for get_delta_base()](https://github.com/libgit2/libgit2/pull/5425)
- [repo::open: ensure we can open the repository](https://github.com/libgit2/libgit2/pull/5480)
- [examples: additions and fixes](https://github.com/libgit2/libgit2/pull/5421)
- [merge: cache negative cache results for similarity metrics](https://github.com/libgit2/libgit2/pull/5477)
- [Handle repository format v1](https://github.com/libgit2/libgit2/pull/5388)
- [CMake: backend selection streamlining](https://github.com/libgit2/libgit2/pull/5440)
- [refdb_fs: remove unused header file](https://github.com/libgit2/libgit2/pull/5461)
- [patch: correctly handle mode changes for renames](https://github.com/libgit2/libgit2/pull/5466)
- [gitignore: clean up patterns from old times](https://github.com/libgit2/libgit2/pull/5474)
- [README.md: update build matrix to reflect our latest releases](https://github.com/libgit2/libgit2/pull/5478)
- [Release v1.0](https://github.com/libgit2/libgit2/pull/5471)
- [refdb_backend: improve callback documentation](https://github.com/libgit2/libgit2/pull/5464)
- [credentials: provide backcompat for opaque structs](https://github.com/libgit2/libgit2/pull/5465)
- [Fix segfault when calling git_blame_buffer()](https://github.com/libgit2/libgit2/pull/5445)
- [Fix spelling error](https://github.com/libgit2/libgit2/pull/5463)
- [refdb_fs: initialize backend version](https://github.com/libgit2/libgit2/pull/5456)
- [repository: improve commondir docs](https://github.com/libgit2/libgit2/pull/5444)
- [cmake: use install directories provided via GNUInstallDirs](https://github.com/libgit2/libgit2/pull/5455)
- [azure: fix errors due to curl and removal of old VM images](https://github.com/libgit2/libgit2/pull/5451)
- [win32: don't canonicalize relative paths](https://github.com/libgit2/libgit2/pull/5435)
- [CMake booleans](https://github.com/libgit2/libgit2/pull/5422)
- [Set proper pkg-config dependency for pcre2](https://github.com/libgit2/libgit2/pull/5439)
- [httpclient: use a 16kb read buffer for macOS](https://github.com/libgit2/libgit2/pull/5432)
- [ci: provide globalsign certs for bionic](https://github.com/libgit2/libgit2/pull/5437)
- [deps: ntlmclient: fix htonll on big endian FreeBSD](https://github.com/libgit2/libgit2/pull/5426)
- [azure-pipelines: download GlobalSign's certificate manually](https://github.com/libgit2/libgit2/pull/5433)
- [deps: ntlmclient: fix missing htonll symbols on FreeBSD and SunOS](https://github.com/libgit2/libgit2/pull/5417)
- [README: add language binding link to wasm-git](https://github.com/libgit2/libgit2/pull/5420)
- [Fix #5410: fix installing libgit2.pc in wrong location](https://github.com/libgit2/libgit2/pull/5412)
- [Fix typo on GIT_USE_NEC](https://github.com/libgit2/libgit2/pull/5413)
- [tests: diff: verify that we are able to diff with empty subtrees](https://github.com/libgit2/libgit2/pull/5374)
- [README: update our build matrix to reflect current releases](https://github.com/libgit2/libgit2/pull/5408)
- [azure: docker: set up HOME variable to fix Coverity builds](https://github.com/libgit2/libgit2/pull/5409)
- [sha1_lookup: inline its only function into "pack.c"](https://github.com/libgit2/libgit2/pull/5390)
- [Coverity fixes](https://github.com/libgit2/libgit2/pull/5391)
- [Release 0.99](https://github.com/libgit2/libgit2/pull/5291)
- [Release script](https://github.com/libgit2/libgit2/pull/5372)
- [azure: fix ARM32 builds by replacing gosu(1)](https://github.com/libgit2/libgit2/pull/5406)
- [openssl: fix Valgrind issues in nightly builds](https://github.com/libgit2/libgit2/pull/5398)
- [fuzzers: Fix the documentation](https://github.com/libgit2/libgit2/pull/5400)
- [azure: fix misleading messages printed to stderr being](https://github.com/libgit2/libgit2/pull/5392)
- [tests: iterator: fix iterator expecting too few items](https://github.com/libgit2/libgit2/pull/5393)
- [transports: http: fix custom headers not being applied](https://github.com/libgit2/libgit2/pull/5387)
- [azure: fix Coverity pipeline](https://github.com/libgit2/libgit2/pull/5382)
- [azure: tests: re-run flaky proxy tests](https://github.com/libgit2/libgit2/pull/5381)
- [fetchhead: strip credentials from remote URL](https://github.com/libgit2/libgit2/pull/5373)
- [azure-pipelines: properly expand negotiate passwords](https://github.com/libgit2/libgit2/pull/5375)
- [cred: change enum to git_credential_t and GIT_CREDENTIAL_*](https://github.com/libgit2/libgit2/pull/5336)
- [Update link to libgit2 Julia language binding](https://github.com/libgit2/libgit2/pull/5371)
- [Return int from non-free functions](https://github.com/libgit2/libgit2/pull/5365)
- [HTTP: Support Apache-based servers with Negotiate](https://github.com/libgit2/libgit2/pull/5286)
- [internal types: change enums from `type_t` to `_t`](https://github.com/libgit2/libgit2/pull/5364)
- [merge: Return non-const git_repository from accessor method](https://github.com/libgit2/libgit2/pull/5358)
- [Do not return free'd git_repository object on error](https://github.com/libgit2/libgit2/pull/5361)
- [refs: refuse to delete HEAD](https://github.com/libgit2/libgit2/pull/5360)
- [index: replace map macros with inline functions](https://github.com/libgit2/libgit2/pull/5351)
- [Make type mismatch errors consistent](https://github.com/libgit2/libgit2/pull/5359)
- [win32: fix relative symlinks pointing into dirs](https://github.com/libgit2/libgit2/pull/5355)
- [ntlm: prevent (spurious) compiler warnings](https://github.com/libgit2/libgit2/pull/5354)
- [Adds support for multiple SSH auth mechanisms being used sequentially](https://github.com/libgit2/libgit2/pull/5305)
- [netops: handle intact query parameters in service_suffix removal](https://github.com/libgit2/libgit2/pull/5339)
- [Refactor packfile code to use zstream abstraction](https://github.com/libgit2/libgit2/pull/5340)
- [Fix git_submodule_sync with relative url](https://github.com/libgit2/libgit2/pull/5322)
- [http: avoid generating double slashes in url](https://github.com/libgit2/libgit2/pull/5325)
- [Correct typo in name of referenced parameter](https://github.com/libgit2/libgit2/pull/5348)
- [patch_parse: fix undefined behaviour due to arithmetic on NULL pointers](https://github.com/libgit2/libgit2/pull/5338)
- [smart_pkt: fix overflow resulting in OOB read/write of one byte](https://github.com/libgit2/libgit2/pull/5337)
- [branch: clarify documentation around branches](https://github.com/libgit2/libgit2/pull/5300)
- [examples: checkout: implement guess heuristic for remote branches](https://github.com/libgit2/libgit2/pull/5283)
- [Minor doc improvements](https://github.com/libgit2/libgit2/pull/5320)
- [attr: Update definition of binary macro](https://github.com/libgit2/libgit2/pull/5333)
- [Security fixes for master](https://github.com/libgit2/libgit2/pull/5331)
- [release.md: note that we do two security releases](https://github.com/libgit2/libgit2/pull/5318)
- [MSVC: Fix warning C4133 on x64: "function": Incompatible types - from "unsigned long *" to "size_t *"](https://github.com/libgit2/libgit2/pull/5317)
- [ci: only push docs from the libgit2/libgit2 repo](https://github.com/libgit2/libgit2/pull/5316)
- [global: convert to fiber-local storage to fix exit races](https://github.com/libgit2/libgit2/pull/5314)
- [Fix copy&paste in git_cherrypick_commit docstring](https://github.com/libgit2/libgit2/pull/5315)
- [patch_parse: fix out-of-bounds reads caused by integer underflow](https://github.com/libgit2/libgit2/pull/5312)
- [tests: fix compiler warning if tracing is disabled](https://github.com/libgit2/libgit2/pull/5311)
- [tests: config: only test parsing huge file with GITTEST_INVASIVE_SPEED](https://github.com/libgit2/libgit2/pull/5313)
- [diff: complete support for git patchid](https://github.com/libgit2/libgit2/pull/5306)
- [Memory optimizations for config entries](https://github.com/libgit2/libgit2/pull/5243)
- [ssh: include sha256 host key hash when supported](https://github.com/libgit2/libgit2/pull/5307)
- [Various examples shape-ups](https://github.com/libgit2/libgit2/pull/5272)
- [Improve trace support in tests](https://github.com/libgit2/libgit2/pull/5309)
- [Move `git_off_t` to `git_object_size_t`](https://github.com/libgit2/libgit2/pull/5123)
- [Add compat typdef for git_attr_t](https://github.com/libgit2/libgit2/pull/5310)
- [CI Build Updates](https://github.com/libgit2/libgit2/pull/5308)
- [patch_parse: use paths from "---"/"+++" lines for binary patches](https://github.com/libgit2/libgit2/pull/5303)
- [Follow 308 redirect in WinHTTP transport](https://github.com/libgit2/libgit2/pull/5285)
- [fileops: correct error return on p_lstat failures when mkdir](https://github.com/libgit2/libgit2/pull/5302)
- [config_mem: implement support for snapshots](https://github.com/libgit2/libgit2/pull/5299)
- [patch_parse: fix segfault when header path contains whitespace only](https://github.com/libgit2/libgit2/pull/5298)
- [config_file: fix race when creating an iterator](https://github.com/libgit2/libgit2/pull/5282)
- [Fix crash if snapshotting a config_snapshot](https://github.com/libgit2/libgit2/pull/5293)
- [fix a bug introduced in 8a23597b](https://github.com/libgit2/libgit2/pull/5295)
- [reflogs: fix behaviour around reflogs with newlines](https://github.com/libgit2/libgit2/pull/5275)
- [commit: verify objects exist in git_commit_with_signature](https://github.com/libgit2/libgit2/pull/5289)
- [patch_parse: fixes for fuzzing errors](https://github.com/libgit2/libgit2/pull/5276)
- [apply: add GIT_APPLY_CHECK](https://github.com/libgit2/libgit2/pull/5227)
- [refs: unlock unmodified refs on transaction commit](https://github.com/libgit2/libgit2/pull/5264)
- [fuzzers: add a new fuzzer for patch parsing](https://github.com/libgit2/libgit2/pull/5269)
- [patch_parse: handle patches without extended headers](https://github.com/libgit2/libgit2/pull/5273)
- [Provide a wrapper for simple submodule clone steps](https://github.com/libgit2/libgit2/pull/4637)
- [macOS GSS Support](https://github.com/libgit2/libgit2/pull/5238)
- [cmake: correct the link stanza for CoreFoundation](https://github.com/libgit2/libgit2/pull/5265)
- [Fix file locking on POSIX OS](https://github.com/libgit2/libgit2/pull/5257)
- [cmake: update minimum CMake version to v3.5.1](https://github.com/libgit2/libgit2/pull/5260)
- [patch_parse: handle patches with new empty files](https://github.com/libgit2/libgit2/pull/5248)
- [DRY commit parsing](https://github.com/libgit2/libgit2/pull/4445)
- [azure: avoid building and testing in Docker as root](https://github.com/libgit2/libgit2/pull/5239)
- [regexp: implement a new regular expression API](https://github.com/libgit2/libgit2/pull/5226)
- [git_refdb API fixes](https://github.com/libgit2/libgit2/pull/5106)
- [Don't use enum for flags](https://github.com/libgit2/libgit2/pull/5242)
- [valgrind: suppress memory leaks in libssh2_session_handshake](https://github.com/libgit2/libgit2/pull/5240)
- [buffer: fix writes into out-of-memory buffers](https://github.com/libgit2/libgit2/pull/5232)
- [cred: add missing private header in GSSAPI block](https://github.com/libgit2/libgit2/pull/5237)
- [CMake pkg-config modulification](https://github.com/libgit2/libgit2/pull/5206)
- [Update chat resources in README.md](https://github.com/libgit2/libgit2/pull/5229)
- [Circular header splitting](https://github.com/libgit2/libgit2/pull/5223)
## <a name="v0-27-0" href="#v0-27-0">v0.27.0</a> [(2020-07-28)](https://github.com/nodegit/nodegit/releases/tag/v0.27.0)
[Full Changelog](https://github.com/nodegit/nodegit/compare/v0.26.5...v0.27.0)
#### Summary of changes
- Expose git_remote_rename
- Bump OpenSSL from 1.1.0i -> 1.1.1c in Windows/Mac OS Electron builds
- Replace unmaintained request library with got
- Remove promisify-node and use vanilla promises for all NodeGit promises
- Prebuilds for Node 14, deprecate Node 8
- Persist RemoteCallbacks and ProxyOptions on the remote if using Remote.prototype.connect. This fixes a segfault when using any routines on a connected remote.
####Merged PRs into NodeGit
- [Upgrade build environments #1785](https://github.com/nodegit/nodegit/pull/1785)
- [Remote needs to persist the callback/proxyOpts/headers #1784](https://github.com/nodegit/nodegit/pull/1784)
- [Remove promisify-node and remove old callback api remnants](https://github.com/nodegit/nodegit/pull/1772)
- [Replace deprecated package request with got](https://github.com/nodegit/nodegit/pull/1771)
- [Bump OpenSSL prebuilt to 1.1.1c](https://github.com/nodegit/nodegit/pull/1770)
- [Expose git_remote_rename](https://github.com/nodegit/nodegit/pull/1767)
- [Dedupe Remote.prototype.fetch](https://github.com/nodegit/nodegit/pull/1766)
## <a name="v0-27-0-alpha-1" href="#v0-27-0-alpha-1">v0.27.0-alpha.1</a> [(2020-03-26)](https://github.com/nodegit/nodegit/releases/tag/v0.27.0-alpha.1)
[Full Changelog](https://github.com/nodegit/nodegit/compare/v0.26.5...v0.27.0-alpha.1)
#### Summary of changes
- Expose git_remote_rename
- Bump OpenSSL from 1.1.0i -> 1.1.1c in Windows/Mac OS Electron builds
- Replace unmaintained request library with got
- Remove promisify-node and use vanilla promises for all NodeGit promises
#### Merged PRs into NodeGit
- [Remove promisify-node and remove old callback api remnants](https://github.com/nodegit/nodegit/pull/1772)
- [Replace deprecated package request with got](https://github.com/nodegit/nodegit/pull/1771)
- [Bump OpenSSL prebuilt to 1.1.1c](https://github.com/nodegit/nodegit/pull/1770)
- [Expose git_remote_rename](https://github.com/nodegit/nodegit/pull/1767)
- [Dedupe Remote.prototype.fetch](https://github.com/nodegit/nodegit/pull/1766)
## <a name="v0-26-5" href="#v0-26-5">v0.26.5</a> [(2020-02-27)](https://github.com/nodegit/nodegit/releases/tag/v0.26.5)
[Full Changelog](https://github.com/nodegit/nodegit/compare/v0.26.4...v0.26.5)
#### Summary of changes
- Bring in improvement to client certificate handling on Windows from [winhttp: support optional client cert #5384](https://github.com/libgit2/libgit2/pull/5384)
- `Commit.prototype.parent()` now correctly assigns the repo property on the retrieved commit. This should solve certain bugs when working with a commit retrieved from `parent`.
#### Merged PRs into NodeGit
- [Bring in Libgit2 #5384 to NodeGit](https://github.com/nodegit/nodegit/pull/1758)
- [Fix behavior of Commit#parent](https://github.com/nodegit/nodegit/pull/1509)
- [Remove DiffList](https://github.com/nodegit/nodegit/pull/1733)
- [Remove unnecessary assignment of Commit#repo](https://github.com/nodegit/nodegit/pull/1508)
#### Merged PRs into LibGit2
- [winhttp: support optional client cert #5384](https://github.com/libgit2/libgit2/pull/5384)
- [Support `core.longpaths` on Windows #5347](https://github.com/libgit2/libgit2/pull/5347)
- [Parallelize checkout_create_the_new for perf #4205](https://github.com/libgit2/libgit2/pull/4205)
## <a name="v0-26-4" href="#v0-26-4">v0.26.4</a> [(2020-01-14)](https://github.com/nodegit/nodegit/releases/tag/v0.26.4)
[Full Changelog](https://github.com/nodegit/nodegit/compare/v0.26.3...v0.26.4)
#### Summary of changes
- Bumped LibGit2
- Now can be configured to support longpaths on Windows. Does not respect the config value, but is configured through `NodeGit.Libgit2.opts`. See [#1748](https://github.com/nodegit/nodegit/pull/1748) for details.
- Support for complex SSH auth creds handshakes
- Pulled in patch for Libssh2 that covers an integer overflow, see [Libssh2#402](https://github.com/libssh2/libssh2/pull/402)
#### Merged PRs into NodeGit
- [Fix some issues from the libgit2 bump](https://github.com/nodegit/nodegit/pull/1751)
- [Add option to support longpaths on Windows](https://github.com/nodegit/nodegit/pull/1748)
- [Bring in libssh2#402](https://github.com/nodegit/nodegit/pull/1749)
- [Wait for copy and remove promises to finish](https://github.com/nodegit/nodegit/pull/1730)
#### Merged PRs into LibGit2
- [Support `core.longpaths` on Windows #5347](https://github.com/libgit2/libgit2/pull/5347)
- [Parallelize checkout_create_the_new for perf #4205](https://github.com/libgit2/libgit2/pull/4205)
- [win32: fix relative symlinks pointing into dirs](https://github.com/libgit2/libgit2/pull/5355)
- [ntlm: prevent (spurious) compiler warnings](https://github.com/libgit2/libgit2/pull/5354)
- [Adds support for multiple SSH auth mechanisms being used sequentially](https://github.com/libgit2/libgit2/pull/5305)
- [netops: handle intact query parameters in service_suffix removal](https://github.com/libgit2/libgit2/pull/5339)
- [Refactor packfile code to use zstream abstraction](https://github.com/libgit2/libgit2/pull/5340)
- [Fix git_submodule_sync with relative url](https://github.com/libgit2/libgit2/pull/5322)
- [http: avoid generating double slashes in url](https://github.com/libgit2/libgit2/pull/5325)
- [Correct typo in name of referenced parameter](https://github.com/libgit2/libgit2/pull/5348)
- [patch_parse: fix undefined behaviour due to arithmetic on NULL pointers](https://github.com/libgit2/libgit2/pull/5338)
- [smart_pkt: fix overflow resulting in OOB read/write of one byte](https://github.com/libgit2/libgit2/pull/5337)
- [branch: clarify documentation around branches](https://github.com/libgit2/libgit2/pull/5300)
- [examples: checkout: implement guess heuristic for remote branches](https://github.com/libgit2/libgit2/pull/5283)
- [Minor doc improvements](https://github.com/libgit2/libgit2/pull/5320)
- [attr: Update definition of binary macro](https://github.com/libgit2/libgit2/pull/5333)
- [Security fixes for master](https://github.com/libgit2/libgit2/pull/5331)
- [release.md: note that we do two security releases](https://github.com/libgit2/libgit2/pull/5318)
- [MSVC: Fix warning C4133 on x64: "function": Incompatible types - from "unsigned long *" to "size_t *"](https://github.com/libgit2/libgit2/pull/5317)
- [ci: only push docs from the libgit2/libgit2 repo](https://github.com/libgit2/libgit2/pull/5316)
- [global: convert to fiber-local storage to fix exit races](https://github.com/libgit2/libgit2/pull/5314)
- [Fix copy&paste in git_cherrypick_commit docstring](https://github.com/libgit2/libgit2/pull/5315)
- [patch_parse: fix out-of-bounds reads caused by integer underflow](https://github.com/libgit2/libgit2/pull/5312)
- [tests: fix compiler warning if tracing is disabled](https://github.com/libgit2/libgit2/pull/5311)
- [tests: config: only test parsing huge file with GITTEST_INVASIVE_SPEED](https://github.com/libgit2/libgit2/pull/5313)
- [diff: complete support for git patchid](https://github.com/libgit2/libgit2/pull/5306)
- [Memory optimizations for config entries](https://github.com/libgit2/libgit2/pull/5243)
- [ssh: include sha256 host key hash when supported](https://github.com/libgit2/libgit2/pull/5307)
- [Various examples shape-ups](https://github.com/libgit2/libgit2/pull/5272)
- [Improve trace support in tests](https://github.com/libgit2/libgit2/pull/5309)
- [Move `git_off_t` to `git_object_size_t`](https://github.com/libgit2/libgit2/pull/5123)
- [Add compat typdef for git_attr_t](https://github.com/libgit2/libgit2/pull/5310)
- [CI Build Updates](https://github.com/libgit2/libgit2/pull/5308)
- [patch_parse: use paths from "---"/"+++" lines for binary patches](https://github.com/libgit2/libgit2/pull/5303)
- [Follow 308 redirect in WinHTTP transport](https://github.com/libgit2/libgit2/pull/5285)
- [fileops: correct error return on p_lstat failures when mkdir](https://github.com/libgit2/libgit2/pull/5302)
- [config_mem: implement support for snapshots](https://github.com/libgit2/libgit2/pull/5299)
- [patch_parse: fix segfault when header path contains whitespace only](https://github.com/libgit2/libgit2/pull/5298)
- [config_file: fix race when creating an iterator](https://github.com/libgit2/libgit2/pull/5282)
- [Fix crash if snapshotting a config_snapshot](https://github.com/libgit2/libgit2/pull/5293)
- [fix a bug introduced in 8a23597b](https://github.com/libgit2/libgit2/pull/5295)
- [reflogs: fix behaviour around reflogs with newlines](https://github.com/libgit2/libgit2/pull/5275)
- [commit: verify objects exist in git_commit_with_signature](https://github.com/libgit2/libgit2/pull/5289)
- [patch_parse: fixes for fuzzing errors](https://github.com/libgit2/libgit2/pull/5276)
- [apply: add GIT_APPLY_CHECK](https://github.com/libgit2/libgit2/pull/5227)
- [refs: unlock unmodified refs on transaction commit](https://github.com/libgit2/libgit2/pull/5264)
- [fuzzers: add a new fuzzer for patch parsing](https://github.com/libgit2/libgit2/pull/5269)
- [patch_parse: handle patches without extended headers](https://github.com/libgit2/libgit2/pull/5273)
- [Provide a wrapper for simple submodule clone steps](https://github.com/libgit2/libgit2/pull/4637)
- [macOS GSS Support](https://github.com/libgit2/libgit2/pull/5238)
- [cmake: correct the link stanza for CoreFoundation](https://github.com/libgit2/libgit2/pull/5265)
- [Fix file locking on POSIX OS](https://github.com/libgit2/libgit2/pull/5257)
- [cmake: update minimum CMake version to v3.5.1](https://github.com/libgit2/libgit2/pull/5260)
- [patch_parse: handle patches with new empty files](https://github.com/libgit2/libgit2/pull/5248)
- [DRY commit parsing](https://github.com/libgit2/libgit2/pull/4445)
- [azure: avoid building and testing in Docker as root](https://github.com/libgit2/libgit2/pull/5239)
- [regexp: implement a new regular expression API](https://github.com/libgit2/libgit2/pull/5226)
- [git_refdb API fixes](https://github.com/libgit2/libgit2/pull/5106)
- [Don't use enum for flags](https://github.com/libgit2/libgit2/pull/5242)
- [valgrind: suppress memory leaks in libssh2_session_handshake](https://github.com/libgit2/libgit2/pull/5240)
- [buffer: fix writes into out-of-memory buffers](https://github.com/libgit2/libgit2/pull/5232)
- [cred: add missing private header in GSSAPI block](https://github.com/libgit2/libgit2/pull/5237)
- [CMake pkg-config modulification](https://github.com/libgit2/libgit2/pull/5206)
- [Update chat resources in README.md](https://github.com/libgit2/libgit2/pull/5229)
- [Circular header splitting](https://github.com/libgit2/libgit2/pull/5223)
## <a name="v0-26-3" href="#v0-26-3">v0.26.3</a> [(2019-12-10)](https://github.com/nodegit/nodegit/releases/tag/v0.26.3)
[Full Changelog](https://github.com/nodegit/nodegit/compare/v0.26.2...v0.26.3)
#### Summary of changes
- Include LibGit2 security patch: https://github.com/libgit2/libgit2/releases/tag/v0.28.4
#### Merged PRs into NodeGit
- [Bring in security patches from libgit2 #1743](https://github.com/nodegit/nodegit/pull/1743)
## <a name="v0-26-2" href="#v0-26-2">v0.26.2</a> [(2019-09-26)](https://github.com/nodegit/nodegit/releases/tag/v0.26.2)
[Full Changelog](https://github.com/nodegit/nodegit/compare/v0.26.1...v0.26.2)
#### Summary of changes
- Added options to fetch additional data (gpg signature) from LibGit2 in revWalk.prototype.commitWalk and return plain objects
- _revWalk.prototype.commitWalk(numCommits: number, { returnPlainObjects: boolean })_
#### Merged PRs into NodeGit
- [Optionally retrieve more data on commit walk #1728](https://github.com/nodegit/nodegit/pull/1728)
## <a name="v0-26-1" href="#v0-26-1">v0.26.1</a> [(2019-09-16)](https://github.com/nodegit/nodegit/releases/tag/v0.26.1)
[Full Changelog](https://github.com/nodegit/nodegit/compare/v0.26.0...v0.26.1)
#### Summary of changes
- Bumped LibGit2
- Additional git ignore fixes
- Allow credentials callback to return any credential type from list of supported types
- Memory leak and allocation fixes
- updateTips has optional parameters and should convert plain objects into options structs correctly now
- Added Nodegit.Blob.prototype.filter, this should be used instead of NodeGit.Blob.filteredContent as it is not deprecated.
#### Merged PRs into NodeGit
- [Bump libgit2 to latest fork of master #1723](https://github.com/nodegit/nodegit/pull/1723)
- [updateTips: optional param and normalizeOptions #1722](https://github.com/nodegit/nodegit/pull/1722)
#### Merged PRs into LibGit2
- [Parallelize checkout_create_the_new for perf #4205](https://github.com/libgit2/libgit2/pull/4205)
- [azure: build Docker images as part of the pipeline](https://github.com/libgit2/libgit2/pull/5198)
- [smart: use push_glob instead of manual filtering](https://github.com/libgit2/libgit2/pull/5195)
- [ntlm: fix failure to find openssl headers](https://github.com/libgit2/libgit2/pull/5216)
- [cmake: remove extraneous logging](https://github.com/libgit2/libgit2/pull/5222)
- [open:fix memory leak when passing NULL to git_repository_open_ext](https://github.com/libgit2/libgit2/pull/5224)
- [apply: Fix a patch corruption related to EOFNL handling](https://github.com/libgit2/libgit2/pull/5209)
- [ignore: correct handling of nested rules overriding wild card unignore](https://github.com/libgit2/libgit2/pull/5210)
- [Memory allocation fixes for diff generator](https://github.com/libgit2/libgit2/pull/5214)
- [Use an HTTP scheme that supports the given credentials](https://github.com/libgit2/libgit2/pull/5212)
- [apply: git_apply_to_tree fails to apply patches that add new files](https://github.com/libgit2/libgit2/pull/5208)
- [Optionally read `.gitattributes` from HEAD](https://github.com/libgit2/libgit2/pull/5189)
- [config: implement "onbranch" conditional](https://github.com/libgit2/libgit2/pull/5196)
- [Fix include casing for case-sensitive filesystems.](https://github.com/libgit2/libgit2/pull/5213)
- [util: use 64 bit timer on Windows](https://github.com/libgit2/libgit2/pull/5054)
- [Memory allocation audit](https://github.com/libgit2/libgit2/pull/5200)
- [clone: don't decode URL percent encodings](https://github.com/libgit2/libgit2/pull/5187)
- [Security updates from 0.28.3](https://github.com/libgit2/libgit2/pull/5202)
## <a name="v0-26-0" href="#v0-26-0">v0.26.0</a> [(2019-09-09)](https://github.com/nodegit/nodegit/releases/tag/v0.26.0)
[Full Changelog](https://github.com/nodegit/nodegit/compare/v0.25.1...v0.26.0)
#### Summary of changes
- Bumped libssh2 to 1.9 for security patch
- Remote.prototype.upload and Remote.prototype.updateTips should be async now
#### Merged PRs into NodeGit
- [GitRemote upload and updateTips are async #1720](https://github.com/nodegit/nodegit/pull/1720)
- [Update libssh2 to 1.9 #1719](https://github.com/nodegit/nodegit/pull/1719)
## <a name="v0-25-1" href="#v0-25-1">v0.25.1</a> [(2019-08-13)](https://github.com/nodegit/nodegit/releases/tag/v0.25.1)
[Full Changelog](https://github.com/nodegit/nodegit/compare/v0.25.0...v0.25.1)
#### Summary of changes
Security patch for LibGit2:
- A carefully constructed commit object with a very large number
of parents may lead to potential out-of-bounds writes or
potential denial of service.
- The ProgramData configuration file is always read for compatibility
with Git for Windows and Portable Git installations. The ProgramData
location is not necessarily writable only by administrators, so we
now ensure that the configuration file is owned by the administrator
or the current user.
Additionally:
- Stash should run much faster now.
#### Merged PRs into LibGit2
- [Parallelize checkout_create_the_new for perf #4205](https://github.com/libgit2/libgit2/pull/4205)
- [stash: avoid recomputing tree when committing worktree](https://github.com/libgit2/libgit2/pull/5113)
- [Variadic macros](https://github.com/libgit2/libgit2/pull/5121)
- [Add sign capability to git_rebase_commit](https://github.com/libgit2/libgit2/pull/4913)
- [remote: remove unused block of code](https://github.com/libgit2/libgit2/pull/5197)
- [Adjust printf specifiers in examples code](https://github.com/libgit2/libgit2/pull/5146)
- [config: check if we are running in a sandboxed environment](https://github.com/libgit2/libgit2/pull/5191)
- [Fix example checkout to forbid rather than require --](https://github.com/libgit2/libgit2/pull/5184)
- [editorconfig: update to match our coding style](https://github.com/libgit2/libgit2/pull/5183)
- [Compare buffers in diff example](https://github.com/libgit2/libgit2/pull/5125)
- [Include ahead_behind in the test suite](https://github.com/libgit2/libgit2/pull/5135)
- [config: separate file and snapshot backends](https://github.com/libgit2/libgit2/pull/5186)
- [object: deprecate git_object__size for removal](https://github.com/libgit2/libgit2/pull/5192)
## <a name="v0-25-0" href="#v0-25-0">v0.25.0</a> [(2019-08-09)](https://github.com/nodegit/nodegit/releases/tag/v0.25.0)
[Full Changelog](https://github.com/nodegit/nodegit/compare/v0.24.3...v0.25.0)
#### Summary of changes
##### BREAKING
- `getRemotes` no longer returns remote names, it now returns remote objects directly. Use `getRemoteNames` to get a list of remote names.
- Converted Buf.prototype.set and Buf.prototype.grow from async to sync
- `Repository.prototype.continueRebase` will now throw on any error except for EAPPLIED on the first call to `Rebase.prototype.next`
- Drops support for Ubuntu 14 after EOL
- Removed access to the `diff_so_far` param in `git_diff_notify_cb` and `git_diff_progress_cb`
- Changed `FilterSource.prototype.repo` to async to prevent segfaults on filters that run during `Submodule.status`
- Changed `NodeGit.Signature.default` to async, because it actually ends up reading the config.
- Fixed bug where templates were not reporting errors for synchronous methods. It's a bit of a wide net, but in general,
it is now possible certain sync methods in NodeGit will begin failing that did not fail before. This is the correct
behavior.
##### Deprecations
- Support signing commits in `Repository.prototype.mergeBranches`. The last parameter `processMergeMessageCallback` is now deprecated, but will continue to work. Use the options object instead, which will contain the `processMergeMessageCallback`, as well as the `signingCb`.
##### New
- Support for Node 12
- Add signing support for commits and annotated tags
- Enforced consistent use of signing callbacks within the application. Any object that implements the signingCallback
pattern for signing commits or tags should use the exact same callback type and with the same meaning.
`type SigningCallback = (content: string) => {| code: number, field?: string, signedData?: string |};`
If the code is `NodeGit.Error.CODE.OK` or 0, the operation will succeed and _at least_ signedData is expected to be filled out.
If the code is a negative number, except for `NodeGit.Error.CODE.PASSTHROUGH`, the signing operation will fail.
If the code is `NodeGit.Error.CODE.PASSTHROUGH`, the operation will continue without signing the object.
- Exposed `AnnotatedCommit` methods:
- `AnnotatedCommit.prototype.ref`
- Exposed `Apply` methods:
- `Apply.apply` applies a diff to the repository
- `Apply.toTree` applies a diff to a tree
- Exposed `Config` methods:
- `Config.prototype.deleteEntry`
- `Config.prototype.deleteMultivar`
- `Config.prototype.getBool`
- `Config.prototype.getInt32`
- `Config.prototype.getInt64`
- `Config.prototype.setMultivar`
- `Config.prototype.snapshot`
- Exposed `ConfigIterator` with methods:
- `ConfigIterator.create`
- `ConfigIterator.createGlob`
- `ConfigIterator.createMultivar`
- `ConfigIterator.prototype.next`
- Exposed `IndexNameEntry`:
- `IndexNameEntry.add`
- `IndexNameEntry.clear`
- `IndexNameEntry.entryCount`
- `IndexNameEntry.getByIndex`
- `IndexNameEntry.prototype.ancestor`
- `IndexNameEntry.prototype.ours`
- `IndexNameEntry.prototype.theirs`
- Exposed `IndexReucEntry`:
- `IndexReucEntry.add`
- `IndexReucEntry.clear`
- `IndexReucEntry.entryCount`
- `IndexReucEntry.find`
- `IndexReucEntry.getByIndex`