File tree 2 files changed +42
-0
lines changed
2 files changed +42
-0
lines changed Original file line number Diff line number Diff line change @@ -278,6 +278,42 @@ Remote_url__set__(Remote *self, PyObject* py_url)
278
278
return -1 ;
279
279
}
280
280
281
+ PyDoc_STRVAR (Remote_push_url__doc__ , "Push url of the remote" );
282
+
283
+
284
+ PyObject *
285
+ Remote_push_url__get__ (Remote * self )
286
+ {
287
+ const char * url ;
288
+
289
+ url = git_remote_pushurl (self -> remote );
290
+ if (!url )
291
+ Py_RETURN_NONE ;
292
+
293
+ return to_unicode (url , NULL , NULL );
294
+ }
295
+
296
+
297
+ int
298
+ Remote_push_url__set__ (Remote * self , PyObject * py_url )
299
+ {
300
+ int err ;
301
+ char * url = NULL ;
302
+
303
+ url = py_str_to_c_str (py_url , NULL );
304
+ if (url != NULL ) {
305
+ err = git_remote_set_pushurl (self -> remote , url );
306
+ free (url );
307
+
308
+ if (err == GIT_OK )
309
+ return 0 ;
310
+
311
+ Error_set (err );
312
+ }
313
+
314
+ return -1 ;
315
+ }
316
+
281
317
282
318
PyDoc_STRVAR (Remote_refspec_count__doc__ , "Number of refspecs." );
283
319
@@ -452,6 +488,7 @@ PyMethodDef Remote_methods[] = {
452
488
PyGetSetDef Remote_getseters [] = {
453
489
GETSET (Remote , name ),
454
490
GETSET (Remote , url ),
491
+ GETSET (Remote , push_url ),
455
492
GETTER (Remote , refspec_count ),
456
493
{NULL }
457
494
};
Original file line number Diff line number Diff line change @@ -50,6 +50,7 @@ def test_remote_create(self):
50
50
self .assertEqual (type (remote ), pygit2 .Remote )
51
51
self .assertEqual (name , remote .name )
52
52
self .assertEqual (url , remote .url )
53
+ self .assertEqual (None , remote .push_url )
53
54
54
55
self .assertRaises (ValueError , self .repo .create_remote , * (name , url ))
55
56
@@ -74,6 +75,10 @@ def test_remote_set_url(self):
74
75
75
76
self .assertRaisesAssign (ValueError , remote , 'url' , '' )
76
77
78
+ remote .push_url = new_url
79
+ self .assertEqual (new_url , remote .push_url )
80
+ self .assertRaisesAssign (ValueError , remote , 'push_url' , '' )
81
+
77
82
78
83
def test_refspec (self ):
79
84
remote = self .repo .remotes [0 ]
You can’t perform that action at this time.
0 commit comments