-
Notifications
You must be signed in to change notification settings - Fork 387
Introducing sort-issues-by option #1254
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
Adds a new sort-issues-by
option so users can control how issues are ordered (by creation date, last update, or comment count).
- Parses
sort-issues-by
input and wires it through the options interface. - Registers the option in the enum and action metadata.
- Implements sort logic in the GitHub API call and provides defaults in tests.
Reviewed Changes
Copilot reviewed 8 out of 8 changed files in this pull request and generated 3 comments.
Show a summary per file
File | Description |
---|---|
src/main.ts | Parse sort-issues-by from action inputs |
src/interfaces/issues-processor-options.ts | Add sortIssuesBy property to options interface |
src/enums/option.ts | Add SortIssuesBy enum entry |
src/classes/issues-processor.ts | Use sortIssuesBy to set the API sort parameter |
src/classes/issue.spec.ts | Initialize default sortIssuesBy in tests |
action.yml | Declare the new sort-issues-by input |
tests/constants/default-processor-options.ts | Include default sortIssuesBy in defaults |
Comments suppressed due to low confidence (1)
src/classes/issues-processor.ts:574
- There are no tests verifying how different
sortIssuesBy
values (updated
,comments
) affect the API request. Add unit tests to ensure each option sends the correctsort
parameter.
sort:
sort: | ||
this.options.sortIssuesBy === 'updated' | ||
? 'updated' | ||
: this.options.sortIssuesBy === 'comments' | ||
? 'comments' | ||
: 'created', |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The nested ternary for selecting the sort field is hard to read. Consider extracting this into a helper function or a lookup map (e.g., a record mapping the allowed values to API parameters) to improve clarity and make it easier to extend in the future.
sort: | |
this.options.sortIssuesBy === 'updated' | |
? 'updated' | |
: this.options.sortIssuesBy === 'comments' | |
? 'comments' | |
: 'created', | |
sort: this._getSortField(this.options.sortIssuesBy), |
Copilot uses AI. Check for mistakes.
@@ -30,6 +30,7 @@ export interface IIssuesProcessorOptions { | |||
removePrStaleWhenUpdated: boolean | undefined; | |||
debugOnly: boolean; | |||
ascending: boolean; | |||
sortIssuesBy: string; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The sortIssuesBy
property is typed as a generic string. For stronger type safety, narrow this to a union of allowed values ('created' | 'updated' | 'comments'
).
sortIssuesBy: string; | |
sortIssuesBy: 'created' | 'updated' | 'comments'; |
Copilot uses AI. Check for mistakes.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Description:
Introducing a new option
sort-issues-by
to sort the issues by the specified field. It accepts 'created', 'updated', 'comments' as values and default value is set to 'created', defines the sorting order of the issues in a repository.Related issue:
Related to #1231
Check list: