mirror of
https://gitea.com/Lydanne/issues-helper.git
synced 2025-08-20 02:35:58 +08:00
perf: inactive-mode support more
This commit is contained in:
@@ -792,7 +792,7 @@ jobs:
|
|||||||
| body-includes | Body filtering | string | ✖ |
|
| body-includes | Body filtering | string | ✖ |
|
||||||
| title-includes | Title filtering | string | ✖ |
|
| title-includes | Title filtering | string | ✖ |
|
||||||
| inactive-day | Inactive days filtering | number | ✖ |
|
| inactive-day | Inactive days filtering | number | ✖ |
|
||||||
| inactive-mode | Detect inactive mode, default `issue`, optional `comment`, which is the last comment update time | string | ✖ |
|
| inactive-mode | Detect inactive mode, default `issue` | string | ✖ |
|
||||||
| inactive-label | The label name adding | string | ✖ |
|
| inactive-label | The label name adding | string | ✖ |
|
||||||
| exclude-labels | Exclude labels filtering | string | ✖ |
|
| exclude-labels | Exclude labels filtering | string | ✖ |
|
||||||
|
|
||||||
@@ -802,6 +802,13 @@ jobs:
|
|||||||
- `inactive-day`: When entering, it will filter the issue update time earlier than the current time minus the number of inactive days. If not entered, all
|
- `inactive-day`: When entering, it will filter the issue update time earlier than the current time minus the number of inactive days. If not entered, all
|
||||||
- `inactive-label`: The default is `inactive`, others can be customized. When the project does not contain the label, it will be created automatically
|
- `inactive-label`: The default is `inactive`, others can be customized. When the project does not contain the label, it will be created automatically
|
||||||
- `exclude-labels`: When set to include `$exclude-empty`, no label issue can be excluded
|
- `exclude-labels`: When set to include `$exclude-empty`, no label issue can be excluded
|
||||||
|
- `inactive-mode`:
|
||||||
|
- Default `issue`: the issue updated time
|
||||||
|
- Optional `comment`: the last comment update time
|
||||||
|
- Optional `issue-created`: the issue created time
|
||||||
|
- Optional `comment-created`: the comment creation time
|
||||||
|
- You can also set multiple such as: `comment, issue-created`
|
||||||
|
- It will be detected with priority, the update time of the last comment will be detected first, if there is no comment, the creation time of the issue will be used
|
||||||
|
|
||||||
[⏫ Back to list](#List)
|
[⏫ Back to list](#List)
|
||||||
|
|
||||||
|
@@ -796,7 +796,7 @@ jobs:
|
|||||||
| body-includes | 包含内容筛选 | string | ✖ |
|
| body-includes | 包含内容筛选 | string | ✖ |
|
||||||
| title-includes | 包含标题筛选 | string | ✖ |
|
| title-includes | 包含标题筛选 | string | ✖ |
|
||||||
| inactive-day | 非活跃天数筛选 | number | ✖ |
|
| inactive-day | 非活跃天数筛选 | number | ✖ |
|
||||||
| inactive-mode | 检测不活跃的模式,默认 `issue`,可选 `comment`,即为最后一个评论更新时间 | string | ✖ |
|
| inactive-mode | 检测不活跃的模式 | string | ✖ |
|
||||||
| inactive-label | 新增标签名称 | string | ✖ |
|
| inactive-label | 新增标签名称 | string | ✖ |
|
||||||
| exclude-labels | 排除标签筛选 | string | ✖ |
|
| exclude-labels | 排除标签筛选 | string | ✖ |
|
||||||
|
|
||||||
@@ -806,6 +806,13 @@ jobs:
|
|||||||
- `inactive-day`:当输入时,会筛选 issue 更新时间早于当前时间减去非活跃天数。不填时,会查询所有
|
- `inactive-day`:当输入时,会筛选 issue 更新时间早于当前时间减去非活跃天数。不填时,会查询所有
|
||||||
- `inactive-label`:默认为 `inactive`,可自定义其他。当项目未包含该 label 时,会自动新建
|
- `inactive-label`:默认为 `inactive`,可自定义其他。当项目未包含该 label 时,会自动新建
|
||||||
- `exclude-labels`:设置包含 `$exclude-empty` 时,可排除无 label issue
|
- `exclude-labels`:设置包含 `$exclude-empty` 时,可排除无 label issue
|
||||||
|
- `inactive-mode`:
|
||||||
|
- 默认 `issue`,检查 issue 的更新时间
|
||||||
|
- 可选 `comment`,检查最后一个评论的更新时间
|
||||||
|
- 可选 `issue-created`,检查 issue 的创建时间
|
||||||
|
- 可选 `comment-created`,最后一个评论的创建时间
|
||||||
|
- 你也可以设置多个如:`comment, issue-created`
|
||||||
|
- 将会以优先级检测,先检测最后一条评论更新时间,如无评论,则使用 issue 的创建时间
|
||||||
|
|
||||||
[⏫ 返回列表](#列-表)
|
[⏫ 返回列表](#列-表)
|
||||||
|
|
||||||
|
@@ -85,16 +85,32 @@ export async function doQueryIssues(
|
|||||||
|
|
||||||
const lastTime = dayjs.utc().subtract(+inactiveDay, 'day');
|
const lastTime = dayjs.utc().subtract(+inactiveDay, 'day');
|
||||||
|
|
||||||
const inactiveMode = core.getInput('inactive-mode') || 'issue';
|
const inactiveMode = dealStringToArr(core.getInput('inactive-mode'));
|
||||||
let updateTime = dayjs.utc(issue.updated_at);
|
let checkTime: dayjs.Dayjs | null = null;
|
||||||
if (inactiveMode === 'comment') {
|
|
||||||
ICE.setIssueNumber(issue.number);
|
for (const mode of inactiveMode) {
|
||||||
const comments = await ICE.listComments();
|
if (checkTime) {
|
||||||
if (comments.length) {
|
break;
|
||||||
updateTime = dayjs.utc(comments[comments.length - 1].updated_at);
|
}
|
||||||
|
if (mode === 'comment' || mode === 'comment-created') {
|
||||||
|
ICE.setIssueNumber(issue.number);
|
||||||
|
const comments = await ICE.listComments();
|
||||||
|
if (comments.length) {
|
||||||
|
checkTime = dayjs.utc(
|
||||||
|
comments[comments.length - 1][mode === 'comment' ? 'updated_at' : 'created_at'],
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (mode === 'issue-created') {
|
||||||
|
checkTime = dayjs.utc(issue.created_at);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (updateTime && updateTime.isSameOrBefore(lastTime)) {
|
|
||||||
|
if (!checkTime) {
|
||||||
|
checkTime = dayjs.utc(issue.updated_at);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (checkTime && checkTime.isSameOrBefore(lastTime)) {
|
||||||
issues.push(issue);
|
issues.push(issue);
|
||||||
issueNumbers.push(issue.number);
|
issueNumbers.push(issue.number);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user