2727from packagedcode .maven import build_url
2828from packagedcode .models import PackageData
2929
30+
3031logger = logging .getLogger (__name__ )
3132logger .setLevel (logging .INFO )
3233
@@ -657,19 +658,21 @@ def get_packages(self, content=None):
657658 yield current_purl , package
658659
659660
660- def collect_packages_from_maven2 (project , logger ):
661+ def collect_packages_from_maven (commits_per_push = 10 , logger = None ):
662+ # check out repo
663+ repo = federatedcode .clone_repository (
664+ repo_url = "https://github.com/JonoYang/test.git" ,
665+ logger = logger ,
666+ )
667+
668+ # download and iterate through maven nexus index
661669 maven_nexus_collector = MavenNexusCollector ()
662670 prev_package = None
663671 current_packages = []
664- for current_package , package in maven_nexus_collector .get_packages ():
672+ for i , ( current_package , package ) in enumerate ( maven_nexus_collector .get_packages (), start = 1 ):
665673 if not prev_package :
666674 prev_package = current_package
667675 elif prev_package != current_package :
668- # check out repo
669- repo = federatedcode .clone_repository (
670- repo_url = "https://github.com/JonoYang/test.git" ,
671- logger = logger ,
672- )
673676 # save purls to yaml
674677 ppath = hashid .get_package_purls_yml_file_path (prev_package )
675678 purls = [package .purl for package in current_packages ]
@@ -678,20 +681,28 @@ def collect_packages_from_maven2(project, logger):
678681 file_path = ppath ,
679682 data = purls ,
680683 )
681- # commit and push
682- federatedcode .commit_and_push_changes (
684+
685+ change_type = "Add" if ppath in repo .untracked_files else "Update"
686+ commit_message = f"""\
687+ { change_type } list of available { current_package } versions
688+ """
689+ federatedcode .commit_changes (
683690 repo = repo ,
684- file_to_commit = ppath ,
685- purl = prev_package ,
686- logger = logger ,
691+ files_to_commit = [ppath ],
692+ commit_message = commit_message ,
687693 )
688- # delete local clone
689- federatedcode .delete_local_clone (repo )
694+
695+ # see if we should push
696+ if not bool (i % commits_per_push ):
697+ federatedcode .push_changes (repo = repo )
690698
691699 current_packages = []
692700 prev_package = current_package
693701 current_packages .append (package )
694702
703+ # delete local clone
704+ federatedcode .delete_local_clone (repo )
705+
695706
696707def write_file (base_path , file_path , data ):
697708 """
0 commit comments