Remote: allow access to the push url
This commit is contained in:
parent
7ef23780cd
commit
e28c06fc1d
37
src/remote.c
37
src/remote.c
@ -278,6 +278,42 @@ Remote_url__set__(Remote *self, PyObject* py_url)
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
PyDoc_STRVAR(Remote_push_url__doc__, "Push url of the remote");
|
||||||
|
|
||||||
|
|
||||||
|
PyObject *
|
||||||
|
Remote_push_url__get__(Remote *self)
|
||||||
|
{
|
||||||
|
const char *url;
|
||||||
|
|
||||||
|
url = git_remote_pushurl(self->remote);
|
||||||
|
if (!url)
|
||||||
|
Py_RETURN_NONE;
|
||||||
|
|
||||||
|
return to_unicode(url, NULL, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int
|
||||||
|
Remote_push_url__set__(Remote *self, PyObject* py_url)
|
||||||
|
{
|
||||||
|
int err;
|
||||||
|
char* url = NULL;
|
||||||
|
|
||||||
|
url = py_str_to_c_str(py_url, NULL);
|
||||||
|
if (url != NULL) {
|
||||||
|
err = git_remote_set_pushurl(self->remote, url);
|
||||||
|
free(url);
|
||||||
|
|
||||||
|
if (err == GIT_OK)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
Error_set(err);
|
||||||
|
}
|
||||||
|
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
PyDoc_STRVAR(Remote_refspec_count__doc__, "Number of refspecs.");
|
PyDoc_STRVAR(Remote_refspec_count__doc__, "Number of refspecs.");
|
||||||
|
|
||||||
@ -452,6 +488,7 @@ PyMethodDef Remote_methods[] = {
|
|||||||
PyGetSetDef Remote_getseters[] = {
|
PyGetSetDef Remote_getseters[] = {
|
||||||
GETSET(Remote, name),
|
GETSET(Remote, name),
|
||||||
GETSET(Remote, url),
|
GETSET(Remote, url),
|
||||||
|
GETSET(Remote, push_url),
|
||||||
GETTER(Remote, refspec_count),
|
GETTER(Remote, refspec_count),
|
||||||
{NULL}
|
{NULL}
|
||||||
};
|
};
|
||||||
|
@ -50,6 +50,7 @@ class RepositoryTest(utils.RepoTestCase):
|
|||||||
self.assertEqual(type(remote), pygit2.Remote)
|
self.assertEqual(type(remote), pygit2.Remote)
|
||||||
self.assertEqual(name, remote.name)
|
self.assertEqual(name, remote.name)
|
||||||
self.assertEqual(url, remote.url)
|
self.assertEqual(url, remote.url)
|
||||||
|
self.assertEqual(None, remote.push_url)
|
||||||
|
|
||||||
self.assertRaises(ValueError, self.repo.create_remote, *(name, url))
|
self.assertRaises(ValueError, self.repo.create_remote, *(name, url))
|
||||||
|
|
||||||
@ -74,6 +75,10 @@ class RepositoryTest(utils.RepoTestCase):
|
|||||||
|
|
||||||
self.assertRaisesAssign(ValueError, remote, 'url', '')
|
self.assertRaisesAssign(ValueError, remote, 'url', '')
|
||||||
|
|
||||||
|
remote.push_url = new_url
|
||||||
|
self.assertEqual(new_url, remote.push_url)
|
||||||
|
self.assertRaisesAssign(ValueError, remote, 'push_url', '')
|
||||||
|
|
||||||
|
|
||||||
def test_refspec(self):
|
def test_refspec(self):
|
||||||
remote = self.repo.remotes[0]
|
remote = self.repo.remotes[0]
|
||||||
|
Loading…
x
Reference in New Issue
Block a user