Skip to content
Draft
Show file tree
Hide file tree
Changes from 1 commit
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 routers/api/v1/org/team.go
Original file line number Diff line number Diff line change
Expand Up @@ -566,7 +566,7 @@ func GetTeamRepos(ctx *context.APIContext) {
ctx.Error(http.StatusInternalServerError, "GetTeamRepos", err)
return
}
repos[i] = convert.ToRepo(ctx, repo, permission)
repos[i] = convert.ToRepo(ctx, repo, ctx.Doer, permission)
}
ctx.SetTotalCountHeader(int64(team.NumRepos))
ctx.JSON(http.StatusOK, repos)
Expand Down Expand Up @@ -618,7 +618,7 @@ func GetTeamRepo(ctx *context.APIContext) {
return
}

ctx.JSON(http.StatusOK, convert.ToRepo(ctx, repo, permission))
ctx.JSON(http.StatusOK, convert.ToRepo(ctx, repo, ctx.Doer, permission))
}

// getRepositoryByParams get repository by a team's organization ID and repo name
Expand Down
4 changes: 2 additions & 2 deletions routers/api/v1/repo/fork.go
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ func ListForks(ctx *context.APIContext) {
ctx.Error(http.StatusInternalServerError, "GetUserRepoPermission", err)
return
}
apiForks[i] = convert.ToRepo(ctx, fork, permission)
apiForks[i] = convert.ToRepo(ctx, fork, ctx.Doer, permission)
}

ctx.SetTotalCountHeader(int64(ctx.Repo.Repository.NumForks))
Expand Down Expand Up @@ -152,5 +152,5 @@ func CreateFork(ctx *context.APIContext) {
}

// TODO change back to 201
ctx.JSON(http.StatusAccepted, convert.ToRepo(ctx, fork, access_model.Permission{AccessMode: perm.AccessModeOwner}))
ctx.JSON(http.StatusAccepted, convert.ToRepo(ctx, fork, ctx.Doer, access_model.Permission{AccessMode: perm.AccessModeOwner}))
}
6 changes: 3 additions & 3 deletions routers/api/v1/repo/hook.go
Original file line number Diff line number Diff line change
Expand Up @@ -186,9 +186,9 @@ func TestHook(ctx *context.APIContext) {
Commits: []*api.PayloadCommit{commit},
TotalCommits: 1,
HeadCommit: commit,
Repo: convert.ToRepo(ctx, ctx.Repo.Repository, access_model.Permission{AccessMode: perm.AccessModeNone}),
Pusher: convert.ToUserWithAccessMode(ctx, ctx.Doer, perm.AccessModeNone),
Sender: convert.ToUserWithAccessMode(ctx, ctx.Doer, perm.AccessModeNone),
Repo: convert.ToRepo(ctx, ctx.Repo.Repository, ctx.Doer, access_model.Permission{AccessMode: perm.AccessModeNone}),
Pusher: convert.ToUserWithAccessMode(ctx, ctx.Doer, ctx.Doer, perm.AccessModeNone),
Sender: convert.ToUserWithAccessMode(ctx, ctx.Doer, ctx.Doer, perm.AccessModeNone),
}); err != nil {
ctx.Error(http.StatusInternalServerError, "PrepareWebhook: ", err)
return
Expand Down
4 changes: 2 additions & 2 deletions routers/api/v1/repo/key.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,13 +28,13 @@ import (
func appendPrivateInformation(ctx stdCtx.Context, apiKey *api.DeployKey, key *asymkey_model.DeployKey, repository *repo_model.Repository) (*api.DeployKey, error) {
apiKey.ReadOnly = key.Mode == perm.AccessModeRead
if repository.ID == key.RepoID {
apiKey.Repository = convert.ToRepo(ctx, repository, access_model.Permission{AccessMode: key.Mode})
apiKey.Repository = convert.ToRepo(ctx, repository, nil, access_model.Permission{AccessMode: key.Mode})
} else {
repo, err := repo_model.GetRepositoryByID(ctx, key.RepoID)
if err != nil {
return apiKey, err
}
apiKey.Repository = convert.ToRepo(ctx, repo, access_model.Permission{AccessMode: key.Mode})
apiKey.Repository = convert.ToRepo(ctx, repo, nil, access_model.Permission{AccessMode: key.Mode})
}
return apiKey, nil
}
Expand Down
2 changes: 1 addition & 1 deletion routers/api/v1/repo/migrate.go
Original file line number Diff line number Diff line change
Expand Up @@ -212,7 +212,7 @@ func Migrate(ctx *context.APIContext) {
}

log.Trace("Repository migrated: %s/%s", repoOwner.Name, form.RepoName)
ctx.JSON(http.StatusCreated, convert.ToRepo(ctx, repo, access_model.Permission{AccessMode: perm.AccessModeAdmin}))
ctx.JSON(http.StatusCreated, convert.ToRepo(ctx, repo, ctx.Doer, access_model.Permission{AccessMode: perm.AccessModeAdmin}))
}

func handleMigrateError(ctx *context.APIContext, repoOwner *user_model.User, remoteAddr string, err error) {
Expand Down
12 changes: 6 additions & 6 deletions routers/api/v1/repo/repo.go
Original file line number Diff line number Diff line change
Expand Up @@ -218,7 +218,7 @@ func Search(ctx *context.APIContext) {
Error: err.Error(),
})
}
results[i] = convert.ToRepo(ctx, repo, permission)
results[i] = convert.ToRepo(ctx, repo, ctx.Doer, permission)
}
ctx.SetLinkHeader(int(count), opts.PageSize)
ctx.SetTotalCountHeader(count)
Expand Down Expand Up @@ -272,7 +272,7 @@ func CreateUserRepo(ctx *context.APIContext, owner *user_model.User, opt api.Cre
ctx.Error(http.StatusInternalServerError, "GetRepositoryByID", err)
}

