zed/.github/workflows/track_duplicate_bot_effectiveness.yml
Lena 6741a1df28
Add duplicate bot effectiveness tracking (w/github project) (#49879)
Add a script that classifies open and closed issues that the duplicate
bot commented (or not commented) on and puts them into the appropriate
columns of the dedicated github project board. Add a workflow that calls
that script for every closed issue and also on a schedule (that's for
the open ones).

If you're reading this some time way later and there's no bot running
around the repository leaving comments like “This issue appears to be a
duplicate of...”, you can delete these files.

Release Notes:

- N/A
2026-02-23 13:22:29 +00:00

89 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@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
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@bef1eaf1c0ac2b148ee2a0a74c65fbe6db0631f1 # v1.11.7
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@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
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@bef1eaf1c0ac2b148ee2a0a74c65fbe6db0631f1 # v1.11.7
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