zed/.github/workflows/track_duplicate_bot_effectiveness.yml
Lena bb460d5f26
Duplicate Bot: Add more context for triagers (V3) (#57647)
In addition to the user-facing suggestions with potential duplicates,
the bot will now also have a separate collapsible block in the same
comment that's meant more for the triagers. This block will list the
duplicates we're less sure about as well as recently closed issues that
seem related to the issue at hand.
This commit updates the bot to V3 for the tracking-effectiveness
purposes and fixes some leftovers from the previous dupe bot change
(activating the bot for issues with no type).
It also improves the reliability of the script a bit, wrapping some
calls to the GitHub API into retries.


Release Notes:

- N/A
2026-05-25 14:29:13 +00:00

90 lines
3 KiB
YAML

name: Track duplicate bot effectiveness
on:
issues:
types: [closed]
schedule:
- cron: "0 8 */2 * *" # every 2 days at 8 AM UTC
workflow_dispatch:
permissions:
contents: read
jobs:
classify-closed-issue:
if: >
github.event_name == 'issues' &&
github.repository == 'zed-industries/zed' &&
github.event.issue.pull_request == null &&
(github.event.issue.type == null ||
github.event.issue.type.name == 'Bug' ||
github.event.issue.type.name == 'Crash')
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- name: Checkout repository
uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5.0.1
with:
sparse-checkout: script/github-track-duplicate-bot-effectiveness.py
sparse-checkout-cone-mode: false
- name: Get github app token
id: get-app-token
uses: actions/create-github-app-token@f8d387b68d61c58ab83c6c016672934102569859 # v3.0.0
with:
app-id: ${{ secrets.ZED_COMMUNITY_BOT_APP_ID }}
private-key: ${{ secrets.ZED_COMMUNITY_BOT_PRIVATE_KEY }}
owner: zed-industries
- name: Set up Python
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
with:
python-version: "3.12"
- name: Install dependencies
run: pip install requests
- name: Classify closed issue
env:
GITHUB_TOKEN: ${{ steps.get-app-token.outputs.token }}
ISSUE_NUMBER: ${{ github.event.issue.number }}
CLOSER_LOGIN: ${{ github.event.sender.login }}
STATE_REASON: ${{ github.event.issue.state_reason }}
run: |
python script/github-track-duplicate-bot-effectiveness.py \
classify-closed "$ISSUE_NUMBER" "$CLOSER_LOGIN" "$STATE_REASON"
classify-open:
if: >
github.repository == 'zed-industries/zed' &&
(github.event_name == 'schedule' || github.event_name == 'workflow_dispatch')
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- name: Checkout repository
uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5.0.1
with:
sparse-checkout: script/github-track-duplicate-bot-effectiveness.py
sparse-checkout-cone-mode: false
- name: Get github app token
id: get-app-token
uses: actions/create-github-app-token@f8d387b68d61c58ab83c6c016672934102569859 # v3.0.0
with:
app-id: ${{ secrets.ZED_COMMUNITY_BOT_APP_ID }}
private-key: ${{ secrets.ZED_COMMUNITY_BOT_PRIVATE_KEY }}
owner: zed-industries
- name: Set up Python
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
with:
python-version: "3.12"
- name: Install dependencies
run: pip install requests
- name: Classify open issues
env:
GITHUB_TOKEN: ${{ steps.get-app-token.outputs.token }}
run: |
python script/github-track-duplicate-bot-effectiveness.py classify-open