GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - mozilla/bugbot: A Mozilla release management tool to send reminders to Firefox developers and improve Bugzilla metadata

BranchesTags
Open more actions menu

Latest commit

 

History

2,222 Commits
2,222 Commits

Folders and files

NameName
Last commit message
Last commit date
.github
.github
 
 
bugbot
bugbot
 
 
configs
configs
 
 
db
db
 
 
extra
extra
 
 
scripts
scripts
 
 
templates
templates
 
 
tests
tests
 
 
.coveragerc
.coveragerc
 
 
.gitignore
.gitignore
 
 
.pre-commit-config.yaml
.pre-commit-config.yaml
 
 
.python-version
.python-version
 
 
.taskcluster.yml
.taskcluster.yml
 
 
CODE_OF_CONDUCT.md
CODE_OF_CONDUCT.md
 
 
LICENSE
LICENSE
 
 
README.rst
README.rst
 
 
alembic.ini
alembic.ini
 
 
pyproject.toml
pyproject.toml
 
 
uv.lock
uv.lock
 
 

Repository files navigation

This tool is used by Mozilla release management to send emails to the Firefox developers. It will query the bugzilla.mozilla.org database and send emails to Mozilla developers and their managers (if Mozilla staff).

The tool will also notify release managers about potential issues in bugzilla and autofix some categories of issues.

The list of checkers is documented on the Mozilla wiki: https://wiki.mozilla.org/BugBot

This package currently uses Mozilla's Bugzilla REST API, and the Mozilla IAM phonebook (to access bug assignees' managers & Mozilla email addresses).

Installation

  1. Check out the code:

    git clone https://github.com/mozilla/bugbot.git
    

bugbot uses uv to manage the Python environment; this must be installed locally.

Auto-formatting with pre-commit

This project uses pre-commit.

  1. Install pre-commit:

    uv tool install pre-commit
    

Every time you try to commit, pre-commit checks your files to ensure they follow our style standards and aren't affected by some simple issues. If the checks fail, pre-commit won't let you commit.

Running the Bot Rules

Before running:

  1. The LDAP + SMTP infos are used to send emails
  2. Need to generate an API key from bugzilla admin ( https://bugzilla.mozilla.org/userprefs.cgi?tab=apikey )
  3. Should generate an API key from Phabricator ( https://phabricator.services.mozilla.com/settings/user )
  4. The IAM secrets are used to generate a dump of phonebook, which is required for some scripts (employees can request them by filing a bug in the SSO: Requests component )
# in configs/config.json
{
  "ldap_username": "[email protected]",
  "ldap_password": "xxxxxxxxxxxxxx",
  "smtp_server": "smtp.xxx.xxx",
  "smtp_port": 314,
  "smtp_ssl": true,
  "bz_api_key": "xxxxxxxxxxxxxx",
  "bz_api_key_nomail": "xxxxxxxxxxxxxx",
  "phab_api_key": "xxxxxxxxxxxxxx",
  "iam_client_secret": "xxxxxxxxxxxxxx",
  "iam_client_id": "xxxxxxxxxxxxxx",
  "socorro_token": "xxxxxxxxxxxxxx",
  "hackbot_api_key": "xxxxxxxxxxxxxx",
  "slack_bot_token": "xoxb-xxxxxxxxxxxxxx"
}

The hackbot_api_key is only needed by rules that start a hackbot agent run (currently frontend_triage). Those rules talk to https://hackbot-api.moz.tools by default; set HACKBOT_API_URL to point at a different deployment.

The slack_bot_token is only needed by rules that post a message to Slack (currently reo_regression_slack and reo_regression_slack_daily). It is a Slack app's Bot User OAuth Token and needs the chat:write, chat:write.customize and chat:write.public scopes.

To try out a Slack message without posting to the real channels, add "slack_channel_override": "<channel ID>" to configs/config.json. Every message then goes to that channel instead. The ID is the last section of a channel's 'copy link' URL. Remove the key, or leave it empty, to post to the rules' own channels again.

Do a dryrun:

uv run -m bugbot.rules.stalled

There is a ton of rules in bugbot/rules/ so you should be able to find some good examples.

Setting up 'Round Robin' triage rotations

One use case for this tool is managing triage of multiple components across a team of multiple people.

To set up a new Round Robin rotation, a manager or team lead should create a calendar with the rotation of triagers and add a link to the rotation calendar in the triage rotations spreadsheet.

Running on a server

This needs to run on a private server because it will have login for smtp and bugzilla key so it can't currently be shared access.

Cronjob:

CRON_DIR=/path/to/repository
00 12  * * 1-5 cd $CRON_DIR ; ./cron_run_weekdays.sh &> /tmp/bugbot-weekdays.log
00 8   * * *   cd $CRON_DIR ; ./cron_run_daily.sh    &> /tmp/bugbot-daily.log
40 */1 * * *   cd $CRON_DIR ; ./cron_run_hourly.sh   &> /tmp/bugbot-hourly.log

We run hourly jobs at minute 40 past every hour to avoid overlap with daily jobs.

About

A Mozilla release management tool to send reminders to Firefox developers and improve Bugzilla metadata

Resources

Readme
BSD-3-Clause license

Code of conduct

Code of conduct
Activity
Custom properties

Stars

69 stars

Watchers

12 watching

Forks

96 forks
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.