ctx.JSON(http.StatusCreated, convert.ToRepo(ctx, repo, access_model.Permission{AccessMode: perm.AccessModeOwner}))
ctx.JSON(http.StatusCreated, convert.ToRepo(ctx, repo, ctx.Doer, access_model.Permission{AccessMode: perm.AccessModeOwner}))
}

// Create one repository of mine
Expand Down Expand Up @@ -420,7 +420,7 @@ func Generate(ctx *context.APIContext) {
}
log.Trace("Repository generated [%d]: %s/%s", repo.ID, ctxUser.Name, repo.Name)

ctx.JSON(http.StatusCreated, convert.ToRepo(ctx, repo, access_model.Permission{AccessMode: perm.AccessModeOwner}))
ctx.JSON(http.StatusCreated, convert.ToRepo(ctx, repo, ctx.Doer, access_model.Permission{AccessMode: perm.AccessModeOwner}))
}

// CreateOrgRepoDeprecated create one repository of the organization
Expand Down Expand Up @@ -538,7 +538,7 @@ func Get(ctx *context.APIContext) {
return
}

ctx.JSON(http.StatusOK, convert.ToRepo(ctx, ctx.Repo.Repository, ctx.Repo.Permission))
ctx.JSON(http.StatusOK, convert.ToRepo(ctx, ctx.Repo.Repository, ctx.Doer, ctx.Repo.Permission))
}

// GetByID returns a single Repository
Expand Down Expand Up @@ -577,7 +577,7 @@ func GetByID(ctx *context.APIContext) {
ctx.NotFound()
return
}
ctx.JSON(http.StatusOK, convert.ToRepo(ctx, repo, permission))
ctx.JSON(http.StatusOK, convert.ToRepo(ctx, repo, ctx.Doer, permission))
}

// Edit edit repository properties
Expand Down Expand Up @@ -639,7 +639,7 @@ func Edit(ctx *context.APIContext) {
return
}

ctx.JSON(http.StatusOK, convert.ToRepo(ctx, repo, ctx.Repo.Permission))
ctx.JSON(http.StatusOK, convert.ToRepo(ctx, repo, ctx.Doer, ctx.Repo.Permission))
}

// updateBasicProperties updates the basic properties of a repo: Name, Description, Website and Visibility
Expand Down
2 changes: 1 addition & 1 deletion routers/api/v1/repo/status.go
Original file line number Diff line number Diff line change
Expand Up @@ -264,7 +264,7 @@ func GetCombinedCommitStatusByRef(ctx *context.APIContext) {
return
}

combiStatus := convert.ToCombinedStatus(ctx, statuses, convert.ToRepo(ctx, repo, ctx.Repo.Permission))
combiStatus := convert.ToCombinedStatus(ctx, statuses, convert.ToRepo(ctx, repo, ctx.Doer, ctx.Repo.Permission))

ctx.SetTotalCountHeader(count)
ctx.JSON(http.StatusOK, combiStatus)
Expand Down
8 changes: 4 additions & 4 deletions routers/api/v1/repo/transfer.go
Original file line number Diff line number Diff line change
Expand Up @@ -123,12 +123,12 @@ func Transfer(ctx *context.APIContext) {

if ctx.Repo.Repository.Status == repo_model.RepositoryPendingTransfer {
log.Trace("Repository transfer initiated: %s -> %s", oldFullname, ctx.Repo.Repository.FullName())
ctx.JSON(http.StatusCreated, convert.ToRepo(ctx, ctx.Repo.Repository, access_model.Permission{AccessMode: perm.AccessModeAdmin}))
ctx.JSON(http.StatusCreated, convert.ToRepo(ctx, ctx.Repo.Repository, ctx.Doer, access_model.Permission{AccessMode: perm.AccessModeAdmin}))
return
}

log.Trace("Repository transferred: %s -> %s", oldFullname, ctx.Repo.Repository.FullName())
ctx.JSON(http.StatusAccepted, convert.ToRepo(ctx, ctx.Repo.Repository, access_model.Permission{AccessMode: perm.AccessModeAdmin}))
ctx.JSON(http.StatusAccepted, convert.ToRepo(ctx, ctx.Repo.Repository, ctx.Doer, access_model.Permission{AccessMode: perm.AccessModeAdmin}))
}

