gruntwork-io / gruntwork-io/git-xargs
Repos fail to commit with error "author field is required" when using git config includes for [user] section
- Dominant language
- Go
- Stars
- 1.1k
- Forks
- 75
- PR merge metrics
- No merged PRs in 30d
Description
**git-xargs version**
git-xargs version v0.0.11
**Describe the bug**
[Logs here](https://gist.github.com/adborden/f0000d75107e1971940d48b58bc710be). When running git-xargs, I get the error "author field is required" during the commit step. This seems to be true of any repo I try with git-xargs.
It looks related to my git config includes. I use a different email addresses for git at work and use includes to specify my user.name and user.email on different machines. My ~/.gitconfig contains:
```
# ~/.gitconfig
[include]
path = ~/.gitconfig.local
# no [user] section exists
```
and
```
# ~/.gitconfig.local
[user]
name = ...
email = ...
```
I've never had any issue with this before, but notice this in the git-config man pages. It implies that git-config might not honor includes in some cases and that you might have to include an explicit option.
```
--[no-]includes
Respect include.* directives in config files when looking up values.
Defaults to off when a specific file is given (e.g., using --file,
--global, etc) and on when searching all config files.
```
Just to make sure the includes are read properly by git:
```
$ git config --get user.name
Aaron D Borden
```
```
$ git config --global --get user.name
# exit 1
```
```
$ git config --global --includes --get user.name
Aaron D Borden
```
**To Reproduce**
Steps to reproduce the behavior:
1. Move your `user.name` and `user.email` from your ~/.gitconfig, to ~/.gitconfig.local
1. Add an `[includes]` section as above in ~/.gitconfig to include ~/.gitconfig.local
1. I'm using a script to generate templates for git-xargs, it looks similar to this:
```
git-xargs \
--branch-name tts-bot/update-templates \
--loglevel "${LOGLEVEL}" \
--repos "${template_dir}/repo_list" \
--skip-archived-repos \
--pull-request-title "${pull_request_title}" \
--pull-request-description "$(template pull_request_description)" \
--commit-message "$(template commit_message)" \
$(pwd)/bin/ci_update_templates.sh "${canonical_repository}" "${template_dir}/template_files"
```
repos file contains the single repo `18F/ghad`.
**Expected behavior**
git-xargs respects the git config include and attributes the author correctly AND git-xargs warns when it cannot identify the author for the commit.
**Screenshots**
Logs https://gist.github.com/adborden/f0000d75107e1971940d48b58bc710be
**Additional context**
To work-around, I confirmed that you can set the `user.name` and `user.email` in the main config and git-xargs works as expected.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.