4141from .errors import RepositoryAccessError
4242from .models import ReleaseStatus , Repository
4343from .tasks import sync_hooks
44- from .utils import get_extra_metadata , iso_utcnow , parse_timestamp , utcnow
44+ from .utils import convert_codemeta , get_extra_metadata , iso_utcnow , \
45+ parse_timestamp , utcnow
4546
4647
4748class GitHubAPI (object ):
@@ -406,14 +407,29 @@ def defaults(self):
406407
407408 @cached_property
408409 def extra_metadata (self ):
409- """Get extra metadata for file in repository."""
410+ """Get extra metadata from file in repository."""
410411 return get_extra_metadata (
411412 self .gh .api ,
412413 self .repository ['owner' ]['login' ],
413414 self .repository ['name' ],
414415 self .release ['tag_name' ],
416+ current_app .config ['GITHUB_METADATA_FILE' ]
415417 )
416418
419+
420+ @cached_property
421+ def codemeta (self ):
422+ """Get extra metadata from codemeta file in repository."""
423+ metadata = get_extra_metadata (
424+ self .gh .api ,
425+ self .repository ['owner' ]['login' ],
426+ self .repository ['name' ],
427+ self .release ['tag_name' ],
428+ 'codemeta.json'
429+ )
430+ return convert_codemeta (met )
431+
432+
417433 @cached_property
418434 def files (self ):
419435 """Extract files to download from GitHub payload."""
@@ -434,6 +450,7 @@ def metadata(self):
434450 """Return extracted metadata."""
435451 output = dict (self .defaults )
436452 output .update (self .extra_metadata )
453+ output .update (self .codemeta )
437454 return output
438455
439456 @cached_property
0 commit comments