Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package digger-cli for openSUSE:Factory 
checked in at 2025-03-06 14:49:14
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/digger-cli (Old)
 and      /work/SRC/openSUSE:Factory/.digger-cli.new.19136 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "digger-cli"

Thu Mar  6 14:49:14 2025 rev:8 rq:1250550 version:0.6.87

Changes:
--------
--- /work/SRC/openSUSE:Factory/digger-cli/digger-cli.changes    2025-03-05 
13:47:56.327195920 +0100
+++ /work/SRC/openSUSE:Factory/.digger-cli.new.19136/digger-cli.changes 
2025-03-06 14:50:16.609334906 +0100
@@ -1,0 +2,7 @@
+Thu Mar 06 06:19:45 UTC 2025 - [email protected]
+
+- Update to version 0.6.87:
+  * ensure link to workflow url always present (#1892)
+  * Update fly-pro.toml
+
+-------------------------------------------------------------------

Old:
----
  digger-cli-0.6.86.obscpio

New:
----
  digger-cli-0.6.87.obscpio

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ digger-cli.spec ++++++
--- /var/tmp/diff_new_pack.s6DlS1/_old  2025-03-06 14:50:17.353366108 +0100
+++ /var/tmp/diff_new_pack.s6DlS1/_new  2025-03-06 14:50:17.357366276 +0100
@@ -19,7 +19,7 @@
 %define executable_name digger
 
 Name:           digger-cli
-Version:        0.6.86
+Version:        0.6.87
 Release:        0
 Summary:        CLI for the digger open source IaC orchestration tool
 License:        Apache-2.0

++++++ _service ++++++
--- /var/tmp/diff_new_pack.s6DlS1/_old  2025-03-06 14:50:17.393367786 +0100
+++ /var/tmp/diff_new_pack.s6DlS1/_new  2025-03-06 14:50:17.393367786 +0100
@@ -6,7 +6,7 @@
     <param name="exclude">go.mod</param>
     <param name="exclude">go.work</param>
     <param name="exclude">go.work.sum</param>
-    <param name="revision">v0.6.86</param>
+    <param name="revision">v0.6.87</param>
     <param name="match-tag">v*</param>
     <param name="versionformat">@PARENT_TAG@</param>
     <param name="versionrewrite-pattern">v(.*)</param>

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.s6DlS1/_old  2025-03-06 14:50:17.413368624 +0100
+++ /var/tmp/diff_new_pack.s6DlS1/_new  2025-03-06 14:50:17.417368792 +0100
@@ -1,7 +1,7 @@
 <servicedata>
 <service name="tar_scm">
                 <param name="url">https://github.com/diggerhq/digger</param>
-              <param 
name="changesrevision">3f0a92b320b0abfc89ed9a4bf5d04cc74feef26e</param></service><service
 name="tar_scm">
+              <param 
name="changesrevision">84f1c0ed9c6d638d6df7ae11992bc2fb52ad73a6</param></service><service
 name="tar_scm">
                 <param 
name="url">https://github.com/johanneskastl/digger</param>
               <param 
name="changesrevision">8fe377068e53e2050ff4c745388d8428d2b13bb0</param></service></servicedata>
 (No newline at EOF)

++++++ digger-cli-0.6.86.obscpio -> digger-cli-0.6.87.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/digger-cli-0.6.86/backend/ci_backends/ci_backends.go 
new/digger-cli-0.6.87/backend/ci_backends/ci_backends.go
--- old/digger-cli-0.6.86/backend/ci_backends/ci_backends.go    2025-03-02 
22:45:57.000000000 +0100
+++ new/digger-cli-0.6.87/backend/ci_backends/ci_backends.go    2025-03-05 
20:22:13.000000000 +0100
@@ -7,6 +7,7 @@
 
 type CiBackend interface {
        TriggerWorkflow(spec spec.Spec, runName string, vcsToken string) error
+       GetWorkflowUrl(spec spec.Spec) (string, error)
 }
 
 type JenkinsCi struct{}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/digger-cli-0.6.86/backend/ci_backends/github_actions.go 
new/digger-cli-0.6.87/backend/ci_backends/github_actions.go
--- old/digger-cli-0.6.86/backend/ci_backends/github_actions.go 2025-03-02 
22:45:57.000000000 +0100
+++ new/digger-cli-0.6.87/backend/ci_backends/github_actions.go 2025-03-05 
20:22:13.000000000 +0100
@@ -3,6 +3,8 @@
 import (
        "context"
        "encoding/json"
+       "fmt"
+       "github.com/diggerhq/digger/backend/utils"
        orchestrator_scheduler "github.com/diggerhq/digger/libs/scheduler"
        "github.com/diggerhq/digger/libs/spec"
        "github.com/google/go-github/v61/github"
@@ -30,3 +32,18 @@
 
        return err
 }
+
+func (g GithubActionCi) GetWorkflowUrl(spec spec.Spec) (string, error) {
+       if spec.JobId == "" {
+               log.Printf("Cannot get workflow URL: JobId is empty")
+               return "", fmt.Errorf("job ID is required to fetch workflow 
URL")
+       }
+
+       _, workflowRunUrl, err := 
utils.GetWorkflowIdAndUrlFromDiggerJobId(g.Client, spec.VCS.RepoOwner, 
spec.VCS.RepoName, spec.JobId)
+       if err != nil {
+               log.Printf("Error getting workflow ID from job: %v", err)
+               return "", err
+       } else {
+               return workflowRunUrl, nil
+       }
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/digger-cli-0.6.86/backend/controllers/projects.go 
new/digger-cli-0.6.87/backend/controllers/projects.go
--- old/digger-cli-0.6.86/backend/controllers/projects.go       2025-03-02 
22:45:57.000000000 +0100
+++ new/digger-cli-0.6.87/backend/controllers/projects.go       2025-03-05 
20:22:13.000000000 +0100
@@ -364,21 +364,6 @@
                        return
                }
 
-               client, _, err := utils.GetGithubClient(d.GithubClientProvider, 
job.Batch.GithubInstallationId, job.Batch.RepoFullName)
-               if err != nil {
-                       log.Printf("Error Creating github client: %v", err)
-               } else {
-                       _, workflowRunUrl, err := 
utils.GetWorkflowIdAndUrlFromDiggerJobId(client, job.Batch.RepoOwner, 
job.Batch.RepoName, job.DiggerJobID)
-                       if err != nil {
-                               log.Printf("Error getting workflow ID from job: 
%v", err)
-                       } else {
-                               job.WorkflowRunUrl = &workflowRunUrl
-                               err = models.DB.UpdateDiggerJob(job)
-                               if err != nil {
-                                       log.Printf("Error updating digger job: 
%v", err)
-                               }
-                       }
-               }
        case "succeeded":
                job.Status = orchestrator_scheduler.DiggerJobSucceeded
                job.TerraformOutput = request.TerraformOutput
@@ -463,6 +448,24 @@
                c.JSON(http.StatusInternalServerError, gin.H{"error": "Error 
saving job"})
                return
        }
+
+       // attempt to update workflow run url
+       client, _, err := utils.GetGithubClient(d.GithubClientProvider, 
job.Batch.GithubInstallationId, job.Batch.RepoFullName)
+       if err != nil {
+               log.Printf("Error Creating github client: %v", err)
+       } else {
+               _, workflowRunUrl, err := 
utils.GetWorkflowIdAndUrlFromDiggerJobId(client, job.Batch.RepoOwner, 
job.Batch.RepoName, job.DiggerJobID)
+               if err != nil {
+                       log.Printf("Error getting workflow ID from job: %v", 
err)
+               } else if workflowRunUrl != "#" && workflowRunUrl != "" {
+                       job.WorkflowRunUrl = &workflowRunUrl
+                       err = models.DB.UpdateDiggerJob(job)
+                       if err != nil {
+                               log.Printf("Error updating digger job: %v", err)
+                       }
+               }
+       }
+
        job.StatusUpdatedAt = request.Timestamp
        err = models.DB.GormDB.Save(&job).Error
        if err != nil {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/digger-cli-0.6.86/backend/services/scheduler.go 
new/digger-cli-0.6.87/backend/services/scheduler.go
--- old/digger-cli-0.6.86/backend/services/scheduler.go 2025-03-02 
22:45:57.000000000 +0100
+++ new/digger-cli-0.6.87/backend/services/scheduler.go 2025-03-05 
20:22:13.000000000 +0100
@@ -7,9 +7,12 @@
        "github.com/diggerhq/digger/backend/models"
        "github.com/diggerhq/digger/backend/utils"
        orchestrator_scheduler "github.com/diggerhq/digger/libs/scheduler"
+       "github.com/diggerhq/digger/libs/spec"
        "github.com/google/go-github/v61/github"
        "github.com/google/uuid"
        "log"
+       "runtime/debug"
+       "time"
 )
 
 func DiggerJobCompleted(client *github.Client, batchId *uuid.UUID, parentJob 
*models.DiggerJob, repoFullName string, repoOwner string, repoName string, 
workflowFileName string, gh utils.GithubClientProvider) error {
@@ -131,5 +134,50 @@
                return err
        }
 
+       go UpdateWorkflowUrlForJob(job, ciBackend, spec)
+
        return nil
 }
+
+// This is meant to run asyncronously since it queries for job url
+func UpdateWorkflowUrlForJob(job *models.DiggerJob, ciBackend 
ci_backends.CiBackend, spec *spec.Spec) {
+       defer func() {
+               if r := recover(); r != nil {
+                       log.Printf("Recovered from panic in 
UpdateWorkflowUrlForJob handler: %v", r)
+                       log.Printf("\n=== PANIC RECOVERED ===\n")
+                       log.Printf("Error: %v\n", r)
+                       log.Printf("Stack Trace:\n%s", string(debug.Stack()))
+                       log.Printf("=== END PANIC ===\n")
+               }
+       }()
+
+       batch := job.Batch
+       // for now we only perform this update for github
+       if batch.VCS != models.DiggerVCSGithub {
+               return
+       }
+       for n := 0; n < 30; n++ {
+               time.Sleep(1 * time.Second)
+               workflowUrl, err := ciBackend.GetWorkflowUrl(*spec)
+               if err != nil {
+                       log.Printf("DiggerJobId %v: error while attempting to 
fetch workflow url: %v", job.DiggerJobID, err)
+               } else {
+                       if workflowUrl == "#" || workflowUrl == "" {
+                               log.Printf("DiggerJobId %v: got blank workflow 
url as response, ignoring", job.DiggerJobID)
+                       } else {
+                               job.WorkflowRunUrl = &workflowUrl
+                               err = models.DB.UpdateDiggerJob(job)
+                               if err != nil {
+                                       log.Printf("DiggerJobId %v: Error 
updating digger job: %v", job.DiggerJobID, err)
+                                       continue
+                               } else {
+                                       log.Printf("DiggerJobId %v: 
successfully updated workflow run url to: %v for DiggerJobID: %v", 
job.DiggerJobID, workflowUrl, job.DiggerJobID)
+                               }
+
+                               return
+                       }
+               }
+       }
+
+       // if we get to here its highly likely that the workflow job entirely 
failed to start for some reason
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/digger-cli-0.6.86/backend/tasks/runs_test.go 
new/digger-cli-0.6.87/backend/tasks/runs_test.go
--- old/digger-cli-0.6.86/backend/tasks/runs_test.go    2025-03-02 
22:45:57.000000000 +0100
+++ new/digger-cli-0.6.87/backend/tasks/runs_test.go    2025-03-05 
20:22:13.000000000 +0100
@@ -28,6 +28,10 @@
        return nil
 }
 
+func (m MockCiBackend) GetWorkflowUrl(spec spec.Spec) (string, error) {
+       return "", nil
+}
+
 func setupSuite(tb testing.TB) (func(tb testing.TB), *models.Database) {
        log.Println("setup suite")
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/digger-cli-0.6.86/backend/utils/github.go 
new/digger-cli-0.6.87/backend/utils/github.go
--- old/digger-cli-0.6.86/backend/utils/github.go       2025-03-02 
22:45:57.000000000 +0100
+++ new/digger-cli-0.6.87/backend/utils/github.go       2025-03-05 
20:22:13.000000000 +0100
@@ -231,7 +231,6 @@
        }
 
        for _, workflowRun := range runs.WorkflowRuns {
-               println(*workflowRun.ID)
                workflowjobs, _, err := 
client.Actions.ListWorkflowJobs(context.Background(), repoOwner, repoName, 
*workflowRun.ID, nil)
                if err != nil {
                        return 0, "#", fmt.Errorf("error listing workflow jobs 
for run %v %v", workflowRun.ID, err)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/digger-cli-0.6.86/ee/backend/ci_backends/bitbucket_pipeline.go 
new/digger-cli-0.6.87/ee/backend/ci_backends/bitbucket_pipeline.go
--- old/digger-cli-0.6.86/ee/backend/ci_backends/bitbucket_pipeline.go  
2025-03-02 22:45:57.000000000 +0100
+++ new/digger-cli-0.6.87/ee/backend/ci_backends/bitbucket_pipeline.go  
2025-03-05 20:22:13.000000000 +0100
@@ -37,3 +37,10 @@
        _, err = bbp.Client.TriggerPipeline(bbp.Branch, variables)
        return err
 }
+
+// GetWorkflowUrl fetch workflow url after triggering a job
+// since some CI don't return url automatically we split it out to become a
+// followup method
+func (bbp BitbucketPipelineCI) GetWorkflowUrl(spec spec.Spec) (string, error) {
+       return "", nil
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/digger-cli-0.6.86/ee/backend/ci_backends/buildkite.go 
new/digger-cli-0.6.87/ee/backend/ci_backends/buildkite.go
--- old/digger-cli-0.6.86/ee/backend/ci_backends/buildkite.go   2025-03-02 
22:45:57.000000000 +0100
+++ new/digger-cli-0.6.87/ee/backend/ci_backends/buildkite.go   2025-03-05 
20:22:13.000000000 +0100
@@ -31,3 +31,7 @@
        return err
 
 }
+
+func (b BuildkiteCi) GetWorkflowUrl(spec spec.Spec) (string, error) {
+       return "", nil
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/digger-cli-0.6.86/ee/backend/ci_backends/gitlab_pipeline.go 
new/digger-cli-0.6.87/ee/backend/ci_backends/gitlab_pipeline.go
--- old/digger-cli-0.6.86/ee/backend/ci_backends/gitlab_pipeline.go     
2025-03-02 22:45:57.000000000 +0100
+++ new/digger-cli-0.6.87/ee/backend/ci_backends/gitlab_pipeline.go     
2025-03-05 20:22:13.000000000 +0100
@@ -59,3 +59,7 @@
 
        return err
 }
+
+func (g GitlabPipelineCI) GetWorkflowUrl(spec spec.Spec) (string, error) {
+       return "", nil
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/digger-cli-0.6.86/ee/backend/controllers/bitbucket.go 
new/digger-cli-0.6.87/ee/backend/controllers/bitbucket.go
--- old/digger-cli-0.6.86/ee/backend/controllers/bitbucket.go   2025-03-02 
22:45:57.000000000 +0100
+++ new/digger-cli-0.6.87/ee/backend/controllers/bitbucket.go   2025-03-05 
20:22:13.000000000 +0100
@@ -24,6 +24,7 @@
        "log"
        "net/http"
        "os"
+       "runtime/debug"
        "strconv"
        "strings"
 )
@@ -139,6 +140,16 @@
 }
 
 func handleIssueCommentEventBB(bitbucketProvider utils.BitbucketProvider, 
payload *BitbucketCommentCreatedEvent, ciBackendProvider 
ci_backends.CiBackendProvider, organisationId uint, vcsConnectionId *uint, 
bbAccessToken string) error {
+       defer func() {
+               if r := recover(); r != nil {
+                       log.Printf("Recovered from panic in 
handleIssueCommentEventBB handler: %v", r)
+                       log.Printf("\n=== PANIC RECOVERED ===\n")
+                       log.Printf("Error: %v\n", r)
+                       log.Printf("Stack Trace:\n%s", string(debug.Stack()))
+                       log.Printf("=== END PANIC ===\n")
+               }
+       }()
+
        repoFullName := payload.Repository.FullName
        repoOwner := payload.Repository.Owner.Username
        repoName := payload.Repository.Name
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/digger-cli-0.6.86/fly-pro.toml 
new/digger-cli-0.6.87/fly-pro.toml
--- old/digger-cli-0.6.86/fly-pro.toml  2025-03-02 22:45:57.000000000 +0100
+++ new/digger-cli-0.6.87/fly-pro.toml  2025-03-05 20:22:13.000000000 +0100
@@ -12,7 +12,7 @@
   JWT_AUTH = 'true'
 
 [build]
-  dockerfile = 'Dockerfile_backend'
+  dockerfile = 'Dockerfile_backend_ee'
 
 [[services]]
   protocol = 'tcp'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/digger-cli-0.6.86/next/ci_backends/ci_backends.go 
new/digger-cli-0.6.87/next/ci_backends/ci_backends.go
--- old/digger-cli-0.6.86/next/ci_backends/ci_backends.go       2025-03-02 
22:45:57.000000000 +0100
+++ new/digger-cli-0.6.87/next/ci_backends/ci_backends.go       2025-03-05 
20:22:13.000000000 +0100
@@ -7,6 +7,7 @@
 
 type CiBackend interface {
        TriggerWorkflow(spec spec.Spec, runName string, vcsToken string) error
+       GetWorkflowUrl(spec spec.Spec) (string, error)
 }
 
 type JenkinsCi struct{}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/digger-cli-0.6.86/next/ci_backends/github_actions.go 
new/digger-cli-0.6.87/next/ci_backends/github_actions.go
--- old/digger-cli-0.6.86/next/ci_backends/github_actions.go    2025-03-02 
22:45:57.000000000 +0100
+++ new/digger-cli-0.6.87/next/ci_backends/github_actions.go    2025-03-05 
20:22:13.000000000 +0100
@@ -30,3 +30,7 @@
 
        return err
 }
+
+func (g GithubActionCi) GetWorkflowUrl(spec spec.Spec) (string, error) {
+       return "", nil
+}

++++++ digger-cli.obsinfo ++++++
--- /var/tmp/diff_new_pack.s6DlS1/_old  2025-03-06 14:50:18.301405865 +0100
+++ /var/tmp/diff_new_pack.s6DlS1/_new  2025-03-06 14:50:18.305406033 +0100
@@ -1,5 +1,5 @@
 name: digger-cli
-version: 0.6.86
-mtime: 1740951957
-commit: 3f0a92b320b0abfc89ed9a4bf5d04cc74feef26e
+version: 0.6.87
+mtime: 1741202533
+commit: 84f1c0ed9c6d638d6df7ae11992bc2fb52ad73a6
 

++++++ vendor.tar.gz ++++++
/work/SRC/openSUSE:Factory/digger-cli/vendor.tar.gz 
/work/SRC/openSUSE:Factory/.digger-cli.new.19136/vendor.tar.gz differ: char 5, 
line 1

Reply via email to