
List of Message Topics
======================

.. DO NOT EDIT THIS DOCUMENT.

.. It is autogenerated from extras/topics-doc/make-topics-doc.py

This document lists all the topics coming out the Fedora
Infrastructure fedmsg bus.  Example messages are included
as well as descriptions and sample output from ``fedmsg.meta``.

.. note:: All topics from Fedora Infrastructure are prefixed with
   ``org.fedoraproject.prod.``, but the :term:`topic_prefix` is omitted here
   for brevity.  For instance, the item listed as ``git.branch`` will
   actually be broadcast as ``org.fedoraproject.prod.git.branch``.

.. note:: Message bodies can contain some useful information, but be wary.
   We have done as good a job as we can *securing* fedmsg, but it is still
   a new system.  If you receive a message from pkgdb claiming that "ralph"
   is the new owner of the kernel, you should still *check* with the *actual*
   pkgdb service that this is the case.  Write code against fedmsg messages
   as a tip, but always check the authoritative source before taking any
   programmatic action.


ansible
-------

ansible.playbook.complete
~~~~~~~~~~~~~~~~~~~~~~~~~

These messages are published when an admin finishes an ansible
playbook run.  We use that system to manage the servers that
run fedoraproject.org.  Here's an example with a playbook that has been
checked into our SCM repo.

.. code-block:: python

    { 'i': 2,
      'msg': { 'playbook': '/srv/web/infra/ansible/playbooks/groups/badges-backend.yml',
               'results': { 'badges-backend01.phx2.fedoraproject.org': { 'changed': 1,
                                                                         'failures': 0,
                                                                         'ok': 56,
                                                                         'skipped': 9,
                                                                         'unreachable': 0},
                            'badges-backend01.stg.phx2.fedoraproject.org': { 'changed': 1,
                                                                             'failures': 0,
                                                                             'ok': 56,
                                                                             'skipped': 9,
                                                                             'unreachable': 0}},
               'userid': 'ralph'},
      'timestamp': 1375753955.771203,
      'topic': 'org.fedoraproject.prod.ansible.playbook.complete',
      'username': 'root'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - ansible.playbook.complete

- :func:`fedmsg.meta.msg2subtitle`

  - ralph's playbooks/groups/badges-backend.yml playbook run completed

- :func:`fedmsg.meta.msg2link`

  - http://infrastructure.fedoraproject.org/cgit/ansible.git/tree/playbooks/groups/badges-backend.yml

- :func:`fedmsg.meta.msg2icon`

  - None

- :func:`fedmsg.meta.msg2secondary_icon`

  - http://www.gravatar.com/avatar/2f933f4364baaabd2d3ab8f0664faef2?s=64&d=http%3A%2F%2Ffedoraproject.org%2Fstatic%2Fimages%2Ffedora_infinity_64x64.png

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['ralph'])``

- :func:`fedmsg.meta.msg2packages`

 - ``set([])``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['playbooks/groups/badges-backend.yml', 'inventory/badges-backend01.stg.phx2.fedoraproject.org', 'inventory/badges-backend01.phx2.fedoraproject.org'])``



ansible.playbook.complete
~~~~~~~~~~~~~~~~~~~~~~~~~

These messages are published when an admin finishes an ansible
playbook run.  We use that system to manage the servers that
run fedoraproject.org.  Here's an example with a playbook that is not
actually checked into our SCM repo.

.. code-block:: python

    { 'i': 2,
      'msg': { 'playbook': '/home/fedora/ralph/ansible/playbooks/groups/badges-backend.yml',
               'results': { 'badges-backend01.phx2.fedoraproject.org': { 'changed': 1,
                                                                         'failures': 0,
                                                                         'ok': 56,
                                                                         'skipped': 9,
                                                                         'unreachable': 0},
                            'badges-backend01.stg.phx2.fedoraproject.org': { 'changed': 1,
                                                                             'failures': 0,
                                                                             'ok': 56,
                                                                             'skipped': 9,
                                                                             'unreachable': 0}},
               'userid': 'ralph'},
      'timestamp': 1375753955.771203,
      'topic': 'org.fedoraproject.prod.ansible.playbook.complete',
      'username': 'root'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - ansible.playbook.complete

- :func:`fedmsg.meta.msg2subtitle`

  - ralph's badges-backend.yml playbook run completed

- :func:`fedmsg.meta.msg2link`

  - None

- :func:`fedmsg.meta.msg2icon`

  - None

- :func:`fedmsg.meta.msg2secondary_icon`

  - http://www.gravatar.com/avatar/2f933f4364baaabd2d3ab8f0664faef2?s=64&d=http%3A%2F%2Ffedoraproject.org%2Fstatic%2Fimages%2Ffedora_infinity_64x64.png

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['ralph'])``

- :func:`fedmsg.meta.msg2packages`

 - ``set([])``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['inventory/badges-backend01.stg.phx2.fedoraproject.org', 'uncontrolled-playbooks/badges-backend.yml', 'inventory/badges-backend01.phx2.fedoraproject.org'])``



ansible.playbook.start
~~~~~~~~~~~~~~~~~~~~~~

These messages are published when an admin begins an ansible
playbook run.  We use that system to manage the servers that
run fedoraproject.org.

.. code-block:: python

    { 'i': 1,
      'msg': { 'check': False,
               'extra_vars': { },
               'inventory': '/srv/web/infra/ansible/inventory/',
               'playbook': '/srv/web/infra/ansible/playbooks/groups/badges-backend.yml',
               'playbook_checksum': False,
               'userid': 'ralph'},
      'timestamp': 1375753735.32427,
      'topic': 'org.fedoraproject.prod.ansible.playbook.start',
      'username': 'root'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - ansible.playbook.start

- :func:`fedmsg.meta.msg2subtitle`

  - ralph started an ansible run of playbooks/groups/badges-backend.yml

- :func:`fedmsg.meta.msg2link`

  - http://infrastructure.fedoraproject.org/cgit/ansible.git/tree/playbooks/groups/badges-backend.yml

- :func:`fedmsg.meta.msg2icon`

  - None

- :func:`fedmsg.meta.msg2secondary_icon`

  - http://www.gravatar.com/avatar/2f933f4364baaabd2d3ab8f0664faef2?s=64&d=http%3A%2F%2Ffedoraproject.org%2Fstatic%2Fimages%2Ffedora_infinity_64x64.png

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['ralph'])``

- :func:`fedmsg.meta.msg2packages`

 - ``set([])``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['playbooks/groups/badges-backend.yml'])``



askbot
------

askbot.post.delete
~~~~~~~~~~~~~~~~~~

Messages with the ``askbot.post.delete`` topic get sent when either
a question or an answer are deleted from `Ask Fedora
<https://ask.fedoraproject.org/questions>`_.  The example here is one
of an **answer** being deleted.

.. code-block:: python

    { 'i': 1,
      'msg': { 'agent': 'ralph',
               'instance': { 'comment_count': 0,
                             'pk': 12,
                             'post_type': 'answer',
                             'summary': 'oh, ok.. coolio\n ...',
                             'text': 'oh, ok.. coolio',
                             'vote_down_count': 0,
                             'vote_up_count': 0},
               'thread': { 'pk': 7,
                           'tagnames': [''],
                           'title': 'test 3 is a charm'},
               'topmost_post_id': 10},
      'timestamp': 1359949257.459819,
      'topic': 'org.fedoraproject.prod.askbot.post.delete',
      'username': 'threebean'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - askbot.post.delete

- :func:`fedmsg.meta.msg2subtitle`

  - ralph deleted an answer on 'test 3 is a charm'

- :func:`fedmsg.meta.msg2link`

  - https://ask.fedoraproject.org/question/10/

- :func:`fedmsg.meta.msg2icon`

  - None

- :func:`fedmsg.meta.msg2secondary_icon`

  - http://www.gravatar.com/avatar/2f933f4364baaabd2d3ab8f0664faef2?s=64&d=http%3A%2F%2Ffedoraproject.org%2Fstatic%2Fimages%2Ffedora_infinity_64x64.png

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['ralph'])``

- :func:`fedmsg.meta.msg2packages`

 - ``set([])``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['threads/7'])``



askbot.post.delete
~~~~~~~~~~~~~~~~~~

Messages with the ``askbot.post.delete`` topic get sent when either
a question or an answer are deleted from `Ask Fedora
<https://ask.fedoraproject.org/questions>`_.  The example here is one
of an **question** being deleted.

.. code-block:: python

    { 'i': 1,
      'msg': { 'agent': 'ralph',
               'instance': { 'comment_count': 1,
                             'pk': 10,
                             'post_type': 'question',
                             'summary': 'this is a test message.\n ...',
                             'text': 'this is a test message.',
                             'vote_down_count': 0,
                             'vote_up_count': 0},
               'thread': { 'pk': 7,
                           'tagnames': [''],
                           'title': 'test 3 is a charm'},
               'topmost_post_id': 10},
      'timestamp': 1359949397.539748,
      'topic': 'org.fedoraproject.prod.askbot.post.delete',
      'username': 'threebean'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - askbot.post.delete

- :func:`fedmsg.meta.msg2subtitle`

  - ralph deleted the question 'test 3 is a charm'

- :func:`fedmsg.meta.msg2link`

  - https://ask.fedoraproject.org/question/10/

- :func:`fedmsg.meta.msg2icon`

  - None

- :func:`fedmsg.meta.msg2secondary_icon`

  - http://www.gravatar.com/avatar/2f933f4364baaabd2d3ab8f0664faef2?s=64&d=http%3A%2F%2Ffedoraproject.org%2Fstatic%2Fimages%2Ffedora_infinity_64x64.png

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['ralph'])``

- :func:`fedmsg.meta.msg2packages`

 - ``set([])``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['threads/7'])``



askbot.post.edit
~~~~~~~~~~~~~~~~

Messages get emitted on this topic anytime a question is updated.
An 'update' includes a new question, a new answer, and a modification
to either.  *This* example is one of a **new answer** being posted to
an `Ask Fedora <https://ask.fedoraproject.org/questions/>`_ question.

.. code-block:: python

    { 'i': 1,
      'msg': { 'agent': 'ralph',
               'created': True,
               'diff': 'I know the answer\n\nlololololol I do!     I swear.\n ...',
               'newly_mentioned_users': ['lmacken'],
               'post': { 'comment_count': 0,
                         'pk': 5,
                         'post_type': 'answer',
                         'summary': 'I know the answer\n\nlololololol I do!     I swear.\n ...',
                         'text': 'I know the answer\r\n\r\nlololololol I do!     I swear.',
                         'vote_down_count': 0,
                         'vote_up_count': 0},
               'thread': { 'pk': 1,
                           'tagnames': ['cool'],
                           'title': 'watwatwatwata'},
               'timestamp': 1359946481.0,
               'topmost_post_id': 1},
      'timestamp': 1359946482.179817,
      'topic': 'org.fedoraproject.prod.askbot.post.edit',
      'username': 'threebean'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - askbot.post.edit

- :func:`fedmsg.meta.msg2subtitle`

  - ralph suggested an answer to the question 'watwatwatwata'

- :func:`fedmsg.meta.msg2link`

  - https://ask.fedoraproject.org/question/1/

- :func:`fedmsg.meta.msg2icon`

  - None

- :func:`fedmsg.meta.msg2secondary_icon`

  - http://www.gravatar.com/avatar/2f933f4364baaabd2d3ab8f0664faef2?s=64&d=http%3A%2F%2Ffedoraproject.org%2Fstatic%2Fimages%2Ffedora_infinity_64x64.png

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['lmacken', 'ralph'])``

- :func:`fedmsg.meta.msg2packages`

 - ``set([])``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['threads/1', 'tags/cool'])``



askbot.post.edit
~~~~~~~~~~~~~~~~

Messages get emitted on this topic anytime an `Ask Fedora
<https://ask.fedoraproject.org/questions/>`_ question is updated.
The snippet we have below is an example of a user posting a brand **new
question** to `Ask Fedora <https://ask.fedoraproject.org/questions/>`_.

.. code-block:: python

    { 'i': 2,
      'msg': { 'agent': 'ralph',
               'created': True,
               'diff': 'lololol\n\nthis is my entry, I hope that you like it so very much.\n ...',
               'newly_mentioned_users': [],
               'post': { 'comment_count': 0,
                         'pk': 4,
                         'post_type': 'question',
                         'summary': 'lololol\n\nthis is my entry, I hope that you like it so very much.\n ...',
                         'text': 'lololol\r\n\r\nthis is my entry, I hope that you like it so very much.',
                         'vote_down_count': 0,
                         'vote_up_count': 0},
               'thread': { 'pk': 3,
                           'tagnames': ['lolol'],
                           'title': 'I have a new question'},
               'timestamp': 1359946267.0,
               'topmost_post_id': 3},
      'timestamp': 1359946267.401213,
      'topic': 'org.fedoraproject.prod.askbot.post.edit',
      'username': 'threebean'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - askbot.post.edit

- :func:`fedmsg.meta.msg2subtitle`

  - ralph asked the question 'I have a new question'

- :func:`fedmsg.meta.msg2link`

  - https://ask.fedoraproject.org/question/3/

- :func:`fedmsg.meta.msg2icon`

  - None

- :func:`fedmsg.meta.msg2secondary_icon`

  - http://www.gravatar.com/avatar/2f933f4364baaabd2d3ab8f0664faef2?s=64&d=http%3A%2F%2Ffedoraproject.org%2Fstatic%2Fimages%2Ffedora_infinity_64x64.png

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['ralph'])``

- :func:`fedmsg.meta.msg2packages`

 - ``set([])``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['threads/3', 'tags/lolol'])``



askbot.post.edit
~~~~~~~~~~~~~~~~

Messages get emitted on this topic anytime a question is updated.
An 'update' includes a new question, a new answer, and a modification
to either.  *This* example is one of a **answer being modified** on
`Ask Fedora <https://ask.fedoraproject.org/questions/>`_.

.. code-block:: python

    { 'i': 1,
      'msg': { 'agent': 'ralph',
               'created': False,
               'diff': '<p>this is my test <del>answer</del><ins>answer.ok?</ins></p>\n',
               'newly_mentioned_users': [],
               'post': { 'comment_count': 0,
                         'pk': 6,
                         'post_type': 'answer',
                         'summary': 'this is my test answer.    ok?\n ...',
                         'text': 'this is my test answer.    ok?',
                         'vote_down_count': 0,
                         'vote_up_count': 0},
               'thread': { 'pk': 3,
                           'tagnames': ['lolol'],
                           'title': 'I have a new question'},
               'timestamp': 1359947977.0,
               'topmost_post_id': 3},
      'timestamp': 1359947978.125892,
      'topic': 'org.fedoraproject.prod.askbot.post.edit',
      'username': 'threebean'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - askbot.post.edit

- :func:`fedmsg.meta.msg2subtitle`

  - ralph updated an answer to the question 'I have a new question'

- :func:`fedmsg.meta.msg2link`

  - https://ask.fedoraproject.org/question/3/

- :func:`fedmsg.meta.msg2icon`

  - None

- :func:`fedmsg.meta.msg2secondary_icon`

  - http://www.gravatar.com/avatar/2f933f4364baaabd2d3ab8f0664faef2?s=64&d=http%3A%2F%2Ffedoraproject.org%2Fstatic%2Fimages%2Ffedora_infinity_64x64.png

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['ralph'])``

- :func:`fedmsg.meta.msg2packages`

 - ``set([])``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['threads/3', 'tags/lolol'])``



askbot.post.edit
~~~~~~~~~~~~~~~~

Messages get emitted on this topic anytime a question is updated.
An 'update' includes a new question, a new answer, and a modification
to either.  *This* example is one of a **question being modified** on
`Ask Fedora <https://ask.fedoraproject.org/questions/>`_.

.. code-block:: python

    { 'i': 2,
      'msg': { 'agent': 'ralph',
               'created': False,
               'diff': '<p>alskdfj... the diff is actually here',
               'newly_mentioned_users': [],
               'post': { 'comment_count': 0,
                         'pk': 2,
                         'post_type': 'question',
                         'summary': 'alskdfjalskdjf alkjasdalskdjf ...',
                         'text': 'alskdfjalskdjf alkjasdalskdjf ...',
                         'vote_down_count': 0,
                         'vote_up_count': 0},
               'thread': { 'pk': 2,
                           'tagnames': ['town'],
                           'title': 'alskdjflaksjdf lakjsf a'},
               'timestamp': 1359947640.0,
               'topmost_post_id': 2},
      'timestamp': 1359947640.986208,
      'topic': 'org.fedoraproject.prod.askbot.post.edit',
      'username': 'threebean'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - askbot.post.edit

- :func:`fedmsg.meta.msg2subtitle`

  - ralph updated the question 'alskdjflaksjdf lakjsf a'

- :func:`fedmsg.meta.msg2link`

  - https://ask.fedoraproject.org/question/2/

- :func:`fedmsg.meta.msg2icon`

  - None

- :func:`fedmsg.meta.msg2secondary_icon`

  - http://www.gravatar.com/avatar/2f933f4364baaabd2d3ab8f0664faef2?s=64&d=http%3A%2F%2Ffedoraproject.org%2Fstatic%2Fimages%2Ffedora_infinity_64x64.png

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['ralph'])``

- :func:`fedmsg.meta.msg2packages`

 - ``set([])``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['threads/2', 'tags/town'])``



askbot.post.flag_offensive.add
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Sent when a user flags an `Ask Fedora
<https://ask.fedoraproject.org/questions>`_ question or answer
as "offensive".

.. code-block:: python

    { 'i': 1,
      'msg': { 'agent': 'ralph',
               'instance': { 'comment_count': 0,
                             'pk': 3,
                             'post_type': 'question',
                             'summary': 'I think I know... totally.    asldkj for sure.\n ...',
                             'text': 'I think I know... totally.    asldkj for sure.',
                             'vote_down_count': 0,
                             'vote_up_count': 1},
               'thread': { 'pk': 2,
                           'tagnames': ['town', 'ohok'],
                           'title': 'alskdjflaksjdf lakjsf a'},
               'topmost_post_id': 2},
      'timestamp': 1359947156.346592,
      'topic': 'org.fedoraproject.prod.askbot.post.flag_offensive.add',
      'username': 'threebean'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - askbot.post.flag_offensive.add

- :func:`fedmsg.meta.msg2subtitle`

  - ralph flagged a question as offensive!

- :func:`fedmsg.meta.msg2link`

  - https://ask.fedoraproject.org/question/2/

- :func:`fedmsg.meta.msg2icon`

  - None

- :func:`fedmsg.meta.msg2secondary_icon`

  - http://www.gravatar.com/avatar/2f933f4364baaabd2d3ab8f0664faef2?s=64&d=http%3A%2F%2Ffedoraproject.org%2Fstatic%2Fimages%2Ffedora_infinity_64x64.png

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['ralph'])``

- :func:`fedmsg.meta.msg2packages`

 - ``set([])``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['threads/2', 'tags/ohok', 'tags/town'])``



askbot.post.flag_offensive.delete
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Sent when a user *un*flags an `Ask Fedora
<https://ask.fedoraproject.org/questions>`_ question or answer
as "offensive".

.. code-block:: python

    { 'i': 1,
      'msg': { 'agent': 'ralph',
               'instance': { 'comment_count': 0,
                             'pk': 3,
                             'post_type': 'answer',
                             'summary': 'I think I know... totally.    asldkj for sure.\n ...',
                             'text': 'I think I know... totally.    asldkj for sure.',
                             'vote_down_count': 0,
                             'vote_up_count': 1},
               'thread': { 'pk': 2,
                           'tagnames': ['town', 'ohok'],
                           'title': 'alskdjflaksjdf lakjsf a'},
               'topmost_post_id': 2},
      'timestamp': 1359947128.523792,
      'topic': 'org.fedoraproject.prod.askbot.post.flag_offensive.delete',
      'username': 'threebean'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - askbot.post.flag_offensive.delete

- :func:`fedmsg.meta.msg2subtitle`

  - ralph unflagged an answer as offensive...

- :func:`fedmsg.meta.msg2link`

  - https://ask.fedoraproject.org/question/2/

- :func:`fedmsg.meta.msg2icon`

  - None

- :func:`fedmsg.meta.msg2secondary_icon`

  - http://www.gravatar.com/avatar/2f933f4364baaabd2d3ab8f0664faef2?s=64&d=http%3A%2F%2Ffedoraproject.org%2Fstatic%2Fimages%2Ffedora_infinity_64x64.png

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['ralph'])``

- :func:`fedmsg.meta.msg2packages`

 - ``set([])``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['threads/2', 'tags/ohok', 'tags/town'])``



askbot.tag.update
~~~~~~~~~~~~~~~~~

Messages get emitted on this topic when a question on `Ask Fedora
<https://ask.fedoraproject.org/questions>`_ changes tags.
It includes information about what tags the package now has, what question
the tags are for, and who did the changing.  The ``msg['msg']['tags']``
field describes which tags changed while the
``msg['msg']['thread']['tagnames']`` field describes all tags on the
thread in question.

.. code-block:: python

    { 'i': 1,
      'msg': { 'agent': 'ralph',
               'tags': ['asldkjfalskdjfalskj', 'asldkjf', 'asldkjfalskdjf'],
               'thread': { 'pk': 2,
                           'tagnames': [ 'town',
                                         'ohok',
                                         'asldkjfalskdjfalskj',
                                         'asldkjf'],
                           'title': 'some title'},
               'timestamp': 1359945296.0,
               'topmost_post_id': 2},
      'timestamp': 1359945296.629136,
      'topic': 'org.fedoraproject.prod.askbot.tag.update',
      'username': 'threebean'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - askbot.tag.update

- :func:`fedmsg.meta.msg2subtitle`

  - ralph altered tags on askbot question 'some title'

- :func:`fedmsg.meta.msg2link`

  - https://ask.fedoraproject.org/question/2/

- :func:`fedmsg.meta.msg2icon`

  - None

- :func:`fedmsg.meta.msg2secondary_icon`

  - http://www.gravatar.com/avatar/2f933f4364baaabd2d3ab8f0664faef2?s=64&d=http%3A%2F%2Ffedoraproject.org%2Fstatic%2Fimages%2Ffedora_infinity_64x64.png

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['ralph'])``

- :func:`fedmsg.meta.msg2packages`

 - ``set([])``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['tags/asldkjfalskdjfalskj', 'tags/asldkjfalskdjf', 'tags/asldkjf', 'threads/2'])``



bodhi
-----

bodhi.buildroot_override.tag
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The `Bodhi Updates System <https://admin.fedoraproject.org/updates>`_
publishes messages on this topic whenever a user **requests a buildroot
override** for an update.

.. code-block:: python

    { 'i': 1,
      'msg': { 'override': { 'build': 'fedmsg-1.0-1', 'submitter': 'lmacken'}},
      'timestamp': 1344344053.23372,
      'topic': 'org.fedoraproject.prod.bodhi.buildroot_override.tag'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - bodhi.buildroot_override.tag

- :func:`fedmsg.meta.msg2subtitle`

  - lmacken submitted a buildroot override for fedmsg-1.0-1

- :func:`fedmsg.meta.msg2link`

  - None

- :func:`fedmsg.meta.msg2icon`

  - https://admin.fedoraproject.org/updates/static/images/bodhi-icon-48.png

- :func:`fedmsg.meta.msg2secondary_icon`

  - http://www.gravatar.com/avatar/0c35a75019e58e54fb58202db20d2c24?s=64&d=http%3A%2F%2Ffedoraproject.org%2Fstatic%2Fimages%2Ffedora_infinity_64x64.png

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['lmacken'])``

- :func:`fedmsg.meta.msg2packages`

 - ``set(['fedmsg'])``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['packages/fedmsg'])``



bodhi.buildroot_override.untag
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The `Bodhi Updates System <https://admin.fedoraproject.org/updates>`_
publishes messages on this topic whenever a user explicitly removes a
previously requested buildroot override.

.. code-block:: python

    { 'i': 1,
      'msg': { 'override': { 'build': 'fedmsg-1.0-1', 'submitter': 'lmacken'}},
      'timestamp': 1344964395.207541,
      'topic': 'org.fedoraproject.prod.bodhi.buildroot_override.untag'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - bodhi.buildroot_override.untag

- :func:`fedmsg.meta.msg2subtitle`

  - lmacken expired a buildroot override for fedmsg-1.0-1

- :func:`fedmsg.meta.msg2link`

  - None

- :func:`fedmsg.meta.msg2icon`

  - https://admin.fedoraproject.org/updates/static/images/bodhi-icon-48.png

- :func:`fedmsg.meta.msg2secondary_icon`

  - http://www.gravatar.com/avatar/0c35a75019e58e54fb58202db20d2c24?s=64&d=http%3A%2F%2Ffedoraproject.org%2Fstatic%2Fimages%2Ffedora_infinity_64x64.png

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['lmacken'])``

- :func:`fedmsg.meta.msg2packages`

 - ``set(['fedmsg'])``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['packages/fedmsg'])``



bodhi.mashtask.complete
~~~~~~~~~~~~~~~~~~~~~~~

The `Bodhi Masher <https://admin.fedoraproject.org/updates>`_
publishes messages on this topic whenever it **finishes** its work.

Note that, these messages are broken (serverside) due to `this
issue <https://github.com/fedora-infra/fedmsg/issues/115>`_.

