diff --git a/swh/indexer/metadata_dictionary/codemeta.py b/swh/indexer/metadata_dictionary/codemeta.py
--- a/swh/indexer/metadata_dictionary/codemeta.py
+++ b/swh/indexer/metadata_dictionary/codemeta.py
@@ -67,9 +67,13 @@
namespace = m.group("namespace")
localname = m.group("localname")
if namespace == ATOM_URI and localname in ("title", "name"):
- # Convert Atom name/title to Codemeta name; in case codemeta:name
+ # Convert Atom to Codemeta name; in case codemeta:name
# is not provided or different
doc["name"].append(self.xml_to_jsonld(child))
+ elif namespace == ATOM_URI and localname in ("author", "email"):
+ # ditto for these author properties (note that author email is also
+ # covered by the previous test)
+ doc[localname].append(self.xml_to_jsonld(child))
elif namespace in _IGNORED_NAMESPACES:
# SWORD-specific namespace that is not interesting to translate
pass
diff --git a/swh/indexer/tests/metadata_dictionary/test_codemeta.py b/swh/indexer/tests/metadata_dictionary/test_codemeta.py
--- a/swh/indexer/tests/metadata_dictionary/test_codemeta.py
+++ b/swh/indexer/tests/metadata_dictionary/test_codemeta.py
@@ -213,6 +213,10 @@
Author 2
+
+ Author 3
+ bar@example.org
+
"""
@@ -223,6 +227,7 @@
"author": [
{"name": "Author 1", "email": "foo@example.org"},
{"name": "Author 2"},
+ {"name": "Author 3", "email": "bar@example.org"},
],
}