// AcceptTransfer accept a repo transfer
Expand Down Expand Up @@ -166,7 +166,7 @@ func AcceptTransfer(ctx *context.APIContext) {
return
}

ctx.JSON(http.StatusAccepted, convert.ToRepo(ctx, ctx.Repo.Repository, ctx.Repo.Permission))
ctx.JSON(http.StatusAccepted, convert.ToRepo(ctx, ctx.Repo.Repository, ctx.Doer, ctx.Repo.Permission))
}

// RejectTransfer reject a repo transfer
Expand Down Expand Up @@ -204,7 +204,7 @@ func RejectTransfer(ctx *context.APIContext) {
return
}

ctx.JSON(http.StatusOK, convert.ToRepo(ctx, ctx.Repo.Repository, ctx.Repo.Permission))
ctx.JSON(http.StatusOK, convert.ToRepo(ctx, ctx.Repo.Repository, ctx.Doer, ctx.Repo.Permission))
}

func acceptOrRejectRepoTransfer(ctx *context.APIContext, accept bool) error {
Expand Down
4 changes: 2 additions & 2 deletions routers/api/v1/user/repo.go
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ func listUserRepos(ctx *context.APIContext, u *user_model.User, private bool) {
return
}
if ctx.IsSigned && ctx.Doer.IsAdmin || permission.UnitAccessMode(unit_model.TypeCode) >= perm.AccessModeRead {
apiRepos = append(apiRepos, convert.ToRepo(ctx, repos[i], permission))
apiRepos = append(apiRepos, convert.ToRepo(ctx, repos[i], ctx.Doer, permission))
}
}

Expand Down Expand Up @@ -128,7 +128,7 @@ func ListMyRepos(ctx *context.APIContext) {
if err != nil {
ctx.Error(http.StatusInternalServerError, "GetUserRepoPermission", err)
}
results[i] = convert.ToRepo(ctx, repo, permission)
results[i] = convert.ToRepo(ctx, repo, ctx.Doer, permission)
}

ctx.SetLinkHeader(int(count), opts.ListOptions.PageSize)
Expand Down
2 changes: 1 addition & 1 deletion routers/api/v1/user/star.go
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ func getStarredRepos(ctx std_context.Context, user *user_model.User, private boo
if err != nil {
return nil, err
}
repos[i] = convert.ToRepo(ctx, starred, permission)
repos[i] = convert.ToRepo(ctx, starred, nil, permission)
}
return repos, nil
}
Expand Down
2 changes: 1 addition & 1 deletion routers/api/v1/user/watch.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ func getWatchedRepos(ctx std_context.Context, user *user_model.User, private boo
if err != nil {
return nil, 0, err
}
repos[i] = convert.ToRepo(ctx, watched, permission)
repos[i] = convert.ToRepo(ctx, watched, nil, permission)
}
return repos, total, nil
}
Expand Down
4 changes: 2 additions & 2 deletions routers/web/repo/setting/webhook.go
Original file line number Diff line number Diff line change
Expand Up @@ -662,7 +662,7 @@ func TestWebhook(ctx *context.Context) {
}
}

apiUser := convert.ToUserWithAccessMode(ctx, ctx.Doer, perm.AccessModeNone)
apiUser := convert.ToUserWithAccessMode(ctx, ctx.Doer, ctx.Doer, perm.AccessModeNone)

apiCommit := &api.PayloadCommit{
ID: commit.ID.String(),
Expand All @@ -687,7 +687,7 @@ func TestWebhook(ctx *context.Context) {
Commits: []*api.PayloadCommit{apiCommit},
TotalCommits: 1,
HeadCommit: apiCommit,
Repo: convert.ToRepo(ctx, ctx.Repo.Repository, access_model.Permission{AccessMode: perm.AccessModeNone}),
Repo: convert.ToRepo(ctx, ctx.Repo.Repository, ctx.Doer, access_model.Permission{AccessMode: perm.AccessModeNone}),
Pusher: apiUser,
Sender: apiUser,
}
Expand Down
14 changes: 14 additions & 0 deletions routers/web/shared/user/header.go
Original file line number Diff line number Diff line change
Expand Up @@ -127,5 +127,19 @@ func LoadHeaderCount(ctx *context.Context) error {
}
ctx.Data["RepoCount"] = repoCount

if !ctx.ContextUser.IsOrganization() {
starCount, err := repo_model.CountRepository(ctx, &repo_model.SearchRepoOptions{
Actor: ctx.Doer,
Private: ctx.IsSigned,
StarredByID: ctx.ContextUser.ID,
Collaborate: util.OptionalBoolFalse,
Copy link
Member

@silverwind silverwind Apr 3, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Collaborate: util.OptionalBoolFalse,
Collaborate: optional.Some(false),

As per #29329. And import code.gitea.io/gitea/modules/optional above.

IncludeDescription: setting.UI.SearchRepoDescription,
})
if err != nil {
return err
}
ctx.Data["StarCount"] = starCount
}

return nil
}
Loading