2121from .parser .description_parser import parse_description_file
2222from .parser .toml_parser import parse_toml_file
2323from .parser .cabal_parser import parse_cabal_file
24+ from .parser .dockerfile_parser import extract_dockerfile_maintainer
2425from chardet import detect
2526
2627
@@ -77,16 +78,34 @@ def process_repository_files(repo_dir, metadata_result: Result, repo_type, owner
7778 repo_relative_path , filename )
7879 if filename == "Dockerfile" :
7980 format_file = constants .FORMAT_DOCKERFILE
81+ maintainers = extract_dockerfile_maintainer (os .path .join (repo_dir , file_path ))
8082 else :
8183 format_file = constants .FORMAT_DOCKER_COMPOSE
82- metadata_result .add_result (constants .CAT_HAS_BUILD_FILE ,
83- {
84- constants .PROP_VALUE : docker_url ,
85- constants .PROP_TYPE : constants .URL ,
86- constants .PROP_FORMAT : format_file
87- },
88- 1 ,
89- constants .TECHNIQUE_FILE_EXPLORATION , docker_url )
84+ maintainers = None
85+
86+ result_value = {
87+ constants .PROP_VALUE : docker_url ,
88+ constants .PROP_TYPE : constants .URL ,
89+ constants .PROP_FORMAT : format_file
90+ }
91+ if maintainers :
92+ result_value [constants .PROP_AUTHOR ] = maintainers
93+
94+ metadata_result .add_result (
95+ constants .CAT_HAS_BUILD_FILE ,
96+ result_value ,
97+ 1 ,
98+ constants .TECHNIQUE_FILE_EXPLORATION ,
99+ docker_url
100+ )
101+ # metadata_result.add_result(constants.CAT_HAS_BUILD_FILE,
102+ # {
103+ # constants.PROP_VALUE: docker_url,
104+ # constants.PROP_TYPE: constants.URL,
105+ # constants.PROP_FORMAT: format_file
106+ # },
107+ # 1,
108+ # constants.TECHNIQUE_FILE_EXPLORATION, docker_url)
90109 if filename .lower ().endswith (".ipynb" ):
91110 notebook_url = get_file_link (repo_type , file_path , owner , repo_name , repo_default_branch , repo_dir ,
92111 repo_relative_path , filename )
@@ -652,50 +671,3 @@ def clean_text(text):
652671 cleaned_lines .append (line )
653672 return "\n " .join (cleaned_lines )
654673
655- # """
656- # Proccess a text with possible authors
657- # """
658- # if not author_str:
659- # return []
660-
661- # authors = []
662-
663- # for line in author_str.splitlines():
664- # line = line.strip()
665- # if not line or line.startswith("#"):
666- # continue
667-
668- # email_match = re.search(r'<([^>]+)>', line)
669- # if email_match:
670- # email = email_match.group(1)
671- # name = line[:email_match.start()].strip()
672- # else:
673- # name = line
674- # email = None
675-
676- # if name:
677- # if re.search(constants.REGEXP_LTD_INC, name, re.IGNORECASE):
678- # type_author = "Organization"
679- # author_info = {
680- # "name": name,
681- # "email": email,
682- # "value": name,
683- # "type": type_author
684- # }
685- # else:
686- # type_author = "Person"
687- # name_parts = name.split()
688- # given_name = name_parts[0] if name_parts else None
689- # last_name = " ".join(name_parts[1:]) if len(name_parts) > 1 else None
690- # author_info = {
691- # "name": name,
692- # "email": email,
693- # "value": name,
694- # "type": type_author,
695- # "given_name": given_name,
696- # "last_name": last_name
697- # }
698-
699- # authors.append(author_info)
700-
701- # return authors
0 commit comments