.. code-block:: python

    { 'msg': { 'success': False},
      'topic': 'org.fedoraproject.prod.bodhi.mashtask.complete'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - bodhi.mashtask.complete

- :func:`fedmsg.meta.msg2subtitle`

  - bodhi masher failed to complete its mashtask!

- :func:`fedmsg.meta.msg2link`

  - None

- :func:`fedmsg.meta.msg2icon`

  - https://admin.fedoraproject.org/updates/static/images/bodhi-icon-48.png

- :func:`fedmsg.meta.msg2secondary_icon`

  - 

- :func:`fedmsg.meta.msg2usernames`

 - ``None``

- :func:`fedmsg.meta.msg2packages`

 - ``None``

- :func:`fedmsg.meta.msg2objects`

 - ``None``



bodhi.mashtask.mashing
~~~~~~~~~~~~~~~~~~~~~~

The `Bodhi Masher <https://admin.fedoraproject.org/updates>`_
publishes messages on this topic whenever it starts mashing
a particular repository.

Note that, these messages are broken (serverside) due to `this
issue <https://github.com/fedora-infra/fedmsg/issues/115>`_.

.. code-block:: python

    { 'msg': { 'repo': 'test_repo'},
      'topic': 'org.fedoraproject.prod.bodhi.mashtask.mashing'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - bodhi.mashtask.mashing

- :func:`fedmsg.meta.msg2subtitle`

  - bodhi masher is mashing test_repo

- :func:`fedmsg.meta.msg2link`

  - None

- :func:`fedmsg.meta.msg2icon`

  - https://admin.fedoraproject.org/updates/static/images/bodhi-icon-48.png

- :func:`fedmsg.meta.msg2secondary_icon`

  - 

- :func:`fedmsg.meta.msg2usernames`

 - ``None``

- :func:`fedmsg.meta.msg2packages`

 - ``None``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['repos/test_repo'])``



bodhi.mashtask.start
~~~~~~~~~~~~~~~~~~~~

The `Bodhi Masher <https://admin.fedoraproject.org/updates>`_
publishes messages on this topic whenever it **begins** its work.

Note that, these messages are broken (serverside) due to `this
issue <https://github.com/fedora-infra/fedmsg/issues/115>`_.

.. code-block:: python

    { 'msg': { }, 'topic': 'org.fedoraproject.prod.bodhi.mashtask.start'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - bodhi.mashtask.start

- :func:`fedmsg.meta.msg2subtitle`

  - bodhi masher started its mashtask

- :func:`fedmsg.meta.msg2link`

  - None

- :func:`fedmsg.meta.msg2icon`

  - https://admin.fedoraproject.org/updates/static/images/bodhi-icon-48.png

- :func:`fedmsg.meta.msg2secondary_icon`

  - 

- :func:`fedmsg.meta.msg2usernames`

 - ``None``

- :func:`fedmsg.meta.msg2packages`

 - ``None``

- :func:`fedmsg.meta.msg2objects`

 - ``None``



bodhi.mashtask.sync.done
~~~~~~~~~~~~~~~~~~~~~~~~

The `Bodhi Masher <https://admin.fedoraproject.org/updates>`_
publishes messages on this topic when it finishes syncing.

Note that, these messages are broken (serverside) due to `this
issue <https://github.com/fedora-infra/fedmsg/issues/115>`_.

.. code-block:: python

    { 'msg': { }, 'topic': 'org.fedoraproject.prod.bodhi.mashtask.sync.done'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - bodhi.mashtask.sync.done

- :func:`fedmsg.meta.msg2subtitle`

  - bodhi masher finished waiting on mirror repos to sync

- :func:`fedmsg.meta.msg2link`

  - None

- :func:`fedmsg.meta.msg2icon`

  - https://admin.fedoraproject.org/updates/static/images/bodhi-icon-48.png

- :func:`fedmsg.meta.msg2secondary_icon`

  - 

- :func:`fedmsg.meta.msg2usernames`

 - ``None``

- :func:`fedmsg.meta.msg2packages`

 - ``None``

- :func:`fedmsg.meta.msg2objects`

 - ``None``



bodhi.mashtask.sync.wait
~~~~~~~~~~~~~~~~~~~~~~~~

The `Bodhi Masher <https://admin.fedoraproject.org/updates>`_
publishes messages on this topic when it begins **waiting to sync**.

Note that, these messages are broken (serverside) due to `this
issue <https://github.com/fedora-infra/fedmsg/issues/115>`_.

.. code-block:: python

    { 'msg': { }, 'topic': 'org.fedoraproject.prod.bodhi.mashtask.sync.wait'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - bodhi.mashtask.sync.wait

- :func:`fedmsg.meta.msg2subtitle`

  - bodhi masher is waiting on mirror repos to sync

- :func:`fedmsg.meta.msg2link`

  - None

- :func:`fedmsg.meta.msg2icon`

  - https://admin.fedoraproject.org/updates/static/images/bodhi-icon-48.png

- :func:`fedmsg.meta.msg2secondary_icon`

  - 

- :func:`fedmsg.meta.msg2usernames`

 - ``None``

- :func:`fedmsg.meta.msg2packages`

 - ``None``

- :func:`fedmsg.meta.msg2objects`

 - ``None``



bodhi.update.comment
~~~~~~~~~~~~~~~~~~~~

The `Bodhi Updates System <https://admin.fedoraproject.org/updates>`_
publishes messages on this topic whenever a user **comments** on a bodhi
update.

.. code-block:: python

    { 'i': 1,
      'msg': { 'comment': { 'anonymous': False,
                            'author': 'ralph',
                            'group': None,
                            'karma': -1,
                            'text': "Can you believe how much testing we're doing?",
                            'timestamp': 1344344050.0,
                            'update_title': 'fedmsg-1.0-1'}},
      'timestamp': 1344344053.23372,
      'topic': 'org.fedoraproject.prod.bodhi.update.comment'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - bodhi.update.comment

- :func:`fedmsg.meta.msg2subtitle`

  - ralph commented on bodhi update fedmsg-1.0-1 (karma: -1)

- :func:`fedmsg.meta.msg2link`

  - https://admin.fedoraproject.org/updates/fedmsg-1.0-1

- :func:`fedmsg.meta.msg2icon`

  - https://admin.fedoraproject.org/updates/static/images/bodhi-icon-48.png

- :func:`fedmsg.meta.msg2secondary_icon`

  - http://www.gravatar.com/avatar/2f933f4364baaabd2d3ab8f0664faef2?s=64&d=http%3A%2F%2Ffedoraproject.org%2Fstatic%2Fimages%2Ffedora_infinity_64x64.png

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['ralph'])``

- :func:`fedmsg.meta.msg2packages`

 - ``set(['fedmsg'])``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['packages/fedmsg'])``



bodhi.update.complete.testing
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The `Bodhi Updates System <https://admin.fedoraproject.org/updates>`_
publishes messages on this topic whenever an update
**completes it's push to the testing repository**.  Here's a
straightforward example:

.. code-block:: python

    { 'i': 88,
      'msg': { 'update': { 'approved': None,
                           'bugs': [],
                           'builds': [ { 'nvr': 'fedmsg-0.2.7-2.el6',
                                         'package': { 'committers': ['ralph'],
                                                      'name': 'fedmsg',
                                                      'suggest_reboot': False}}],
                           'close_bugs': True,
                           'comments': [ { 'anonymous': False,
                                           'author': 'bodhi',
                                           'group': None,
                                           'karma': 0,
                                           'text': 'This update has been submitted for testing by ralph. ',
                                           'timestamp': 1344266157.0},
                                         { 'anonymous': False,
                                           'author': 'bodhi',
                                           'group': None,
                                           'karma': 0,
                                           'text': 'This update is currently being pushed to the Fedora EPEL 6 testing updates repository.',
                                           'timestamp': 1344443927.0}],
                           'critpath': False,
                           'critpath_approved': False,
                           'date_modified': None,
                           'date_pushed': 1344447839.0,
                           'date_submitted': 1344266152.0,
                           'karma': 0,
                           'nagged': None,
                           'notes': 'Bugfix - Added a forgotten new requirement on python-requests.',
                           'release': { 'dist_tag': 'dist-6E-epel',
                                        'id_prefix': 'FEDORA-EPEL',
                                        'locked': False,
                                        'long_name': 'Fedora EPEL 6',
                                        'name': 'EL-6'},
                           'request': None,
                           'stable_karma': 3,
                           'status': 'testing',
                           'submitter': 'ralph',
                           'title': 'fedmsg-0.2.7-2.el6',
                           'type': 'bugfix',
                           'unstable_karma': -3,
                           'updateid': 'FEDORA-EPEL-2012-6650'}},
      'timestamp': 1344447839.891876,
      'topic': 'org.fedoraproject.prod.bodhi.update.complete.testing'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - bodhi.update.complete.testing

- :func:`fedmsg.meta.msg2subtitle`

  - ralph's fedmsg-0.2.7-2.el6 bodhi update completed push to testing

- :func:`fedmsg.meta.msg2link`

  - https://admin.fedoraproject.org/updates/fedmsg-0.2.7-2.el6

- :func:`fedmsg.meta.msg2icon`

  - https://admin.fedoraproject.org/updates/static/images/bodhi-icon-48.png

- :func:`fedmsg.meta.msg2secondary_icon`

  - http://www.gravatar.com/avatar/2f933f4364baaabd2d3ab8f0664faef2?s=64&d=http%3A%2F%2Ffedoraproject.org%2Fstatic%2Fimages%2Ffedora_infinity_64x64.png

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['ralph'])``

- :func:`fedmsg.meta.msg2packages`

 - ``set(['fedmsg'])``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['packages/fedmsg'])``



bodhi.update.request.obsolete
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The `Bodhi Updates System <https://admin.fedoraproject.org/updates>`_
publishes messages on this topic whenever a *user* requests that an update
be **obsoleted**.

.. code-block:: python

    { 'msg': { 'agent': 'lmacken',
               'update': { 'submitter': 'lmacken', 'title': 'foo'}},
      'topic': 'org.fedoraproject.prod.bodhi.update.request.obsolete'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - bodhi.update.request.obsolete

- :func:`fedmsg.meta.msg2subtitle`

  - lmacken obsoleted foo

- :func:`fedmsg.meta.msg2link`

  - https://admin.fedoraproject.org/updates/foo

- :func:`fedmsg.meta.msg2icon`

  - https://admin.fedoraproject.org/updates/static/images/bodhi-icon-48.png

- :func:`fedmsg.meta.msg2secondary_icon`

  - http://www.gravatar.com/avatar/0c35a75019e58e54fb58202db20d2c24?s=64&d=http%3A%2F%2Ffedoraproject.org%2Fstatic%2Fimages%2Ffedora_infinity_64x64.png

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['lmacken'])``

- :func:`fedmsg.meta.msg2packages`

 - ``set(['foo'])``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['packages/foo'])``



bodhi.update.request.revoke
~~~~~~~~~~~~~~~~~~~~~~~~~~~

The `Bodhi Updates System <https://admin.fedoraproject.org/updates>`_
publishes messages on this topic whenever a *user* revokes a prior
request on an update.

.. code-block:: python

    { 'msg': { 'agent': 'lmacken',
               'update': { 'submitter': 'lmacken', 'title': 'foo'}},
      'topic': 'org.fedoraproject.prod.bodhi.update.request.revoke'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - bodhi.update.request.revoke

- :func:`fedmsg.meta.msg2subtitle`

  - lmacken revoked foo

- :func:`fedmsg.meta.msg2link`

  - https://admin.fedoraproject.org/updates/foo

- :func:`fedmsg.meta.msg2icon`

  - https://admin.fedoraproject.org/updates/static/images/bodhi-icon-48.png

- :func:`fedmsg.meta.msg2secondary_icon`

  - http://www.gravatar.com/avatar/0c35a75019e58e54fb58202db20d2c24?s=64&d=http%3A%2F%2Ffedoraproject.org%2Fstatic%2Fimages%2Ffedora_infinity_64x64.png

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['lmacken'])``

- :func:`fedmsg.meta.msg2packages`

 - ``set(['foo'])``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['packages/foo'])``



bodhi.update.request.stable
~~~~~~~~~~~~~~~~~~~~~~~~~~~

The `Bodhi Updates System <https://admin.fedoraproject.org/updates>`_
publishes messages on this topic whenever a *user* requests that an update
be marked as **stable**.

.. code-block:: python

    { 'msg': { 'agent': 'lmacken',
               'update': { 'submitter': 'lmacken', 'title': 'foo'}},
      'topic': 'org.fedoraproject.prod.bodhi.update.request.stable'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - bodhi.update.request.stable

- :func:`fedmsg.meta.msg2subtitle`

  - lmacken submitted foo to stable

- :func:`fedmsg.meta.msg2link`

  - https://admin.fedoraproject.org/updates/foo

- :func:`fedmsg.meta.msg2icon`

  - https://admin.fedoraproject.org/updates/static/images/bodhi-icon-48.png

- :func:`fedmsg.meta.msg2secondary_icon`

  - http://www.gravatar.com/avatar/0c35a75019e58e54fb58202db20d2c24?s=64&d=http%3A%2F%2Ffedoraproject.org%2Fstatic%2Fimages%2Ffedora_infinity_64x64.png

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['lmacken'])``

- :func:`fedmsg.meta.msg2packages`

 - ``set(['foo'])``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['packages/foo'])``



bodhi.update.request.testing
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The `Bodhi Updates System <https://admin.fedoraproject.org/updates>`_
publishes messages on this topic whenever an update
**completes it's push to the testing repository**.  Some updates may
contain *multiple packages*, which can be a little tricky if you're not
ready for it.  Here's an example of that:

.. code-block:: python

    { 'i': 2,
      'msg': { 'agent': 'lmacken',
               'update': { 'approved': None,
                           'bugs': [],
                           'builds': [ { 'nvr': 'gnome-settings-daemon-3.6.1-1.fc18',
                                         'package': { 'committers': [ 'hadess',
                                                                      'ofourdan',
                                                                      'mkasik',
                                                                      'cosimoc'],
                                                      'name': 'gnome-settings-daemon',
                                                      'suggest_reboot': False}},
                                       { 'nvr': 'control-center-3.6.1-1.fc18',
                                         'package': { 'committers': [ 'ctrl-center-team',
                                                                      'ofourdan',
                                                                      'ssp',
                                                                      'ajax',
                                                                      'alexl',
                                                                      'jrb',
                                                                      'mbarnes',
                                                                      'caolanm',
                                                                      'davidz',
                                                                      'mclasen',
                                                                      'rhughes',
                                                                      'hadess',
                                                                      'johnp',
                                                                      'caillon',
                                                                      'whot',
                                                                      'rstrode'],
                                                      'name': 'control-center',
                                                      'suggest_reboot': False}}],
                           'close_bugs': True,
                           'comments': [ { 'anonymous': False,
                                           'author': 'bodhi',
                                           'group': None,
                                           'karma': 0,
                                           'text': 'This update has been submitted for testing by hadess. ',
                                           'timestamp': 1349718539.0,
                                           'update_title': 'gnome-settings-daemon-3.6.1-1.fc18,control-center-3.6.1-1.fc18'}],
                           'critpath': False,
                           'critpath_approved': False,
                           'date_modified': None,
                           'date_pushed': None,
                           'date_submitted': 1349718534.0,
                           'karma': 0,
                           'nagged': None,
                           'notes': "This update fixes numerous bugs in the new Input Sources support, the Network panel and adds a help screen accessible via Wacom tablets's buttons.",
                           'release': { 'dist_tag': 'f18',
                                        'id_prefix': 'FEDORA',
                                        'locked': True,
                                        'long_name': 'Fedora 18',
                                        'name': 'F18'},
                           'request': 'testing',
                           'stable_karma': 3,
                           'status': 'pending',
                           'submitter': 'hadess',
                           'title': 'gnome-settings-daemon-3.6.1-1.fc18,control-center-3.6.1-1.fc18',
                           'type': 'bugfix',
                           'unstable_karma': -3,
                           'updateid': None}},
      'timestamp': 1349718539.0,
      'topic': 'org.fedoraproject.prod.bodhi.update.request.testing'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - bodhi.update.request.testing

- :func:`fedmsg.meta.msg2subtitle`

  - lmacken submitted gnome-settings-daemon-3.6.1-1.fc18,control-center-3.6.1-1.fc18 to testing

- :func:`fedmsg.meta.msg2link`

  - https://admin.fedoraproject.org/updates/gnome-settings-daemon-3.6.1-1.fc18,control-center-3.6.1-1.fc18

- :func:`fedmsg.meta.msg2icon`

  - https://admin.fedoraproject.org/updates/static/images/bodhi-icon-48.png

- :func:`fedmsg.meta.msg2secondary_icon`

  - http://www.gravatar.com/avatar/9d953fa825bd80dfa6e45660b03adc2d?s=64&d=http%3A%2F%2Ffedoraproject.org%2Fstatic%2Fimages%2Ffedora_infinity_64x64.png

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['hadess'])``

- :func:`fedmsg.meta.msg2packages`

 - ``set(['gnome-settings-daemon', 'control-center'])``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['packages/gnome-settings-daemon', 'packages/control-center'])``



bodhi.update.request.testing
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The `Bodhi Updates System <https://admin.fedoraproject.org/updates>`_
publishes messages on this topic whenever a *user* requests that an
update be pushed to the testing repository.

.. code-block:: python

    { 'msg': { 'agent': 'lmacken',
               'update': { 'submitter': 'lmacken', 'title': 'foo'}},
      'topic': 'org.fedoraproject.prod.bodhi.update.request.testing'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - bodhi.update.request.testing

- :func:`fedmsg.meta.msg2subtitle`

  - lmacken submitted foo to testing

- :func:`fedmsg.meta.msg2link`

  - https://admin.fedoraproject.org/updates/foo

- :func:`fedmsg.meta.msg2icon`

  - https://admin.fedoraproject.org/updates/static/images/bodhi-icon-48.png

- :func:`fedmsg.meta.msg2secondary_icon`

  - http://www.gravatar.com/avatar/0c35a75019e58e54fb58202db20d2c24?s=64&d=http%3A%2F%2Ffedoraproject.org%2Fstatic%2Fimages%2Ffedora_infinity_64x64.png

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['lmacken'])``

- :func:`fedmsg.meta.msg2packages`

 - ``set(['foo'])``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['packages/foo'])``



bodhi.update.request.unpush
~~~~~~~~~~~~~~~~~~~~~~~~~~~

The `Bodhi Updates System <https://admin.fedoraproject.org/updates>`_
publishes messages on this topic whenever a *user* requests that an update
be **unpushed**.

.. code-block:: python

    { 'msg': { 'agent': 'lmacken',
               'update': { 'submitter': 'lmacken', 'title': 'foo'}},
      'topic': 'org.fedoraproject.prod.bodhi.update.request.unpush'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - bodhi.update.request.unpush

- :func:`fedmsg.meta.msg2subtitle`

  - lmacken unpushed foo

- :func:`fedmsg.meta.msg2link`

  - https://admin.fedoraproject.org/updates/foo

- :func:`fedmsg.meta.msg2icon`

  - https://admin.fedoraproject.org/updates/static/images/bodhi-icon-48.png

- :func:`fedmsg.meta.msg2secondary_icon`

  - http://www.gravatar.com/avatar/0c35a75019e58e54fb58202db20d2c24?s=64&d=http%3A%2F%2Ffedoraproject.org%2Fstatic%2Fimages%2Ffedora_infinity_64x64.png

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['lmacken'])``

- :func:`fedmsg.meta.msg2packages`

 - ``set(['foo'])``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['packages/foo'])``



buildsys
--------

buildsys.build.state.change
~~~~~~~~~~~~~~~~~~~~~~~~~~~

Koji emits messages on this topic anytime the state of a build changes.

The state codes can be pretty cryptic (they are just integers and are the
enums used by koji internally):

- 0 - Started
- 1 - Completed
- 2 - Deleted
- 3 - Failed
- 4 - Cancelled

The example here is one of a build **failing**.

.. code-block:: python

    { 'i': 1,
      'msg': { 'attribute': 'state',
               'build_id': 12345,
               'name': 'eclipse-ptp',
               'new': 3,
               'old': 0,
               'owner': 'rmattes',
               'release': '1.fc19',
               'version': '6.0.3'},
      'timestamp': 1359604772.178867,
      'topic': 'org.fedoraproject.prod.buildsys.build.state.change',
      'username': 'apache'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - buildsys.build.state.change

- :func:`fedmsg.meta.msg2subtitle`

  - rmattes's eclipse-ptp-6.0.3-1.fc19 failed to build

- :func:`fedmsg.meta.msg2link`

  - http://koji.fedoraproject.org/koji/buildinfo?buildID=12345

- :func:`fedmsg.meta.msg2icon`

  - http://fedoraproject.org/w/uploads/2/20/Artwork_DesignService_koji-icon-48.png

- :func:`fedmsg.meta.msg2secondary_icon`

  - None

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['rmattes'])``

- :func:`fedmsg.meta.msg2packages`

 - ``set(['eclipse-ptp'])``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['builds/eclipse-ptp/6.0.3/1.fc19'])``



buildsys.build.state.change
~~~~~~~~~~~~~~~~~~~~~~~~~~~

Koji emits messages on this topic anytime the state of a build changes.

The state codes can be pretty cryptic (they are just integers and are the
enums used by koji internally):

- 0 - Started
- 1 - Completed
- 2 - Deleted
- 3 - Failed
- 4 - Cancelled

The example here is one of a new build **starting**.

.. code-block:: python

    { 'i': 1,
      'msg': { 'attribute': 'state',
               'build_id': 12345,
               'name': 'eclipse-ptp',
               'new': 0,
               'old': 3,
               'owner': 'ralph',
               'release': '1.fc19',
               'version': '6.0.3'},
      'timestamp': 1359604772.178867,
      'topic': 'org.fedoraproject.prod.buildsys.build.state.change',
      'username': 'apache'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - buildsys.build.state.change

- :func:`fedmsg.meta.msg2subtitle`

  - ralph's eclipse-ptp-6.0.3-1.fc19 started building

- :func:`fedmsg.meta.msg2link`

  - http://koji.fedoraproject.org/koji/buildinfo?buildID=12345

- :func:`fedmsg.meta.msg2icon`

  - http://fedoraproject.org/w/uploads/2/20/Artwork_DesignService_koji-icon-48.png

- :func:`fedmsg.meta.msg2secondary_icon`

  - None

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['ralph'])``

- :func:`fedmsg.meta.msg2packages`

 - ``set(['eclipse-ptp'])``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['builds/eclipse-ptp/6.0.3/1.fc19'])``



buildsys.build.state.change
~~~~~~~~~~~~~~~~~~~~~~~~~~~

Koji emits messages on this topic anytime the state of a build changes.

The state codes can be tricky, but are described in other examples.

*This* example message shows one where for some reason or another, koji
was unable to publish the name of the owner of a build.  The 'owner' field
is set to None.

.. code-block:: python

    { 'i': 1,
      'msg': { 'attribute': 'state',
               'build_id': 12345,
               'name': 'eclipse-ptp',
               'new': 0,
               'old': 3,
               'owner': None,
               'release': '1.fc19',
               'version': '6.0.3'},
      'timestamp': 1359604772.178867,
      'topic': 'org.fedoraproject.prod.buildsys.build.state.change',
      'username': 'apache'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - buildsys.build.state.change

- :func:`fedmsg.meta.msg2subtitle`

  - eclipse-ptp-6.0.3-1.fc19 started building

- :func:`fedmsg.meta.msg2link`

  - http://koji.fedoraproject.org/koji/buildinfo?buildID=12345

- :func:`fedmsg.meta.msg2icon`

  - http://fedoraproject.org/w/uploads/2/20/Artwork_DesignService_koji-icon-48.png

- :func:`fedmsg.meta.msg2secondary_icon`

  - None

- :func:`fedmsg.meta.msg2usernames`

 - ``set([])``

- :func:`fedmsg.meta.msg2packages`

 - ``set(['eclipse-ptp'])``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['builds/eclipse-ptp/6.0.3/1.fc19'])``



buildsys.package.list.change
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Koji emits these messages a package listing changes.

.. code-block:: python

    { 'i': 2,
      'msg': { 'package': 'almanah', 'tag': 'f17'},
      'timestamp': 1361903735.0,
      'topic': 'org.fedoraproject.prod.buildsys.package.list.change'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - buildsys.package.list.change

- :func:`fedmsg.meta.msg2subtitle`

  - Package list change for almanah:  'f17'

- :func:`fedmsg.meta.msg2link`

  - None

- :func:`fedmsg.meta.msg2icon`

  - http://fedoraproject.org/w/uploads/2/20/Artwork_DesignService_koji-icon-48.png

- :func:`fedmsg.meta.msg2secondary_icon`

  - None

- :func:`fedmsg.meta.msg2usernames`

 - ``set([])``

- :func:`fedmsg.meta.msg2packages`

 - ``set(['almanah'])``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['tags/f17'])``



buildsys.repo.done
~~~~~~~~~~~~~~~~~~

Koji emits these messages when repo initialization finishes.

.. code-block:: python

    { 'i': 2,
      'msg': { 'repo_id': 23456, 'tag': 'f19-build', 'tag_id': 12345},
      'timestamp': 1359655886.353586,
      'topic': 'org.fedoraproject.prod.buildsys.repo.done',
      'username': 'apache'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - buildsys.repo.done

- :func:`fedmsg.meta.msg2subtitle`

  - Repo done:  f19-build

- :func:`fedmsg.meta.msg2link`

  - http://koji.fedoraproject.org/koji/taginfo?tagID=12345

- :func:`fedmsg.meta.msg2icon`

  - http://fedoraproject.org/w/uploads/2/20/Artwork_DesignService_koji-icon-48.png

- :func:`fedmsg.meta.msg2secondary_icon`

  - None

- :func:`fedmsg.meta.msg2usernames`

 - ``set([])``

- :func:`fedmsg.meta.msg2packages`

 - ``set([])``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['repos/f19-build'])``



