MCPcopy
hub / github.com/harness/harness / CodeOwners

Method CodeOwners

app/api/controller/pullreq/codeowner.go:27–58  ·  view source on GitHub ↗
(
	ctx context.Context,
	session *auth.Session,
	repoRef string,
	pullreqNum int64,
)

Source from the content-addressed store, hash-verified

25)
26
27func (c *Controller) CodeOwners(
28 ctx context.Context,
29 session *auth.Session,
30 repoRef string,
31 pullreqNum int64,
32) (types.CodeOwnerEvaluation, error) {
33 repo, err := c.getRepoCheckAccess(ctx, session, repoRef, enum.PermissionRepoView)
34 if err != nil {
35 return types.CodeOwnerEvaluation{}, fmt.Errorf("failed to acquire access to repo: %w", err)
36 }
37
38 pr, err := c.pullreqStore.FindByNumber(ctx, repo.ID, pullreqNum)
39 if err != nil {
40 return types.CodeOwnerEvaluation{}, fmt.Errorf("failed to get pull request by number: %w", err)
41 }
42
43 reviewers, err := c.reviewerStore.List(ctx, pr.ID)
44 if err != nil {
45 return types.CodeOwnerEvaluation{}, fmt.Errorf("failed to get reviewers by pr: %w", err)
46 }
47
48 ownerEvaluation, err := c.codeOwners.Evaluate(ctx, repo, pr, reviewers)
49
50 if err != nil {
51 return types.CodeOwnerEvaluation{}, err
52 }
53
54 return types.CodeOwnerEvaluation{
55 EvaluationEntries: mapCodeOwnerEvaluation(ownerEvaluation),
56 FileSha: ownerEvaluation.FileSha,
57 }, nil
58}
59
60func mapCodeOwnerEvaluation(ownerEvaluation *codeowners.Evaluation) []types.CodeOwnerEvaluationEntry {
61 codeOwnerEvaluationEntries := make([]types.CodeOwnerEvaluationEntry, len(ownerEvaluation.EvaluationEntries))

Callers 1

HandleCodeOwnerFunction · 0.80

Calls 6

getRepoCheckAccessMethod · 0.95
mapCodeOwnerEvaluationFunction · 0.85
EvaluateMethod · 0.80
FindByNumberMethod · 0.65
ListMethod · 0.65
ErrorfMethod · 0.45

Tested by

no test coverage detected