People who are doing a commit expect a unified timestamp between
author and committer information when we're using the current timestamp.
Provide a single function that returns both author and committer
information so that they can have an identical timestamp when none is
specified in the environment.
When creating an action signature (e.g. for a commit author and
committer) read the following environment variables that can override
the configuration options:
* `GIT_AUTHOR_NAME` is the human-readable name in the "author" field.
* `GIT_AUTHOR_EMAIL` is the email for the "author" field.
* `GIT_AUTHOR_DATE` is the timestamp used for the "author" field.
* `GIT_COMMITTER_NAME` sets the human name for the "committer" field.
* `GIT_COMMITTER_EMAIL` is the email address for the "committer" field.
* `GIT_COMMITTER_DATE` is used for the timestamp in the "committer"
field.
* `EMAIL` is the fallback email address in case the user.email
configuration value isn't set. If this isn't set, Git falls back to
the system user and host names.
This is taken from the git documentation chapter "10.8 Environment
Variables":
https://git-scm.com/book/en/v2/Git-Internals-Environment-Variables
This PR adds support for reading these environment variables by adding
two new functions `git_signature_default_author` and
`git_signature_default_committer` and deprecates the
`git_signature_default` function.
Fixes: https://github.com/libgit2/libgit2/issues/3751
Prior work:
* https://github.com/libgit2/libgit2/pull/4409
* https://github.com/libgit2/libgit2/pull/5479
* https://github.com/libgit2/libgit2/pull/6290