Files
zed/.github/workflows/track_duplicate_bot_effectiveness.yml
T
Lena 5889a27ff2 Consolidate GitHub helpers for community scripts (#63198)
It's been fun for a while to have the same function calling GitHub API
in every single script, but we're going to have fun in different ways
now.

This one's for you, @MrSubidubi! 🥂 

## Testing

I've ran the things that had `--dry-run` locally and nothing blew up,
but the ultimate smoke test will be carried out in production.

---

Release Notes:

- N/A
2026-09-04 11:40:05 +00:00

102 lines
3.4 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
script/github_helpers.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
repositories: zed
permission-issues: read
permission-members: read
permission-organization-projects: write
- 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
script/github_helpers.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
repositories: zed
permission-issues: read
permission-organization-projects: write
- 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