marleypowell opened a new issue, #6824: URL: https://github.com/apache/incubator-devlake/issues/6824
### Search before asking - [X] I had searched in the [issues](https://github.com/apache/incubator-devlake/issues?q=is%3Aissue) and found no similar issues. ### What happened `GitPullRequestCommit.author_email` is required which causes the json extractor to throw when handling commits without author email. https://github.com/apache/incubator-devlake/blob/main/backend/python/plugins/azuredevops/azuredevops/models.py#L36 Stack trace: ``` time="2024-01-16 14:01:40" level=error msg=" [pipeline service] [pipeline #3] [task #32] [extractAzuredevopsGitpullrequestcommits] During handling of the above exception, another exception occurred:" time="2024-01-16 14:01:40" level=error msg=" [pipeline service] [pipeline #3] [task #32] [extractAzuredevopsGitpullrequestcommits] " time="2024-01-16 14:01:40" level=error msg=" [pipeline service] [pipeline #3] [task #32] [extractAzuredevopsGitpullrequestcommits] Traceback (most recent call last):" time="2024-01-16 14:01:40" level=error msg=" [pipeline service] [pipeline #3] [task #32] [extractAzuredevopsGitpullrequestcommits] File \"/app/python/plugins/azuredevops/azuredevops/main.py\", line 156, in <module>" time="2024-01-16 14:01:40" level=error msg=" [pipeline service] [pipeline #3] [task #32] [extractAzuredevopsGitpullrequestcommits] AzureDevOpsPlugin.start()" time="2024-01-16 14:01:40" level=error msg=" [pipeline service] [pipeline #3] [task #32] [extractAzuredevopsGitpullrequestcommits] File \"/app/python/pydevlake/pydevlake/plugin.py\", line 253, in start" time="2024-01-16 14:01:40" level=error msg=" [pipeline service] [pipeline #3] [task #32] [extractAzuredevopsGitpullrequestcommits] fire.Fire(PluginCommands(plugin))" time="2024-01-16 14:01:40" level=error msg=" [pipeline service] [pipeline #3] [task #32] [extractAzuredevopsGitpullrequestcommits] File \"/app/.cache/pypoetry/virtualenvs/azuredevops-ANnMAkq9-py3.9/lib/python3.9/site-packages/fire/core.py\", line 141, in Fire" time="2024-01-16 14:01:40" level=error msg=" [pipeline service] [pipeline #3] [task #32] [extractAzuredevopsGitpullrequestcommits] component_trace = _Fire(component, args, parsed_flag_args, context, name)" time="2024-01-16 14:01:40" level=error msg=" [pipeline service] [pipeline #3] [task #32] [extractAzuredevopsGitpullrequestcommits] File \"/app/.cache/pypoetry/virtualenvs/azuredevops-ANnMAkq9-py3.9/lib/python3.9/site-packages/fire/core.py\", line 466, in _Fire" time="2024-01-16 14:01:40" level=error msg=" [pipeline service] [pipeline #3] [task #32] [extractAzuredevopsGitpullrequestcommits] component, remaining_args = _CallAndUpdateTrace(" time="2024-01-16 14:01:40" level=error msg=" [pipeline service] [pipeline #3] [task #32] [extractAzuredevopsGitpullrequestcommits] File \"/app/.cache/pypoetry/virtualenvs/azuredevops-ANnMAkq9-py3.9/lib/python3.9/site-packages/fire/core.py\", line 681, in _CallAndUpdateTrace" time="2024-01-16 14:01:40" level=error msg=" [pipeline service] [pipeline #3] [task #32] [extractAzuredevopsGitpullrequestcommits] component = fn(*varargs, **kwargs)" time="2024-01-16 14:01:40" level=error msg=" [pipeline service] [pipeline #3] [task #32] [extractAzuredevopsGitpullrequestcommits] File \"/app/python/pydevlake/pydevlake/ipc.py\", line 58, in wrapper" time="2024-01-16 14:01:40" level=error msg=" [pipeline service] [pipeline #3] [task #32] [extractAzuredevopsGitpullrequestcommits] for each in ret:" time="2024-01-16 14:01:40" level=error msg=" [pipeline service] [pipeline #3] [task #32] [extractAzuredevopsGitpullrequestcommits] File \"/app/python/pydevlake/pydevlake/ipc.py\", line 77, in extract" time="2024-01-16 14:01:40" level=error msg=" [pipeline service] [pipeline #3] [task #32] [extractAzuredevopsGitpullrequestcommits] yield from self._plugin.extract(self._mk_context(ctx), stream)" time="2024-01-16 14:01:40" level=error msg=" [pipeline service] [pipeline #3] [task #32] [extractAzuredevopsGitpullrequestcommits] File \"/app/python/pydevlake/pydevlake/plugin.py\", line 111, in _run_stream" time="2024-01-16 14:01:40" level=error msg=" [pipeline service] [pipeline #3] [task #32] [extractAzuredevopsGitpullrequestcommits] yield from getattr(stream, subtask).run(ctx)" time="2024-01-16 14:01:40" level=error msg=" [pipeline service] [pipeline #3] [task #32] [extractAzuredevopsGitpullrequestcommits] File \"/app/python/pydevlake/pydevlake/subtasks.py\", line 82, in run" time="2024-01-16 14:01:40" level=error msg=" [pipeline service] [pipeline #3] [task #32] [extractAzuredevopsGitpullrequestcommits] raise e" time="2024-01-16 14:01:40" level=error msg=" [pipeline service] [pipeline #3] [task #32] [extractAzuredevopsGitpullrequestcommits] File \"/app/python/pydevlake/pydevlake/subtasks.py\", line 62, in run" time="2024-01-16 14:01:40" level=error msg=" [pipeline service] [pipeline #3] [task #32] [extractAzuredevopsGitpullrequestcommits] self.process(data, session, ctx)" ``` ### What do you expect to happen From my understanding author email is optional for git commits so should this be optional? ### How to reproduce Have commits without author email ### Anything else _No response_ ### Version v0.18.0 ### Are you willing to submit PR? - [X] Yes I am willing to submit a PR! ### Code of Conduct - [X] I agree to follow this project's [Code of Conduct](https://www.apache.org/foundation/policies/conduct) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
