@@ -167,12 +167,14 @@ async def get_remote_url(
167167 * ,
168168 permissions : Optional [list [str ]] = None ,
169169 ttl : Optional [int ] = None ,
170+ ops : Optional [list [str ]] = None ,
170171 ) -> str :
171172 """Get remote URL for Git operations.
172173
173174 Args:
174175 permissions: List of permissions (e.g., ["git:write", "git:read"])
175176 ttl: Token TTL in seconds
177+ ops: List of policy operations (e.g., ["no-force-push"])
176178
177179 Returns:
178180 Git remote URL with embedded JWT
@@ -182,6 +184,8 @@ async def get_remote_url(
182184 options ["permissions" ] = permissions
183185 if ttl is not None :
184186 options ["ttl" ] = ttl
187+ if ops is not None :
188+ options ["ops" ] = ops
185189
186190 jwt_token = self .generate_jwt (self ._id , options if options else None )
187191 url = f"https://t:{ jwt_token } @{ self .storage_base_url } /{ self ._id } .git"
@@ -192,35 +196,39 @@ async def get_import_remote_url(
192196 * ,
193197 permissions : Optional [list [str ]] = None ,
194198 ttl : Optional [int ] = None ,
199+ ops : Optional [list [str ]] = None ,
195200 ) -> str :
196201 """Get import remote URL for Git operations.
197202
198203 Args:
199204 permissions: List of permissions (e.g., ["git:write", "git:read"])
200205 ttl: Token TTL in seconds
206+ ops: List of policy operations (e.g., ["no-force-push"])
201207
202208 Returns:
203209 Git remote URL with embedded JWT pointing to import namespace
204210 """
205- url = await self .get_remote_url (permissions = permissions , ttl = ttl )
211+ url = await self .get_remote_url (permissions = permissions , ttl = ttl , ops = ops )
206212 return url .replace (".git" , "+import.git" )
207213
208214 async def get_ephemeral_remote_url (
209215 self ,
210216 * ,
211217 permissions : Optional [list [str ]] = None ,
212218 ttl : Optional [int ] = None ,
219+ ops : Optional [list [str ]] = None ,
213220 ) -> str :
214221 """Get ephemeral remote URL for Git operations.
215222
216223 Args:
217224 permissions: List of permissions (e.g., ["git:write", "git:read"])
218225 ttl: Token TTL in seconds
226+ ops: List of policy operations (e.g., ["no-force-push"])
219227
220228 Returns:
221229 Git remote URL with embedded JWT pointing to ephemeral namespace
222230 """
223- url = await self .get_remote_url (permissions = permissions , ttl = ttl )
231+ url = await self .get_remote_url (permissions = permissions , ttl = ttl , ops = ops )
224232 return url .replace (".git" , "+ephemeral.git" )
225233
226234 async def get_file_stream (
0 commit comments