buildsys.repo.init
~~~~~~~~~~~~~~~~~~

Koji emits these messages when a repository begins initializing.

.. code-block:: python

    { 'i': 2,
      'msg': { 'repo_id': 23456, 'tag': 'f19-build', 'tag_id': 12345},
      'timestamp': 1359655886.353586,
      'topic': 'org.fedoraproject.prod.buildsys.repo.init',
      'username': 'apache'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - buildsys.repo.init

- :func:`fedmsg.meta.msg2subtitle`

  - Repo initialized:  f19-build

- :func:`fedmsg.meta.msg2link`

  - http://koji.fedoraproject.org/koji/taginfo?tagID=12345

- :func:`fedmsg.meta.msg2icon`

  - http://fedoraproject.org/w/uploads/2/20/Artwork_DesignService_koji-icon-48.png

- :func:`fedmsg.meta.msg2secondary_icon`

  - None

- :func:`fedmsg.meta.msg2usernames`

 - ``set([])``

- :func:`fedmsg.meta.msg2packages`

 - ``set([])``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['repos/f19-build'])``



buildsys.tag
~~~~~~~~~~~~

Koji emits these messages when a build has a certain tag added to it.

.. code-block:: python

    { 'i': 1,
      'msg': { 'name': 'stage',
               'owner': 'ralph',
               'release': '3.fc18',
               'tag': 'f18-updates-testing-pending',
               'tag_id': 216,
               'user': 'bodhi',
               'version': '4.1.1'},
      'timestamp': 1359603469.21164,
      'topic': 'org.fedoraproject.prod.buildsys.tag',
      'username': 'apache'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - buildsys.tag

- :func:`fedmsg.meta.msg2subtitle`

  - ralph's stage-4.1.1-3.fc18 tagged into f18-updates-testing-pending by bodhi

- :func:`fedmsg.meta.msg2link`

  - http://koji.fedoraproject.org/koji/taginfo?tagID=216

- :func:`fedmsg.meta.msg2icon`

  - http://fedoraproject.org/w/uploads/2/20/Artwork_DesignService_koji-icon-48.png

- :func:`fedmsg.meta.msg2secondary_icon`

  - None

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['bodhi', 'ralph'])``

- :func:`fedmsg.meta.msg2packages`

 - ``set(['stage'])``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['builds/stage/4.1.1/3.fc18', 'tags/f18-updates-testing-pending'])``



buildsys.untag
~~~~~~~~~~~~~~

Koji emits these messages anytime a tag is removed from a build.

.. code-block:: python

    { 'i': 85,
      'msg': { 'name': 'globus-gram-job-manager-sge',
               'owner': 'ralph',
               'release': '2.fc16',
               'tag': 'f16-updates-pending',
               'tag_id': 216,
               'user': 'bodhi',
               'version': '1.5'},
      'timestamp': 1359655345.774982,
      'topic': 'org.fedoraproject.prod.buildsys.untag',
      'username': 'apache'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - buildsys.untag

- :func:`fedmsg.meta.msg2subtitle`

  - ralph's globus-gram-job-manager-sge-1.5-2.fc16 untagged from f16-updates-pending by bodhi

- :func:`fedmsg.meta.msg2link`

  - http://koji.fedoraproject.org/koji/taginfo?tagID=216

- :func:`fedmsg.meta.msg2icon`

  - http://fedoraproject.org/w/uploads/2/20/Artwork_DesignService_koji-icon-48.png

- :func:`fedmsg.meta.msg2secondary_icon`

  - None

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['bodhi', 'ralph'])``

- :func:`fedmsg.meta.msg2packages`

 - ``set(['globus-gram-job-manager-sge'])``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['tags/f16-updates-pending', 'builds/globus-gram-job-manager-sge/1.5/2.fc16'])``



compose
-------

compose.branched.complete
~~~~~~~~~~~~~~~~~~~~~~~~~

The `release engineering
<http://fedoraproject.org/wiki/ReleaseEngineering>`_ "compose" scripts
produce these messages when they have
**finished composing**
whatever the current branched distribution version is.  They are published
for both primary and secondary architectures.  The example here is of a
**primary** arch message (the empty string signifies primary).

.. code-block:: python

    { 'i': 1,
      'msg': { 'arch': '', 'branch': 'f18', 'log': 'done'},
      'timestamp': 1344447839.891876,
      'topic': 'org.fedoraproject.prod.compose.branched.complete'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - compose.branched.complete

- :func:`fedmsg.meta.msg2subtitle`

  - f18 compose completed

- :func:`fedmsg.meta.msg2link`

  - https://dl.fedoraproject.org/pub/fedora/linux/development/f18

- :func:`fedmsg.meta.msg2icon`

  - None

- :func:`fedmsg.meta.msg2secondary_icon`

  - None

- :func:`fedmsg.meta.msg2usernames`

 - ``None``

- :func:`fedmsg.meta.msg2packages`

 - ``None``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['branched/primary'])``



compose.branched.complete
~~~~~~~~~~~~~~~~~~~~~~~~~

The `release engineering
<http://fedoraproject.org/wiki/ReleaseEngineering>`_ "compose" scripts
produce these messages when they have
**finished composing**
whatever the current branched distribution version is.  They are published
for both primary and secondary architectures.  The example here is of a
**secondary** arch message.

.. code-block:: python

    { 'i': 1,
      'msg': { 'arch': 'arm', 'branch': 'f18', 'log': 'done'},
      'timestamp': 1344447839.891876,
      'topic': 'org.fedoraproject.prod.compose.branched.complete'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - compose.branched.complete

- :func:`fedmsg.meta.msg2subtitle`

  - f18 compose (arm) completed

- :func:`fedmsg.meta.msg2link`

  - https://dl.fedoraproject.org/pub/fedora-secondary/development/f18

- :func:`fedmsg.meta.msg2icon`

  - None

- :func:`fedmsg.meta.msg2secondary_icon`

  - None

- :func:`fedmsg.meta.msg2usernames`

 - ``None``

- :func:`fedmsg.meta.msg2packages`

 - ``None``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['branched/arm'])``



compose.branched.mash.complete
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The `release engineering
<http://fedoraproject.org/wiki/ReleaseEngineering>`_ "compose" scripts
produce these messages when they have
**finished mashing**
whatever the current branched distribution version is.  They are published
for both primary and secondary architectures.  The example here is of a
**primary** arch message (the empty string signifies primary).

.. code-block:: python

    { 'i': 1,
      'msg': { 'arch': '', 'branch': 'f18', 'log': 'done'},
      'timestamp': 1344447839.891876,
      'topic': 'org.fedoraproject.prod.compose.branched.mash.complete'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - compose.branched.mash.complete

- :func:`fedmsg.meta.msg2subtitle`

  - f18 compose finished mashing

- :func:`fedmsg.meta.msg2link`

  - None

- :func:`fedmsg.meta.msg2icon`

  - None

- :func:`fedmsg.meta.msg2secondary_icon`

  - None

- :func:`fedmsg.meta.msg2usernames`

 - ``None``

- :func:`fedmsg.meta.msg2packages`

 - ``None``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['branched/primary'])``



compose.branched.mash.complete
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The `release engineering
<http://fedoraproject.org/wiki/ReleaseEngineering>`_ "compose" scripts
produce these messages when they have
**finished mashing**
whatever the current branched distribution version is.  They are published
for both primary and secondary architectures.  The example here is of a
**secondary** arch message.

.. code-block:: python

    { 'i': 1,
      'msg': { 'arch': 'arm', 'branch': 'f18', 'log': 'done'},
      'timestamp': 1344447839.891876,
      'topic': 'org.fedoraproject.prod.compose.branched.mash.complete'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - compose.branched.mash.complete

- :func:`fedmsg.meta.msg2subtitle`

  - f18 compose (arm) finished mashing

- :func:`fedmsg.meta.msg2link`

  - None

- :func:`fedmsg.meta.msg2icon`

  - None

- :func:`fedmsg.meta.msg2secondary_icon`

  - None

- :func:`fedmsg.meta.msg2usernames`

 - ``None``

- :func:`fedmsg.meta.msg2packages`

 - ``None``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['branched/arm'])``



compose.branched.mash.start
~~~~~~~~~~~~~~~~~~~~~~~~~~~

The `release engineering
<http://fedoraproject.org/wiki/ReleaseEngineering>`_ "compose" scripts
produce these messages when they have
**begun mashing** for
whatever the current branched distribution version is.  They are published
for both primary and secondary architectures.  The example here is of a
**primary** arch message (the empty string signifies primary).

.. code-block:: python

    { 'i': 1,
      'msg': { 'arch': '', 'branch': 'f18', 'log': 'start'},
      'timestamp': 1344447839.891876,
      'topic': 'org.fedoraproject.prod.compose.branched.mash.start'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - compose.branched.mash.start

- :func:`fedmsg.meta.msg2subtitle`

  - f18 compose started mashing

- :func:`fedmsg.meta.msg2link`

  - None

- :func:`fedmsg.meta.msg2icon`

  - None

- :func:`fedmsg.meta.msg2secondary_icon`

  - None

- :func:`fedmsg.meta.msg2usernames`

 - ``None``

- :func:`fedmsg.meta.msg2packages`

 - ``None``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['branched/primary'])``



compose.branched.mash.start
~~~~~~~~~~~~~~~~~~~~~~~~~~~

The `release engineering
<http://fedoraproject.org/wiki/ReleaseEngineering>`_ "compose" scripts
produce these messages when they have
**started mashing**
whatever the current branched distribution version is.  They are published
for both primary and secondary architectures.  The example here is of a
**secondary** arch message.

.. code-block:: python

    { 'i': 1,
      'msg': { 'arch': 'arm', 'branch': 'f18', 'log': 'start'},
      'timestamp': 1344447839.891876,
      'topic': 'org.fedoraproject.prod.compose.branched.mash.start'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - compose.branched.mash.start

- :func:`fedmsg.meta.msg2subtitle`

  - f18 compose (arm) started mashing

- :func:`fedmsg.meta.msg2link`

  - None

- :func:`fedmsg.meta.msg2icon`

  - None

- :func:`fedmsg.meta.msg2secondary_icon`

  - None

- :func:`fedmsg.meta.msg2usernames`

 - ``None``

- :func:`fedmsg.meta.msg2packages`

 - ``None``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['branched/arm'])``



compose.branched.pungify.complete
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The `release engineering
<http://fedoraproject.org/wiki/ReleaseEngineering>`_ "compose" scripts
produce these messages when they have
completed the `pungify <https://fedorahosted.org/pungi/>`_ process for
whatever the current branched distribution version is.  They are published
for both primary and secondary architectures.  The example here is of a
**primary** arch message (the empty string signifies primary).

.. code-block:: python

    { 'i': 1,
      'msg': { 'arch': '', 'branch': 'f18', 'log': 'done'},
      'timestamp': 1344447839.891876,
      'topic': 'org.fedoraproject.prod.compose.branched.pungify.complete'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - compose.branched.pungify.complete

- :func:`fedmsg.meta.msg2subtitle`

  - finished building boot.iso for f18

- :func:`fedmsg.meta.msg2link`

  - None

- :func:`fedmsg.meta.msg2icon`

  - None

- :func:`fedmsg.meta.msg2secondary_icon`

  - None

- :func:`fedmsg.meta.msg2usernames`

 - ``None``

- :func:`fedmsg.meta.msg2packages`

 - ``None``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['branched/primary'])``



compose.branched.pungify.complete
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The `release engineering
<http://fedoraproject.org/wiki/ReleaseEngineering>`_ "compose" scripts
produce these messages when they have
completed the `pungify <https://fedorahosted.org/pungi/>`_ process for
whatever the current branched distribution version is.  They are published
for both primary and secondary architectures.  The example here is of a
**secondary** arch message.

.. code-block:: python

    { 'i': 1,
      'msg': { 'arch': 'arm', 'branch': 'f18', 'log': 'done'},
      'timestamp': 1344447839.891876,
      'topic': 'org.fedoraproject.prod.compose.branched.pungify.complete'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - compose.branched.pungify.complete

- :func:`fedmsg.meta.msg2subtitle`

  - finished building boot.iso for f18 (arm)

- :func:`fedmsg.meta.msg2link`

  - None

- :func:`fedmsg.meta.msg2icon`

  - None

- :func:`fedmsg.meta.msg2secondary_icon`

  - None

- :func:`fedmsg.meta.msg2usernames`

 - ``None``

- :func:`fedmsg.meta.msg2packages`

 - ``None``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['branched/arm'])``



compose.branched.pungify.start
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The `release engineering
<http://fedoraproject.org/wiki/ReleaseEngineering>`_ "compose" scripts
produce these messages when they have
started the `pungify <https://fedorahosted.org/pungi/>`_ process for
whatever the current branched distribution version is.  They are published
for both primary and secondary architectures.  The example here is of a
**primary** arch message (the empty string signifies primary).

.. code-block:: python

    { 'i': 1,
      'msg': { 'arch': '', 'branch': 'f18', 'log': 'start'},
      'timestamp': 1344447839.891876,
      'topic': 'org.fedoraproject.prod.compose.branched.pungify.start'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - compose.branched.pungify.start

- :func:`fedmsg.meta.msg2subtitle`

  - started building boot.iso for f18

- :func:`fedmsg.meta.msg2link`

  - None

- :func:`fedmsg.meta.msg2icon`

  - None

- :func:`fedmsg.meta.msg2secondary_icon`

  - None

- :func:`fedmsg.meta.msg2usernames`

 - ``None``

- :func:`fedmsg.meta.msg2packages`

 - ``None``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['branched/primary'])``



compose.branched.pungify.start
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The `release engineering
<http://fedoraproject.org/wiki/ReleaseEngineering>`_ "compose" scripts
produce these messages when they have
started the `pungify <https://fedorahosted.org/pungi/>`_ process for
whatever the current branched distribution version is.  They are published
for both primary and secondary architectures.  The example here is of a
**secondary** arch message.

.. code-block:: python

    { 'i': 1,
      'msg': { 'arch': 'arm', 'branch': 'f18', 'log': 'start'},
      'timestamp': 1344447839.891876,
      'topic': 'org.fedoraproject.prod.compose.branched.pungify.start'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - compose.branched.pungify.start

- :func:`fedmsg.meta.msg2subtitle`

  - started building boot.iso for f18 (arm)

- :func:`fedmsg.meta.msg2link`

  - None

- :func:`fedmsg.meta.msg2icon`

  - None

- :func:`fedmsg.meta.msg2secondary_icon`

  - None

- :func:`fedmsg.meta.msg2usernames`

 - ``None``

- :func:`fedmsg.meta.msg2packages`

 - ``None``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['branched/arm'])``



compose.branched.rsync.complete
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The `release engineering
<http://fedoraproject.org/wiki/ReleaseEngineering>`_ "compose" scripts
produce these messages when they have
finished **rsyncing**
whatever the current branched distribution version is.  They are published
for both primary and secondary architectures.  The example here is of a
**primary** arch message (the empty string signifies primary).

.. code-block:: python

    { 'i': 1,
      'msg': { 'arch': '', 'branch': 'f18', 'log': 'done'},
      'timestamp': 1344447839.891876,
      'topic': 'org.fedoraproject.prod.compose.branched.rsync.complete'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - compose.branched.rsync.complete

- :func:`fedmsg.meta.msg2subtitle`

  - finished rsync of f18 compose

- :func:`fedmsg.meta.msg2link`

  - https://dl.fedoraproject.org/pub/fedora/linux/development/f18

- :func:`fedmsg.meta.msg2icon`

  - None

- :func:`fedmsg.meta.msg2secondary_icon`

  - None

- :func:`fedmsg.meta.msg2usernames`

 - ``None``

- :func:`fedmsg.meta.msg2packages`

 - ``None``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['branched/primary'])``



compose.branched.rsync.complete
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The `release engineering
<http://fedoraproject.org/wiki/ReleaseEngineering>`_ "compose" scripts
produce these messages when they have
**finished rsyncing**
whatever the current branched distribution version is.  They are published
for both primary and secondary architectures.  The example here is of a
**secondary** arch message.

.. code-block:: python

    { 'i': 1,
      'msg': { 'arch': 'arm', 'branch': 'f18', 'log': 'done'},
      'timestamp': 1344447839.891876,
      'topic': 'org.fedoraproject.prod.compose.branched.rsync.complete'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - compose.branched.rsync.complete

- :func:`fedmsg.meta.msg2subtitle`

  - finished rsync of f18 compose (arm)

- :func:`fedmsg.meta.msg2link`

  - https://dl.fedoraproject.org/pub/fedora-secondary/development/f18

- :func:`fedmsg.meta.msg2icon`

  - None

- :func:`fedmsg.meta.msg2secondary_icon`

  - None

- :func:`fedmsg.meta.msg2usernames`

 - ``None``

- :func:`fedmsg.meta.msg2packages`

 - ``None``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['branched/arm'])``



compose.branched.rsync.start
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The `release engineering
<http://fedoraproject.org/wiki/ReleaseEngineering>`_ "compose" scripts
produce these messages when they have
begun **rsyncing**
whatever the current branched distribution version is.  They are published
for both primary and secondary architectures.  The example here is of a
**primary** arch message (the empty string signifies primary).

.. code-block:: python

    { 'i': 1,
      'msg': { 'arch': '', 'branch': 'f18', 'log': 'start'},
      'timestamp': 1344447839.891876,
      'topic': 'org.fedoraproject.prod.compose.branched.rsync.start'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - compose.branched.rsync.start

- :func:`fedmsg.meta.msg2subtitle`

  - started rsyncing f18 compose

- :func:`fedmsg.meta.msg2link`

  - None

- :func:`fedmsg.meta.msg2icon`

  - None

- :func:`fedmsg.meta.msg2secondary_icon`

  - None

- :func:`fedmsg.meta.msg2usernames`

 - ``None``

- :func:`fedmsg.meta.msg2packages`

 - ``None``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['branched/primary'])``



compose.branched.rsync.start
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The `release engineering
<http://fedoraproject.org/wiki/ReleaseEngineering>`_ "compose" scripts
produce these messages when they have
**started rsyncing**
whatever the current branched distribution version is.  They are published
for both primary and secondary architectures.  The example here is of a
**secondary** arch message.

.. code-block:: python

    { 'i': 1,
      'msg': { 'arch': 'arm', 'branch': 'f18', 'log': 'start'},
      'timestamp': 1344447839.891876,
      'topic': 'org.fedoraproject.prod.compose.branched.rsync.start'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - compose.branched.rsync.start

- :func:`fedmsg.meta.msg2subtitle`

  - started rsyncing f18 compose (arm)

- :func:`fedmsg.meta.msg2link`

  - None

- :func:`fedmsg.meta.msg2icon`

  - None

- :func:`fedmsg.meta.msg2secondary_icon`

  - None

- :func:`fedmsg.meta.msg2usernames`

 - ``None``

- :func:`fedmsg.meta.msg2packages`

 - ``None``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['branched/arm'])``



compose.branched.start
~~~~~~~~~~~~~~~~~~~~~~

The `release engineering
<http://fedoraproject.org/wiki/ReleaseEngineering>`_ "compose" scripts
produce these messages when they have
**begun composing**
whatever the current branched distribution version is.  They are published
for both primary and secondary architectures.  The example here is of a
**primary** arch message (the empty string signifies primary).

.. code-block:: python

    { 'i': 1,
      'msg': { 'arch': '', 'branch': 'f18', 'log': 'start'},
      'timestamp': 1344447839.891876,
      'topic': 'org.fedoraproject.prod.compose.branched.start'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - compose.branched.start

- :func:`fedmsg.meta.msg2subtitle`

  - f18 compose started

- :func:`fedmsg.meta.msg2link`

  - None

- :func:`fedmsg.meta.msg2icon`

  - None

- :func:`fedmsg.meta.msg2secondary_icon`

  - None

- :func:`fedmsg.meta.msg2usernames`

 - ``None``

- :func:`fedmsg.meta.msg2packages`

 - ``None``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['branched/primary'])``



compose.branched.start
~~~~~~~~~~~~~~~~~~~~~~

The `release engineering
<http://fedoraproject.org/wiki/ReleaseEngineering>`_ "compose" scripts
produce these messages when they have
**started composing**
whatever the current branched distribution version is.  They are published
for both primary and secondary architectures.  The example here is of a
**secondary** arch message.

.. code-block:: python

    { 'i': 1,
      'msg': { 'arch': 'arm', 'branch': 'f18', 'log': 'start'},
      'timestamp': 1344447839.891876,
      'topic': 'org.fedoraproject.prod.compose.branched.start'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - compose.branched.start

- :func:`fedmsg.meta.msg2subtitle`

  - f18 compose (arm) started

- :func:`fedmsg.meta.msg2link`

  - None

- :func:`fedmsg.meta.msg2icon`

  - None

- :func:`fedmsg.meta.msg2secondary_icon`

  - None

- :func:`fedmsg.meta.msg2usernames`

 - ``None``

- :func:`fedmsg.meta.msg2packages`

 - ``None``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['branched/arm'])``



compose.rawhide.complete
~~~~~~~~~~~~~~~~~~~~~~~~

The `release engineering
<http://fedoraproject.org/wiki/ReleaseEngineering>`_ "compose" scripts
produce these messages when they have
**finished** the rawhide compose.  They are published
for both primary and secondary architectures.  The example here is of a
**primary** arch message (the empty string signifies primary).

.. code-block:: python

    { 'i': 1,
      'msg': { 'arch': '', 'branch': 'rawhide', 'log': 'done'},
      'timestamp': 1344447839.891876,
      'topic': 'org.fedoraproject.prod.compose.rawhide.complete'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - compose.rawhide.complete

- :func:`fedmsg.meta.msg2subtitle`

  - rawhide compose completed

- :func:`fedmsg.meta.msg2link`

  - https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide

- :func:`fedmsg.meta.msg2icon`

  - None

- :func:`fedmsg.meta.msg2secondary_icon`

  - None

- :func:`fedmsg.meta.msg2usernames`

 - ``None``

- :func:`fedmsg.meta.msg2packages`

 - ``None``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['rawhide/primary'])``



compose.rawhide.complete
~~~~~~~~~~~~~~~~~~~~~~~~

The `release engineering
<http://fedoraproject.org/wiki/ReleaseEngineering>`_ "compose" scripts
produce these messages when they have
**finished** the rawhide compose.  They are published
for both primary and secondary architectures.  The example here is of a
**secondary** arch message.

.. code-block:: python

    { 'i': 1,
      'msg': { 'arch': 'arm', 'branch': 'rawhide', 'log': 'done'},
      'timestamp': 1344447839.891876,
      'topic': 'org.fedoraproject.prod.compose.rawhide.complete'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - compose.rawhide.complete

- :func:`fedmsg.meta.msg2subtitle`

  - rawhide compose (arm) completed

- :func:`fedmsg.meta.msg2link`

  - https://dl.fedoraproject.org/pub/fedora-secondary/development/rawhide

- :func:`fedmsg.meta.msg2icon`

  - None

- :func:`fedmsg.meta.msg2secondary_icon`

  - None

- :func:`fedmsg.meta.msg2usernames`

 - ``None``

- :func:`fedmsg.meta.msg2packages`

 - ``None``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['rawhide/arm'])``



compose.rawhide.mash.complete
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The `release engineering
<http://fedoraproject.org/wiki/ReleaseEngineering>`_ "compose" scripts
produce these messages when they have
**finished mashing** the rawhide compose.  They are published
for both primary and secondary architectures.  The example here is of a
**primary** arch message (the empty string signifies primary).

.. code-block:: python

    { 'i': 1,
      'msg': { 'arch': '', 'branch': 'rawhide', 'log': 'done'},
      'timestamp': 1344447839.891876,
      'topic': 'org.fedoraproject.prod.compose.rawhide.mash.complete'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - compose.rawhide.mash.complete

- :func:`fedmsg.meta.msg2subtitle`

  - rawhide compose finished mashing

- :func:`fedmsg.meta.msg2link`

  - None

- :func:`fedmsg.meta.msg2icon`

  - None

- :func:`fedmsg.meta.msg2secondary_icon`

  - None

- :func:`fedmsg.meta.msg2usernames`

 - ``None``

- :func:`fedmsg.meta.msg2packages`

 - ``None``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['rawhide/primary'])``



compose.rawhide.mash.complete
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The `release engineering
<http://fedoraproject.org/wiki/ReleaseEngineering>`_ "compose" scripts
produce these messages when they have
**finished mashing** the rawhide compose.  They are published
for both primary and secondary architectures.  The example here is of a
**secondary** arch message.

.. code-block:: python

    { 'i': 1,
      'msg': { 'arch': 'arm', 'branch': 'rawhide', 'log': 'done'},
      'timestamp': 1344447839.891876,
      'topic': 'org.fedoraproject.prod.compose.rawhide.mash.complete'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - compose.rawhide.mash.complete

- :func:`fedmsg.meta.msg2subtitle`

  - rawhide compose (arm) finished mashing

- :func:`fedmsg.meta.msg2link`

  - None

- :func:`fedmsg.meta.msg2icon`

  - None

- :func:`fedmsg.meta.msg2secondary_icon`

  - None

- :func:`fedmsg.meta.msg2usernames`

 - ``None``

- :func:`fedmsg.meta.msg2packages`

 - ``None``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['rawhide/arm'])``



compose.rawhide.mash.start
~~~~~~~~~~~~~~~~~~~~~~~~~~

The `release engineering
<http://fedoraproject.org/wiki/ReleaseEngineering>`_ "compose" scripts
produce these messages when they have
**started mashing** the rawhide compose.  They are published
for both primary and secondary architectures.  The example here is of a
**primary** arch message (the empty string signifies primary).

.. code-block:: python

    { 'i': 1,
      'msg': { 'arch': '', 'branch': 'rawhide', 'log': 'start'},
      'timestamp': 1344447839.891876,
      'topic': 'org.fedoraproject.prod.compose.rawhide.mash.start'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - compose.rawhide.mash.start

- :func:`fedmsg.meta.msg2subtitle`

  - rawhide compose started mashing

- :func:`fedmsg.meta.msg2link`

  - None

- :func:`fedmsg.meta.msg2icon`

  - None

- :func:`fedmsg.meta.msg2secondary_icon`

  - None

- :func:`fedmsg.meta.msg2usernames`

 - ``None``

- :func:`fedmsg.meta.msg2packages`

 - ``None``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['rawhide/primary'])``



compose.rawhide.mash.start
~~~~~~~~~~~~~~~~~~~~~~~~~~

The `release engineering
<http://fedoraproject.org/wiki/ReleaseEngineering>`_ "compose" scripts
produce these messages when they have
**started mashing** the rawhide compose.  They are published
for both primary and secondary architectures.  The example here is of a
**secondary** arch message.

.. code-block:: python

    { 'i': 1,
      'msg': { 'arch': 'arm', 'branch': 'rawhide', 'log': 'start'},
      'timestamp': 1344447839.891876,
      'topic': 'org.fedoraproject.prod.compose.rawhide.mash.start'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - compose.rawhide.mash.start

- :func:`fedmsg.meta.msg2subtitle`

  - rawhide compose (arm) started mashing

- :func:`fedmsg.meta.msg2link`

  - None

- :func:`fedmsg.meta.msg2icon`

  - None

- :func:`fedmsg.meta.msg2secondary_icon`

  - None

- :func:`fedmsg.meta.msg2usernames`

 - ``None``

- :func:`fedmsg.meta.msg2packages`

 - ``None``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['rawhide/arm'])``



compose.rawhide.rsync.complete
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The `release engineering
<http://fedoraproject.org/wiki/ReleaseEngineering>`_ "compose" scripts
produce these messages when they have
**finished rsyncing** the rawhide compose.  They are published
for both primary and secondary architectures.  The example here is of a
**primary** arch message (the empty string signifies primary).

.. code-block:: python

    { 'i': 1,
      'msg': { 'arch': '', 'branch': 'rawhide', 'log': 'done'},
      'timestamp': 1344447839.891876,
      'topic': 'org.fedoraproject.prod.compose.rawhide.rsync.complete'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - compose.rawhide.rsync.complete

- :func:`fedmsg.meta.msg2subtitle`

  - finished rsync of rawhide compose

- :func:`fedmsg.meta.msg2link`

  - https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide

- :func:`fedmsg.meta.msg2icon`

  - None

- :func:`fedmsg.meta.msg2secondary_icon`

  - None

- :func:`fedmsg.meta.msg2usernames`

 - ``None``

- :func:`fedmsg.meta.msg2packages`

 - ``None``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['rawhide/primary'])``



compose.rawhide.rsync.complete
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The `release engineering
<http://fedoraproject.org/wiki/ReleaseEngineering>`_ "compose" scripts
produce these messages when they have
**finished rsyncing** the rawhide compose.  They are published
for both primary and secondary architectures.  The example here is of a
**secondary** arch message.

.. code-block:: python

    { 'i': 1,
      'msg': { 'arch': 'arm', 'branch': 'rawhide', 'log': 'done'},
      'timestamp': 1344447839.891876,
      'topic': 'org.fedoraproject.prod.compose.rawhide.rsync.complete'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - compose.rawhide.rsync.complete

- :func:`fedmsg.meta.msg2subtitle`

  - finished rsync of rawhide compose (arm)

- :func:`fedmsg.meta.msg2link`

  - https://dl.fedoraproject.org/pub/fedora-secondary/development/rawhide

- :func:`fedmsg.meta.msg2icon`

  - None

- :func:`fedmsg.meta.msg2secondary_icon`

  - None

- :func:`fedmsg.meta.msg2usernames`

 - ``None``

- :func:`fedmsg.meta.msg2packages`

 - ``None``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['rawhide/arm'])``



compose.rawhide.rsync.start
~~~~~~~~~~~~~~~~~~~~~~~~~~~

The `release engineering
<http://fedoraproject.org/wiki/ReleaseEngineering>`_ "compose" scripts
produce these messages when they have
**started rsyncing** the rawhide compose.  They are published
for both primary and secondary architectures.  The example here is of a
**primary** arch message (the empty string signifies primary).

.. code-block:: python

    { 'i': 1,
      'msg': { 'arch': '', 'branch': 'rawhide', 'log': 'start'},
      'timestamp': 1344447839.891876,
      'topic': 'org.fedoraproject.prod.compose.rawhide.rsync.start'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - compose.rawhide.rsync.start

- :func:`fedmsg.meta.msg2subtitle`

  - started rsyncing rawhide compose

- :func:`fedmsg.meta.msg2link`

  - None

- :func:`fedmsg.meta.msg2icon`

  - None

- :func:`fedmsg.meta.msg2secondary_icon`

  - None

- :func:`fedmsg.meta.msg2usernames`

 - ``None``

- :func:`fedmsg.meta.msg2packages`

 - ``None``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['rawhide/primary'])``



compose.rawhide.rsync.start
~~~~~~~~~~~~~~~~~~~~~~~~~~~

The `release engineering
<http://fedoraproject.org/wiki/ReleaseEngineering>`_ "compose" scripts
produce these messages when they have
**started rsyncing** the rawhide compose.  They are published
for both primary and secondary architectures.  The example here is of a
**secondary** arch message.

.. code-block:: python

    { 'i': 1,
      'msg': { 'arch': 'arm', 'branch': 'rawhide', 'log': 'start'},
      'timestamp': 1344447839.891876,
      'topic': 'org.fedoraproject.prod.compose.rawhide.rsync.start'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - compose.rawhide.rsync.start

- :func:`fedmsg.meta.msg2subtitle`

  - started rsyncing rawhide compose (arm)

- :func:`fedmsg.meta.msg2link`

  - None

- :func:`fedmsg.meta.msg2icon`

  - None

- :func:`fedmsg.meta.msg2secondary_icon`

  - None

- :func:`fedmsg.meta.msg2usernames`

 - ``None``

- :func:`fedmsg.meta.msg2packages`

 - ``None``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['rawhide/arm'])``



compose.rawhide.start
~~~~~~~~~~~~~~~~~~~~~

The `release engineering
<http://fedoraproject.org/wiki/ReleaseEngineering>`_ "compose" scripts
produce these messages when they have
**started** the rawhide compose.  They are published
for both primary and secondary architectures.  The example here is of a
**primary** arch message (the empty string signifies primary).

.. code-block:: python

    { 'i': 1,
      'msg': { 'arch': '', 'branch': 'rawhide', 'log': 'start'},
      'timestamp': 1344447839.891876,
      'topic': 'org.fedoraproject.prod.compose.rawhide.start'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - compose.rawhide.start

- :func:`fedmsg.meta.msg2subtitle`

  - rawhide compose started

- :func:`fedmsg.meta.msg2link`

  - None

- :func:`fedmsg.meta.msg2icon`

  - None

- :func:`fedmsg.meta.msg2secondary_icon`

  - None

- :func:`fedmsg.meta.msg2usernames`

 - ``None``

- :func:`fedmsg.meta.msg2packages`

 - ``None``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['rawhide/primary'])``



compose.rawhide.start
~~~~~~~~~~~~~~~~~~~~~

The `release engineering
<http://fedoraproject.org/wiki/ReleaseEngineering>`_ "compose" scripts
produce these messages when they have
**started** the rawhide compose.  They are published
for both primary and secondary architectures.  The example here is of a
**secondary** arch message.

.. code-block:: python

    { 'i': 1,
      'msg': { 'arch': 'arm', 'branch': 'rawhide', 'log': 'start'},
      'timestamp': 1344447839.891876,
      'topic': 'org.fedoraproject.prod.compose.rawhide.start'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - compose.rawhide.start

- :func:`fedmsg.meta.msg2subtitle`

  - rawhide compose (arm) started

- :func:`fedmsg.meta.msg2link`

  - None

- :func:`fedmsg.meta.msg2icon`

  - None

- :func:`fedmsg.meta.msg2secondary_icon`

  - None

- :func:`fedmsg.meta.msg2usernames`

 - ``None``

- :func:`fedmsg.meta.msg2packages`

 - ``None``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['rawhide/arm'])``



datanommer
----------

datanommer.wat
~~~~~~~~~~~~~~

Generally speaking, the `datanommer
<https://github.com/fedora-infra/datanommer>`_ consumer does not publish
its own fedmsg messages.  There is one exception to this rule.

As of fedmsg-0.7.0, every fedmsg carries its own uuid, prefixed with the
year it was published.   There is a very low risk of creating a duplicate
uuid.  To quote wikipedia::

    "The annual risk of someone being hit by a meteorite is estimated to be
    one chance in 17 billion, which means the probability is about
    ``0.00000000006 (6 * 10**-11)``, equivalent to the odds of creating a
    few tens of trillions of UUIDs in a year and having one duplicate"

It is highly unlikely that datanommer will ever try to store a fedmsg
message that carries a uuid that already exists in its database.  In the
event that it does, it will publish the following message; a momentous
occasion.

.. code-block:: python

    { 'i': 1,
      'msg': { 'uuid': '2013-3bf0ec8f-03d3-40be-9ad5-5effdc6e4c06'},
      'timestamp': 1375753735.32427,
      'topic': 'org.fedoraproject.prod.datanommer.wat',
      'username': 'fedmsg'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - datanommer.wat

- :func:`fedmsg.meta.msg2subtitle`

  - datanommer encountered a duplicate uuid

- :func:`fedmsg.meta.msg2link`

  - https://www.destroyallsoftware.com/talks/wat

- :func:`fedmsg.meta.msg2icon`

  - http://i.imgur.com/4g9NZu1.png

- :func:`fedmsg.meta.msg2secondary_icon`

  - http://i.imgur.com/58oJkOr.gif

- :func:`fedmsg.meta.msg2usernames`

 - ``set([])``

- :func:`fedmsg.meta.msg2packages`

 - ``set([])``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['wat'])``



fas
---

fas.group.create
~~~~~~~~~~~~~~~~

The `Fedora Account System <https://admin.fedoraproject.org/accounts>`_
publishes messages on this topic whenever a new group is created.

.. code-block:: python

    { u'msg': { u'agent': { u'username': u'ralph'},
                u'group': { u'name': u'ambassadors'}},
      u'topic': u'org.fedoraproject.prod.fas.group.create'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - fas.group.create

- :func:`fedmsg.meta.msg2subtitle`

  - ralph created new FAS group ambassadors

- :func:`fedmsg.meta.msg2link`

  - None

- :func:`fedmsg.meta.msg2icon`

  - https://admin.fedoraproject.org/accounts/static/theme/fas/images/account.png

- :func:`fedmsg.meta.msg2secondary_icon`

  - http://www.gravatar.com/avatar/2f933f4364baaabd2d3ab8f0664faef2?s=64&d=http%3A%2F%2Ffedoraproject.org%2Fstatic%2Fimages%2Ffedora_infinity_64x64.png

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['ralph'])``

- :func:`fedmsg.meta.msg2packages`

 - ``None``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['groups/ambassadors'])``



fas.group.member.apply
~~~~~~~~~~~~~~~~~~~~~~

The `Fedora Account System <https://admin.fedoraproject.org/accounts>`_
publishes messages on this topic whenever a user **requests to join** a
particular group.

.. code-block:: python

    { u'msg': { u'agent': { u'username': u'ralph'},
                u'group': { u'name': u'ambassadors'},
                u'user': { u'username': u'ralph'}},
      u'topic': u'org.fedoraproject.prod.fas.group.member.apply'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - fas.group.member.apply

- :func:`fedmsg.meta.msg2subtitle`

  - ralph applied for ralph's membership in the ambassadors group

- :func:`fedmsg.meta.msg2link`

  - None

- :func:`fedmsg.meta.msg2icon`

  - https://admin.fedoraproject.org/accounts/static/theme/fas/images/account.png

- :func:`fedmsg.meta.msg2secondary_icon`

  - http://www.gravatar.com/avatar/2f933f4364baaabd2d3ab8f0664faef2?s=64&d=http%3A%2F%2Ffedoraproject.org%2Fstatic%2Fimages%2Ffedora_infinity_64x64.png

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['ralph'])``

- :func:`fedmsg.meta.msg2packages`

 - ``None``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['groups/ambassadors', 'users/ralph'])``



fas.group.member.remove
~~~~~~~~~~~~~~~~~~~~~~~

The `Fedora Account System <https://admin.fedoraproject.org/accounts>`_
publishes messages on this topic whenever a user is **removed** from a
particular group.

.. code-block:: python

    { u'msg': { u'agent': { u'username': u'toshio'},
                u'group': { u'name': u'ambassadors'},
                u'user': { u'username': u'ralph'}},
      u'topic': u'org.fedoraproject.prod.fas.group.member.remove'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - fas.group.member.remove

- :func:`fedmsg.meta.msg2subtitle`

  - toshio removed ralph from the ambassadors group

- :func:`fedmsg.meta.msg2link`

  - None

- :func:`fedmsg.meta.msg2icon`

  - https://admin.fedoraproject.org/accounts/static/theme/fas/images/account.png

- :func:`fedmsg.meta.msg2secondary_icon`

  - http://www.gravatar.com/avatar/8128b4c81d09ada7f95ac9dbf888fbea?s=64&d=http%3A%2F%2Ffedoraproject.org%2Fstatic%2Fimages%2Ffedora_infinity_64x64.png

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['toshio', 'ralph'])``

- :func:`fedmsg.meta.msg2packages`

 - ``None``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['groups/ambassadors', 'users/ralph'])``



fas.group.member.sponsor
~~~~~~~~~~~~~~~~~~~~~~~~

The `Fedora Account System <https://admin.fedoraproject.org/accounts>`_
publishes messages on this topic whenever a user's request to join a
restricted group is **sponsored** by an authorized user.

.. code-block:: python

    { u'msg': { u'agent': { u'username': u'toshio'},
                u'group': { u'name': u'ambassadors'},
                u'user': { u'username': u'ralph'}},
      u'topic': u'org.fedoraproject.prod.fas.group.member.sponsor'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - fas.group.member.sponsor

- :func:`fedmsg.meta.msg2subtitle`

  - toshio sponsored ralph's membership in the ambassadors group

- :func:`fedmsg.meta.msg2link`

  - None

- :func:`fedmsg.meta.msg2icon`

  - https://admin.fedoraproject.org/accounts/static/theme/fas/images/account.png

- :func:`fedmsg.meta.msg2secondary_icon`

  - http://www.gravatar.com/avatar/8128b4c81d09ada7f95ac9dbf888fbea?s=64&d=http%3A%2F%2Ffedoraproject.org%2Fstatic%2Fimages%2Ffedora_infinity_64x64.png

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['toshio', 'ralph'])``

- :func:`fedmsg.meta.msg2packages`

 - ``None``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['groups/ambassadors', 'users/ralph'])``



fas.group.update
~~~~~~~~~~~~~~~~

The `Fedora Account System <https://admin.fedoraproject.org/accounts>`_
publishes messages on this topic whenever a group's properties are
modified.  For example:

.. code-block:: python

    { u'msg': { u'agent': u'ralph',
                u'fields': [u'display_name'],
                u'group': u'ambassadors'},
      u'topic': u'org.fedoraproject.prod.fas.group.update'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - fas.group.update

- :func:`fedmsg.meta.msg2subtitle`

  - ralph edited the following fields of the ambassadors FAS group:  display_name

- :func:`fedmsg.meta.msg2link`

  - None

- :func:`fedmsg.meta.msg2icon`

  - https://admin.fedoraproject.org/accounts/static/theme/fas/images/account.png

- :func:`fedmsg.meta.msg2secondary_icon`

  - http://www.gravatar.com/avatar/2f933f4364baaabd2d3ab8f0664faef2?s=64&d=http%3A%2F%2Ffedoraproject.org%2Fstatic%2Fimages%2Ffedora_infinity_64x64.png

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['ralph'])``

- :func:`fedmsg.meta.msg2packages`

 - ``None``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['groups/ambassadors'])``



fas.role.update
~~~~~~~~~~~~~~~

The `Fedora Account System <https://admin.fedoraproject.org/accounts>`_
publishes messages on this topic whenever a user's role in a particular
group changes.

.. code-block:: python

    { u'msg': { u'agent': { u'username': u'toshio'},
                u'group': { u'name': u'ambassadors'},
                u'user': { u'username': u'ralph'}},
      u'topic': u'org.fedoraproject.prod.fas.role.update'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - fas.role.update

- :func:`fedmsg.meta.msg2subtitle`

  - toshio changed ralph's role in the ambassadors group

- :func:`fedmsg.meta.msg2link`

  - None

- :func:`fedmsg.meta.msg2icon`

  - https://admin.fedoraproject.org/accounts/static/theme/fas/images/account.png

- :func:`fedmsg.meta.msg2secondary_icon`

  - http://www.gravatar.com/avatar/8128b4c81d09ada7f95ac9dbf888fbea?s=64&d=http%3A%2F%2Ffedoraproject.org%2Fstatic%2Fimages%2Ffedora_infinity_64x64.png

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['toshio', 'ralph'])``

- :func:`fedmsg.meta.msg2packages`

 - ``None``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['groups/ambassadors', 'users/ralph'])``



fas.user.create
~~~~~~~~~~~~~~~

The `Fedora Account System <https://admin.fedoraproject.org/accounts>`_
publishes messages on this topic whenever a new user account is created.

.. code-block:: python

    { u'i': 1,
      u'msg': { u'agent': u'ralph', u'user': u'ralph'},
      u'timestamp': 1344432054.809861,
      u'topic': u'org.fedoraproject.prod.fas.user.create'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - fas.user.create

- :func:`fedmsg.meta.msg2subtitle`

  - New FAS account:  'ralph'  (created by 'ralph')

- :func:`fedmsg.meta.msg2link`

  - None

- :func:`fedmsg.meta.msg2icon`

  - https://admin.fedoraproject.org/accounts/static/theme/fas/images/account.png

- :func:`fedmsg.meta.msg2secondary_icon`

  - http://www.gravatar.com/avatar/2f933f4364baaabd2d3ab8f0664faef2?s=64&d=http%3A%2F%2Ffedoraproject.org%2Fstatic%2Fimages%2Ffedora_infinity_64x64.png

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['ralph'])``

- :func:`fedmsg.meta.msg2packages`

 - ``None``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['users/ralph'])``



fas.user.update
~~~~~~~~~~~~~~~

The `Fedora Account System <https://admin.fedoraproject.org/accounts>`_
publishes messages on this topic whenever a user's account is modified.
Information about which account, what fields changed, and who did the
changing are included in the message body.  For example:

.. code-block:: python

    { u'msg': { u'agent': { u'username': u'ralph'},
                u'fields': [u'comments'],
                u'user': { u'username': u'ralph'}},
      u'topic': u'org.fedoraproject.prod.fas.user.update'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - fas.user.update

- :func:`fedmsg.meta.msg2subtitle`

  - ralph edited the following fields of ralph's FAS profile:  comments

- :func:`fedmsg.meta.msg2link`

  - None

- :func:`fedmsg.meta.msg2icon`

  - https://admin.fedoraproject.org/accounts/static/theme/fas/images/account.png

- :func:`fedmsg.meta.msg2secondary_icon`

  - http://www.gravatar.com/avatar/2f933f4364baaabd2d3ab8f0664faef2?s=64&d=http%3A%2F%2Ffedoraproject.org%2Fstatic%2Fimages%2Ffedora_infinity_64x64.png

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['ralph'])``

- :func:`fedmsg.meta.msg2packages`

 - ``None``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['users/ralph'])``



fedbadges
---------

fedbadges.badge.award
~~~~~~~~~~~~~~~~~~~~~

These messages are published when `Open Badges
<https://fedoraproject.org/wiki/Open_Badges>`_ are awarded to Fedora
Contributors by the fedbadges backend.

.. code-block:: python

    { u'i': 1,
      u'msg': { u'badge': { u'creator': u'ralph',
                            u'criteria': { u'datanommer': { u'condition': { u'greater than or equal to': 2},
                                                            u'filter': { u'topics': [ u'{topic}']},
                                                            u'operation': u'count'}},
                            u'description': u'You have commented on 2 or more bodhi updates.',
                            u'discussion': u'http://github.com/fedora-infra/badges/pull/SOME_NUMBER',
                            u'image_url': u'http://example.com/image.png',
                            u'issuer_id': u'fedora-project',
                            u'name': u'Something on your mind',
                            u'trigger': { u'topic': u'org.fedoraproject.stg.bodhi.update.comment'}},
                u'user': { u'badges_user_id': 1, u'username': u'ralph'}},
      u'timestamp': 1371498303.125771,
      u'topic': u'org.fedoraproject.prod.fedbadges.badge.award',
      u'username': u'fedmsg'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - fedbadges.badge.award

- :func:`fedmsg.meta.msg2subtitle`

  - ralph has been awarded the "Something on your mind" badge

- :func:`fedmsg.meta.msg2link`

  - https://badges.fedoraproject.org/user/ralph

- :func:`fedmsg.meta.msg2icon`

  - http://example.com/image.png

- :func:`fedmsg.meta.msg2secondary_icon`

  - http://www.gravatar.com/avatar/2f933f4364baaabd2d3ab8f0664faef2?s=64&d=http%3A%2F%2Ffedoraproject.org%2Fstatic%2Fimages%2Ffedora_infinity_64x64.png

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['ralph'])``

- :func:`fedmsg.meta.msg2packages`

 - ``set([])``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['something-on-your-mind'])``



fedbadges.person.login.first
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

When a user logs in to the `Fedora Badges
<https://badges.fedoraproject.org>`_ site for the very first time, we
publish a message like this one.

.. code-block:: python

    { 'i': 2,
      'msg': { 'user': { 'badges_user_id': 2, 'username': 'ralph'}},
      'msg_id': '2013-be88d409-cdd7-47f0-9edd-87088f8505d2',
      'source_name': 'datanommer',
      'source_version': '0.6.0',
      'timestamp': 1382804277.0,
      'topic': 'org.fedoraproject.prod.fedbadges.person.login.first'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - fedbadges.person.login.first

- :func:`fedmsg.meta.msg2subtitle`

  - ralph logged in to badges.fedoraproject.org for the first time

- :func:`fedmsg.meta.msg2link`

  - https://badges.fedoraproject.org/user/ralph

- :func:`fedmsg.meta.msg2icon`

  - None

- :func:`fedmsg.meta.msg2secondary_icon`

  - http://www.gravatar.com/avatar/2f933f4364baaabd2d3ab8f0664faef2?s=64&d=http%3A%2F%2Ffedoraproject.org%2Fstatic%2Fimages%2Ffedora_infinity_64x64.png

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['ralph'])``

- :func:`fedmsg.meta.msg2packages`

 - ``set([])``

- :func:`fedmsg.meta.msg2objects`

 - ``set([])``



fedbadges.person.rank.advance
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

When a user's rank on the leaderboard of the `Fedora Badges
<https://badges.fedoraproject.org>`_ system increases, this message gets
published.

.. code-block:: python

    { 'i': 4,
      'msg': { 'old_rank': None,
               'person': { 'bio': None,
                           'email': 'ralph@fedoraproject.org',
                           'id': 1600,
                           'nickname': 'ralph',
                           'rank': 1500,
                           'website': None}},
      'timestamp': 1377701575.214381,
      'topic': 'org.fedoraproject.prod.fedbadges.person.rank.advance',
      'username': 'fedmsg'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - fedbadges.person.rank.advance

- :func:`fedmsg.meta.msg2subtitle`

  - ralph moved to position 1500 on the badges leaderboard

- :func:`fedmsg.meta.msg2link`

  - https://badges.fedoraproject.org/user/ralph

- :func:`fedmsg.meta.msg2icon`

  - None

- :func:`fedmsg.meta.msg2secondary_icon`

  - http://www.gravatar.com/avatar/2f933f4364baaabd2d3ab8f0664faef2?s=64&d=http%3A%2F%2Ffedoraproject.org%2Fstatic%2Fimages%2Ffedora_infinity_64x64.png

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['ralph'])``

- :func:`fedmsg.meta.msg2packages`

 - ``set([])``

- :func:`fedmsg.meta.msg2objects`

 - ``set([])``



fedocal
-------

fedocal.calendar.delete
~~~~~~~~~~~~~~~~~~~~~~~

These messages are published when someone deletes a whole calendar from
`fedocal <https://apps.fedoraproject.org/calendar>`_.

.. code-block:: python

    { 'i': 1,
      'msg': { 'agent': 'ralph',
               'calendar': { 'calendar_admin_group': 'sysadmin-badges',
                             'calendar_contact': 'ralph@fedoraproject.org',
                             'calendar_description': 'cool deal',
                             'calendar_manager_group': 'sysadmin-main',
                             'calendar_multiple_meetings': False,
                             'calendar_name': 'awesome',
                             'calendar_regional_meetings': False}},
      'msg_id': '2013-96f9ca0e-c7c6-43f0-9de7-7a268c7f1cef',
      'timestamp': 1379638157.759283,
      'topic': 'org.fedoraproject.prod.fedocal.calendar.delete',
      'username': 'threebean'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - fedocal.calendar.delete

- :func:`fedmsg.meta.msg2subtitle`

  - ralph deleted the "awesome" calendar

- :func:`fedmsg.meta.msg2link`

  - https://apps.fedoraproject.org/calendar/awesome/

- :func:`fedmsg.meta.msg2icon`

  - https://apps.fedoraproject.org/calendar/static/calendar.png

- :func:`fedmsg.meta.msg2secondary_icon`

  - http://www.gravatar.com/avatar/2f933f4364baaabd2d3ab8f0664faef2?s=64&d=http%3A%2F%2Ffedoraproject.org%2Fstatic%2Fimages%2Ffedora_infinity_64x64.png

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['ralph'])``

- :func:`fedmsg.meta.msg2packages`

 - ``set([])``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['awesome/delete'])``



fedocal.calendar.new
~~~~~~~~~~~~~~~~~~~~

These messages are published when someone creates a whole calendar from
`fedocal <https://apps.fedoraproject.org/calendar>`_.

.. code-block:: python

    { 'i': 1,
      'msg': { 'agent': 'ralph',
               'calendar': { 'calendar_admin_group': 'sysadmin-badges',
                             'calendar_contact': 'ralph@fedoraproject.org',
                             'calendar_description': 'cool deal',
                             'calendar_manager_group': 'sysadmin-main',
                             'calendar_multiple_meetings': False,
                             'calendar_name': 'awesome',
                             'calendar_regional_meetings': False}},
      'msg_id': '2013-96f9ca0e-c7c6-43f0-9de7-7a268c7f1cef',
      'timestamp': 1379638157.759283,
      'topic': 'org.fedoraproject.prod.fedocal.calendar.new',
      'username': 'threebean'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - fedocal.calendar.new

- :func:`fedmsg.meta.msg2subtitle`

  - ralph created a whole new "awesome" calendar

- :func:`fedmsg.meta.msg2link`

  - https://apps.fedoraproject.org/calendar/awesome/

- :func:`fedmsg.meta.msg2icon`

  - https://apps.fedoraproject.org/calendar/static/calendar.png

- :func:`fedmsg.meta.msg2secondary_icon`

  - http://www.gravatar.com/avatar/2f933f4364baaabd2d3ab8f0664faef2?s=64&d=http%3A%2F%2Ffedoraproject.org%2Fstatic%2Fimages%2Ffedora_infinity_64x64.png

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['ralph'])``

- :func:`fedmsg.meta.msg2packages`

 - ``set([])``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['awesome/new'])``



fedocal.calendar.update
~~~~~~~~~~~~~~~~~~~~~~~

These messages are published when someone updates a whole calendar from
`fedocal <https://apps.fedoraproject.org/calendar>`_.

.. code-block:: python

    { 'i': 1,
      'msg': { 'agent': 'ralph',
               'calendar': { 'calendar_admin_group': 'sysadmin-badges',
                             'calendar_contact': 'ralph@fedoraproject.org',
                             'calendar_description': 'cool deal',
                             'calendar_manager_group': 'sysadmin-main',
                             'calendar_multiple_meetings': False,
                             'calendar_name': 'awesome',
                             'calendar_regional_meetings': False}},
      'msg_id': '2013-96f9ca0e-c7c6-43f0-9de7-7a268c7f1cef',
      'timestamp': 1379638157.759283,
      'topic': 'org.fedoraproject.prod.fedocal.calendar.update',
      'username': 'threebean'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - fedocal.calendar.update

- :func:`fedmsg.meta.msg2subtitle`

  - ralph updated the "awesome" calendar

- :func:`fedmsg.meta.msg2link`

  - https://apps.fedoraproject.org/calendar/awesome/

- :func:`fedmsg.meta.msg2icon`

  - https://apps.fedoraproject.org/calendar/static/calendar.png

- :func:`fedmsg.meta.msg2secondary_icon`

  - http://www.gravatar.com/avatar/2f933f4364baaabd2d3ab8f0664faef2?s=64&d=http%3A%2F%2Ffedoraproject.org%2Fstatic%2Fimages%2Ffedora_infinity_64x64.png

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['ralph'])``

- :func:`fedmsg.meta.msg2packages`

 - ``set([])``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['awesome/update'])``



fedocal.meeting.delete
~~~~~~~~~~~~~~~~~~~~~~

These messages are published when someone deletes a meeting from
`fedocal <https://apps.fedoraproject.org/calendar>`_.

.. code-block:: python

    { 'i': 1,
      'msg': { 'agent': 'ralph',
               'calendar': { 'calendar_admin_group': 'sysadmin-badges',
                             'calendar_contact': 'ralph@fedoraproject.org',
                             'calendar_description': 'cool deal',
                             'calendar_manager_group': 'sysadmin-main',
                             'calendar_multiple_meetings': False,
                             'calendar_name': 'awesome',
                             'calendar_regional_meetings': False},
               'meeting': { 'calendar_name': 'awesome',
                            'meeting_date': '2013-09-20',
                            'meeting_date_end': '2013-09-21',
                            'meeting_id': 42,
                            'meeting_information': 'awesome',
                            'meeting_manager': 'ralph,',
                            'meeting_name': 'wat',
                            'meeting_region': None,
                            'meeting_time_start': '12:00:00',
                            'meeting_time_stop': '12:00:00'}},
      'msg_id': '2013-8d60e263-5c5f-40bb-86e0-241dc3965ba4',
      'timestamp': 1379638613.767245,
      'topic': 'org.fedoraproject.prod.fedocal.meeting.delete',
      'username': 'threebean'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - fedocal.meeting.delete

- :func:`fedmsg.meta.msg2subtitle`

  - ralph deleted the "wat" meeting from the "awesome" calendar

- :func:`fedmsg.meta.msg2link`

  - https://apps.fedoraproject.org/calendar/meeting/42/

- :func:`fedmsg.meta.msg2icon`

  - https://apps.fedoraproject.org/calendar/static/calendar.png

- :func:`fedmsg.meta.msg2secondary_icon`

  - http://www.gravatar.com/avatar/2f933f4364baaabd2d3ab8f0664faef2?s=64&d=http%3A%2F%2Ffedoraproject.org%2Fstatic%2Fimages%2Ffedora_infinity_64x64.png

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['ralph'])``

- :func:`fedmsg.meta.msg2packages`

 - ``set([])``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['awesome/meetings/wat/delete'])``



fedocal.meeting.new
~~~~~~~~~~~~~~~~~~~

These messages are published when someone creates a meeting from
`fedocal <https://apps.fedoraproject.org/calendar>`_.

.. code-block:: python

    { 'i': 1,
      'msg': { 'agent': 'ralph',
               'calendar': { 'calendar_admin_group': 'sysadmin-badges',
                             'calendar_contact': 'ralph@fedoraproject.org',
                             'calendar_description': 'cool deal',
                             'calendar_manager_group': 'sysadmin-main',
                             'calendar_multiple_meetings': False,
                             'calendar_name': 'awesome',
                             'calendar_regional_meetings': False},
               'meeting': { 'calendar_name': 'awesome',
                            'meeting_date': '2013-09-20',
                            'meeting_date_end': '2013-09-21',
                            'meeting_id': 42,
                            'meeting_information': 'awesome',
                            'meeting_manager': 'ralph,',
                            'meeting_name': 'wat',
                            'meeting_region': None,
                            'meeting_time_start': '12:00:00',
                            'meeting_time_stop': '12:00:00'}},
      'msg_id': '2013-8d60e263-5c5f-40bb-86e0-241dc3965ba4',
      'timestamp': 1379638613.767245,
      'topic': 'org.fedoraproject.prod.fedocal.meeting.new',
      'username': 'threebean'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - fedocal.meeting.new

- :func:`fedmsg.meta.msg2subtitle`

  - ralph created a "wat" meeting in the "awesome" calendar

- :func:`fedmsg.meta.msg2link`

  - https://apps.fedoraproject.org/calendar/meeting/42/

- :func:`fedmsg.meta.msg2icon`

  - https://apps.fedoraproject.org/calendar/static/calendar.png

- :func:`fedmsg.meta.msg2secondary_icon`

  - http://www.gravatar.com/avatar/2f933f4364baaabd2d3ab8f0664faef2?s=64&d=http%3A%2F%2Ffedoraproject.org%2Fstatic%2Fimages%2Ffedora_infinity_64x64.png

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['ralph'])``

- :func:`fedmsg.meta.msg2packages`

 - ``set([])``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['awesome/meetings/wat/new'])``



fedocal.meeting.reminder
~~~~~~~~~~~~~~~~~~~~~~~~

These messages are published by a cronjob when time gets close to
certain meetings scheduled in the `fedocal
<https://apps.fedoraproject.org/calendar>`_ calendaring system.

.. code-block:: python

    { 'i': 1,
      'msg': { 'calendar': { 'calendar_admin_group': 'sysadmin-badges',
                             'calendar_contact': 'ralph@fedoraproject.org',
                             'calendar_description': 'cool deal',
                             'calendar_manager_group': 'sysadmin-main',
                             'calendar_multiple_meetings': False,
                             'calendar_name': 'awesome',
                             'calendar_regional_meetings': False},
               'meeting': { 'calendar_name': 'awesome',
                            'meeting_date': '2013-10-30',
                            'meeting_date_end': '2013-09-21',
                            'meeting_id': 42,
                            'meeting_information': 'awesome',
                            'meeting_manager': 'ralph,',
                            'meeting_name': 'wat',
                            'meeting_region': None,
                            'meeting_time_start': '18:59:53',
                            'meeting_time_stop': '12:00:00'}},
      'msg_id': '2013-8d60e263-5c5f-40bb-86e0-241dc3965ba4',
      'timestamp': 1379638613.767245,
      'topic': 'org.fedoraproject.prod.fedocal.meeting.reminder',
      'username': 'threebean'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - fedocal.meeting.reminder

- :func:`fedmsg.meta.msg2subtitle`

  - Friendly reminder!  The "wat" meeting from the "awesome" calendar starts in 59 minutes

- :func:`fedmsg.meta.msg2link`

  - https://apps.fedoraproject.org/calendar/meeting/42/

- :func:`fedmsg.meta.msg2icon`

  - https://apps.fedoraproject.org/calendar/static/calendar.png

- :func:`fedmsg.meta.msg2secondary_icon`

  - None

- :func:`fedmsg.meta.msg2usernames`

 - ``set([])``

- :func:`fedmsg.meta.msg2packages`

 - ``set([])``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['awesome/meetings/wat/reminder'])``



fedocal.meeting.update
~~~~~~~~~~~~~~~~~~~~~~

These messages are published when someone updates a meeting from
`fedocal <https://apps.fedoraproject.org/calendar>`_.

.. code-block:: python

    { 'i': 1,
      'msg': { 'agent': 'ralph',
               'calendar': { 'calendar_admin_group': 'sysadmin-badges',
                             'calendar_contact': 'ralph@fedoraproject.org',
                             'calendar_description': 'cool deal',
                             'calendar_manager_group': 'sysadmin-main',
                             'calendar_multiple_meetings': False,
                             'calendar_name': 'awesome',
                             'calendar_regional_meetings': False},
               'meeting': { 'calendar_name': 'awesome',
                            'meeting_date': '2013-09-20',
                            'meeting_date_end': '2013-09-21',
                            'meeting_id': 42,
                            'meeting_information': 'awesome',
                            'meeting_manager': 'ralph,',
                            'meeting_name': 'wat',
                            'meeting_region': None,
                            'meeting_time_start': '12:00:00',
                            'meeting_time_stop': '12:00:00'}},
      'msg_id': '2013-8d60e263-5c5f-40bb-86e0-241dc3965ba4',
      'timestamp': 1379638613.767245,
      'topic': 'org.fedoraproject.prod.fedocal.meeting.update',
      'username': 'threebean'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - fedocal.meeting.update

- :func:`fedmsg.meta.msg2subtitle`

  - ralph updated the "wat" meeting from the "awesome" calendar

- :func:`fedmsg.meta.msg2link`

  - https://apps.fedoraproject.org/calendar/meeting/42/

- :func:`fedmsg.meta.msg2icon`

  - https://apps.fedoraproject.org/calendar/static/calendar.png

- :func:`fedmsg.meta.msg2secondary_icon`

  - http://www.gravatar.com/avatar/2f933f4364baaabd2d3ab8f0664faef2?s=64&d=http%3A%2F%2Ffedoraproject.org%2Fstatic%2Fimages%2Ffedora_infinity_64x64.png

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['ralph'])``

- :func:`fedmsg.meta.msg2packages`

 - ``set([])``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['awesome/meetings/wat/update'])``



fedoratagger
------------

fedoratagger.rating.update
~~~~~~~~~~~~~~~~~~~~~~~~~~

`Fedora Tagger <https://apps.fedoraproject.org/tagger>`_
doesn't just do tagging of packages, in new versions it also
allows users to rate packages.  It publishes messages like this
one when an anonymous user updates their rating of a package.

.. code-block:: python

    { 'i': 1,
      'msg': { 'rating': { 'package': { 'icon': 'https://apps.fedoraproject.org/packages/images/icons/package_128x128.png',
                                        'name': 'nethack',
                                        'rating': 15.0,
                                        'summary': '',
                                        'tags': [ { 'dislike': 0,
                                                    'like': 1,
                                                    'package': 'nethack',
                                                    'tag': 'awesome',
                                                    'total': 1,
                                                    'votes': 1}]},
                           'rating': 15,
                           'user': { 'anonymous': True,
                                     'rank': -1,
                                     'username': 'anonymous',
                                     'votes': 0}}},
      'timestamp': 1365514895.61764,
      'topic': 'org.fedoraproject.prod.fedoratagger.rating.update',
      'username': 'threebean'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - fedoratagger.rating.update

- :func:`fedmsg.meta.msg2subtitle`

  - An anonymous user gave nethack a rating of 15

- :func:`fedmsg.meta.msg2link`

  - https://apps.fedoraproject.org/tagger/nethack

- :func:`fedmsg.meta.msg2icon`

  - None

- :func:`fedmsg.meta.msg2secondary_icon`

  - None

- :func:`fedmsg.meta.msg2usernames`

 - ``set([])``

- :func:`fedmsg.meta.msg2packages`

 - ``set(['nethack'])``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['packages/nethack'])``



fedoratagger.tag.create
~~~~~~~~~~~~~~~~~~~~~~~

`Fedora Tagger <https://apps.fedoraproject.org/tagger>`_
publishes messages like this one when a user **creates** a new tag.

.. code-block:: python

    { 'i': 2,
      'msg': { 'tag': { 'dislike': 0,
                        'like': 1,
                        'package': 'mattd',
                        'tag': 'awesome',
                        'total': 1,
                        'votes': 1},
               'user': { 'anonymous': False,
                         'rank': -1,
                         'username': 'ralph',
                         'votes': 4},
               'vote': { 'like': True,
                         'tag': { 'dislike': 0,
                                  'like': 1,
                                  'package': 'mattd',
                                  'tag': 'awesome',
                                  'total': 1,
                                  'votes': 1},
                         'user': { 'anonymous': False,
                                   'rank': -1,
                                   'username': 'ralph',
                                   'votes': 4}}},
      'timestamp': 1365444411.924043,
      'topic': 'org.fedoraproject.prod.fedoratagger.tag.create',
      'username': 'threebean'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - fedoratagger.tag.create

- :func:`fedmsg.meta.msg2subtitle`

  - ralph added tag "awesome" to mattd

- :func:`fedmsg.meta.msg2link`

  - https://apps.fedoraproject.org/tagger/mattd

- :func:`fedmsg.meta.msg2icon`

  - None

- :func:`fedmsg.meta.msg2secondary_icon`

  - None

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['ralph'])``

- :func:`fedmsg.meta.msg2packages`

 - ``set(['mattd'])``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['labels/awesome', 'packages/mattd'])``



fedoratagger.tag.update
~~~~~~~~~~~~~~~~~~~~~~~

`Fedora Tagger <https://apps.fedoraproject.org/tagger>`_
publishes messages like this one when a user votes on a tag.
Users may upvote or downvote a tag and they may do so either
anonymously or authenticated.  Here's an example of an
authenticated downvote:

.. code-block:: python

    { 'i': 3,
      'msg': { 'tag': { 'dislike': 1,
                        'like': 0,
                        'package': 'mattd',
                        'tag': 'stupid',
                        'total': -1,
                        'votes': 1},
               'user': { 'anonymous': False,
                         'rank': -1,
                         'username': 'ralph',
                         'votes': 4},
               'vote': { 'like': False,
                         'tag': { 'dislike': 1,
                                  'like': 0,
                                  'package': 'mattd',
                                  'tag': 'stupid',
                                  'total': -1,
                                  'votes': 1},
                         'user': { 'anonymous': False,
                                   'rank': -1,
                                   'username': 'ralph',
                                   'votes': 4}}},
      'timestamp': 1365444503.627384,
      'topic': 'org.fedoraproject.prod.fedoratagger.tag.update',
      'username': 'threebean'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - fedoratagger.tag.update

- :func:`fedmsg.meta.msg2subtitle`

  - ralph downvoted "stupid" on mattd

- :func:`fedmsg.meta.msg2link`

  - https://apps.fedoraproject.org/tagger/mattd

- :func:`fedmsg.meta.msg2icon`

  - None

- :func:`fedmsg.meta.msg2secondary_icon`

  - None

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['ralph'])``

- :func:`fedmsg.meta.msg2packages`

 - ``set(['mattd'])``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['labels/stupid', 'packages/mattd'])``



git
---

git.branch
~~~~~~~~~~

There is a script called ``pkgdb2branch`` that gets run by an SCM
admin as part of the new package process.  Typically, when an `SCM Admin
Request <http://fedoraproject.org/wiki/Package_SCM_admin_requests>`_ is
approved, the scm admin will add the new package or branch to the package
database.  *After that*, the scm admin will run ``pkgdb2branch`` to create
the branch in git on the file system.  Messages of **this** topic are
published `for each new branch` that that process **creates**.

.. code-block:: python

    { 'i': 1,
      'msg': { 'agent': 'limburgher', 'branch': 'master', 'name': 'valgrind'},
      'timestamp': 1344350850.886738,
      'topic': 'org.fedoraproject.prod.git.branch'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - git.branch

- :func:`fedmsg.meta.msg2subtitle`

  - limburgher created branch 'master' for the 'valgrind' package

- :func:`fedmsg.meta.msg2link`

  - http://pkgs.fedoraproject.org/cgit/valgrind.git/log/?h=master

- :func:`fedmsg.meta.msg2icon`

  - None

- :func:`fedmsg.meta.msg2secondary_icon`

  - None

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['limburgher'])``

- :func:`fedmsg.meta.msg2packages`

 - ``set(['valgrind'])``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['valgrind/__git__'])``



git.lookaside.new
~~~~~~~~~~~~~~~~~

Messages like this one are published when **new sources** are
uploaded to the "lookaside cache".

.. code-block:: python

    { 'i': 1,
      'msg': { 'agent': 'jnovy',
               'filename': 'pst-diffraction.doc.tar.xz',
               'md5sum': 'dacad985394b3977f9dcf0c75f51a357',
               'name': 'texlive'},
      'timestamp': 1349197866.215465,
      'topic': 'org.fedoraproject.prod.git.lookaside.new'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - git.lookaside.new

- :func:`fedmsg.meta.msg2subtitle`

  - jnovy uploaded pst-diffraction.doc.tar.xz for texlive

- :func:`fedmsg.meta.msg2link`

  - http://pkgs.fedoraproject.org/lookaside/pkgs/texlive/pst-diffraction.doc.tar.xz/dacad985394b3977f9dcf0c75f51a357/pst-diffraction.doc.tar.xz

- :func:`fedmsg.meta.msg2icon`

  - None

- :func:`fedmsg.meta.msg2secondary_icon`

  - None

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['jnovy'])``

- :func:`fedmsg.meta.msg2packages`

 - ``set(['texlive'])``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['texlive/pst-diffraction.doc.tar.xz'])``



git.mass_branch.complete
~~~~~~~~~~~~~~~~~~~~~~~~

There is a script called ``pkgdb2branch`` that gets run by an SCM
admin as part of the new package process.  Messages on this topic are
emitted from that script when it **finishes** a "mass branch".

.. code-block:: python

    { 'i': 1,
      'msg': { 'agent': 'dgilmore'},
      'timestamp': 1344350850.886738,
      'topic': 'org.fedoraproject.prod.git.mass_branch.complete'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - git.mass_branch.complete

- :func:`fedmsg.meta.msg2subtitle`

  - mass branch started by dgilmore completed

- :func:`fedmsg.meta.msg2link`

  - None

- :func:`fedmsg.meta.msg2icon`

  - None

- :func:`fedmsg.meta.msg2secondary_icon`

  - None

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['dgilmore'])``

- :func:`fedmsg.meta.msg2packages`

 - ``None``

- :func:`fedmsg.meta.msg2objects`

 - ``None``



git.mass_branch.start
~~~~~~~~~~~~~~~~~~~~~

There is a script called ``pkgdb2branch`` that gets run by an SCM
admin as part of the new package process.  Messages on this topic are
emitted from that script when it is instructed to carry out a "mass
branch" of all packages.

.. code-block:: python

    { 'i': 1,
      'msg': { 'agent': 'dgilmore'},
      'timestamp': 1344350850.886738,
      'topic': 'org.fedoraproject.prod.git.mass_branch.start'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - git.mass_branch.start

- :func:`fedmsg.meta.msg2subtitle`

  - dgilmore started a mass branch

- :func:`fedmsg.meta.msg2link`

  - None

- :func:`fedmsg.meta.msg2icon`

  - None

- :func:`fedmsg.meta.msg2secondary_icon`

  - None

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['dgilmore'])``

- :func:`fedmsg.meta.msg2packages`

 - ``None``

- :func:`fedmsg.meta.msg2objects`

 - ``None``



git.pkgdb2branch.complete
~~~~~~~~~~~~~~~~~~~~~~~~~

There is a script called ``pkgdb2branch`` that gets run by an SCM
admin as part of the new package process.  Typically, when an `SCM Admin
Request <http://fedoraproject.org/wiki/Package_SCM_admin_requests>`_ is
approved, the scm admin will add the new package or branch to the package
database.  *After that*, the scm admin will run ``pkgdb2branch`` to create
the branch in git on the file system.  Messages of **this** topic are
published when that process **completes**.

.. code-block:: python

    { 'i': 1,
      'msg': { 'agent': 'limburgher',
               'branchedPackages': ['nethack'],
               'unbranchedPackages': []},
      'timestamp': 1344350850.886738,
      'topic': 'org.fedoraproject.prod.git.pkgdb2branch.complete'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - git.pkgdb2branch.complete

- :func:`fedmsg.meta.msg2subtitle`

  - run of pkgdb2branch started by limburgher completed

- :func:`fedmsg.meta.msg2link`

  - None

- :func:`fedmsg.meta.msg2icon`

  - None

- :func:`fedmsg.meta.msg2secondary_icon`

  - None

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['limburgher'])``

- :func:`fedmsg.meta.msg2packages`

 - ``set(['nethack'])``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['nethack/__git__'])``



git.pkgdb2branch.complete
~~~~~~~~~~~~~~~~~~~~~~~~~

There is a script called ``pkgdb2branch`` that gets run by an SCM
admin as part of the new package process.  Typically, when an `SCM Admin
Request <http://fedoraproject.org/wiki/Package_SCM_admin_requests>`_ is
approved, the scm admin will add the new package or branch to the package
database.  *After that*, the scm admin will run ``pkgdb2branch`` to create
the branch in git on the file system.  Messages of **this** topic are
published when that process **completes**.

*Sometimes* that process can produce errors.  Here's an example of a
message from a failed ``pkgdb2branch`` run.

.. code-block:: python

    { 'i': 1,
      'msg': { 'agent': 'limburgher',
               'branchedPackages': [],
               'unbranchedPackages': ['foo']},
      'timestamp': 1344350850.886738,
      'topic': 'org.fedoraproject.prod.git.pkgdb2branch.complete'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - git.pkgdb2branch.complete

- :func:`fedmsg.meta.msg2subtitle`

  - run of pkgdb2branch started by limburgher completed with 1 error

- :func:`fedmsg.meta.msg2link`

  - None

- :func:`fedmsg.meta.msg2icon`

  - None

- :func:`fedmsg.meta.msg2secondary_icon`

  - None

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['limburgher'])``

- :func:`fedmsg.meta.msg2packages`

 - ``set(['foo'])``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['foo/__git__'])``



git.pkgdb2branch.complete
~~~~~~~~~~~~~~~~~~~~~~~~~

There is a script called ``pkgdb2branch`` that gets run by an SCM
admin as part of the new package process.  Typically, when an `SCM Admin
Request <http://fedoraproject.org/wiki/Package_SCM_admin_requests>`_ is
approved, the scm admin will add the new package or branch to the package
database.  *After that*, the scm admin will run ``pkgdb2branch`` to create
the branch in git on the file system.  Messages of **this** topic are
published when that process **completes**.

*Sometimes* that process can produce errors.  Here's an example of a
message from a failed ``pkgdb2branch`` run (on multiple packages)

