Skip to content

Commit 7a00adc

Browse files
committed
remote: introduce git_remote_capabilities
Provide a mechanism for (internal) users to determine a remote's capabilities from the transport.
1 parent 923c165 commit 7a00adc

File tree

2 files changed

+16
-0
lines changed

2 files changed

+16
-0
lines changed

src/remote.c

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1012,6 +1012,20 @@ int git_remote_ls(const git_remote_head ***out, size_t *size, git_remote *remote
10121012
return remote->transport->ls(out, size, remote->transport);
10131013
}
10141014

1015+
int git_remote_capabilities(unsigned int *out, git_remote *remote)
1016+
{
1017+
GIT_ASSERT_ARG(remote);
1018+
1019+
*out = 0;
1020+
1021+
if (!remote->transport) {
1022+
git_error_set(GIT_ERROR_NET, "this remote has never connected");
1023+
return -1;
1024+
}
1025+
1026+
return remote->transport->capabilities(out, remote->transport);
1027+
}
1028+
10151029
static int lookup_config(char **out, git_config *cfg, const char *name)
10161030
{
10171031
git_config_entry *ce = NULL;

src/remote.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,4 +54,6 @@ int git_remote_connect_options_normalize(
5454
const git_remote_connect_options *src);
5555
void git_remote_connect_options_dispose(git_remote_connect_options *opts);
5656

57+
int git_remote_capabilities(unsigned int *out, git_remote *remote);
58+
5759
#endif

0 commit comments

Comments
 (0)