preamble-author

# `preamble-author`

The author header is correctly formatted, and there is at least one GitHub user listed.

## Examples

    error[preamble-author]: authors in the preamble must match the expected format
     --> input.md:5:8
      |
    5 | author: John Doe (@johndoe) <john.doe@example.com>
      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unrecognized author
      |
      = help: Try `Random J. User (@username)` for an author with a GitHub username.
      = help: Try `Random J. User <test@example.com>` for an author with an email.
      = help: Try `Random J. User` for an author without contact information.

    error[preamble-author]: preamble header `author` must contain at least one GitHub username
     --> input.md
      |
    5 | author: John Doe (@johndoe) <john.doe@example.com>
      |

## Explanation

`preamble-author` makes sure that the `author` field in the front matter (or preamble) matches the format understood by other tools. It also makes sure that every proposal has at least one author with a GitHub username.

Specifically, each author must have a name, optionally followed by an email address enclosed in less-than / greater-than signs (`<...>`) or a GitHub username enclosed in parentheses (`(...)`.) Multiple authors should be separated by a comma. If, for some reason, an author wants to have both an email address and a GitHub username, make separate author entries (eg. `Jacob Carter (@JCarter), Jacob Carter <selmak@example.com>`.)

Each proposal must have at least one author identified with a GitHub username because the `author` field is used for access control: someone has to be able to approve pull requests.