# HG changeset patch # User RhodeCode Admin # Date 2024-01-02 19:48:18 # Node ID 3687e783a7dca539dc12cda08d3733d81d20870d # Parent cb9d8354902717a6b0c280a31ccde3f5239a85c8 feat(git): added update_refs method that validate refs before settings a value diff --git a/vcsserver/remote/git_remote.py b/vcsserver/remote/git_remote.py --- a/vcsserver/remote/git_remote.py +++ b/vcsserver/remote/git_remote.py @@ -1101,6 +1101,14 @@ class GitRemote(RemoteBase): repo.references.create(key, value, force=True) @reraise_safe_exceptions + def update_refs(self, wire, key, value): + repo_init = self._factory.repo_libgit2(wire) + with repo_init as repo: + if key not in repo.references: + raise ValueError(f'Reference {key} not found in the repository') + repo.references.create(key, value, force=True) + + @reraise_safe_exceptions def create_branch(self, wire, branch_name, commit_id, force=False): repo_init = self._factory.repo_libgit2(wire) with repo_init as repo: