Crash group link
This commit is contained in:
parent
7a47e66651
commit
f57231bdea
|
|
@ -58,6 +58,7 @@ func main() {
|
|||
Store: store,
|
||||
ForgejoClient: forgejoClient,
|
||||
ForgejoURL: cfg.ForgejoURL,
|
||||
CairnURL: cfg.ExternalURL,
|
||||
WebhookSecret: cfg.ForgejoWebhookSecret,
|
||||
})
|
||||
if err != nil {
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@ type Config struct {
|
|||
S3SecretKey string `envconfig:"CAIRN_S3_SECRET_KEY" default:"minioadmin"`
|
||||
S3UseSSL bool `envconfig:"CAIRN_S3_USE_SSL" default:"false"`
|
||||
|
||||
ExternalURL string `envconfig:"CAIRN_EXTERNAL_URL"`
|
||||
ForgejoURL string `envconfig:"CAIRN_FORGEJO_URL"`
|
||||
ForgejoToken string `envconfig:"CAIRN_FORGEJO_TOKEN"`
|
||||
ForgejoWebhookSecret string `envconfig:"CAIRN_FORGEJO_WEBHOOK_SECRET"`
|
||||
|
|
|
|||
|
|
@ -14,8 +14,9 @@ import (
|
|||
|
||||
// Sync handles bidirectional state synchronization between Cairn and Forgejo.
|
||||
type Sync struct {
|
||||
Client *Client
|
||||
DB *gorm.DB
|
||||
Client *Client
|
||||
DB *gorm.DB
|
||||
CairnURL string
|
||||
}
|
||||
|
||||
// CreateIssueForCrashGroup creates a Forgejo issue for a new crash group.
|
||||
|
|
@ -29,8 +30,14 @@ func (s *Sync) CreateIssueForCrashGroup(ctx context.Context, group *cairnapi.Cra
|
|||
return fmt.Errorf("getting repository: %w", err)
|
||||
}
|
||||
|
||||
crashGroupLink := fmt.Sprintf("%d", group.ID)
|
||||
if s.CairnURL != "" {
|
||||
crashGroupLink = fmt.Sprintf("[%d](%s/crashgroups/%d)", group.ID, strings.TrimRight(s.CairnURL, "/"), group.ID)
|
||||
}
|
||||
|
||||
body := fmt.Sprintf(`## Crash Group
|
||||
|
||||
**Crash Group:** %s
|
||||
**Fingerprint:** `+"`%s`"+`
|
||||
**First seen:** %s
|
||||
**Type:** %s
|
||||
|
|
@ -43,7 +50,7 @@ func (s *Sync) CreateIssueForCrashGroup(ctx context.Context, group *cairnapi.Cra
|
|||
|
||||
---
|
||||
*Auto-created by [Cairn](/) — crash artifact aggregator*
|
||||
`, group.Fingerprint, group.FirstSeenAt.Format("2006-01-02 15:04:05"), group.Title, sampleTrace)
|
||||
`, crashGroupLink, group.Fingerprint, group.FirstSeenAt.Format("2006-01-02 15:04:05"), group.Title, sampleTrace)
|
||||
|
||||
issue, err := s.Client.CreateIssue(ctx, repo.Owner, repo.Name, CreateIssueRequest{
|
||||
Title: "[Cairn] " + group.Title,
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@ type RouterConfig struct {
|
|||
Store blob.Store
|
||||
ForgejoClient *forgejo.Client
|
||||
ForgejoURL string
|
||||
CairnURL string
|
||||
WebhookSecret string
|
||||
}
|
||||
|
||||
|
|
@ -26,7 +27,7 @@ func NewRouter(cfg RouterConfig) (*gin.Engine, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
forgejoSync := &forgejo.Sync{Client: cfg.ForgejoClient, DB: cfg.DB}
|
||||
forgejoSync := &forgejo.Sync{Client: cfg.ForgejoClient, DB: cfg.DB, CairnURL: cfg.CairnURL}
|
||||
|
||||
pages := &PageHandler{DB: cfg.DB, Templates: templates, ForgejoURL: cfg.ForgejoURL}
|
||||
ingest := &handler.IngestHandler{DB: cfg.DB, Store: cfg.Store, ForgejoSync: forgejoSync}
|
||||
|
|
|
|||
Loading…
Reference in New Issue