.. code-block:: python

    { 'i': 1,
      'msg': { 'agent': 'limburgher',
               'branchedPackages': [],
               'unbranchedPackages': ['foo', 'bar']},
      'timestamp': 1344350850.886738,
      'topic': 'org.fedoraproject.prod.git.pkgdb2branch.complete'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - git.pkgdb2branch.complete

- :func:`fedmsg.meta.msg2subtitle`

  - run of pkgdb2branch started by limburgher completed with 2 errors

- :func:`fedmsg.meta.msg2link`

  - None

- :func:`fedmsg.meta.msg2icon`

  - None

- :func:`fedmsg.meta.msg2secondary_icon`

  - None

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['limburgher'])``

- :func:`fedmsg.meta.msg2packages`

 - ``set(['foo', 'bar'])``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['bar/__git__', 'foo/__git__'])``



git.pkgdb2branch.start
~~~~~~~~~~~~~~~~~~~~~~

There is a script called ``pkgdb2branch`` that gets run by an SCM
admin as part of the new package process.  Typically, when an `SCM Admin
Request <http://fedoraproject.org/wiki/Package_SCM_admin_requests>`_ is
approved, the scm admin will add the new package or branch to the package
database.  *After that*, the scm admin will run ``pkgdb2branch`` to create
the branch in git on the file system.  Messages of **this** topic are
published when that process **begins**.

.. code-block:: python

    { 'i': 1,
      'msg': { 'agent': 'limburgher'},
      'timestamp': 1344350850.886738,
      'topic': 'org.fedoraproject.prod.git.pkgdb2branch.start'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - git.pkgdb2branch.start

- :func:`fedmsg.meta.msg2subtitle`

  - limburgher started a run of pkgdb2branch

- :func:`fedmsg.meta.msg2link`

  - None

- :func:`fedmsg.meta.msg2icon`

  - None

- :func:`fedmsg.meta.msg2secondary_icon`

  - None

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['limburgher'])``

- :func:`fedmsg.meta.msg2packages`

 - ``None``

- :func:`fedmsg.meta.msg2objects`

 - ``None``



git.receive
~~~~~~~~~~~

Sample message from the first generation of git-category messages that
have been modified in datanommer to match the new topics.

.. code-block:: python

    { 'i': 1,
      'msg': { 'commit': { 'branch': 'master',
                           'email': 'rbean@redhat.com',
                           'message': 'Try removing requirement on python-bunch.\n',
                           'name': 'Ralph Bean',
                           'repo': 'datanommer',
                           'rev': '66abdea4014eb2f0745fc38f86e20c7d7009237e',
                           'stats': { 'files': { 'datanommer.spec': { 'deletions': 6,
                                                                      'insertions': 4,
                                                                      'lines': 10}},
                                      'total': { 'deletions': 6,
                                                 'files': 1,
                                                 'insertions': 4,
                                                 'lines': 10}},
                           'summary': 'Try removing requirement on python-bunch.'}},
      'timestamp': 1349735155.0,
      'topic': 'org.fedoraproject.prod.git.receive'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - git.receive

- :func:`fedmsg.meta.msg2subtitle`

  - rbean@redhat.com pushed to datanommer (master).  "Try removing requirement on python-bunch."

- :func:`fedmsg.meta.msg2link`

  - http://pkgs.fedoraproject.org/cgit/datanommer.git/commit/?h=master&id=66abdea4014eb2f0745fc38f86e20c7d7009237e

- :func:`fedmsg.meta.msg2icon`

  - None

- :func:`fedmsg.meta.msg2secondary_icon`

  - http://www.gravatar.com/avatar/1a0d2acfddb1911ecf55da42cfa34710?s=64&d=http%3A%2F%2Fgit-scm.com%2Fimages%2Flogo.png

- :func:`fedmsg.meta.msg2usernames`

 - ``set([])``

- :func:`fedmsg.meta.msg2packages`

 - ``set(['datanommer'])``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['datanommer/datanommer.spec'])``



git.receive
~~~~~~~~~~~

Messages like this one are published when somebody runs "fedpkg push"
on a package.  Sometimes, the git message may be multiple lines long like:

.. code-block:: python

    { 'i': 1,
      'msg': { 'commit': { 'branch': 'master',
                           'email': 'mjw@redhat.com',
                           'message': 'Clear CFLAGS CXXFLAGS LDFLAGS.\n                This is a bit of a hammer.',
                           'name': 'Mark Wielaard',
                           'repo': 'valgrind',
                           'rev': '7a98f80d9b61ce167e4ef8129c81ed9284ecf4e1',
                           'stats': { 'files': { 'valgrind.spec': { 'deletions': 2,
                                                                    'insertions': 1,
                                                                    'lines': 3}},
                                      'total': { 'deletions': 2,
                                                 'files': 1,
                                                 'insertions': 1,
                                                 'lines': 3}},
                           'summary': 'Clear CFLAGS CXXFLAGS LDFLAGS.',
                           'username': 'mjw'}},
      'timestamp': 1344350850.886738,
      'topic': 'org.fedoraproject.prod.git.receive'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - git.receive

- :func:`fedmsg.meta.msg2subtitle`

  - mjw pushed to valgrind (master).  "Clear CFLAGS CXXFLAGS LDFLAGS. (..more)"

- :func:`fedmsg.meta.msg2link`

  - http://pkgs.fedoraproject.org/cgit/valgrind.git/commit/?h=master&id=7a98f80d9b61ce167e4ef8129c81ed9284ecf4e1

- :func:`fedmsg.meta.msg2icon`

  - http://git-scm.com/images/logo.png

- :func:`fedmsg.meta.msg2secondary_icon`

  - http://www.gravatar.com/avatar/923419d315c8f23eface39852bf32a5f?s=64&d=http%3A%2F%2Fgit-scm.com%2Fimages%2Flogo.png

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['mjw'])``

- :func:`fedmsg.meta.msg2packages`

 - ``set(['valgrind'])``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['valgrind/valgrind.spec'])``



git.receive
~~~~~~~~~~~

Messages like this one are published when somebody runs "fedpkg push"
on a package.  The whole git message is included for each commit.

.. code-block:: python

    { 'i': 1,
      'msg': { 'commit': { 'branch': 'master',
                           'email': 'spot@fedoraproject.org',
                           'message': 'another missing patch? ridiculous.\n',
                           'name': 'Tom Callaway',
                           'repo': 'ember',
                           'rev': 'aa2df80f3d8dd217c7cbfe2d3451190028f3fe14',
                           'stats': { 'files': { 'ember-0.6.3-gcc47.patch': { 'deletions': 0,
                                                                              'insertions': 26,
                                                                              'lines': 26}},
                                      'total': { 'deletions': 0,
                                                 'files': 1,
                                                 'insertions': 26,
                                                 'lines': 26}},
                           'summary': 'another missing patch? ridiculous.',
                           'username': 'spot'}},
      'timestamp': 1352998154.368305,
      'topic': 'org.fedoraproject.prod.git.receive'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - git.receive

- :func:`fedmsg.meta.msg2subtitle`

  - spot pushed to ember (master).  "another missing patch? ridiculous."

- :func:`fedmsg.meta.msg2link`

  - http://pkgs.fedoraproject.org/cgit/ember.git/commit/?h=master&id=aa2df80f3d8dd217c7cbfe2d3451190028f3fe14

- :func:`fedmsg.meta.msg2icon`

  - http://git-scm.com/images/logo.png

- :func:`fedmsg.meta.msg2secondary_icon`

  - http://www.gravatar.com/avatar/461761d9572bdc1d04925a1125a41797?s=64&d=http%3A%2F%2Fgit-scm.com%2Fimages%2Flogo.png

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['spot'])``

- :func:`fedmsg.meta.msg2packages`

 - ``set(['ember'])``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['ember/ember-0.6.3-gcc47.patch'])``



mailman
-------

mailman.receive
~~~~~~~~~~~~~~~

`Discussion lists for the Fedora Project
<https://lists.fedoraproject.org>`_ run on mailman3.  When a new
message is published on a list, fedmsg will pop out one of these messages.
The following is an example of a new thread being started.

.. code-block:: python

    { 'i': 1,
      'msg': { 'mlist': { 'list_name': 'devel'},
               'msg': { 'archived-at': '/list/devel@mm3test.fedoraproject.org/message/HDMTECNRNUHZTSDGM2FDK6LGCMAS2PZ4/',
                        'cc': None,
                        'delivered-to': 'devel@lists.fedoraproject.org',
                        'from': 'Jaroslav Reznik <jreznik@redhat.com>',
                        'in-reply-to': None,
                        'message-id': '<306436886.6773069.1369333725371.JavaMail.root@redhat.com>',
                        'references': None,
                        'subject': '[Devel] Fedora 19 Beta status is Go, release on May 28, 2013',
                        'to': 'devel-announce@lists.fedoraproject.org,\n\ttest-announce@lists.fedoraproject.org,\n\tFedora Logistics List <logistics@lists.fedoraproject.org>',
                        'x-mailman-rule-hits': 'nonmember-moderation',
                        'x-mailman-rule-misses': 'approved; emergency; loop; member-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; suspicious-header',
                        'x-message-id-hash': 'HDMTECNRNUHZTSDGM2FDK6LGCMAS2PZ4'}},
      'timestamp': 1369334087.929804,
      'topic': 'org.fedoraproject.prod.mailman.receive',
      'username': 'mailman'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - mailman.receive

- :func:`fedmsg.meta.msg2subtitle`

  - jreznik wrote '[Devel] Fedora 19 Beta status is Go, release on May 28, 2013' to the devel list

- :func:`fedmsg.meta.msg2link`

  - https://lists.fedoraproject.org/hyperkitty/list/devel@mm3test.fedoraproject.org/message/HDMTECNRNUHZTSDGM2FDK6LGCMAS2PZ4/

- :func:`fedmsg.meta.msg2icon`

  - None

- :func:`fedmsg.meta.msg2secondary_icon`

  - http://www.gravatar.com/avatar/35012533ff5290bd2231c7133bd07896?s=64&d=http%3A%2F%2Ffedoraproject.org%2Fstatic%2Fimages%2Ffedora_infinity_64x64.png

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['jreznik'])``

- :func:`fedmsg.meta.msg2packages`

 - ``set([])``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['306436886.6773069.1369333725371.JavaMail.root@redhat.com/message'])``



mailman.receive
~~~~~~~~~~~~~~~

`Discussion lists for the Fedora Project
<https://lists.fedoraproject.org>`_ run on mailman3.  When a new
message is published on a list, fedmsg will pop out one of these messages.
The following is an example of a reply to a thread.

.. code-block:: python

    { 'i': 4,
      'msg': { 'mlist': { 'list_name': 'devel'},
               'msg': { 'archived-at': '/list/devel@mm3test.fedoraproject.org/message/S3PHLMD7PGWXXLBN3GENHVK7JJ37UWLJ/',
                        'cc': None,
                        'delivered-to': 'devel@lists.fedoraproject.org',
                        'from': '"Nicolas Mailhot" <nicolas.mailhot@laposte.net>',
                        'in-reply-to': '<519DFB93.1060502@laiskiainen.org>',
                        'message-id': '<d4f0cefb4a7b845451ecab2c4026fe4d.squirrel@arekh.dyndns.org>',
                        'references': '<5de4f14ae46cce6de03cf68ca06526a9.squirrel@arekh.dyndns.org>\n\t<519DFB93.1060502@laiskiainen.org>',
                        'subject': '[Devel] Re:Software Management call for RFEs',
                        'to': '"Development discussions related to Fedora" <devel@lists.fedoraproject.org>',
                        'x-mailman-rule-hits': 'nonmember-moderation',
                        'x-mailman-rule-misses': 'approved; emergency; loop; member-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; suspicious-header',
                        'x-message-id-hash': 'S3PHLMD7PGWXXLBN3GENHVK7JJ37UWLJ'}},
      'timestamp': 1369322289.679402,
      'topic': 'org.fedoraproject.prod.mailman.receive',
      'username': 'mailman'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - mailman.receive

- :func:`fedmsg.meta.msg2subtitle`

  - On the devel list, nicolas.mailhot replied to '[Devel] Re:Software Management call for RFEs'

- :func:`fedmsg.meta.msg2link`

  - https://lists.fedoraproject.org/hyperkitty/list/devel@mm3test.fedoraproject.org/message/S3PHLMD7PGWXXLBN3GENHVK7JJ37UWLJ/

- :func:`fedmsg.meta.msg2icon`

  - None

- :func:`fedmsg.meta.msg2secondary_icon`

  - http://www.gravatar.com/avatar/8b887fce5c60f931e8edf8e8e4907494?s=64&d=http%3A%2F%2Ffedoraproject.org%2Fstatic%2Fimages%2Ffedora_infinity_64x64.png

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['nicolas.mailhot'])``

- :func:`fedmsg.meta.msg2packages`

 - ``set([])``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['5de4f14ae46cce6de03cf68ca06526a9.squirrel@arekh.dyndns.org/519DFB93.1060502@laiskiainen.org/d4f0cefb4a7b845451ecab2c4026fe4d.squirrel@arekh.dyndns.org/message'])``



meetbot
-------

meetbot.meeting.complete
~~~~~~~~~~~~~~~~~~~~~~~~

Trusty old `zodbot <https://meetbot.fedoraproject.org/>`_ publishes
messages too!  Messages on this topic get published when an IRC meeting
ends.  Meetings may or may not have a title (which can be tricky).
Here's an example message where the title is specified:

.. code-block:: python

    { 'i': 16,
      'msg': { 'attendees': { 'threebean': 2, 'zodbot': 2},
               'chairs': { },
               'channel': '#channel',
               'meeting_topic': 'title',
               'owner': 'threebean',
               'url': 'http://logs.com/awesome'},
      'timestamp': 1345572862.556145,
      'topic': 'org.fedoraproject.prod.meetbot.meeting.complete'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - meetbot.meeting.complete

- :func:`fedmsg.meta.msg2subtitle`

  - ralph ended meeting "title" in #channel

- :func:`fedmsg.meta.msg2link`

  - http://logs.com/awesome.html

- :func:`fedmsg.meta.msg2icon`

  - None

- :func:`fedmsg.meta.msg2secondary_icon`

  - None

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['ralph'])``

- :func:`fedmsg.meta.msg2packages`

 - ``None``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['titles/title', 'channels/#channel', 'attendees/ralph'])``



meetbot.meeting.complete
~~~~~~~~~~~~~~~~~~~~~~~~

Trusty old `zodbot <https://meetbot.fedoraproject.org/>`_ publishes
messages too!  Messages on this topic get published when an IRC meeting
ends.  Meetings may or may not have a title (which can be tricky).
Here's an example message where the title is **not** specified:

.. code-block:: python

    { 'i': 16,
      'msg': { 'attendees': { 'threebean': 2, 'zodbot': 2},
               'chairs': { },
               'channel': '#channel',
               'meeting_topic': None,
               'owner': 'threebean',
               'url': 'http://logs.com/awesome'},
      'timestamp': 1345572862.556145,
      'topic': 'org.fedoraproject.prod.meetbot.meeting.complete'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - meetbot.meeting.complete

- :func:`fedmsg.meta.msg2subtitle`

  - ralph ended a meeting in #channel

- :func:`fedmsg.meta.msg2link`

  - http://logs.com/awesome.html

- :func:`fedmsg.meta.msg2icon`

  - None

- :func:`fedmsg.meta.msg2secondary_icon`

  - None

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['ralph'])``

- :func:`fedmsg.meta.msg2packages`

 - ``None``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['channels/#channel', 'attendees/ralph'])``



meetbot.meeting.start
~~~~~~~~~~~~~~~~~~~~~

Trusty old `zodbot <https://meetbot.fedoraproject.org/>`_ publishes
messages too!  Messages on this topic get published (somewhat obviously)
when a new IRC meeting is started.  The user starting the meeting may
specify a meeting title, but doesn't have to.  Here's an example
message with a specified meeting title:

.. code-block:: python

    { 'i': 16,
      'msg': { 'attendees': { 'threebean': 2, 'zodbot': 2},
               'chairs': { },
               'channel': '#channel',
               'meeting_topic': 'title',
               'owner': 'threebean',
               'url': 'http://logs.com/awesome'},
      'timestamp': 1345572862.556145,
      'topic': 'org.fedoraproject.prod.meetbot.meeting.start'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - meetbot.meeting.start

- :func:`fedmsg.meta.msg2subtitle`

  - ralph started meeting "title" in #channel

- :func:`fedmsg.meta.msg2link`

  - None

- :func:`fedmsg.meta.msg2icon`

  - None

- :func:`fedmsg.meta.msg2secondary_icon`

  - None

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['ralph'])``

- :func:`fedmsg.meta.msg2packages`

 - ``None``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['titles/title', 'channels/#channel', 'attendees/ralph'])``



meetbot.meeting.start
~~~~~~~~~~~~~~~~~~~~~

Trusty old `zodbot <https://meetbot.fedoraproject.org/>`_ publishes
messages too!  Messages on this topic get published (somewhat obviously)
when a new IRC meeting is started.  The user starting the meeting may
specify a meeting title, but doesn't have to.  Here's an example
message with no meeting title specified:

.. code-block:: python

    { 'i': 16,
      'msg': { 'attendees': { 'threebean': 2, 'zodbot': 2},
               'chairs': { },
               'channel': '#channel',
               'meeting_topic': None,
               'owner': 'threebean',
               'url': 'http://logs.com/awesome'},
      'timestamp': 1345572862.556145,
      'topic': 'org.fedoraproject.prod.meetbot.meeting.start'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - meetbot.meeting.start

- :func:`fedmsg.meta.msg2subtitle`

  - ralph started a meeting in #channel

- :func:`fedmsg.meta.msg2link`

  - None

- :func:`fedmsg.meta.msg2icon`

  - None

- :func:`fedmsg.meta.msg2secondary_icon`

  - None

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['ralph'])``

- :func:`fedmsg.meta.msg2packages`

 - ``None``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['channels/#channel', 'attendees/ralph'])``



meetbot.meeting.topic.update
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

As IRC meetings chug along, the chairperson may change the meeting;
zodbot publishes message for that!  An example **with** a title specified:

.. code-block:: python

    { 'i': 16,
      'msg': { 'attendees': { 'threebean': 2, 'zodbot': 2},
               'chairs': { },
               'channel': '#channel',
               'meeting_topic': 'title',
               'owner': 'threebean',
               'topic': 'Food',
               'url': 'http://logs.com/awesome'},
      'timestamp': 1345572862.556145,
      'topic': 'org.fedoraproject.prod.meetbot.meeting.topic.update'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - meetbot.meeting.topic.update

- :func:`fedmsg.meta.msg2subtitle`

  - ralph changed the topic of "title" to "Food" in #channel

- :func:`fedmsg.meta.msg2link`

  - None

- :func:`fedmsg.meta.msg2icon`

  - None

- :func:`fedmsg.meta.msg2secondary_icon`

  - None

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['ralph'])``

- :func:`fedmsg.meta.msg2packages`

 - ``None``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['titles/title', 'topics/Food', 'channels/#channel', 'attendees/ralph'])``



meetbot.meeting.topic.update
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

As IRC meetings chug along, the chairperson may change the meeting;
zodbot publishes message for that!  An example **without** a title
specified:

.. code-block:: python

    { 'i': 16,
      'msg': { 'attendees': { 'threebean': 2, 'zodbot': 2},
               'chairs': { },
               'channel': '#channel',
               'meeting_topic': None,
               'owner': 'threebean',
               'topic': 'Food',
               'url': 'http://logs.com/awesome'},
      'timestamp': 1345572862.556145,
      'topic': 'org.fedoraproject.prod.meetbot.meeting.topic.update'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - meetbot.meeting.topic.update

- :func:`fedmsg.meta.msg2subtitle`

  - ralph changed the topic to "Food" in #channel

- :func:`fedmsg.meta.msg2link`

  - None

- :func:`fedmsg.meta.msg2icon`

  - None

- :func:`fedmsg.meta.msg2secondary_icon`

  - None

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['ralph'])``

- :func:`fedmsg.meta.msg2packages`

 - ``None``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['topics/Food', 'channels/#channel', 'attendees/ralph'])``



nuancier
--------

nuancier.open.toggle.off
~~~~~~~~~~~~~~~~~~~~~~~~

These messages are published when an election is closed for voting on
"Nuancier", the wallpaper voting app.

.. code-block:: python

    { 'i': 4,
      'msg': { 'agent': 'ralph',
               'election': { 'id': 1, 'name': 'awesome', 'year': 2013},
               'state': False},
      'msg_id': '2013-3c985048-b82f-4836-b581-363bc9466e6e',
      'timestamp': 1380303306.041,
      'topic': 'org.fedoraproject.prod.nuancier.open.toggle.off',
      'username': 'threebean'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - nuancier.open.toggle.off

- :func:`fedmsg.meta.msg2subtitle`

  - ralph closed the "awesome" election for voting

- :func:`fedmsg.meta.msg2link`

  - https://apps.fedoraproject.org/nuancier/election/1

- :func:`fedmsg.meta.msg2icon`

  - None

- :func:`fedmsg.meta.msg2secondary_icon`

  - http://www.gravatar.com/avatar/2f933f4364baaabd2d3ab8f0664faef2?s=64&d=http%3A%2F%2Ffedoraproject.org%2Fstatic%2Fimages%2Ffedora_infinity_64x64.png

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['ralph'])``

- :func:`fedmsg.meta.msg2packages`

 - ``set([])``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['2013/awesome/open/off'])``



nuancier.open.toggle.on
~~~~~~~~~~~~~~~~~~~~~~~

These messages are published when a new election is opened for voting
on "Nuancier", the wallpaper voting app.

.. code-block:: python

    { 'i': 1,
      'msg': { 'agent': 'ralph',
               'election': { 'id': 1, 'name': 'awesome', 'year': 2013},
               'state': True},
      'msg_id': '2013-86c25e1b-1ea7-4202-8bf0-7d6c76131e37',
      'timestamp': 1380303298.212,
      'topic': 'org.fedoraproject.prod.nuancier.open.toggle.on',
      'username': 'threebean'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - nuancier.open.toggle.on

- :func:`fedmsg.meta.msg2subtitle`

  - ralph opened the "awesome" election for voting

- :func:`fedmsg.meta.msg2link`

  - https://apps.fedoraproject.org/nuancier/election/1

- :func:`fedmsg.meta.msg2icon`

  - None

- :func:`fedmsg.meta.msg2secondary_icon`

  - http://www.gravatar.com/avatar/2f933f4364baaabd2d3ab8f0664faef2?s=64&d=http%3A%2F%2Ffedoraproject.org%2Fstatic%2Fimages%2Ffedora_infinity_64x64.png

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['ralph'])``

- :func:`fedmsg.meta.msg2packages`

 - ``set([])``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['2013/awesome/open/on'])``



nuancier.publish.toggle.off
~~~~~~~~~~~~~~~~~~~~~~~~~~~

These messages are published when the results of an election have been
rescinded on "Nuancier", the wallpaper voting app.

.. code-block:: python

    { 'i': 3,
      'msg': { 'agent': 'ralph',
               'election': { 'id': 1, 'name': 'awesome', 'year': 2013},
               'state': False},
      'msg_id': '2013-9929bc11-d161-45d8-b9fe-45cef5d6acfe',
      'timestamp': 1380303304.667,
      'topic': 'org.fedoraproject.prod.nuancier.publish.toggle.off',
      'username': 'threebean'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - nuancier.publish.toggle.off

- :func:`fedmsg.meta.msg2subtitle`

  - ralph rescinded the results of the "awesome" election

- :func:`fedmsg.meta.msg2link`

  - https://apps.fedoraproject.org/nuancier/results/1

- :func:`fedmsg.meta.msg2icon`

  - None

- :func:`fedmsg.meta.msg2secondary_icon`

  - http://www.gravatar.com/avatar/2f933f4364baaabd2d3ab8f0664faef2?s=64&d=http%3A%2F%2Ffedoraproject.org%2Fstatic%2Fimages%2Ffedora_infinity_64x64.png

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['ralph'])``

- :func:`fedmsg.meta.msg2packages`

 - ``set([])``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['2013/awesome/publish/off'])``



nuancier.publish.toggle.on
~~~~~~~~~~~~~~~~~~~~~~~~~~

These messages are published when the results of an election have been
published on "Nuancier", the wallpaper voting app.

.. code-block:: python

    { 'i': 2,
      'msg': { 'agent': 'ralph',
               'election': { 'id': 1, 'name': 'awesome', 'year': 2013},
               'state': True},
      'msg_id': '2013-eb5b7306-2dfb-4040-a26e-6aa12b1fd3a2',
      'timestamp': 1380303299.5,
      'topic': 'org.fedoraproject.prod.nuancier.publish.toggle.on',
      'username': 'threebean'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - nuancier.publish.toggle.on

- :func:`fedmsg.meta.msg2subtitle`

  - ralph published the results of the "awesome" election

- :func:`fedmsg.meta.msg2link`

  - https://apps.fedoraproject.org/nuancier/results/1

- :func:`fedmsg.meta.msg2icon`

  - None

- :func:`fedmsg.meta.msg2secondary_icon`

  - http://www.gravatar.com/avatar/2f933f4364baaabd2d3ab8f0664faef2?s=64&d=http%3A%2F%2Ffedoraproject.org%2Fstatic%2Fimages%2Ffedora_infinity_64x64.png

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['ralph'])``

- :func:`fedmsg.meta.msg2packages`

 - ``set([])``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['2013/awesome/publish/on'])``



pkgdb
-----

pkgdb.acl.update
~~~~~~~~~~~~~~~~

The Fedora `Package DB <https://admin.fedoraproject.org/pkgdb>`_
publishes these messages when an ACL changes on a package.

