# 2.5.16. Reporters

The Buildmaster has a variety of ways to present build status to various users. Each such delivery method is a Reporter Target object in the configuration’s `services` list. To add reporter targets, you just append more objects to this list:

    c['services'] = []

    m = reporters.MailNotifier(fromaddr="buildbot@localhost",
                               extraRecipients=["builds@lists.example.com"],
                               sendToInterestedUsers=False)
    c['services'].append(m)

    c['services'].append(reporters.irc.IRC(host="irc.example.com", nick="bb",
                                           channels=[{"channel": "#example1"},
                                                     {"channel": "#example2",
                                                      "password": "somesecretpassword"}]))

Most reporter objects take a `tags=` argument, which can contain a list of tag names. In this case, the reporters will only show status for Builders that contain the named tags.

Note

Implementation Note

Each of these objects should be a `service.BuildbotService` which will be attached to the BuildMaster object when the configuration is processed.

The following reporters are available:

> - `BitbucketServerCoreAPIStatusPush`

> - `BitbucketServerPRCommentPush`

> - `BitbucketServerStatusPush`

> - `BitbucketStatusPush`

> - `GerritStatusPush`

> - `GerritVerifyStatusPush`

> - `GitHubCommentPush`

> - `GitHubStatusPush`

> - `GitLabStatusPush`

> - `HttpStatusPush`

> - `IRC`

> - `MailNotifier`

> - `PushjetNotifier`

> - `PushoverNotifier`

> - `TelegramBot`

> - `ZulipStatusPush`

Most of the report generators derive from `ReporterBase` which implements basic reporter management functionality.