{"id":15020794,"url":"https://github.com/electron/bugbot","last_synced_at":"2025-10-19T16:33:03.412Z","repository":{"id":46815619,"uuid":"355643142","full_name":"electron/bugbot","owner":"electron","description":"Making life easier for people who report or triage Electron issues.","archived":true,"fork":false,"pushed_at":"2024-04-26T15:38:54.000Z","size":940,"stargazers_count":6,"open_issues_count":29,"forks_count":14,"subscribers_count":7,"default_branch":"main","last_synced_at":"2024-10-29T17:15:44.846Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/electron.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-04-07T18:20:13.000Z","updated_at":"2024-09-17T17:23:01.000Z","dependencies_parsed_at":"2024-04-16T07:47:52.428Z","dependency_job_id":"62a92d99-7ba1-49b4-aa25-679344cf7723","html_url":"https://github.com/electron/bugbot","commit_stats":{"total_commits":146,"total_committers":6,"mean_commits":"24.333333333333332","dds":0.4452054794520548,"last_synced_commit":"c0c38663eead3d79dcdbe4ad0ce2e1c2774bd3da"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/electron%2Fbugbot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/electron%2Fbugbot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/electron%2Fbugbot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/electron%2Fbugbot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/electron","download_url":"https://codeload.github.com/electron/bugbot/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":237172244,"owners_count":19266638,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-09-24T19:55:39.119Z","updated_at":"2025-10-19T16:32:58.031Z","avatar_url":"https://github.com/electron.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# BugBot\n\n## Overview\n\n1. People [file Electron bug reports](https://github.com/electron/electron/issues/new/choose) with [tests](#by-bug-reporters).\n1. BugBot can run the test on many platforms and Electron versions, then report back in-issue.\n1. BugBot can bisect regressions down to a range of commits, then report back in-issue.\n1. Users and maintainers can see where the bug is reproducible.\n\n## Usage\n\n### By bug reporters\n\nBugBot only needs one thing: a test that exits with `exitCode` 0 if Electron works, or nonzero if Electron has a bug.\n\nOne easy way to make a test is with [Electron Fiddle](https://github.com/electron/fiddle). Its \"File \u003e New Test\" has a [test template](https://github.com/electron/electron-quick-start/tree/test-template) with some [lightweight test helpers](https://github.com/electron/electron-quick-start/blob/test-template/preload.js) and its \"Publish\" button can upload the test to the [gist.github.com](https://gist.github.com/) [pastebin](https://en.wikipedia.org/wiki/Pastebin).\n\nIf you want to do it manually, the only requirement is that 0/1 `exitCode`. You can write it from scratch or use [electron-quick-start](https://github.com/electron/electron-quick-start)'s [`test-template` branch](https://github.com/electron/electron-quick-start/tree/test-template) as a starting point, which is the same template used by Electron Fiddle. You can clone it from the command line with `git clone --branch test-template https://github.com/electron/electron-quick-start`, then use a web browser to upload it to [gist.github.com](https://gist.github.com/).\n\nAfter uploading your test to gist.github.com, file an [Electron bug report](https://github.com/electron/electron/issues/new/choose). The bug report template will ask for a \"Testcase Gist URL\", which is where you'll provide the Gist URL.\n\n### By maintainers\n\nMuch like [trop](https://github.com/electron/trop/blob/main/docs/usage.md#using-trop), you can start BugBot with issue comments. To begin bisection, add a comment that looks like this:\n\n```\n/bugbot test [gist] [platforms...] [versions...]\n```\n\n- If no `gist` is given, use the issue body's `Testcase Gist URL`.\n- If no `platforms` are given, test on Linux, macOS, and Windows.\n- If no `versions` are given, test the first version and latest version of each prerelease branch, of [each supported branch](https://www.electronjs.org/docs/latest/tutorial/electron-timelines), and of the two branches before that.\n\n\n```\n/bugbot bisect [gist] [goodVersion [badVersion]]\n```\n\n- If no `gist` is given, use the issue body's `Testcase Gist URL`.\n- If no `goodVersion` is given, use the issue body's `Last Known Working Electron Version` or an old version.\n- If no `badVersion` is given, use the issue body's `Electron Version` or the latest release.\n\n## Deployment\n\n### Environment variables\n\n| Name | Module | Description | Default |\n|---|---|---|---|\n| `BUGBOT_BROKER_CERT` or `BUGBOT_BROKER_CERT_PATH` | Required by Broker if `BUGBOT_BROKER_URL` is https | The data (or the path to it) to use as the `cert` option to [https.createServer()](https://nodejs.org/api/https.html#https_https_createserver_options_requestlistener). | None |\n| `BUGBOT_BROKER_KEY` or `BUGBOT_BROKER_KEY_PATH` | Required by Broker if `BUGBOT_BROKER_URL` is https | The data (or the path to it) to use as the `key` option to [https.createServer()](https://nodejs.org/api/https.html#https_https_createserver_options_requestlistener). | None |\n| `BUGBOT_BROKER_URL` | Required by all | The base URL for the broker, e.g. `https://bugbot.electronjs.org:8443`. | None |\n| `BUGBOT_CHILD_TIMEOUT_MS` | Runner | When to cancel a hung child | 5 minutes |\n| `BUGBOT_FIDDLE_EXEC` | Runner | Used to invoke electron-fiddle. This can include other space-delimited command-line arguments, e.g. `xvfb-run electron-fiddle` | '[which](https://github.com/npm/node-which) electron-fiddle' |\n| `BUGBOT_POLL_INTERVAL_MS` | Issue Manager, Runner | How frequently to poll the Broker | issue-manager: 500 msec. runner: 20 sec |\n| `BUGBOT_AUTH_TOKEN` | Required: Issue Manager, Runner; Optional: Broker | The auth token for communications with the Broker |\n| `BUGBOT_GITHUB_LOGIN` | Issue Manager | The name of the GitHub app registered for the Probot client |\n| `BUGBOT_LOG_METRICS_URL` | Broker | The remote Loki endpoint to send log metrics to |\n| `BUGBOT_LOG_METRICS_AUTH` | Broker | The (`Basic`) auth credentials to authenticate log metrics requests with |\n\n## Development\n\nBugBot is split into multiple modules, connected in development via [Yarn Workspaces](https://classic.yarnpkg.com/en/docs/workspaces/) and [TypeScript Project References](https://www.typescriptlang.org/docs/handbook/project-references.html). Each module can be found within the `modules/` top-level directory.\n\nAfter cloning BugBot, run the following commands to set up your workspace:\n```sh\n$ yarn\n$ yarn run build\n```\n\n**Note**: The latter command is required due to [a caveat with TypeScript Project References](https://www.typescriptlang.org/docs/handbook/project-references.html#caveats-for-project-references) and will hopefully be remedied automatically in the future. If you don't run `yarn run build` then you may see errors in your editor for modules that have not been built (or are not up-to-date and need to be rebuilt).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felectron%2Fbugbot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Felectron%2Fbugbot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felectron%2Fbugbot/lists"}