Skip to content

Commit dd8e8c9

Browse files
author
Nevyana Angelova
committed
fix broen link
1 parent df8caed commit dd8e8c9

5 files changed

Lines changed: 21 additions & 14 deletions

File tree

forge/src/index.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ export const drain = async (req: WebTriggerRequest): Promise<WebTriggerResponse>
139139
// refused. To re-register, an operator must clear the flag via the Forge CLI:
140140
// forge install --upgrade then re-POST to register
141141
export const register = async (req: WebTriggerRequest): Promise<WebTriggerResponse> => {
142-
let payload: { secret?: string; force?: boolean };
142+
let payload: { secret?: string };
143143
try {
144144
payload = JSON.parse(req.body ?? '{}');
145145
} catch {
@@ -150,8 +150,8 @@ export const register = async (req: WebTriggerRequest): Promise<WebTriggerRespon
150150
return jsonResponse(400, { error: 'secret must be at least 32 characters' });
151151
}
152152

153-
if ((await storage.get(REGISTERED_KEY)) && !payload.force) {
154-
return jsonResponse(409, { error: 'already registered; re-POST with {"force": true} to overwrite' });
153+
if (await storage.get(REGISTERED_KEY)) {
154+
return jsonResponse(409, { error: 'already registered; clear mm.registered from Forge storage to reset' });
155155
}
156156

157157
await storage.setSecret(SECRET_KEY, payload.secret);

server/confluence_server.go

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -420,17 +420,15 @@ func (p *Plugin) dispatchServerMentionDMs(event *serializer.ConfluenceServerWebh
420420
}
421421
kind = service.ContentKindComment
422422
pageTitle = eventData.Comment.Container.Title
423-
pageURL = fmt.Sprintf("%s/spaces/%s/pages/%s",
424-
pageBaseURL, eventData.Comment.Space.Key, eventData.Comment.Container.ID)
423+
pageURL = joinURL(pageBaseURL, eventData.Comment.Container.Links.Self)
425424
accountIDs, err = client.MentionAccountIDsInComment(eventData.Comment.ID, "")
426425
case serializer.PageCreatedEvent, serializer.PageUpdatedEvent:
427426
if eventData.Page == nil {
428427
return
429428
}
430429
kind = service.ContentKindPage
431430
pageTitle = eventData.Page.Title
432-
pageURL = fmt.Sprintf("%s/spaces/%s/pages/%s",
433-
pageBaseURL, eventData.Page.Space.Key, eventData.Page.ID)
431+
pageURL = joinURL(pageBaseURL, eventData.Page.Links.Self)
434432
accountIDs, err = client.MentionAccountIDsInPage(eventData.Page.ID)
435433
default:
436434
return
@@ -472,17 +470,15 @@ func (p *Plugin) dispatchServerMentionDMsWithAPIToken(event *serializer.Confluen
472470
contentID = eventData.Comment.ID
473471
kind = service.ContentKindComment
474472
pageTitle = eventData.Comment.Container.Title
475-
pageURL = fmt.Sprintf("%s/spaces/%s/pages/%s",
476-
pluginConfig.ConfluenceURL, eventData.Comment.Space.Key, eventData.Comment.Container.ID)
473+
pageURL = joinURL(pluginConfig.ConfluenceURL, eventData.Comment.Container.Links.Self)
477474
case serializer.PageCreatedEvent, serializer.PageUpdatedEvent:
478475
if eventData.Page == nil {
479476
return
480477
}
481478
contentID = eventData.Page.ID
482479
kind = service.ContentKindPage
483480
pageTitle = eventData.Page.Title
484-
pageURL = fmt.Sprintf("%s/spaces/%s/pages/%s",
485-
pluginConfig.ConfluenceURL, eventData.Page.Space.Key, eventData.Page.ID)
481+
pageURL = joinURL(pluginConfig.ConfluenceURL, eventData.Page.Links.Self)
486482
default:
487483
return
488484
}

server/forge_poller.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -220,7 +220,7 @@ func (fp *ForgePoller) dispatchMentionDMs(evt *serializer.ForgeEvent, internalEv
220220
log.Warn("mention DM: failed to parse ADF body", "content_id", evt.Content.ID.String(), "error", err.Error())
221221
return
222222
}
223-
log.Debug("mention DM: parsed mentions", "event", internalEvent, "content_id", evt.Content.ID.String(), "mention_count", len(accountIDs), "account_ids", accountIDs)
223+
log.Debug("mention DM: parsed mentions", "event", internalEvent, "content_id", evt.Content.ID.String(), "mention_count", len(accountIDs))
224224
if len(accountIDs) == 0 {
225225
return
226226
}
@@ -231,7 +231,7 @@ func (fp *ForgePoller) dispatchMentionDMs(evt *serializer.ForgeEvent, internalEv
231231
}
232232
pageTitle, pageURL := evt.MentionPageContext()
233233
instanceID := config.GetConfig().GetConfluenceBaseURL()
234-
log.Debug("mention DM: dispatching", "instance_id", instanceID, "actor_account_id", evt.ActorAccountID(), "kind", kind, "page_url", pageURL)
234+
log.Debug("mention DM: dispatching", "instance_id", instanceID, "kind", kind, "page_url", pageURL, "recipients", len(accountIDs))
235235
service.SendMentionDMs(service.MentionDispatchParams{
236236
InstanceID: instanceID,
237237
AccountIDs: accountIDs,

server/serializer/confluence_forge.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import (
88
"encoding/json"
99
"fmt"
1010
"io"
11+
"strings"
1112

1213
"github.com/mattermost/mattermost/server/public/model"
1314

@@ -131,7 +132,11 @@ func (e *ForgeEvent) pageURL(pageID string) string {
131132
if e.BaseURL == "" || spaceKey == "" || pageID == "" {
132133
return ""
133134
}
134-
return fmt.Sprintf("%s/spaces/%s/pages/%s", e.BaseURL, spaceKey, pageID)
135+
base := strings.TrimRight(e.BaseURL, "/")
136+
if !strings.HasSuffix(base, "/wiki") {
137+
base += "/wiki"
138+
}
139+
return fmt.Sprintf("%s/spaces/%s/pages/%s", base, spaceKey, pageID)
135140
}
136141

137142
func (e *ForgeEvent) GetNotificationPost(eventType string) *model.Post {

server/store/store.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -219,6 +219,12 @@ func DeleteConnectionFromKVStore(instanceID, mattermostUserID string, c *types.C
219219
return appErr
220220
}
221221

222+
if mattermostUserID == AdminMattermostUserID {
223+
config.Mattermost.LogDebug("Deleted: admin sentinel, reverse mapping preserved",
224+
"key", keyWithInstanceID(instanceID, mattermostUserID))
225+
return nil
226+
}
227+
222228
if appErr := config.Mattermost.KVDelete(keyWithInstanceID(instanceID, c.ConfluenceAccountID())); appErr != nil {
223229
return appErr
224230
}

0 commit comments

Comments
 (0)