aboutsummaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
Diffstat (limited to 'services')
-rw-r--r--services/actions/notifier.go8
-rw-r--r--services/context/repo.go11
-rw-r--r--services/feed/notifier.go2
-rw-r--r--services/issue/issue.go5
-rw-r--r--services/webhook/notifier.go12
-rw-r--r--services/webhook/slack.go6
6 files changed, 16 insertions, 28 deletions
diff --git a/services/actions/notifier.go b/services/actions/notifier.go
index 67e33e7cce..1a23b4e0c5 100644
--- a/services/actions/notifier.go
+++ b/services/actions/notifier.go
@@ -563,9 +563,9 @@ func (n *actionsNotifier) CreateRef(ctx context.Context, pusher *user_model.User
newNotifyInput(repo, pusher, webhook_module.HookEventCreate).
WithRef(refFullName.String()).
WithPayload(&api.CreatePayload{
- Ref: refFullName.String(),
+ Ref: refFullName.String(), // HINT: here is inconsistent with the Webhook's payload: webhook uses ShortName
Sha: refID,
- RefType: refFullName.RefType(),
+ RefType: string(refFullName.RefType()),
Repo: apiRepo,
Sender: apiPusher,
}).
@@ -580,8 +580,8 @@ func (n *actionsNotifier) DeleteRef(ctx context.Context, pusher *user_model.User
newNotifyInput(repo, pusher, webhook_module.HookEventDelete).
WithPayload(&api.DeletePayload{
- Ref: refFullName.String(),
- RefType: refFullName.RefType(),
+ Ref: refFullName.String(), // HINT: here is inconsistent with the Webhook's payload: webhook uses ShortName
+ RefType: string(refFullName.RefType()),
PusherType: api.PusherTypeUser,
Repo: apiRepo,
Sender: apiPusher,
diff --git a/services/context/repo.go b/services/context/repo.go
index 05f6bb40f9..b343856eb4 100644
--- a/services/context/repo.go
+++ b/services/context/repo.go
@@ -210,16 +210,7 @@ func (r *Repository) GetCommitGraphsCount(ctx context.Context, hidePRRefs bool,
// * "commit/123456"
// It is usually used to construct a link like ".../src/{{RefTypeNameSubURL}}/{{PathEscapeSegments TreePath}}"
func (r *Repository) RefTypeNameSubURL() string {
- switch {
- case r.IsViewBranch:
- return "branch/" + util.PathEscapeSegments(r.BranchName)
- case r.IsViewTag:
- return "tag/" + util.PathEscapeSegments(r.TagName)
- case r.IsViewCommit:
- return "commit/" + util.PathEscapeSegments(r.CommitID)
- }
- log.Error("Unknown view type for repo: %v", r)
- return ""
+ return r.RefFullName.RefWebLinkPath()
}
// GetEditorconfig returns the .editorconfig definition if found in the
diff --git a/services/feed/notifier.go b/services/feed/notifier.go
index 702eb5ad53..3aaf885c9a 100644
--- a/services/feed/notifier.go
+++ b/services/feed/notifier.go
@@ -469,7 +469,7 @@ func (a *actionNotifier) NewRelease(ctx context.Context, rel *repo_model.Release
Repo: rel.Repo,
IsPrivate: rel.Repo.IsPrivate,
Content: rel.Title,
- RefName: rel.TagName, // FIXME: use a full ref name?
+ RefName: git.RefNameFromTag(rel.TagName).String(), // Other functions in this file all use "refFullName.String()"
}); err != nil {
log.Error("NotifyWatchers: %v", err)
}
diff --git a/services/issue/issue.go b/services/issue/issue.go
index c6a52cc0fe..091b7c02d7 100644
--- a/services/issue/issue.go
+++ b/services/issue/issue.go
@@ -250,8 +250,9 @@ func GetRefEndNamesAndURLs(issues []*issues_model.Issue, repoLink string) (map[i
issueRefURLs := make(map[int64]string, len(issues))
for _, issue := range issues {
if issue.Ref != "" {
- issueRefEndNames[issue.ID] = git.RefName(issue.Ref).ShortName()
- issueRefURLs[issue.ID] = git.RefURL(repoLink, issue.Ref)
+ ref := git.RefName(issue.Ref)
+ issueRefEndNames[issue.ID] = ref.ShortName()
+ issueRefURLs[issue.ID] = repoLink + "/src/" + ref.RefWebLinkPath()
}
}
return issueRefEndNames, issueRefURLs
diff --git a/services/webhook/notifier.go b/services/webhook/notifier.go
index a3d5cb34b1..2fce4b351e 100644
--- a/services/webhook/notifier.go
+++ b/services/webhook/notifier.go
@@ -763,12 +763,10 @@ func (m *webhookNotifier) PullRequestReviewRequest(ctx context.Context, doer *us
func (m *webhookNotifier) CreateRef(ctx context.Context, pusher *user_model.User, repo *repo_model.Repository, refFullName git.RefName, refID string) {
apiPusher := convert.ToUser(ctx, pusher, nil)
apiRepo := convert.ToRepo(ctx, repo, access_model.Permission{AccessMode: perm.AccessModeNone})
- refName := refFullName.ShortName()
-
if err := PrepareWebhooks(ctx, EventSource{Repository: repo}, webhook_module.HookEventCreate, &api.CreatePayload{
- Ref: refName, // FIXME: should it be a full ref name?
+ Ref: refFullName.ShortName(), // FIXME: should it be a full ref name? But it will break the existing webhooks?
Sha: refID,
- RefType: refFullName.RefType(),
+ RefType: string(refFullName.RefType()),
Repo: apiRepo,
Sender: apiPusher,
}); err != nil {
@@ -800,11 +798,9 @@ func (m *webhookNotifier) PullRequestSynchronized(ctx context.Context, doer *use
func (m *webhookNotifier) DeleteRef(ctx context.Context, pusher *user_model.User, repo *repo_model.Repository, refFullName git.RefName) {
apiPusher := convert.ToUser(ctx, pusher, nil)
apiRepo := convert.ToRepo(ctx, repo, access_model.Permission{AccessMode: perm.AccessModeOwner})
- refName := refFullName.ShortName()
-
if err := PrepareWebhooks(ctx, EventSource{Repository: repo}, webhook_module.HookEventDelete, &api.DeletePayload{
- Ref: refName, // FIXME: should it be a full ref name?
- RefType: refFullName.RefType(),
+ Ref: refFullName.ShortName(), // FIXME: should it be a full ref name? But it will break the existing webhooks?
+ RefType: string(refFullName.RefType()),
PusherType: api.PusherTypeUser,
Repo: apiRepo,
Sender: apiPusher,
diff --git a/services/webhook/slack.go b/services/webhook/slack.go
index c905e7a89f..2a49df2453 100644
--- a/services/webhook/slack.go
+++ b/services/webhook/slack.go
@@ -84,9 +84,9 @@ func SlackLinkFormatter(url, text string) string {
// SlackLinkToRef slack-formatter link to a repo ref
func SlackLinkToRef(repoURL, ref string) string {
// FIXME: SHA1 hardcoded here
- url := git.RefURL(repoURL, ref)
- refName := git.RefName(ref).ShortName()
- return SlackLinkFormatter(url, refName)
+ refName := git.RefName(ref)
+ url := repoURL + "/src/" + refName.RefWebLinkPath()
+ return SlackLinkFormatter(url, refName.ShortName())
}
// Create implements payloadConvertor Create method