.. code-block:: python

    { 'i': 2,
      'msg': { 'acl': 'watchbugzilla',
               'agent': 'ralph',
               'package_listing': { 'collection': { 'branchname': 'EL-6',
                                                    'disttag': '.el6',
                                                    'name': 'Fedora EPEL',
                                                    'pendingurltemplate': None,
                                                    'publishurltemplate': None,
                                                    'version': '6'},
                                    'package': { 'description': None,
                                                 'name': 'python-sh',
                                                 'reviewurl': None,
                                                 'summary': 'Python module to simplify calling shell commands',
                                                 'upstreamurl': None},
                                    'point_of_contact': 'grover',
                                    'qacontact': None,
                                    'specfile': None},
               'status': 'Awaiting Review',
               'username': 'ralph'},
      'timestamp': 1357576703.125622,
      'topic': 'org.fedoraproject.prod.pkgdb.acl.update',
      'username': 'apache'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - pkgdb.acl.update

- :func:`fedmsg.meta.msg2subtitle`

  - ralph changed ralph's 'watchbugzilla' permission on python-sh (EL-6) to 'Awaiting Review'

- :func:`fedmsg.meta.msg2link`

  - https://admin.fedoraproject.org/pkgdb/acls/name/python-sh

- :func:`fedmsg.meta.msg2icon`

  - https://apps.fedoraproject.org/packages/images/icons/package_128x128.png

- :func:`fedmsg.meta.msg2secondary_icon`

  - http://www.gravatar.com/avatar/2f933f4364baaabd2d3ab8f0664faef2?s=64&d=http%3A%2F%2Ffedoraproject.org%2Fstatic%2Fimages%2Ffedora_infinity_64x64.png

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['grover', 'ralph'])``

- :func:`fedmsg.meta.msg2packages`

 - ``set(['python-sh'])``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['python-sh/acls/EL-6/watchbugzilla/ralph'])``



pkgdb.acl.user.remove
~~~~~~~~~~~~~~~~~~~~~

The Fedora `Package DB <https://admin.fedoraproject.org/pkgdb>`_
when a user is removed from a package ACL.

.. code-block:: python

    { 'i': 2,
      'msg': { 'agent': 'ralph',
               'collections': [],
               'package_listings': [ { 'collection': { 'branchname': 'EL-6',
                                                       'disttag': '.el6',
                                                       'name': 'Fedora EPEL',
                                                       'pendingurltemplate': None,
                                                       'publishurltemplate': None,
                                                       'version': '6'},
                                       'owner': 'orphan',
                                       'package': { 'description': None,
                                                    'name': 'php-zmq',
                                                    'reviewurl': None,
                                                    'summary': 'PHP 0MQ/zmq/zeromq extension',
                                                    'upstreamurl': None},
                                       'qacontact': None,
                                       'specfile': None},
                                     { 'collection': { 'branchname': 'F18',
                                                       'disttag': '.f18',
                                                       'name': 'Fedora',
                                                       'pendingurltemplate': None,
                                                       'publishurltemplate': None,
                                                       'version': '18'},
                                       'owner': 'orphan',
                                       'package': { 'description': None,
                                                    'name': 'php-zmq',
                                                    'reviewurl': None,
                                                    'summary': 'PHP 0MQ/zmq/zeromq extension',
                                                    'upstreamurl': None},
                                       'qacontact': None,
                                       'specfile': None}],
               'username': 'ralph'},
      'timestamp': 1357583297.886945,
      'topic': 'org.fedoraproject.prod.pkgdb.acl.user.remove',
      'username': 'apache'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - pkgdb.acl.user.remove

- :func:`fedmsg.meta.msg2subtitle`

  - ralph removed ralph from php-zmq (EL-6, F18)

- :func:`fedmsg.meta.msg2link`

  - https://admin.fedoraproject.org/pkgdb/acls/name/php-zmq

- :func:`fedmsg.meta.msg2icon`

  - https://apps.fedoraproject.org/packages/images/icons/package_128x128.png

- :func:`fedmsg.meta.msg2secondary_icon`

  - http://www.gravatar.com/avatar/2f933f4364baaabd2d3ab8f0664faef2?s=64&d=http%3A%2F%2Ffedoraproject.org%2Fstatic%2Fimages%2Ffedora_infinity_64x64.png

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['ralph'])``

- :func:`fedmsg.meta.msg2packages`

 - ``set(['php-zmq'])``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['php-zmq/remove/ralph'])``



pkgdb.branch.clone
~~~~~~~~~~~~~~~~~~

The Fedora `Package DB <https://admin.fedoraproject.org/pkgdb>`_
publishes messages on this topic when a new branch is cloned for a
package.

.. code-block:: python

    { 'i': 2,
      'msg': { 'agent': 'ralph',
               'branch': 'f18',
               'master': 'devel',
               'package': 'php-zmq'},
      'timestamp': 1357581512.006664,
      'topic': 'org.fedoraproject.prod.pkgdb.branch.clone',
      'username': 'apache'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - pkgdb.branch.clone

- :func:`fedmsg.meta.msg2subtitle`

  - ralph branched php-zmq f18 from devel

- :func:`fedmsg.meta.msg2link`

  - https://admin.fedoraproject.org/pkgdb/acls/name/php-zmq

- :func:`fedmsg.meta.msg2icon`

  - https://apps.fedoraproject.org/packages/images/icons/package_128x128.png

- :func:`fedmsg.meta.msg2secondary_icon`

  - http://www.gravatar.com/avatar/2f933f4364baaabd2d3ab8f0664faef2?s=64&d=http%3A%2F%2Ffedoraproject.org%2Fstatic%2Fimages%2Ffedora_infinity_64x64.png

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['ralph'])``

- :func:`fedmsg.meta.msg2packages`

 - ``set(['php-zmq'])``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['php-zmq/branch'])``



pkgdb.branch.complete
~~~~~~~~~~~~~~~~~~~~~

The Fedora `Package DB <https://admin.fedoraproject.org/pkgdb>`_
publishes messages like these when branching completes.

.. code-block:: python

    { u'i': 1,
      u'msg': { u'agent': u'ralph',
                u'collection_from': { u'branchname': u'devel',
                                      u'name': u'Fedora',
                                      u'pendingurltemplate': None,
                                      u'publishurltemplate': None,
                                      u'version': u'devel'},
                u'collection_to': { u'branchname': u'F-19',
                                    u'name': u'Fedora',
                                    u'pendingurltemplate': None,
                                    u'publishurltemplate': None,
                                    u'version': u'19'}},
      u'msg_id': u'2013-0eaf6d98-6259-4e1c-a113-e2c9284a6082',
      u'timestamp': 1379606342.105066,
      u'topic': u'org.fedoraproject.prod.pkgdb.branch.complete',
      u'username': u'threebean'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - pkgdb.branch.complete

- :func:`fedmsg.meta.msg2subtitle`

  - ralph's branch of F-19 from devel completed

- :func:`fedmsg.meta.msg2link`

  - None

- :func:`fedmsg.meta.msg2icon`

  - https://apps.fedoraproject.org/packages/images/icons/package_128x128.png

- :func:`fedmsg.meta.msg2secondary_icon`

  - http://www.gravatar.com/avatar/2f933f4364baaabd2d3ab8f0664faef2?s=64&d=http%3A%2F%2Ffedoraproject.org%2Fstatic%2Fimages%2Ffedora_infinity_64x64.png

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['ralph'])``

- :func:`fedmsg.meta.msg2packages`

 - ``set([])``

- :func:`fedmsg.meta.msg2objects`

 - ``set([])``



pkgdb.branch.start
~~~~~~~~~~~~~~~~~~

The Fedora `Package DB <https://admin.fedoraproject.org/pkgdb>`_
publishes messages like these when branching starts.

.. code-block:: python

    { u'i': 1,
      u'msg': { u'agent': u'ralph',
                u'collection_from': { u'branchname': u'devel',
                                      u'name': u'Fedora',
                                      u'pendingurltemplate': None,
                                      u'publishurltemplate': None,
                                      u'version': u'devel'},
                u'collection_to': { u'branchname': u'F-19',
                                    u'name': u'Fedora',
                                    u'pendingurltemplate': None,
                                    u'publishurltemplate': None,
                                    u'version': u'19'}},
      u'msg_id': u'2013-0eaf6d98-6259-4e1c-a113-e2c9284a6082',
      u'timestamp': 1379606342.105066,
      u'topic': u'org.fedoraproject.prod.pkgdb.branch.start',
      u'username': u'threebean'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - pkgdb.branch.start

- :func:`fedmsg.meta.msg2subtitle`

  - ralph started a branch of F-19 from devel

- :func:`fedmsg.meta.msg2link`

  - None

- :func:`fedmsg.meta.msg2icon`

  - https://apps.fedoraproject.org/packages/images/icons/package_128x128.png

- :func:`fedmsg.meta.msg2secondary_icon`

  - http://www.gravatar.com/avatar/2f933f4364baaabd2d3ab8f0664faef2?s=64&d=http%3A%2F%2Ffedoraproject.org%2Fstatic%2Fimages%2Ffedora_infinity_64x64.png

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['ralph'])``

- :func:`fedmsg.meta.msg2packages`

 - ``set([])``

- :func:`fedmsg.meta.msg2objects`

 - ``set([])``



pkgdb.collection.new
~~~~~~~~~~~~~~~~~~~~

The Fedora `Package DB <https://admin.fedoraproject.org/pkgdb>`_
publishes messages like these when an admin creates a new collection.

.. code-block:: python

    { u'i': 3,
      u'msg': { u'agent': u'ralph',
                u'collection': { u'branchname': u'F-19',
                                 u'name': u'Fedora',
                                 u'pendingurltemplate': None,
                                 u'publishurltemplate': None,
                                 u'version': u'19'}},
      u'msg_id': u'2013-68fd388e-60ca-4cf6-888d-b51161798496',
      u'timestamp': 1379607327.474346,
      u'topic': u'org.fedoraproject.prod.pkgdb.collection.new',
      u'username': u'threebean'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - pkgdb.collection.new

- :func:`fedmsg.meta.msg2subtitle`

  - ralph created a new collection for Fedora 19

- :func:`fedmsg.meta.msg2link`

  - None

- :func:`fedmsg.meta.msg2icon`

  - https://apps.fedoraproject.org/packages/images/icons/package_128x128.png

- :func:`fedmsg.meta.msg2secondary_icon`

  - http://www.gravatar.com/avatar/2f933f4364baaabd2d3ab8f0664faef2?s=64&d=http%3A%2F%2Ffedoraproject.org%2Fstatic%2Fimages%2Ffedora_infinity_64x64.png

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['ralph'])``

- :func:`fedmsg.meta.msg2packages`

 - ``set([])``

- :func:`fedmsg.meta.msg2objects`

 - ``set([])``



pkgdb.collection.update
~~~~~~~~~~~~~~~~~~~~~~~

The Fedora `Package DB <https://admin.fedoraproject.org/pkgdb>`_
publishes messages like these when an admin creates a new collection.

.. code-block:: python

    { u'i': 27,
      u'msg': { u'agent': u'ralph',
                u'collection': { u'branchname': u'f18_b',
                                 u'name': u'Fedora',
                                 u'pendingurltemplate': u'http://.....',
                                 u'publishurltemplate': u'http://.....',
                                 u'version': u'18'},
                u'fields': [u'name', u'version']},
      u'msg_id': u'2013-478a321f-ddfc-4d4c-adeb-c777619da15a',
      u'timestamp': 1379607692.198447,
      u'topic': u'org.fedoraproject.prod.pkgdb.collection.update',
      u'username': u'threebean'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - pkgdb.collection.update

- :func:`fedmsg.meta.msg2subtitle`

  - ralph updated the following fields of the Fedora 18 collection: name, version

- :func:`fedmsg.meta.msg2link`

  - None

- :func:`fedmsg.meta.msg2icon`

  - https://apps.fedoraproject.org/packages/images/icons/package_128x128.png

- :func:`fedmsg.meta.msg2secondary_icon`

  - http://www.gravatar.com/avatar/2f933f4364baaabd2d3ab8f0664faef2?s=64&d=http%3A%2F%2Ffedoraproject.org%2Fstatic%2Fimages%2Ffedora_infinity_64x64.png

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['ralph'])``

- :func:`fedmsg.meta.msg2packages`

 - ``set([])``

- :func:`fedmsg.meta.msg2objects`

 - ``set([])``



pkgdb.critpath.update
~~~~~~~~~~~~~~~~~~~~~

The Fedora `Package DB <https://admin.fedoraproject.org/pkgdb>`_
publishes messages on this topic when the critical path status of a
package changes (when it is either added, or removed from the critical
path).  For example:

.. code-block:: python

    { 'i': 2,
      'msg': { 'agent': 'ralph', 'critpath': True, 'package_listing_ids': []},
      'timestamp': 1357581512.006664,
      'topic': 'org.fedoraproject.prod.pkgdb.critpath.update',
      'username': 'apache'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - pkgdb.critpath.update

- :func:`fedmsg.meta.msg2subtitle`

  - ralph altered the critpath status for some packages

- :func:`fedmsg.meta.msg2link`

  - None

- :func:`fedmsg.meta.msg2icon`

  - https://apps.fedoraproject.org/packages/images/icons/package_128x128.png

- :func:`fedmsg.meta.msg2secondary_icon`

  - http://www.gravatar.com/avatar/2f933f4364baaabd2d3ab8f0664faef2?s=64&d=http%3A%2F%2Ffedoraproject.org%2Fstatic%2Fimages%2Ffedora_infinity_64x64.png

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['ralph'])``

- :func:`fedmsg.meta.msg2packages`

 - ``set([])``

- :func:`fedmsg.meta.msg2objects`

 - ``set([])``



pkgdb.owner.update
~~~~~~~~~~~~~~~~~~

The Fedora `Package DB <https://admin.fedoraproject.org/pkgdb>`_
publishes this message when a package gets an new owner.  (It is
also published when a package is orphaned; the 'owner' field will have
the string 'orphan' as its value.)

.. code-block:: python

    { 'i': 3,
      'msg': { 'agent': 'ralph',
               'package_listing': { 'collection': { 'branchname': 'EL-6',
                                                    'disttag': '.el6',
                                                    'name': 'Fedora EPEL',
                                                    'pendingurltemplate': None,
                                                    'publishurltemplate': None,
                                                    'version': '6'},
                                    'package': { 'description': None,
                                                 'name': 'php-zmq',
                                                 'reviewurl': None,
                                                 'summary': 'PHP 0MQ/zmq/zeromq extension',
                                                 'upstreamurl': None},
                                    'point_of_contact': 'orphan',
                                    'qacontact': None,
                                    'specfile': None}},
      'timestamp': 1357580533.5999,
      'topic': 'org.fedoraproject.prod.pkgdb.owner.update',
      'username': 'apache'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - pkgdb.owner.update

- :func:`fedmsg.meta.msg2subtitle`

  - ralph changed owner of php-zmq (EL-6) to 'orphan'

- :func:`fedmsg.meta.msg2link`

  - https://admin.fedoraproject.org/pkgdb/acls/name/php-zmq

- :func:`fedmsg.meta.msg2icon`

  - https://apps.fedoraproject.org/packages/images/icons/package_128x128.png

- :func:`fedmsg.meta.msg2secondary_icon`

  - http://www.gravatar.com/avatar/2f933f4364baaabd2d3ab8f0664faef2?s=64&d=http%3A%2F%2Ffedoraproject.org%2Fstatic%2Fimages%2Ffedora_infinity_64x64.png

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['ralph'])``

- :func:`fedmsg.meta.msg2packages`

 - ``set(['php-zmq'])``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['php-zmq/owner/EL-6'])``



pkgdb.package.new
~~~~~~~~~~~~~~~~~

The Fedora `Package DB <https://admin.fedoraproject.org/pkgdb>`_
publishes this message when a new package is added to the DB.  This
typically happens near the end of the Package Review Process as a
result of a `SCM Admin Request
<http://fedoraproject.org/wiki/Package_SCM_admin_requests>`_.

.. code-block:: python

    { 'i': 3,
      'msg': { 'agent': 'ralph',
               'package_listing': { 'collection': { 'branchname': 'devel',
                                                    'disttag': '.f19',
                                                    'name': 'Fedora',
                                                    'pendingurltemplate': None,
                                                    'publishurltemplate': None,
                                                    'version': '19'},
                                    'package': { 'description': None,
                                                 'name': 'php-zmq',
                                                 'reviewurl': None,
                                                 'summary': 'PHP 0MQ/zmq/zeromq extension',
                                                 'upstreamurl': None},
                                    'point_of_contact': 'lmacken',
                                    'qacontact': None,
                                    'specfile': None}},
      'timestamp': 1357580533.5999,
      'topic': 'org.fedoraproject.prod.pkgdb.package.new',
      'username': 'apache'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - pkgdb.package.new

- :func:`fedmsg.meta.msg2subtitle`

  - ralph added a new package 'php-zmq' (devel)

- :func:`fedmsg.meta.msg2link`

  - https://admin.fedoraproject.org/pkgdb/acls/name/php-zmq

- :func:`fedmsg.meta.msg2icon`

  - https://apps.fedoraproject.org/packages/images/icons/package_128x128.png

- :func:`fedmsg.meta.msg2secondary_icon`

  - http://www.gravatar.com/avatar/2f933f4364baaabd2d3ab8f0664faef2?s=64&d=http%3A%2F%2Ffedoraproject.org%2Fstatic%2Fimages%2Ffedora_infinity_64x64.png

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['lmacken', 'ralph'])``

- :func:`fedmsg.meta.msg2packages`

 - ``set(['php-zmq'])``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['php-zmq/create'])``



pkgdb.package.retire
~~~~~~~~~~~~~~~~~~~~

The Fedora `Package DB <https://admin.fedoraproject.org/pkgdb>`_
publishes messages on this topic when a package is retired.  For example:

.. code-block:: python

    { 'i': 2,
      'msg': { 'agent': 'ralph',
               'package_listing': { 'collection': { 'branchname': 'EL-6',
                                                    'disttag': '.el6',
                                                    'name': 'Fedora EPEL',
                                                    'pendingurltemplate': None,
                                                    'publishurltemplate': None,
                                                    'version': '6'},
                                    'owner': 'orphan',
                                    'package': { 'description': None,
                                                 'name': 'php-zmq',
                                                 'reviewurl': None,
                                                 'summary': 'PHP 0MQ/zmq/zeromq extension',
                                                 'upstreamurl': None},
                                    'qacontact': None,
                                    'specfile': None},
               'retirement': 'retired'},
      'timestamp': 1357583297.886945,
      'topic': 'org.fedoraproject.prod.pkgdb.package.retire',
      'username': 'apache'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - pkgdb.package.retire

- :func:`fedmsg.meta.msg2subtitle`

  - ralph retired php-zmq (EL-6)!

- :func:`fedmsg.meta.msg2link`

  - https://admin.fedoraproject.org/pkgdb/acls/name/php-zmq

- :func:`fedmsg.meta.msg2icon`

  - https://apps.fedoraproject.org/packages/images/icons/package_128x128.png

- :func:`fedmsg.meta.msg2secondary_icon`

  - http://www.gravatar.com/avatar/2f933f4364baaabd2d3ab8f0664faef2?s=64&d=http%3A%2F%2Ffedoraproject.org%2Fstatic%2Fimages%2Ffedora_infinity_64x64.png

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['ralph'])``

- :func:`fedmsg.meta.msg2packages`

 - ``set(['php-zmq'])``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['php-zmq/retire'])``



pkgdb.package.update
~~~~~~~~~~~~~~~~~~~~

The Fedora `Package DB <https://admin.fedoraproject.org/pkgdb>`_
publishes this message when metadata for a package is updated.

.. code-block:: python

    { 'i': 144,
      'msg': { 'agent': 'ralph',
               'package_listing': { 'collection': { 'branchname': 'F-18',
                                                    'name': 'Fedora',
                                                    'pendingurltemplate': None,
                                                    'publishurltemplate': None,
                                                    'version': '18'},
                                    'package': { 'creation_date': 1379619917.0,
                                                 'name': 'guake',
                                                 'review_url': 'https://bugzilla.redhat.com/450189',
                                                 'status': 'Approved',
                                                 'summary': 'Top down terminal for GNOME',
                                                 'upstream_url': 'http://guake.org'},
                                    'point_of_contact': 'pingou'},
               'package_name': 'guake',
               'prev_status': 'Retired',
               'status': 'Approved'},
      'msg_id': '2013-c131fb95-0a2e-4426-95c3-09766e017d29',
      'timestamp': 1379605523.496933,
      'topic': 'org.fedoraproject.prod.pkgdb.package.update',
      'username': 'apache'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - pkgdb.package.update

- :func:`fedmsg.meta.msg2subtitle`

  - ralph made some updates to guake

- :func:`fedmsg.meta.msg2link`

  - https://admin.fedoraproject.org/pkgdb/acls/name/guake

- :func:`fedmsg.meta.msg2icon`

  - https://apps.fedoraproject.org/packages/images/icons/package_128x128.png

- :func:`fedmsg.meta.msg2secondary_icon`

  - http://www.gravatar.com/avatar/2f933f4364baaabd2d3ab8f0664faef2?s=64&d=http%3A%2F%2Ffedoraproject.org%2Fstatic%2Fimages%2Ffedora_infinity_64x64.png

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['ralph', 'pingou'])``

- :func:`fedmsg.meta.msg2packages`

 - ``set(['guake'])``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['guake/update'])``



planet
------

planet.post.new
~~~~~~~~~~~~~~~

The `Fedora Planet <https://planet.fedoraproject.org/>`_ publishes
messages of this topic whenever a new blog post is found.  Cool!

.. code-block:: python

    { 'i': 1,
      'msg': { 'face': 'https://secure.gravatar.com/avatar/ba940b433c2695635d32d2c4aec00540?s=140',
               'name': 'Ralph Bean',
               'post': { 'content': [ { 'base': 'http://threebean.org/blog/category/fedora/feed/index.xml',
                                        'language': None,
                                        'type': 'text/html',
                                        'value': '<div class="document">\n<p>Another test post for fedmsg+fedoraplanet.</p>\n</div>'}],
                         'guidislink': False,
                         'id': 'http://threebean.org/blog/test-post-6',
                         'link': 'http://threebean.org/blog/test-post-6',
                         'links': [ { 'href': 'http://threebean.org/blog/test-post-6',
                                      'rel': 'alternate',
                                      'type': 'text/html'}],
                         'summary': 'Test Post 6',
                         'summary_detail': { 'base': 'http://threebean.org/blog/category/fedora/feed/index.xml',
                                             'language': None,
                                             'type': 'text/html',
                                             'value': 'Test Post 6'},
                         'tags': [ { 'label': None,
                                     'scheme': None,
                                     'term': 'fedora'}],
                         'title': 'Test Post 6',
                         'title_detail': { 'base': 'http://threebean.org/blog/category/fedora/feed/index.xml',
                                           'language': None,
                                           'type': 'text/html',
                                           'value': 'Test Post 6'},
                         'updated': 'Wed, 30 Jan 2013 15:00:00 EST',
                         'updated_parsed': 1359576000.0},
               'username': 'ralph'},
      'timestamp': 1359579067.617802,
      'topic': 'org.fedoraproject.prod.planet.post.new',
      'username': 'planet-user'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - planet.post.new

- :func:`fedmsg.meta.msg2subtitle`

  - ralph posted "Test Post 6"

- :func:`fedmsg.meta.msg2link`

  - http://threebean.org/blog/test-post-6

- :func:`fedmsg.meta.msg2icon`

  - None

- :func:`fedmsg.meta.msg2secondary_icon`

  - https://secure.gravatar.com/avatar/ba940b433c2695635d32d2c4aec00540?s=140

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['ralph'])``

- :func:`fedmsg.meta.msg2packages`

 - ``set([])``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['threebean.org/blog/test-post-6'])``



trac
----

trac.git.receive
~~~~~~~~~~~~~~~~

Messages are published on this topic when a users pushes commits
to a `fedorahosted <http://fedorahosted.org>`_ git repository.

The message format is very similar to the ``git.receive`` message type
for Fedora packages.

.. code-block:: python

    { 'i': 1,
      'msg': { 'commit': { 'agent': 'ralph',
                           'branch': 'dev',
                           'email': 'rbean@redhat.com',
                           'message': 'Another commit to test fedorahosted fedmsg.\n',
                           'name': 'Ralph Bean',
                           'repo': 'moksha',
                           'rev': '24bcd20d08a68320f82951ce20959bc6a1a6e79c',
                           'stats': { 'files': { 'README.rst': { 'deletions': 0,
                                                                 'insertions': 1,
                                                                 'lines': 1}},
                                      'total': { 'deletions': 0,
                                                 'files': 1,
                                                 'insertions': 1,
                                                 'lines': 1}},
                           'summary': 'Another commit to test fedorahosted fedmsg.',
                           'username': 'ralph'}},
      'timestamp': 1368046115.802794,
      'topic': 'org.fedoraproject.prod.trac.git.receive',
      'username': 'ralph'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - trac.git.receive

- :func:`fedmsg.meta.msg2subtitle`

  - ralph pushed some commits to the 'moksha' fedorahosted git repository

- :func:`fedmsg.meta.msg2link`

  - https://git.fedorahosted.org/cgit/moksha.git/commit/?id=24bcd20d08a68320f82951ce20959bc6a1a6e79c

- :func:`fedmsg.meta.msg2icon`

  - None

- :func:`fedmsg.meta.msg2secondary_icon`

  - http://www.gravatar.com/avatar/2f933f4364baaabd2d3ab8f0664faef2?s=64&d=http%3A%2F%2Ffedoraproject.org%2Fstatic%2Fimages%2Ffedora_infinity_64x64.png

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['ralph'])``

