Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions admin/admin_routes.v
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ pub fn (mut app App) admin_settings(mut ctx Context) veb.Result {
}

@['/admin/settings'; post]
pub fn (mut app App) handle_admin_update_settings(oauth_client_id string, oauth_client_secret string) veb.Result {
pub fn (mut app App) handle_admin_update_settings(mut ctx Context, oauth_client_id string, oauth_client_secret string) veb.Result {
if !ctx.is_admin() {
return ctx.redirect_to_index()
}
Expand All @@ -34,7 +34,7 @@ pub fn (mut app App) handle_admin_update_settings(oauth_client_id string, oauth_
}

@['/admin/users/:user'; post]
pub fn (mut app App) handle_admin_edit_user(user_id string) veb.Result {
pub fn (mut app App) handle_admin_edit_user(mut ctx Context, user_id string) veb.Result {
if !ctx.is_admin() {
return ctx.redirect_to_index()
}
Expand Down
8 changes: 4 additions & 4 deletions ci/ci_routes.v
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ fn (mut app App) verify_ci_callback_signature(ctx &Context, body string) bool {

// GET /:username/:repo_name/ci - CI runs list page
@['/:username/:repo_name/ci']
pub fn (mut app App) ci_runs(username string, repo_name string) veb.Result {
pub fn (mut app App) ci_runs(mut ctx Context, username string, repo_name string) veb.Result {
repo := app.find_repo_by_name_and_username(repo_name, username) or { return ctx.not_found() }

if !app.can_read_repo(ctx, repo) {
Expand Down Expand Up @@ -141,7 +141,7 @@ pub fn (mut app App) ci_runs(username string, repo_name string) veb.Result {

// GET /:username/:repo_name/ci/:run_id_str - CI run detail page
@['/:username/:repo_name/ci/:run_id_str']
pub fn (mut app App) ci_run_detail(username string, repo_name string, run_id_str string) veb.Result {
pub fn (mut app App) ci_run_detail(mut ctx Context, username string, repo_name string, run_id_str string) veb.Result {
repo := app.find_repo_by_name_and_username(repo_name, username) or { return ctx.not_found() }

if !app.can_read_repo(ctx, repo) {
Expand Down Expand Up @@ -178,7 +178,7 @@ pub fn (mut app App) ci_run_detail(username string, repo_name string, run_id_str

// POST /:username/:repo_name/ci/:run_id_str/restart - Restart a CI run
@['/:username/:repo_name/ci/:run_id_str/restart'; post]
pub fn (mut app App) ci_restart_run(username string, repo_name string, run_id_str string) veb.Result {
pub fn (mut app App) ci_restart_run(mut ctx Context, username string, repo_name string, run_id_str string) veb.Result {
repo := app.find_repo_by_name_and_username(repo_name, username) or { return ctx.not_found() }

if !app.can_admin_repo(ctx, repo) {
Expand Down Expand Up @@ -221,7 +221,7 @@ pub fn (mut app App) ci_restart_run(username string, repo_name string, run_id_st

// POST /:username/:repo_name/ci/:run_id_str/cancel - Cancel a CI run.
@['/:username/:repo_name/ci/:run_id_str/cancel'; post]
pub fn (mut app App) ci_cancel_run(username string, repo_name string, run_id_str string) veb.Result {
pub fn (mut app App) ci_cancel_run(mut ctx Context, username string, repo_name string, run_id_str string) veb.Result {
repo := app.find_repo_by_name_and_username(repo_name, username) or { return ctx.not_found() }
if !app.can_admin_repo(ctx, repo) {
return ctx.not_found()
Expand Down
31 changes: 15 additions & 16 deletions fork.v
Original file line number Diff line number Diff line change
Expand Up @@ -241,19 +241,18 @@ fn (mut app App) create_fork(source Repo, owner_name string, owner_user_id int,
return err
}
mut row := Repo{
git_dir: target_path
name: name
user_id: owner_user_id
user_name: owner_name
description: description
is_public: is_public && source.is_public
primary_branch: source.primary_branch
created_at: int(time.now().unix())
status: .done
git_dir: target_path
name: name
user_id: owner_user_id
user_name: owner_name
description: description
is_public: is_public && source.is_public
primary_branch: source.primary_branch
created_at: int(time.now().unix())
status: .done
disable_discussions: source.disable_discussions
disable_projects: source.disable_projects
disable_milestones: source.disable_milestones
disable_wiki: source.disable_wiki
disable_projects: source.disable_projects
disable_milestones: source.disable_milestones
}
app.add_repo(row) or {
os.rmdir_all(target_path) or {}
Expand All @@ -265,15 +264,15 @@ fn (mut app App) create_fork(source Repo, owner_name string, owner_user_id int,
}
source_relation := app.find_fork_by_repo(source.id) or { RepoFork{} }
relation := RepoFork{
repo_id: created.id
repo_id: created.id
source_repo_id: source.id
root_repo_id: if source_relation.root_repo_id > 0 {
root_repo_id: if source_relation.root_repo_id > 0 {
source_relation.root_repo_id
} else {
source.id
}
created_by: created_by
created_at: int(time.now().unix())
created_by: created_by
created_at: int(time.now().unix())
}
sql app.db {
insert relation into RepoFork
Expand Down
9 changes: 4 additions & 5 deletions gitly.v
Original file line number Diff line number Diff line change
Expand Up @@ -93,8 +93,8 @@ fn new_app() !&App {

mut app := &App{
// db: sqlite.connect('gitly.sqlite') or { panic(err) }
db: connect_db(conf)!
config: conf
db: connect_db(conf)!
config: conf
started_at: time.now().unix()
}

Expand Down Expand Up @@ -304,7 +304,7 @@ pub fn (mut app App) index(mut ctx Context) veb.Result {
}

@['/change_lang/:lang'; post]
pub fn (mut app App) change_lang(lang string) veb.Result {
pub fn (mut app App) change_lang(mut ctx Context, lang string) veb.Result {
if lang !in ['en', 'ru', 'es', 'jp', 'cn', 'pt'] {
ctx.res.set_status(.bad_request)
return ctx.json_error('Unsupported language')
Expand Down Expand Up @@ -721,7 +721,6 @@ fn (mut app App) migrate_tables() ! {
app.add_missing_column('Repo', 'disable_discussions', db_bool_column_type())!
app.add_missing_column('Repo', 'disable_projects', db_bool_column_type())!
app.add_missing_column('Repo', 'disable_milestones', db_bool_column_type())!
app.add_missing_column('Repo', 'disable_wiki', db_bool_column_type())!
app.add_missing_column('Repo', 'is_pinned', db_bool_column_type())!
app.add_missing_column('Repo', 'created_at', 'INTEGER NOT NULL DEFAULT 0')!
app.add_missing_column('Repo', 'required_approvals', 'INTEGER NOT NULL DEFAULT 0')!
Expand Down Expand Up @@ -902,7 +901,7 @@ fn (mut app App) add_missing_column(table_name string, column_name string, colum
fn (mut ctx Context) json_success[T](result T) veb.Result {
response := api.ApiSuccessResponse[T]{
success: true
result: result
result: result
}

return ctx.json(response)
Expand Down
18 changes: 9 additions & 9 deletions project_governance_routes.v
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ module main
import veb

@['/:username/:repo_name/settings/members']
pub fn (mut app App) repo_members(username string, repo_name string) veb.Result {
pub fn (mut app App) repo_members(mut ctx Context, username string, repo_name string) veb.Result {
repo := app.find_repo_by_name_and_username(repo_name, username) or { return ctx.not_found() }
if !app.can_admin_repo(ctx, repo) {
return ctx.not_found()
Expand All @@ -15,7 +15,7 @@ pub fn (mut app App) repo_members(username string, repo_name string) veb.Result
}

@['/:username/:repo_name/settings/members'; post]
pub fn (mut app App) handle_add_repo_member(username string, repo_name string) veb.Result {
pub fn (mut app App) handle_add_repo_member(mut ctx Context, username string, repo_name string) veb.Result {
repo := app.find_repo_by_name_and_username(repo_name, username) or { return ctx.not_found() }
if !app.can_admin_repo(ctx, repo) {
return ctx.not_found()
Expand All @@ -42,7 +42,7 @@ pub fn (mut app App) handle_add_repo_member(username string, repo_name string) v
}

@['/:username/:repo_name/settings/members/:member_id'; post]
pub fn (mut app App) handle_update_repo_member(username string, repo_name string, member_id string) veb.Result {
pub fn (mut app App) handle_update_repo_member(mut ctx Context, username string, repo_name string, member_id string) veb.Result {
repo := app.find_repo_by_name_and_username(repo_name, username) or { return ctx.not_found() }
if !app.can_admin_repo(ctx, repo) {
return ctx.not_found()
Expand All @@ -56,7 +56,7 @@ pub fn (mut app App) handle_update_repo_member(username string, repo_name string
}

@['/:username/:repo_name/settings/members/:member_id/delete'; post]
pub fn (mut app App) handle_delete_repo_member(username string, repo_name string, member_id string) veb.Result {
pub fn (mut app App) handle_delete_repo_member(mut ctx Context, username string, repo_name string, member_id string) veb.Result {
repo := app.find_repo_by_name_and_username(repo_name, username) or { return ctx.not_found() }
if !app.can_admin_repo(ctx, repo) {
return ctx.not_found()
Expand All @@ -69,7 +69,7 @@ pub fn (mut app App) handle_delete_repo_member(username string, repo_name string
}

@['/:username/:repo_name/settings/branches']
pub fn (mut app App) protected_branches(username string, repo_name string) veb.Result {
pub fn (mut app App) protected_branches(mut ctx Context, username string, repo_name string) veb.Result {
repo := app.find_repo_by_name_and_username(repo_name, username) or { return ctx.not_found() }
if !app.can_admin_repo(ctx, repo) {
return ctx.not_found()
Expand All @@ -80,7 +80,7 @@ pub fn (mut app App) protected_branches(username string, repo_name string) veb.R
}

@['/:username/:repo_name/settings/branches'; post]
pub fn (mut app App) handle_protect_branch(username string, repo_name string) veb.Result {
pub fn (mut app App) handle_protect_branch(mut ctx Context, username string, repo_name string) veb.Result {
repo := app.find_repo_by_name_and_username(repo_name, username) or { return ctx.not_found() }
if !app.can_admin_repo(ctx, repo) {
return ctx.not_found()
Expand All @@ -96,7 +96,7 @@ pub fn (mut app App) handle_protect_branch(username string, repo_name string) ve
}

@['/:username/:repo_name/settings/branches/:rule_id'; post]
pub fn (mut app App) handle_update_protected_branch(username string, repo_name string, rule_id string) veb.Result {
pub fn (mut app App) handle_update_protected_branch(mut ctx Context, username string, repo_name string, rule_id string) veb.Result {
repo := app.find_repo_by_name_and_username(repo_name, username) or { return ctx.not_found() }
if !app.can_admin_repo(ctx, repo) {
return ctx.not_found()
Expand All @@ -110,7 +110,7 @@ pub fn (mut app App) handle_update_protected_branch(username string, repo_name s
}

@['/:username/:repo_name/settings/branches/:rule_id/delete'; post]
pub fn (mut app App) handle_unprotect_branch(username string, repo_name string, rule_id string) veb.Result {
pub fn (mut app App) handle_unprotect_branch(mut ctx Context, username string, repo_name string, rule_id string) veb.Result {
repo := app.find_repo_by_name_and_username(repo_name, username) or { return ctx.not_found() }
if !app.can_admin_repo(ctx, repo) {
return ctx.not_found()
Expand All @@ -123,7 +123,7 @@ pub fn (mut app App) handle_unprotect_branch(username string, repo_name string,
}

@['/:username/:repo_name/settings/approvals'; post]
pub fn (mut app App) handle_update_repo_approvals(username string, repo_name string) veb.Result {
pub fn (mut app App) handle_update_repo_approvals(mut ctx Context, username string, repo_name string) veb.Result {
repo := app.find_repo_by_name_and_username(repo_name, username) or { return ctx.not_found() }
if !app.can_admin_repo(ctx, repo) {
return ctx.not_found()
Expand Down
2 changes: 1 addition & 1 deletion repo/branch_routes.v
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ fn (mut app App) handle_branch_count(username string, repo_name string) veb.Resu
}

@['/:user/:repo/branches']
pub fn (mut app App) branches(username string, repo_name string) veb.Result {
pub fn (mut app App) branches(mut ctx Context, username string, repo_name string) veb.Result {
repo := app.find_repo_by_name_and_username(repo_name, username) or {
return ctx.json_error('Not found')
}
Expand Down
2 changes: 1 addition & 1 deletion repo/comment.v
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ mut:
}

@['/:username/:repo_name/comments'; post]
pub fn (mut app App) handle_add_comment(username string, repo_name string) veb.Result {
pub fn (mut app App) handle_add_comment(mut ctx Context, username string, repo_name string) veb.Result {
repo := app.find_repo_by_name_and_username(repo_name, username) or { return ctx.not_found() }
text := ctx.form['text']
issue_id := ctx.form['issue_id']
Expand Down
5 changes: 4 additions & 1 deletion repo/file.v
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,10 @@ fn pretty_size_bytes(size_in_bytes int) string {
return '${size_in} ${sizes[index]}'
}

struct FileInfo {
// Named `RepoFileInfo` rather than `FileInfo` to avoid colliding with
// `os.FileInfo`, which V resolves in the wrong scope when this type is
// substituted into the `api.ApiSuccessResponse[T]` generic.
struct RepoFileInfo {
name string
last_msg string
last_hash string
Expand Down
10 changes: 5 additions & 5 deletions repo/file_routes.v
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import rand
// GET /:username/:repo_name/new/:branch_name... - Show create file form.
// The catch-all is required because branch names may contain `/`.
@['/:username/:repo_name/new/:branch_name...']
pub fn (mut app App) new_file(username string, repo_name string, branch_name string) veb.Result {
pub fn (mut app App) new_file(mut ctx Context, username string, repo_name string, branch_name string) veb.Result {
repo := app.find_repo_by_name_and_username(repo_name, username) or { return ctx.not_found() }

if repo.require_signed_commits || !ctx.logged_in || !app.user_can_push_branch(ctx.user.id, repo, branch_name)
Expand All @@ -23,7 +23,7 @@ pub fn (mut app App) new_file(username string, repo_name string, branch_name str

// GET /:username/:repo_name/new-ci-file - Show create .gitly-ci.yml form (pre-filled)
@['/:username/:repo_name/new-ci-file']
pub fn (mut app App) new_ci_file(username string, repo_name string) veb.Result {
pub fn (mut app App) new_ci_file(mut ctx Context, username string, repo_name string) veb.Result {
repo := app.find_repo_by_name_and_username(repo_name, username) or { return ctx.not_found() }

if repo.require_signed_commits || !ctx.logged_in
Expand All @@ -46,7 +46,7 @@ pub fn (mut app App) new_ci_file(username string, repo_name string) veb.Result {

// GET /:username/:repo_name/edit/:location... - Show edit file form
@['/:username/:repo_name/edit/:location...']
pub fn (mut app App) edit_file(username string, repo_name string, location string) veb.Result {
pub fn (mut app App) edit_file(mut ctx Context, username string, repo_name string, location string) veb.Result {
repo := app.find_repo_by_name_and_username(repo_name, username) or { return ctx.not_found() }
if repo.require_signed_commits || !ctx.logged_in || !app.user_can_write_repo(ctx.user.id, repo) {
return ctx.redirect_to_repository(username, repo_name)
Expand All @@ -69,7 +69,7 @@ pub fn (mut app App) edit_file(username string, repo_name string, location strin

// POST /:username/:repo_name/update-file - Save edited file
@['/:username/:repo_name/update-file'; post]
pub fn (mut app App) handle_update_file(username string, repo_name string) veb.Result {
pub fn (mut app App) handle_update_file(mut ctx Context, username string, repo_name string) veb.Result {
mut repo := app.find_repo_by_name_and_username(repo_name, username) or {
return ctx.not_found()
}
Expand Down Expand Up @@ -132,7 +132,7 @@ pub fn (mut app App) handle_update_file(username string, repo_name string) veb.R

// POST /:username/:repo_name/create-file - Create a file in the repo
@['/:username/:repo_name/create-file'; post]
pub fn (mut app App) handle_create_file(username string, repo_name string) veb.Result {
pub fn (mut app App) handle_create_file(mut ctx Context, username string, repo_name string) veb.Result {
mut repo := app.find_repo_by_name_and_username(repo_name, username) or {
return ctx.not_found()
}
Expand Down
Loading
Loading