@@ -89,6 +89,7 @@ pub struct ChangelogCommit {
8989/// Errors that can occur during changelog generation.
9090#[ derive( Debug , Error , Clone , Serialize , Deserialize , Type ) ]
9191#[ serde( tag = "type" , content = "message" ) ]
92+ #[ allow( clippy:: enum_variant_names) ]
9293pub enum ChangelogError {
9394 #[ error( "Git error: {0}" ) ]
9495 GitError ( String ) ,
@@ -195,36 +196,32 @@ struct ParsedCommitInfo {
195196/// Resolve a reference (tag, branch, or commit) to an Oid.
196197fn resolve_ref ( repo : & Repository , reference : & str ) -> Result < Oid , ChangelogError > {
197198 // Try as tag first
198- if let Ok ( tag_ref) = repo. find_reference ( & format ! ( "refs/tags/{}" , reference) ) {
199- if let Some ( target) = tag_ref. target ( ) {
199+ if let Ok ( tag_ref) = repo. find_reference ( & format ! ( "refs/tags/{}" , reference) )
200+ && let Some ( target) = tag_ref. target ( ) {
200201 // Could be annotated tag, need to peel
201- if let Ok ( obj) = repo. find_object ( target, None ) {
202- if let Ok ( commit) = obj. peel_to_commit ( ) {
202+ if let Ok ( obj) = repo. find_object ( target, None )
203+ && let Ok ( commit) = obj. peel_to_commit ( ) {
203204 return Ok ( commit. id ( ) ) ;
204205 }
205- }
206206 return Ok ( target) ;
207207 }
208- }
209208
210209 // Try as branch
211- if let Ok ( branch_ref) = repo. find_reference ( & format ! ( "refs/heads/{}" , reference) ) {
212- if let Some ( target) = branch_ref. target ( ) {
210+ if let Ok ( branch_ref) = repo. find_reference ( & format ! ( "refs/heads/{}" , reference) )
211+ && let Some ( target) = branch_ref. target ( ) {
213212 return Ok ( target) ;
214213 }
215- }
216214
217215 // Try as direct commit OID
218216 if let Ok ( oid) = Oid :: from_str ( reference) {
219217 return Ok ( oid) ;
220218 }
221219
222220 // Try revparse
223- if let Ok ( obj) = repo. revparse_single ( reference) {
224- if let Ok ( commit) = obj. peel_to_commit ( ) {
221+ if let Ok ( obj) = repo. revparse_single ( reference)
222+ && let Ok ( commit) = obj. peel_to_commit ( ) {
225223 return Ok ( commit. id ( ) ) ;
226224 }
227- }
228225
229226 Err ( ChangelogError :: GitError ( format ! (
230227 "Could not resolve reference: {}" ,
@@ -261,11 +258,10 @@ fn get_commits_in_range(
261258 let oid = oid_result?;
262259
263260 // Stop if we've reached the 'from' commit
264- if let Some ( from_id) = from_oid {
265- if oid == from_id {
261+ if let Some ( from_id) = from_oid
262+ && oid == from_id {
266263 break ;
267264 }
268- }
269265
270266 // Safety limit
271267 count += 1 ;
@@ -323,18 +319,15 @@ pub fn find_previous_tag(repo: &Repository, current: &str) -> Option<String> {
323319
324320 for name in tag_names. iter ( ) . flatten ( ) {
325321 let ref_name = format ! ( "refs/tags/{}" , name) ;
326- if let Ok ( reference) = repo. find_reference ( & ref_name) {
327- if let Some ( target) = reference. target ( ) {
328- if let Ok ( obj) = repo. find_object ( target, None ) {
329- if let Ok ( commit) = obj. peel_to_commit ( ) {
322+ if let Ok ( reference) = repo. find_reference ( & ref_name)
323+ && let Some ( target) = reference. target ( )
324+ && let Ok ( obj) = repo. find_object ( target, None )
325+ && let Ok ( commit) = obj. peel_to_commit ( ) {
330326 let time = commit. time ( ) . seconds ( ) ;
331327 if time < current_time {
332328 tags_with_time. push ( ( name. to_string ( ) , time) ) ;
333329 }
334330 }
335- }
336- }
337- }
338331 }
339332
340333 // Sort by time descending and get the most recent one before current
0 commit comments