- :func:`fedmsg.meta.msg2packages`

 - ``set([])``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['moksha/git/README.rst'])``



trac.git.receive
~~~~~~~~~~~~~~~~

Messages are published on this topic when a users pushes commits
to a `fedorahosted <http://fedorahosted.org>`_ git repository.

The message format is very similar to the ``git.receive`` message type
for Fedora packages.

.. code-block:: python

    { 'i': 1,
      'msg': { 'commit': { 'agent': 'ralph',
                           'branch': 'dev',
                           'email': 'rbean@redhat.com',
                           'message': 'Another commit to test fedorahosted fedmsg.\n',
                           'name': 'Ralph Bean',
                           'path': '/srv/git/docs/about-fedora.git',
                           'repo': 'about-fedora',
                           'rev': '24bcd20d08a68320f82951ce20959bc6a1a6e79c',
                           'stats': { 'files': { 'README.rst': { 'deletions': 0,
                                                                 'insertions': 1,
                                                                 'lines': 1}},
                                      'total': { 'deletions': 0,
                                                 'files': 1,
                                                 'insertions': 1,
                                                 'lines': 1}},
                           'summary': 'Another commit to test fedorahosted fedmsg.',
                           'username': 'ralph'}},
      'timestamp': 1368046115.802794,
      'topic': 'org.fedoraproject.prod.trac.git.receive',
      'username': 'ralph'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - trac.git.receive

- :func:`fedmsg.meta.msg2subtitle`

  - ralph pushed some commits to the 'docs/about-fedora' fedorahosted git repository

- :func:`fedmsg.meta.msg2link`

  - https://git.fedorahosted.org/cgit/docs/about-fedora.git/commit/?id=24bcd20d08a68320f82951ce20959bc6a1a6e79c

- :func:`fedmsg.meta.msg2icon`

  - None

- :func:`fedmsg.meta.msg2secondary_icon`

  - http://www.gravatar.com/avatar/2f933f4364baaabd2d3ab8f0664faef2?s=64&d=http%3A%2F%2Ffedoraproject.org%2Fstatic%2Fimages%2Ffedora_infinity_64x64.png

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['ralph'])``

- :func:`fedmsg.meta.msg2packages`

 - ``set([])``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['docs/about-fedora/git/README.rst'])``



trac.ticket.delete
~~~~~~~~~~~~~~~~~~

You can actually permanently delete trac tickets, which is kind of
crazy.  If you do, a message looking something like this will be published.

.. code-block:: python

    { 'i': 1,
      'msg': { 'agent': 'ralph',
               'instance': { 'base_url': 'https://fedorahosted.org/moksha/',
                             'project_description': 'Moksha is an opensource plugin-based web framework that aims to simplify the creation of live widget dashboards.',
                             'project_icon': 'common/trac.ico',
                             'project_name': 'moksha',
                             'project_url': 'http://moksha.fedorahosted.org'},
               'ticket': { 'blockedby': '',
                           'blocking': '',
                           'cc': '',
                           'changetime': 1368042301.0,
                           'component': 'moksha',
                           'description': 'I installed the fedmsg plugin.',
                           'id': 249,
                           'keywords': '',
                           'milestone': '__unclassified__',
                           'owner': '',
                           'priority': 'major',
                           'reporter': 'ralph',
                           'resolution': 'fixed',
                           'status': 'closed',
                           'summary': 'Test ticket for fedmsg plugin',
                           'time': 1368039807.0,
                           'type': 'defect'}},
      'timestamp': 1368042385.176218,
      'topic': 'org.fedoraproject.prod.trac.ticket.delete',
      'username': 'apache'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - trac.ticket.delete

- :func:`fedmsg.meta.msg2subtitle`

  - ralph straight-up deleted a ticket on the moksha trac instance

- :func:`fedmsg.meta.msg2link`

  - https://fedorahosted.org/moksha/ticket/249

- :func:`fedmsg.meta.msg2icon`

  - None

- :func:`fedmsg.meta.msg2secondary_icon`

  - http://www.gravatar.com/avatar/2f933f4364baaabd2d3ab8f0664faef2?s=64&d=http%3A%2F%2Ffedoraproject.org%2Fstatic%2Fimages%2Ffedora_infinity_64x64.png

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['ralph'])``

- :func:`fedmsg.meta.msg2packages`

 - ``set([])``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['moksha/ticket/249'])``



trac.ticket.new
~~~~~~~~~~~~~~~

Messages are published on this topic when a user opens a new ticket
on a `fedorahosted <http://fedorahosted.org/>`_ trac instance.

.. code-block:: python

    { 'i': 1,
      'msg': { 'agent': 'ralph',
               'instance': { 'base_url': 'https://fedorahosted.org/moksha/',
                             'project_description': 'Moksha is an opensource plugin-based web framework that aims to simplify the creation of live widget dashboards.',
                             'project_icon': 'common/trac.ico',
                             'project_name': 'moksha',
                             'project_url': 'http://moksha.fedorahosted.org'},
               'ticket': { 'blockedby': '',
                           'blocking': '',
                           'cc': '',
                           'changetime': 1368043635.0,
                           'component': 'moksha',
                           'description': 'just testing fedmsg.',
                           'id': 249,
                           'keywords': '',
                           'milestone': '__unclassified__',
                           'owner': 'lmacken',
                           'priority': 'major',
                           'reporter': 'ralph',
                           'status': 'new',
                           'summary': 'test fedmsg',
                           'time': 1368043635.0,
                           'type': 'defect'}},
      'timestamp': 1368043636.294278,
      'topic': 'org.fedoraproject.prod.trac.ticket.new',
      'username': 'apache'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - trac.ticket.new

- :func:`fedmsg.meta.msg2subtitle`

  - ralph opened a new ticket on the moksha trac instance

- :func:`fedmsg.meta.msg2link`

  - https://fedorahosted.org/moksha/ticket/249

- :func:`fedmsg.meta.msg2icon`

  - None

- :func:`fedmsg.meta.msg2secondary_icon`

  - http://www.gravatar.com/avatar/2f933f4364baaabd2d3ab8f0664faef2?s=64&d=http%3A%2F%2Ffedoraproject.org%2Fstatic%2Fimages%2Ffedora_infinity_64x64.png

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['lmacken', 'ralph'])``

- :func:`fedmsg.meta.msg2packages`

 - ``set([])``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['moksha/ticket/249'])``



trac.ticket.update
~~~~~~~~~~~~~~~~~~

Messages get emitted on this topic when someone updates a trac ticket
on a `fedorahosted <http://fedorahosted.org>`_ trac instance.

.. code-block:: python

    { 'i': 1,
      'msg': { 'agent': 'ralph',
               'author': 'ralph',
               'comment': 'Testing.',
               'instance': { 'base_url': 'https://fedorahosted.org/moksha/',
                             'project_description': 'Moksha is an opensource plugin-based web framework that aims to simplify the creation of live widget dashboards.',
                             'project_icon': 'common/trac.ico',
                             'project_name': 'moksha',
                             'project_url': 'http://moksha.fedorahosted.org'},
               'old_values': { },
               'ticket': { 'blockedby': '',
                           'blocking': '',
                           'cc': '',
                           'changetime': 1368040146.0,
                           'component': 'moksha',
                           'description': 'I installed the fedmsg plugin.',
                           'id': 249,
                           'keywords': '',
                           'milestone': '__unclassified__',
                           'owner': '',
                           'priority': 'major',
                           'reporter': 'ralph',
                           'resolution': '',
                           'status': 'new',
                           'summary': 'Test ticket for fedmsg plugin',
                           'time': 1368039807.0,
                           'type': 'defect'}},
      'timestamp': 1368040146.688652,
      'topic': 'org.fedoraproject.prod.trac.ticket.update',
      'username': 'apache'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - trac.ticket.update

- :func:`fedmsg.meta.msg2subtitle`

  - ralph updated a ticket on the moksha trac instance

- :func:`fedmsg.meta.msg2link`

  - https://fedorahosted.org/moksha/ticket/249

- :func:`fedmsg.meta.msg2icon`

  - None

- :func:`fedmsg.meta.msg2secondary_icon`

  - http://www.gravatar.com/avatar/2f933f4364baaabd2d3ab8f0664faef2?s=64&d=http%3A%2F%2Ffedoraproject.org%2Fstatic%2Fimages%2Ffedora_infinity_64x64.png

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['ralph'])``

- :func:`fedmsg.meta.msg2packages`

 - ``set([])``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['moksha/ticket/249'])``



trac.ticket.update
~~~~~~~~~~~~~~~~~~

Here's yet another example of an edit to a trac ticket.
In this one, the user has *closed* a ticket.

.. code-block:: python

    { 'i': 1,
      'msg': { 'agent': 'ralph',
               'author': 'ralph',
               'comment': '',
               'instance': { 'base_url': 'https://fedorahosted.org/moksha/',
                             'project_description': 'Moksha is an opensource plugin-based web framework that aims to simplify the creation of live widget dashboards.',
                             'project_icon': 'common/trac.ico',
                             'project_name': 'moksha',
                             'project_url': 'http://moksha.fedorahosted.org'},
               'old_values': { 'resolution': '', 'status': 'reopened'},
               'ticket': { 'blockedby': '',
                           'blocking': '',
                           'cc': '',
                           'changetime': 1368040802.0,
                           'component': 'moksha',
                           'description': 'I installed the fedmsg plugin.',
                           'id': 249,
                           'keywords': '',
                           'milestone': '__unclassified__',
                           'owner': '',
                           'priority': 'major',
                           'reporter': 'ralph',
                           'resolution': 'wontfix',
                           'status': 'closed',
                           'summary': 'Test ticket for fedmsg plugin',
                           'time': 1368039807.0,
                           'type': 'defect'}},
      'timestamp': 1368040802.747666,
      'topic': 'org.fedoraproject.prod.trac.ticket.update',
      'username': 'apache'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - trac.ticket.update

- :func:`fedmsg.meta.msg2subtitle`

  - ralph closed a ticket on the moksha trac instance as 'wontfix'

- :func:`fedmsg.meta.msg2link`

  - https://fedorahosted.org/moksha/ticket/249

- :func:`fedmsg.meta.msg2icon`

  - None

- :func:`fedmsg.meta.msg2secondary_icon`

  - http://www.gravatar.com/avatar/2f933f4364baaabd2d3ab8f0664faef2?s=64&d=http%3A%2F%2Ffedoraproject.org%2Fstatic%2Fimages%2Ffedora_infinity_64x64.png

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['ralph'])``

- :func:`fedmsg.meta.msg2packages`

 - ``set([])``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['moksha/ticket/249'])``



trac.ticket.update
~~~~~~~~~~~~~~~~~~

Here's another example of an edit to a trac ticket.  Here's one where
the ticket was originally closed and then was re-opened.

.. code-block:: python

    { 'i': 1,
      'msg': { 'agent': 'ralph',
               'author': 'ralph',
               'comment': '',
               'instance': { 'base_url': 'https://fedorahosted.org/moksha/',
                             'project_description': 'Moksha is an opensource plugin-based web framework that aims to simplify the creation of live widget dashboards.',
                             'project_icon': 'common/trac.ico',
                             'project_name': 'moksha',
                             'project_url': 'http://moksha.fedorahosted.org'},
               'old_values': { 'resolution': 'wontfix', 'status': 'closed'},
               'ticket': { 'blockedby': '',
                           'blocking': '',
                           'cc': '',
                           'changetime': 1368040591.0,
                           'component': 'moksha',
                           'description': 'I installed the fedmsg plugin.',
                           'id': 249,
                           'keywords': '',
                           'milestone': '__unclassified__',
                           'owner': '',
                           'priority': 'major',
                           'reporter': 'ralph',
                           'resolution': '',
                           'status': 'reopened',
                           'summary': 'Test ticket for fedmsg plugin',
                           'time': 1368039807.0,
                           'type': 'defect'}},
      'timestamp': 1368040591.046669,
      'topic': 'org.fedoraproject.prod.trac.ticket.update',
      'username': 'apache'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - trac.ticket.update

- :func:`fedmsg.meta.msg2subtitle`

  - ralph reopened a ticket on the moksha trac instance

- :func:`fedmsg.meta.msg2link`

  - https://fedorahosted.org/moksha/ticket/249

- :func:`fedmsg.meta.msg2icon`

  - None

- :func:`fedmsg.meta.msg2secondary_icon`

  - http://www.gravatar.com/avatar/2f933f4364baaabd2d3ab8f0664faef2?s=64&d=http%3A%2F%2Ffedoraproject.org%2Fstatic%2Fimages%2Ffedora_infinity_64x64.png

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['ralph'])``

- :func:`fedmsg.meta.msg2packages`

 - ``set([])``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['moksha/ticket/249'])``



trac.wiki.page.delete
~~~~~~~~~~~~~~~~~~~~~

These messages are fired off whenever a user *deletes* a wiki article
on a `fedorahosted <http://fedorahosted.org>`_ trac instance.

.. code-block:: python

    { 'i': 2,
      'msg': { 'agent': 'ralph',
               'instance': { 'base_url': 'https://fedorahosted.org/moksha/',
                             'project_description': 'Moksha is an opensource plugin-based web framework that aims to simplify the creation of live widget dashboards.',
                             'project_icon': 'common/trac.ico',
                             'project_name': 'moksha',
                             'project_url': 'http://moksha.fedorahosted.org'},
               'page': { 'author': '',
                         'comment': '',
                         'name': 'watwat',
                         'text': '',
                         'time': None,
                         'version': 0}},
      'timestamp': 1368043573.12363,
      'topic': 'org.fedoraproject.prod.trac.wiki.page.delete',
      'username': 'apache'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - trac.wiki.page.delete

- :func:`fedmsg.meta.msg2subtitle`

  - ralph straight-up deleted the 'watwat' wiki page on the moksha trac instance

- :func:`fedmsg.meta.msg2link`

  - https://fedorahosted.org/moksha/wiki/watwat

- :func:`fedmsg.meta.msg2icon`

  - None

- :func:`fedmsg.meta.msg2secondary_icon`

  - http://www.gravatar.com/avatar/2f933f4364baaabd2d3ab8f0664faef2?s=64&d=http%3A%2F%2Ffedoraproject.org%2Fstatic%2Fimages%2Ffedora_infinity_64x64.png

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['ralph'])``

- :func:`fedmsg.meta.msg2packages`

 - ``set([])``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['moksha/wiki/watwat'])``



trac.wiki.page.new
~~~~~~~~~~~~~~~~~~

Messages of this topic get published when someone creates a new wiki
page on a `fedorahosted <http://fedorahosted.org>`_ trac instance.

.. code-block:: python

    { 'i': 1,
      'msg': { 'agent': 'ralph',
               'instance': { 'base_url': 'https://fedorahosted.org/moksha/',
                             'project_description': 'Moksha is an opensource plugin-based web framework that aims to simplify the creation of live widget dashboards.',
                             'project_icon': 'common/trac.ico',
                             'project_name': 'moksha',
                             'project_url': 'http://moksha.fedorahosted.org'},
               'page': { 'author': 'ralph',
                         'comment': '',
                         'name': 'watwat',
                         'text': 'This is a test wiki page for fedmsg.',
                         'time': 1368042662.0,
                         'version': 1}},
      'timestamp': 1368042663.078511,
      'topic': 'org.fedoraproject.prod.trac.wiki.page.new',
      'username': 'apache'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - trac.wiki.page.new

- :func:`fedmsg.meta.msg2subtitle`

  - ralph created a new 'watwat' wiki page on the moksha trac instance

- :func:`fedmsg.meta.msg2link`

  - https://fedorahosted.org/moksha/wiki/watwat

- :func:`fedmsg.meta.msg2icon`

  - None

- :func:`fedmsg.meta.msg2secondary_icon`

  - http://www.gravatar.com/avatar/2f933f4364baaabd2d3ab8f0664faef2?s=64&d=http%3A%2F%2Ffedoraproject.org%2Fstatic%2Fimages%2Ffedora_infinity_64x64.png

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['ralph'])``

- :func:`fedmsg.meta.msg2packages`

 - ``set([])``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['moksha/wiki/watwat'])``



trac.wiki.page.rename
~~~~~~~~~~~~~~~~~~~~~

Messages are published on this topic when a user renames a wiki
page on a `fedorahosted <http://fedorahosted.org>_` trac instance.

.. code-block:: python

    { 'i': 1,
      'msg': { 'agent': 'ralph',
               'instance': { 'base_url': 'https://fedorahosted.org/moksha/',
                             'project_description': 'Moksha is an opensource plugin-based web framework that aims to simplify the creation of live widget dashboards.',
                             'project_icon': 'common/trac.ico',
                             'project_name': 'moksha',
                             'project_url': 'http://moksha.fedorahosted.org'},
               'old_name': 'watwat',
               'page': { 'author': 'ralph',
                         'comment': '',
                         'name': 'watwat2',
                         'text': 'This is a test wiki page for fedmsg.',
                         'time': 1368042662.0,
                         'version': 1}},
      'timestamp': 1368043322.110536,
      'topic': 'org.fedoraproject.prod.trac.wiki.page.rename',
      'username': 'apache'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - trac.wiki.page.rename

- :func:`fedmsg.meta.msg2subtitle`

  - ralph renamed the wiki page 'watwat' to 'watwat2' on the moksha trac instance

- :func:`fedmsg.meta.msg2link`

  - https://fedorahosted.org/moksha/wiki/watwat2

- :func:`fedmsg.meta.msg2icon`

  - None

- :func:`fedmsg.meta.msg2secondary_icon`

  - http://www.gravatar.com/avatar/2f933f4364baaabd2d3ab8f0664faef2?s=64&d=http%3A%2F%2Ffedoraproject.org%2Fstatic%2Fimages%2Ffedora_infinity_64x64.png

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['ralph'])``

- :func:`fedmsg.meta.msg2packages`

 - ``set([])``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['moksha/wiki/watwat2', 'moksha/wiki/watwat'])``



trac.wiki.page.update
~~~~~~~~~~~~~~~~~~~~~

Messages get emitted on this topic when someone updates a wiki page
on a `fedorahosted <http://fedorahosted.org>`_ trac instance.

.. code-block:: python

    { 'i': 1,
      'msg': { 'agent': 'ralph',
               'author': 'ralph',
               'comment': '',
               'instance': { 'base_url': 'https://fedorahosted.org/moksha/',
                             'project_description': 'Moksha is an opensource plugin-based web framework that aims to simplify the creation of live widget dashboards.',
                             'project_icon': 'common/trac.ico',
                             'project_name': 'moksha',
                             'project_url': 'http://moksha.fedorahosted.org'},
               'page': { 'author': 'ralph',
                         'comment': '',
                         'name': 'WikiStart',
                         'text': ' ... the full text of the wiki page goes here .. ',
                         'time': 1368038919.0,
                         'version': 47},
               't': 1368038919.0,
               'version': 47},
      'timestamp': 1368038919.389492,
      'topic': 'org.fedoraproject.prod.trac.wiki.page.update',
      'username': 'apache'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - trac.wiki.page.update

- :func:`fedmsg.meta.msg2subtitle`

  - ralph updated the 'WikiStart' wiki page on the moksha trac instance

- :func:`fedmsg.meta.msg2link`

  - https://fedorahosted.org/moksha/wiki/WikiStart?action=diff&version=47

- :func:`fedmsg.meta.msg2icon`

  - None

- :func:`fedmsg.meta.msg2secondary_icon`

  - http://www.gravatar.com/avatar/2f933f4364baaabd2d3ab8f0664faef2?s=64&d=http%3A%2F%2Ffedoraproject.org%2Fstatic%2Fimages%2Ffedora_infinity_64x64.png

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['ralph'])``

- :func:`fedmsg.meta.msg2packages`

 - ``set([])``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['moksha/wiki/WikiStart'])``



trac.wiki.page.version.delete
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Messages are published on this topic when a user deletes a
particular *version* of a page on a `fedorahosted
<http://fedorahosted.org>`_ trac instance.

.. code-block:: python

    { 'i': 2,
      'msg': { 'agent': 'ralph',
               'instance': { 'base_url': 'https://fedorahosted.org/moksha/',
                             'project_description': 'Moksha is an opensource plugin-based web framework that aims to simplify the creation of live widget dashboards.',
                             'project_icon': 'common/trac.ico',
                             'project_name': 'moksha',
                             'project_url': 'http://moksha.fedorahosted.org'},
               'page': { 'author': 'ralph',
                         'comment': '',
                         'name': 'WikiStart',
                         'text': ' .. wiki page text goes here. ..',
                         'time': 1368038919.0,
                         'version': 47}},
      'timestamp': 1368043436.144498,
      'topic': 'org.fedoraproject.prod.trac.wiki.page.version.delete',
      'username': 'apache'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - trac.wiki.page.version.delete

- :func:`fedmsg.meta.msg2subtitle`

  - ralph deleted a version of the 'WikiStart' wiki page on the moksha trac instance

- :func:`fedmsg.meta.msg2link`

  - https://fedorahosted.org/moksha/wiki/WikiStart?action=diff&version=47

- :func:`fedmsg.meta.msg2icon`

  - None

- :func:`fedmsg.meta.msg2secondary_icon`

  - http://www.gravatar.com/avatar/2f933f4364baaabd2d3ab8f0664faef2?s=64&d=http%3A%2F%2Ffedoraproject.org%2Fstatic%2Fimages%2Ffedora_infinity_64x64.png

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['ralph'])``

- :func:`fedmsg.meta.msg2packages`

 - ``set([])``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['moksha/wiki/WikiStart'])``



wiki
----

wiki.article.edit
~~~~~~~~~~~~~~~~~

Fedora's `Wiki <https://fedoraproject.org/wiki>`_ has a fedmsg hook
that publishes messages like this one when a user edits a page.

.. code-block:: python

    { 'msg': { 'base_rev_id': False,
               'minor_edit': 0,
               'revision': None,
               'section_anchor': None,
               'summary': '/* Mission */ ',
               'text': 'The diff goes here...',
               'title': 'Messaging SIG',
               'url': 'http://this-is-a-link.org',
               'user': 'Ralph',
               'watch_this': None},
      'timestamp': 1344350200,
      'topic': 'org.fedoraproject.prod.wiki.article.edit'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - wiki.article.edit

- :func:`fedmsg.meta.msg2subtitle`

  - Ralph made a wiki edit to "Messaging SIG"

- :func:`fedmsg.meta.msg2link`

  - http://this-is-a-link.org

- :func:`fedmsg.meta.msg2icon`

  - https://fedoraproject.org/w/skins/common/images/mediawiki.png

- :func:`fedmsg.meta.msg2secondary_icon`

  - None

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['ralph'])``

- :func:`fedmsg.meta.msg2packages`

 - ``None``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['Messaging SIG-page'])``



wiki.upload.complete
~~~~~~~~~~~~~~~~~~~~

Fedora's `Wiki <https://fedoraproject.org/wiki>`_ hook also publishes
messages when a user upload some media (like a video or a picture).

.. code-block:: python

    { 'msg': { 'description': 'This is a beautiful cat',
               'file_exists': True,
               'major_mime': 'image',
               'media_type': 'BITMAP',
               'mime': 'image/jpeg',
               'minor_mime': 'jpeg',
               'size': 295667,
               'title': { 'mArticleID': 46586,
                          'mBacklinkCache': { },
                          'mCascadeRestriction': None,
                          'mCascadeSources': [],
                          'mCascadingRestrictions': [],
                          'mDbkeyform': 'Cat.jpg',
                          'mDefaultNamespace': 0,
                          'mFragment': '',
                          'mHasCascadingRestrictions': None,
                          'mInterwiki': '',
                          'mLatestID': False,
                          'mLength': -1,
                          'mNamespace': 6,
                          'mNotificationTimestamp': [],
                          'mOldRestrictions': False,
                          'mPrefixedText': 'File:Cat.jpg',
                          'mRedirect': None,
                          'mRestrictions': [],
                          'mRestrictionsExpiry': { 'create': 'infinity'},
                          'mRestrictionsLoaded': False,
                          'mTextform': 'Cat.jpg',
                          'mTitleProtection': False,
                          'mUrlform': 'Cat.jpg',
                          'mUserCaseDBKey': 'Cat.jpg',
                          'mWatched': None},
               'url': '/w/uploads/d/d1/Cat.jpg',
               'user_id': 8306,
               'user_text': 'Ralph'},
      'timestamp': 1344361406,
      'topic': 'org.fedoraproject.prod.wiki.upload.complete'}


The example message above, when passed to various routines in the
:mod:`fedmsg.meta` module, will produce the following outputs:

- :func:`fedmsg.meta.msg2title`

  - wiki.upload.complete

- :func:`fedmsg.meta.msg2subtitle`

  - Ralph uploaded File:Cat.jpg to the wiki: "This is a beautiful cat..."

- :func:`fedmsg.meta.msg2link`

  - None

- :func:`fedmsg.meta.msg2icon`

  - https://fedoraproject.org/w/skins/common/images/mediawiki.png

- :func:`fedmsg.meta.msg2secondary_icon`

  - None

- :func:`fedmsg.meta.msg2usernames`

 - ``set(['ralph'])``

- :func:`fedmsg.meta.msg2packages`

 - ``None``

- :func:`fedmsg.meta.msg2objects`

 - ``set(['w/uploads/d/d1/Cat.jpg'])``



