From 12e7a4cad9e92ff884a81d0c829bc936b0156ea3 Mon Sep 17 00:00:00 2001 From: David Murphy Date: Wed, 24 Jul 2024 11:13:03 -0600 Subject: [PATCH 1/2] Replace use of pygit2 deprecated and removed (1.15.0) oid with id --- salt/utils/gitfs.py | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/salt/utils/gitfs.py b/salt/utils/gitfs.py index 061647edac..04012f8308 100644 --- a/salt/utils/gitfs.py +++ b/salt/utils/gitfs.py @@ -1683,7 +1683,7 @@ def _perform_checkout(checkout_ref, branch=True): # remote ref. self.repo.checkout(checkout_ref) if branch: - self.repo.reset(oid, pygit2.GIT_RESET_HARD) + self.repo.reset(pygit2_id, pygit2.GIT_RESET_HARD) return True except GitLockError as exc: if exc.errno == errno.EEXIST: @@ -1714,11 +1714,11 @@ def _perform_checkout(checkout_ref, branch=True): tag_ref = "refs/tags/" + tgt_ref if remote_ref in refs: # Get commit id for the remote ref - oid = self.peel(self.repo.lookup_reference(remote_ref)).id + pygit2_id = self.peel(self.repo.lookup_reference(remote_ref)).id if local_ref not in refs: # No local branch for this remote, so create one and point # it at the commit id of the remote ref - self.repo.create_reference(local_ref, oid) + self.repo.create_reference(local_ref, pygit2_id) try: target_sha = self.peel(self.repo.lookup_reference(remote_ref)).hex @@ -1749,7 +1749,7 @@ def _perform_checkout(checkout_ref, branch=True): # cachedir). head_ref = local_head.target # If head_ref is not a string, it will point to a - # pygit2.Oid object and we are in detached HEAD mode. + # pygit2.id object and we are in detached HEAD mode. # Therefore, there is no need to add a local reference. If # head_ref == local_ref, then the local reference for HEAD # in refs/heads/ already exists and again, no need to add. @@ -1918,10 +1918,10 @@ def _traverse(tree, blobs, prefix): the empty directories within it in the "blobs" list """ for entry in iter(tree): - if entry.oid not in self.repo: + if entry.id not in self.repo: # Entry is a submodule, skip it continue - blob = self.repo[entry.oid] + blob = self.repo[entry.id] if not isinstance(blob, pygit2.Tree): continue blobs.append( @@ -1940,8 +1940,8 @@ def _traverse(tree, blobs, prefix): return ret if self.root(tgt_env): try: - oid = tree[self.root(tgt_env)].oid - tree = self.repo[oid] + pygit2_id = tree[self.root(tgt_env)].id + tree = self.repo[pygit2_id] except KeyError: return ret if not isinstance(tree, pygit2.Tree): @@ -2056,17 +2056,17 @@ def _traverse(tree, blobs, prefix): the file paths and symlink info in the "blobs" dict """ for entry in iter(tree): - if entry.oid not in self.repo: + if entry.id not in self.repo: # Entry is a submodule, skip it continue - obj = self.repo[entry.oid] + obj = self.repo[entry.id] if isinstance(obj, pygit2.Blob): repo_path = salt.utils.path.join( prefix, entry.name, use_posixpath=True ) blobs.setdefault("files", []).append(repo_path) if stat.S_ISLNK(tree[entry.name].filemode): - link_tgt = self.repo[tree[entry.name].oid].data + link_tgt = self.repo[tree[entry.name].id].data blobs.setdefault("symlinks", {})[repo_path] = link_tgt elif isinstance(obj, pygit2.Tree): _traverse( @@ -2085,8 +2085,8 @@ def _traverse(tree, blobs, prefix): try: # This might need to be changed to account for a root that # spans more than one directory - oid = tree[self.root(tgt_env)].oid - tree = self.repo[oid] + pygit2_id = tree[self.root(tgt_env)].id + tree = self.repo[pygit2_id] except KeyError: return files, symlinks if not isinstance(tree, pygit2.Tree): @@ -2130,12 +2130,12 @@ def find_file(self, path, tgt_env): # path's object ID will be the target of the symlink. Follow # the symlink and set path to the location indicated # in the blob data. - link_tgt = self.repo[entry.oid].data + link_tgt = self.repo[entry.id].data path = salt.utils.path.join( os.path.dirname(path), link_tgt, use_posixpath=True ) else: - blob = self.repo[entry.oid] + blob = self.repo[entry.id] if isinstance(blob, pygit2.Tree): # Path is a directory, not a file. blob = None From d0d91be0875f5b9987233abb18a86b98f873a0ce Mon Sep 17 00:00:00 2001 From: David Murphy Date: Wed, 24 Jul 2024 14:36:11 -0600 Subject: [PATCH 2/2] Updated comment --- salt/utils/gitfs.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/salt/utils/gitfs.py b/salt/utils/gitfs.py index 04012f8308..f3902c1f19 100644 --- a/salt/utils/gitfs.py +++ b/salt/utils/gitfs.py @@ -1749,7 +1749,8 @@ def _perform_checkout(checkout_ref, branch=True): # cachedir). head_ref = local_head.target # If head_ref is not a string, it will point to a - # pygit2.id object and we are in detached HEAD mode. + # pygit2.id object (oid is deprecated and removed) and + # we are in detached HEAD mode. # Therefore, there is no need to add a local reference. If # head_ref == local_ref, then the local reference for HEAD # in refs/heads/ already exists and again, no need to add.