mirror of
https://git.zx2c4.com/cgit
synced 2024-11-22 16:38:42 +00:00
Merge branch 'dm/disable-clone'
This commit is contained in:
commit
4837fddc35
12
cgit.c
12
cgit.c
@ -147,6 +147,8 @@ void config_cb(const char *name, const char *value)
|
|||||||
ctx.cfg.enable_filter_overrides = atoi(value);
|
ctx.cfg.enable_filter_overrides = atoi(value);
|
||||||
else if (!strcmp(name, "enable-gitweb-owner"))
|
else if (!strcmp(name, "enable-gitweb-owner"))
|
||||||
ctx.cfg.enable_gitweb_owner = atoi(value);
|
ctx.cfg.enable_gitweb_owner = atoi(value);
|
||||||
|
else if (!strcmp(name, "enable-http-clone"))
|
||||||
|
ctx.cfg.enable_http_clone = atoi(value);
|
||||||
else if (!strcmp(name, "enable-index-links"))
|
else if (!strcmp(name, "enable-index-links"))
|
||||||
ctx.cfg.enable_index_links = atoi(value);
|
ctx.cfg.enable_index_links = atoi(value);
|
||||||
else if (!strcmp(name, "enable-commit-graph"))
|
else if (!strcmp(name, "enable-commit-graph"))
|
||||||
@ -312,6 +314,7 @@ static void prepare_context(struct cgit_context *ctx)
|
|||||||
ctx->cfg.logo = "/cgit.png";
|
ctx->cfg.logo = "/cgit.png";
|
||||||
ctx->cfg.local_time = 0;
|
ctx->cfg.local_time = 0;
|
||||||
ctx->cfg.enable_gitweb_owner = 1;
|
ctx->cfg.enable_gitweb_owner = 1;
|
||||||
|
ctx->cfg.enable_http_clone = 1;
|
||||||
ctx->cfg.enable_tree_linenumbers = 1;
|
ctx->cfg.enable_tree_linenumbers = 1;
|
||||||
ctx->cfg.max_repo_count = 50;
|
ctx->cfg.max_repo_count = 50;
|
||||||
ctx->cfg.max_commit_count = 50;
|
ctx->cfg.max_commit_count = 50;
|
||||||
@ -439,7 +442,7 @@ static int prepare_repo_cmd(struct cgit_context *ctx)
|
|||||||
tmp = xstrdup(ctx->qry.head);
|
tmp = xstrdup(ctx->qry.head);
|
||||||
ctx->qry.head = ctx->repo->defbranch;
|
ctx->qry.head = ctx->repo->defbranch;
|
||||||
ctx->page.status = 404;
|
ctx->page.status = 404;
|
||||||
ctx->page.statusmsg = "not found";
|
ctx->page.statusmsg = "Not found";
|
||||||
cgit_print_http_headers(ctx);
|
cgit_print_http_headers(ctx);
|
||||||
cgit_print_docstart(ctx);
|
cgit_print_docstart(ctx);
|
||||||
cgit_print_pageheader(ctx);
|
cgit_print_pageheader(ctx);
|
||||||
@ -458,6 +461,8 @@ static void process_request(void *cbdata)
|
|||||||
cmd = cgit_get_cmd(ctx);
|
cmd = cgit_get_cmd(ctx);
|
||||||
if (!cmd) {
|
if (!cmd) {
|
||||||
ctx->page.title = "cgit error";
|
ctx->page.title = "cgit error";
|
||||||
|
ctx->page.status = 404;
|
||||||
|
ctx->page.statusmsg = "Not found";
|
||||||
cgit_print_http_headers(ctx);
|
cgit_print_http_headers(ctx);
|
||||||
cgit_print_docstart(ctx);
|
cgit_print_docstart(ctx);
|
||||||
cgit_print_pageheader(ctx);
|
cgit_print_pageheader(ctx);
|
||||||
@ -466,6 +471,11 @@ static void process_request(void *cbdata)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!ctx->cfg.enable_http_clone && cmd->is_clone) {
|
||||||
|
html_status(404, "Not found", 0);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
/* If cmd->want_vpath is set, assume ctx->qry.path contains a "virtual"
|
/* If cmd->want_vpath is set, assume ctx->qry.path contains a "virtual"
|
||||||
* in-project path limit to be made available at ctx->qry.vpath.
|
* in-project path limit to be made available at ctx->qry.vpath.
|
||||||
* Otherwise, no path limit is in effect (ctx->qry.vpath = NULL).
|
* Otherwise, no path limit is in effect (ctx->qry.vpath = NULL).
|
||||||
|
1
cgit.h
1
cgit.h
@ -191,6 +191,7 @@ struct cgit_config {
|
|||||||
int embedded;
|
int embedded;
|
||||||
int enable_filter_overrides;
|
int enable_filter_overrides;
|
||||||
int enable_gitweb_owner;
|
int enable_gitweb_owner;
|
||||||
|
int enable_http_clone;
|
||||||
int enable_index_links;
|
int enable_index_links;
|
||||||
int enable_commit_graph;
|
int enable_commit_graph;
|
||||||
int enable_log_filecount;
|
int enable_log_filecount;
|
||||||
|
@ -105,6 +105,11 @@ enable-gitweb-owner::
|
|||||||
for the git config value "gitweb.owner" to determine the owner.
|
for the git config value "gitweb.owner" to determine the owner.
|
||||||
Default value: "1". See also: scan-path.
|
Default value: "1". See also: scan-path.
|
||||||
|
|
||||||
|
enable-http-clone::
|
||||||
|
If set to "1", cgit will act as an dumb HTTP endpoint for git clones.
|
||||||
|
If you use an alternate way of serving git repositories, you may wish
|
||||||
|
to disable this. Default value: "1".
|
||||||
|
|
||||||
enable-index-links::
|
enable-index-links::
|
||||||
Flag which, when set to "1", will make cgit generate extra links for
|
Flag which, when set to "1", will make cgit generate extra links for
|
||||||
each repo in the repository index (specifically, to the "summary",
|
each repo in the repository index (specifically, to the "summary",
|
||||||
|
42
cmd.c
42
cmd.c
@ -130,31 +130,31 @@ static void tree_fn(struct cgit_context *ctx)
|
|||||||
cgit_print_tree(ctx->qry.sha1, ctx->qry.path);
|
cgit_print_tree(ctx->qry.sha1, ctx->qry.path);
|
||||||
}
|
}
|
||||||
|
|
||||||
#define def_cmd(name, want_repo, want_layout, want_vpath) \
|
#define def_cmd(name, want_repo, want_layout, want_vpath, is_clone) \
|
||||||
{#name, name##_fn, want_repo, want_layout, want_vpath}
|
{#name, name##_fn, want_repo, want_layout, want_vpath, is_clone}
|
||||||
|
|
||||||
struct cgit_cmd *cgit_get_cmd(struct cgit_context *ctx)
|
struct cgit_cmd *cgit_get_cmd(struct cgit_context *ctx)
|
||||||
{
|
{
|
||||||
static struct cgit_cmd cmds[] = {
|
static struct cgit_cmd cmds[] = {
|
||||||
def_cmd(HEAD, 1, 0, 0),
|
def_cmd(HEAD, 1, 0, 0, 1),
|
||||||
def_cmd(atom, 1, 0, 0),
|
def_cmd(atom, 1, 0, 0, 0),
|
||||||
def_cmd(about, 0, 1, 0),
|
def_cmd(about, 0, 1, 0, 0),
|
||||||
def_cmd(blob, 1, 0, 0),
|
def_cmd(blob, 1, 0, 0, 0),
|
||||||
def_cmd(commit, 1, 1, 1),
|
def_cmd(commit, 1, 1, 1, 0),
|
||||||
def_cmd(diff, 1, 1, 1),
|
def_cmd(diff, 1, 1, 1, 0),
|
||||||
def_cmd(info, 1, 0, 0),
|
def_cmd(info, 1, 0, 0, 1),
|
||||||
def_cmd(log, 1, 1, 1),
|
def_cmd(log, 1, 1, 1, 0),
|
||||||
def_cmd(ls_cache, 0, 0, 0),
|
def_cmd(ls_cache, 0, 0, 0, 0),
|
||||||
def_cmd(objects, 1, 0, 0),
|
def_cmd(objects, 1, 0, 0, 1),
|
||||||
def_cmd(patch, 1, 0, 1),
|
def_cmd(patch, 1, 0, 1, 0),
|
||||||
def_cmd(plain, 1, 0, 0),
|
def_cmd(plain, 1, 0, 0, 0),
|
||||||
def_cmd(refs, 1, 1, 0),
|
def_cmd(refs, 1, 1, 0, 0),
|
||||||
def_cmd(repolist, 0, 0, 0),
|
def_cmd(repolist, 0, 0, 0, 0),
|
||||||
def_cmd(snapshot, 1, 0, 0),
|
def_cmd(snapshot, 1, 0, 0, 0),
|
||||||
def_cmd(stats, 1, 1, 1),
|
def_cmd(stats, 1, 1, 1, 0),
|
||||||
def_cmd(summary, 1, 1, 0),
|
def_cmd(summary, 1, 1, 0, 0),
|
||||||
def_cmd(tag, 1, 1, 0),
|
def_cmd(tag, 1, 1, 0, 0),
|
||||||
def_cmd(tree, 1, 1, 1),
|
def_cmd(tree, 1, 1, 1, 0),
|
||||||
};
|
};
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
3
cmd.h
3
cmd.h
@ -8,7 +8,8 @@ struct cgit_cmd {
|
|||||||
cgit_cmd_fn fn;
|
cgit_cmd_fn fn;
|
||||||
unsigned int want_repo:1,
|
unsigned int want_repo:1,
|
||||||
want_layout:1,
|
want_layout:1,
|
||||||
want_vpath:1;
|
want_vpath:1,
|
||||||
|
is_clone:1;
|
||||||
};
|
};
|
||||||
|
|
||||||
extern struct cgit_cmd *cgit_get_cmd(struct cgit_context *ctx);
|
extern struct cgit_cmd *cgit_get_cmd(struct cgit_context *ctx);
|
||||||
|
Loading…
Reference in New Issue
Block a user