@@ -63,12 +63,14 @@ static async Task AsyncMain(IConfigurationRoot config)
6363 Console . WriteLine ( $ "Open pull requests ({ pullRequests . Count } ):") ;
6464 foreach ( var pullRequest in pullRequests )
6565 {
66- var autoMerge =
67- ( memberLogins . Contains ( pullRequest . Author ? . Login ) && ! pullRequest . Labels . Nodes . Any ( label => label . Name == gitHubConfig [ "excludeLabel" ] ) )
68- || pullRequest . Labels . Nodes . Any ( label => label . Name == gitHubConfig [ "includeLabel" ] ) ;
66+ var isMember = memberLogins . Contains ( pullRequest . Author ? . Login ) ;
67+ var isIncluded = pullRequest . Labels . Nodes . Any ( label => label . Name == gitHubConfig [ "includeLabel" ] ) ;
68+ var isExcluded = pullRequest . Labels . Nodes . Any ( label => label . Name == gitHubConfig [ "excludeLabel" ] ) ;
69+ var autoMerge = ( isMember && ! isExcluded ) || isIncluded ;
6970 Console . WriteLine ( $ " #{ pullRequest . Number } { pullRequest . Title } ") ;
7071 Console . WriteLine ( $ " By: { pullRequest . Author ? . Login } ") ;
7172 Console . WriteLine ( $ " Branch: { pullRequest . HeadRef ? . Name } ") ;
73+ Console . WriteLine ( $ " Draft: { pullRequest . IsDraft } ") ;
7274 Console . WriteLine ( $ " Labels: { String . Join ( ' ' , pullRequest . Labels . Nodes . Select ( label => label . Name ) ) } ") ;
7375 Console . WriteLine ( $ " Allowed to auto-merge? { autoMerge } ") ;
7476 if ( autoMerge )
@@ -77,6 +79,13 @@ static async Task AsyncMain(IConfigurationRoot config)
7779 }
7880 }
7981
82+ // Sort pull requests by draft status (non-draft first), inclusion label (present first), and number
83+ autoMergePullRequests = autoMergePullRequests . OrderBy ( pullRequest =>
84+ {
85+ var isIncluded = pullRequest . Labels . Nodes . Any ( label => label . Name == gitHubConfig [ "includeLabel" ] ) ;
86+ return $ "{ ( pullRequest . IsDraft ? "2" : "1" ) } { ( isIncluded ? "1" : "2" ) } { pullRequest . Number , 10 } ";
87+ } ) . ToList ( ) ;
88+
8089 Console . WriteLine ( $ "Pull requests suitable for auto-merging ({ autoMergePullRequests . Count } ):") ;
8190 foreach ( var pullRequest in autoMergePullRequests )
8291 {
0 commit comments