@@ -130,6 +130,102 @@ public async Task GetCommitBySha1Range()
130130 Assert . AreEqual ( allCommits [ 3 ] . Id , commits [ 1 ] . Id ) ;
131131 }
132132
133+ [ Test ]
134+ [ NGitLabRetry ]
135+ public async Task GetCommitsSince ( )
136+ {
137+ // Arrange
138+ using var context = await RepositoryClientTestsContext . CreateAsync ( commitCount : 5 ) ;
139+
140+ var defaultBranch = context . Project . DefaultBranch ;
141+ var since = DateTime . UtcNow ;
142+ var expectedSinceValue = Uri . EscapeDataString ( since . ToString ( "s" , CultureInfo . InvariantCulture ) ) ;
143+ var commitRequest = new GetCommitsRequest
144+ {
145+ RefName = defaultBranch ,
146+ Since = since ,
147+ } ;
148+
149+ // Act
150+ var commits = context . RepositoryClient . GetCommits ( commitRequest ) . ToArray ( ) ;
151+
152+ // Assert
153+ var lastRequestQueryString = context . Context . LastRequest . RequestUri . Query ;
154+
155+ Assert . True ( lastRequestQueryString . Contains ( $ "since={ expectedSinceValue } ") ) ;
156+ }
157+
158+ [ Test ]
159+ [ NGitLabRetry ]
160+ public async Task GetCommitsDoesntIncludeSinceWhenNotSpecified ( )
161+ {
162+ // Arrange
163+ using var context = await RepositoryClientTestsContext . CreateAsync ( commitCount : 5 ) ;
164+
165+ var defaultBranch = context . Project . DefaultBranch ;
166+ var commitRequest = new GetCommitsRequest
167+ {
168+ RefName = defaultBranch ,
169+ Since = null ,
170+ } ;
171+
172+ // Act
173+ var commits = context . RepositoryClient . GetCommits ( commitRequest ) . ToArray ( ) ;
174+
175+ // Assert
176+ var lastRequestQueryString = context . Context . LastRequest . RequestUri . Query ;
177+
178+ Assert . False ( lastRequestQueryString . Contains ( "since=" ) ) ;
179+ }
180+
181+ [ Test ]
182+ [ NGitLabRetry ]
183+ public async Task GetCommitsUntil ( )
184+ {
185+ // Arrange
186+ using var context = await RepositoryClientTestsContext . CreateAsync ( commitCount : 5 ) ;
187+
188+ var defaultBranch = context . Project . DefaultBranch ;
189+ var until = DateTime . UtcNow ;
190+ var expectedUntilValue = Uri . EscapeDataString ( until . ToString ( "s" , CultureInfo . InvariantCulture ) ) ;
191+ var commitRequest = new GetCommitsRequest
192+ {
193+ RefName = defaultBranch ,
194+ Until = until ,
195+ } ;
196+
197+ // Act
198+ var commits = context . RepositoryClient . GetCommits ( commitRequest ) . ToArray ( ) ;
199+
200+ // Assert
201+ var lastRequestQueryString = context . Context . LastRequest . RequestUri . Query ;
202+
203+ Assert . True ( lastRequestQueryString . Contains ( $ "until={ expectedUntilValue } ") ) ;
204+ }
205+
206+ [ Test ]
207+ [ NGitLabRetry ]
208+ public async Task GetCommitsDoesntIncludeUntilWhenNotSpecified ( )
209+ {
210+ // Arrange
211+ using var context = await RepositoryClientTestsContext . CreateAsync ( commitCount : 5 ) ;
212+
213+ var defaultBranch = context . Project . DefaultBranch ;
214+ var commitRequest = new GetCommitsRequest
215+ {
216+ RefName = defaultBranch ,
217+ Until = null ,
218+ } ;
219+
220+ // Act
221+ var commits = context . RepositoryClient . GetCommits ( commitRequest ) . ToArray ( ) ;
222+
223+ // Assert
224+ var lastRequestQueryString = context . Context . LastRequest . RequestUri . Query ;
225+
226+ Assert . False ( lastRequestQueryString . Contains ( "until=" ) ) ;
227+ }
228+
133229 [ Test ]
134230 [ NGitLabRetry ]
135231 public async Task GetCommitDiff ( )
0 commit comments