forked from NYANDEV/forgejo
d789170e31
when you use gitea as OAuth2 provider, the /api/v1/user should return user primary email as identifier, which is unique in OAuth2 clients. this patch use convert.ToUser replace all u.APIFormat in api requests, return primary email when caller is yourself or admin.
45 lines
1.2 KiB
Go
45 lines
1.2 KiB
Go
// Copyright 2017 The Gitea Authors. All rights reserved.
|
|
// Use of this source code is governed by a MIT-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
package repo
|
|
|
|
import (
|
|
"code.gitea.io/gitea/modules/context"
|
|
|
|
api "code.gitea.io/gitea/modules/structs"
|
|
"code.gitea.io/gitea/routers/api/v1/convert"
|
|
)
|
|
|
|
// ListStargazers list a repository's stargazers
|
|
func ListStargazers(ctx *context.APIContext) {
|
|
// swagger:operation GET /repos/{owner}/{repo}/stargazers repository repoListStargazers
|
|
// ---
|
|
// summary: List a repo's stargazers
|
|
// produces:
|
|
// - application/json
|
|
// parameters:
|
|
// - name: owner
|
|
// in: path
|
|
// description: owner of the repo
|
|
// type: string
|
|
// required: true
|
|
// - name: repo
|
|
// in: path
|
|
// description: name of the repo
|
|
// type: string
|
|
// required: true
|
|
// responses:
|
|
// "200":
|
|
// "$ref": "#/responses/UserList"
|
|
stargazers, err := ctx.Repo.Repository.GetStargazers(-1)
|
|
if err != nil {
|
|
ctx.Error(500, "GetStargazers", err)
|
|
return
|
|
}
|
|
users := make([]*api.User, len(stargazers))
|
|
for i, stargazer := range stargazers {
|
|
users[i] = convert.ToUser(stargazer, ctx.IsSigned, ctx.User != nil && ctx.User.IsAdmin)
|
|
}
|
|
ctx.JSON(200, users)
|
|
}
|