Support de-duping issues (#65)
* De-dupe against open issues when dedupe_issues = true * Update README * Fix compile errors * Add unit tests for issue.ts
This commit is contained in:
25
src/issue.ts
25
src/issue.ts
@@ -19,3 +19,28 @@ export function getIssueOption(body: string): IssueOption {
|
||||
labels
|
||||
}
|
||||
}
|
||||
|
||||
export type GetIssuesFunc = (options: {
|
||||
owner: string
|
||||
repo: string
|
||||
state: 'open' | 'closed' | 'all' | undefined
|
||||
}) => Promise<{data: {title: string; number: number}[]}>
|
||||
|
||||
export async function getExistingIssueNumber(
|
||||
getIssues: GetIssuesFunc,
|
||||
repo: {
|
||||
owner: string
|
||||
repo: string
|
||||
}
|
||||
): Promise<number | null> {
|
||||
const {data: issues} = await getIssues({
|
||||
...repo,
|
||||
state: 'open'
|
||||
})
|
||||
|
||||
const iss = issues
|
||||
.filter(i => i.title === core.getInput('issue_title'))
|
||||
.shift()
|
||||
|
||||
return iss === undefined ? null : iss.number
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user