Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package semaphore for openSUSE:Factory 
checked in at 2026-03-15 14:32:48
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/semaphore (Old)
 and      /work/SRC/openSUSE:Factory/.semaphore.new.8177 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "semaphore"

Sun Mar 15 14:32:48 2026 rev:33 rq:1339057 version:2.17.24

Changes:
--------
--- /work/SRC/openSUSE:Factory/semaphore/semaphore.changes      2026-03-13 
21:21:21.060595158 +0100
+++ /work/SRC/openSUSE:Factory/.semaphore.new.8177/semaphore.changes    
2026-03-15 14:33:51.607075940 +0100
@@ -1,0 +2,11 @@
+Sun Mar 15 08:40:36 UTC 2026 - Johannes Kastl 
<[email protected]>
+
+- Update to version 2.17.24:
+  * fix(secrets): provide source storage type in var groups
+  * fix(db): extra ? in create request
+  * feat(dvls): check sync
+  * feat: add flag IgnorePlain
+  * fix: fixed a race condition for task statuses with the type
+    waiting_confirmation and confirmed for runners
+
+-------------------------------------------------------------------

Old:
----
  semaphore-2.17.22.obscpio
  web-2.17.22.tar.gz

New:
----
  semaphore-2.17.24.obscpio
  web-2.17.24.tar.gz

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

Other differences:
------------------
++++++ semaphore.spec ++++++
--- /var/tmp/diff_new_pack.FMy9li/_old  2026-03-15 14:33:53.591157610 +0100
+++ /var/tmp/diff_new_pack.FMy9li/_new  2026-03-15 14:33:53.595157775 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           semaphore
-Version:        2.17.22
+Version:        2.17.24
 Release:        0
 Summary:        Modern UI for Ansible
 License:        MIT

++++++ _service ++++++
--- /var/tmp/diff_new_pack.FMy9li/_old  2026-03-15 14:33:53.663160574 +0100
+++ /var/tmp/diff_new_pack.FMy9li/_new  2026-03-15 14:33:53.667160739 +0100
@@ -3,8 +3,8 @@
     <param name="url">https://github.com/ansible-semaphore/semaphore</param>
     <param name="scm">git</param>
     <param name="exclude">.git</param>
-    <param name="revision">v2.17.22</param>
-    <param name="match-tag">v2.17.22</param>
+    <param name="revision">v2.17.24</param>
+    <param name="match-tag">v2.17.24</param>
     <param name="versionformat">@PARENT_TAG@</param>
     <param name="versionrewrite-pattern">v(.*)</param>
     <param name="changesgenerate">enable</param>

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.FMy9li/_old  2026-03-15 14:33:53.691161727 +0100
+++ /var/tmp/diff_new_pack.FMy9li/_new  2026-03-15 14:33:53.707162385 +0100
@@ -1,6 +1,6 @@
 <servicedata>
 <service name="tar_scm">
                 <param 
name="url">https://github.com/ansible-semaphore/semaphore</param>
-              <param 
name="changesrevision">1a419b9cbed7a13949abd616a12d0443ffd52f7d</param></service></servicedata>
+              <param 
name="changesrevision">b9cb5beb6156fd9dcc252e3c503c405f5d319580</param></service></servicedata>
 (No newline at EOF)
 

++++++ semaphore-2.17.22.obscpio -> semaphore-2.17.24.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/semaphore-2.17.22/api/projects/environment.go 
new/semaphore-2.17.24/api/projects/environment.go
--- old/semaphore-2.17.22/api/projects/environment.go   2026-03-12 
16:22:07.000000000 +0100
+++ new/semaphore-2.17.24/api/projects/environment.go   2026-03-13 
16:36:13.000000000 +0100
@@ -3,11 +3,12 @@
 import (
        "errors"
        "fmt"
+       "net/http"
+
        "github.com/semaphoreui/semaphore/api/helpers"
        "github.com/semaphoreui/semaphore/db"
        "github.com/semaphoreui/semaphore/pkg/random"
        "github.com/semaphoreui/semaphore/services/server"
-       "net/http"
 )
 
 type EnvironmentController struct {
@@ -52,15 +53,22 @@
                                sourceStorageKey = &tmp
                        }
 
+                       var storageType *db.AccessKeySourceStorageType
+                       if env.SecretStorageID != nil {
+                               tmp := db.AccessKeySourceStorageVault
+                               storageType = &tmp
+                       }
+
                        key, err = c.accessKeyService.Create(db.AccessKey{
-                               Name:             secret.Name,
-                               String:           secret.Secret,
-                               EnvironmentID:    &env.ID,
-                               ProjectID:        &env.ProjectID,
-                               Type:             db.AccessKeyString,
-                               Owner:            
secret.Type.GetAccessKeyOwner(),
-                               SourceStorageID:  env.SecretStorageID,
-                               SourceStorageKey: sourceStorageKey,
+                               Name:              secret.Name,
+                               String:            secret.Secret,
+                               EnvironmentID:     &env.ID,
+                               ProjectID:         &env.ProjectID,
+                               Type:              db.AccessKeyString,
+                               Owner:             
secret.Type.GetAccessKeyOwner(),
+                               SourceStorageID:   env.SecretStorageID,
+                               SourceStorageKey:  sourceStorageKey,
+                               SourceStorageType: storageType,
                        })
 
                        if err != nil {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/semaphore-2.17.22/api/projects/keys.go 
new/semaphore-2.17.24/api/projects/keys.go
--- old/semaphore-2.17.22/api/projects/keys.go  2026-03-12 16:22:07.000000000 
+0100
+++ new/semaphore-2.17.24/api/projects/keys.go  2026-03-13 16:36:13.000000000 
+0100
@@ -94,6 +94,7 @@
 
        // Plain cannot be passed via a request
        key.Plain = nil
+       key.IgnorePlain = true
 
        //if err := key.Validate(true); err != nil {
        //      helpers.WriteJSON(w, http.StatusBadRequest, map[string]string{
@@ -139,6 +140,7 @@
 
        // Plain cannot be passed via a request
        key.Plain = nil
+       key.IgnorePlain = true
 
        repos, err := helpers.Store(r).GetRepositories(*key.ProjectID, 
db.RetrieveQueryParams{})
        if err != nil {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/semaphore-2.17.22/db/AccessKey.go 
new/semaphore-2.17.24/db/AccessKey.go
--- old/semaphore-2.17.22/db/AccessKey.go       2026-03-12 16:22:07.000000000 
+0100
+++ new/semaphore-2.17.24/db/AccessKey.go       2026-03-13 16:36:13.000000000 
+0100
@@ -38,8 +38,9 @@
 
        // Secret used internally, do not assign this field.
        // You should use methods SerializeSecret to fill this field.
-       Secret *string `db:"secret" json:"-" backup:"-"`
-       Plain  *string `db:"plain" json:"plain,omitempty"`
+       Secret      *string `db:"secret" json:"-" backup:"-"`
+       Plain       *string `db:"plain" json:"plain,omitempty"`
+       IgnorePlain bool
 
        String         string        `db:"-" json:"string"`
        LoginPassword  LoginPassword `db:"-" json:"login_password"`
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/semaphore-2.17.22/db/sql/access_key.go 
new/semaphore-2.17.24/db/sql/access_key.go
--- old/semaphore-2.17.22/db/sql/access_key.go  2026-03-12 16:22:07.000000000 
+0100
+++ new/semaphore-2.17.24/db/sql/access_key.go  2026-03-13 16:36:13.000000000 
+0100
@@ -68,6 +68,11 @@
        query := "update access_key set name=?"
        args = append(args, key.Name)
 
+       if !key.IgnorePlain {
+               query += ", plain=?"
+               args = append(args, key.Plain)
+       }
+
        if key.OverrideSecret {
 
                query += ", type=?, secret=?, source_storage_id=?, 
source_storage_key=?, source_storage_type=?"
@@ -90,33 +95,65 @@
 }
 
 func (d *SqlDb) CreateAccessKey(key db.AccessKey) (newKey db.AccessKey, err 
error) {
-       insertID, err := d.insert(
-               "id",
-               "insert into access_key ("+
-                       "name, "+
-                       "type, "+
-                       "project_id, "+
-                       "secret, "+
-                       "plain, "+
-                       "environment_id, "+
-                       "owner, "+
-                       "storage_id, "+
-                       "source_storage_id, "+
-                       "source_storage_key, "+
-                       "source_storage_type) "+
-                       "values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",
-               key.Name,
-               key.Type,
-               key.ProjectID,
-               key.Secret,
-               key.Plain,
-               key.EnvironmentID,
-               key.Owner,
-               key.StorageID,
-               key.SourceStorageID,
-               key.SourceStorageKey,
-               key.SourceStorageType,
-       )
+
+       var insertID int
+
+       if key.IgnorePlain {
+               insertID, err = d.insert(
+                       "id",
+                       "insert into access_key ("+
+                               "name, "+
+                               "type, "+
+                               "project_id, "+
+                               "secret, "+
+                               "environment_id, "+
+                               "owner, "+
+                               "storage_id, "+
+                               "source_storage_id, "+
+                               "source_storage_key, "+
+                               "source_storage_type) "+
+                               "values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",
+                       key.Name,
+                       key.Type,
+                       key.ProjectID,
+                       key.Secret,
+                       key.EnvironmentID,
+                       key.Owner,
+                       key.StorageID,
+                       key.SourceStorageID,
+                       key.SourceStorageKey,
+                       key.SourceStorageType,
+               )
+       } else {
+               insertID, err = d.insert(
+                       "id",
+                       "insert into access_key ("+
+                               "name, "+
+                               "type, "+
+                               "project_id, "+
+                               "secret, "+
+                               "plain, "+
+                               "environment_id, "+
+                               "owner, "+
+                               "storage_id, "+
+                               "source_storage_id, "+
+                               "source_storage_key, "+
+                               "source_storage_type) "+
+                               "values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",
+                       key.Name,
+                       key.Type,
+                       key.ProjectID,
+                       key.Secret,
+                       key.Plain,
+                       key.EnvironmentID,
+                       key.Owner,
+                       key.StorageID,
+                       key.SourceStorageID,
+                       key.SourceStorageKey,
+                       key.SourceStorageType,
+               )
+
+       }
 
        if err != nil {
                return
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/semaphore-2.17.22/services/runners/job_pool.go 
new/semaphore-2.17.24/services/runners/job_pool.go
--- old/semaphore-2.17.22/services/runners/job_pool.go  2026-03-12 
16:22:07.000000000 +0100
+++ new/semaphore-2.17.24/services/runners/job_pool.go  2026-03-13 
16:36:13.000000000 +0100
@@ -598,7 +598,7 @@
 
                switch runJob.status {
                case task_logger.TaskRunningStatus:
-                       if currJob.Status == task_logger.TaskStartingStatus || 
currJob.Status == task_logger.TaskWaitingStatus {
+                       if currJob.Status == task_logger.TaskStartingStatus || 
currJob.Status == task_logger.TaskWaitingStatus || currJob.Status == 
task_logger.TaskConfirmed {
                                continue
                        }
                case task_logger.TaskStoppingStatus:
@@ -609,6 +609,10 @@
                        if currJob.Status == 
task_logger.TaskWaitingConfirmation {
                                continue
                        }
+               case task_logger.TaskWaitingConfirmation:
+                       if currJob.Status == task_logger.TaskRunningStatus {
+                               continue
+                       }
                }
 
                runJob.SetStatus(currJob.Status)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/semaphore-2.17.22/web/src/components/KeyForm.vue 
new/semaphore-2.17.24/web/src/components/KeyForm.vue
--- old/semaphore-2.17.22/web/src/components/KeyForm.vue        2026-03-12 
16:22:07.000000000 +0100
+++ new/semaphore-2.17.24/web/src/components/KeyForm.vue        2026-03-13 
16:36:13.000000000 +0100
@@ -22,11 +22,16 @@
       :color="$vuetify.theme.dark ? '#212121' : 'white'"
       style="background: #8585850f"
     >
-      <v-tabs fixed-tabs v-model="sourceStorageTypeIndex" 
:disabled="formSaving || !canEditSecrets">
-        <v-tab :disabled="formSaving || !canEditSecrets" style="padding: 
0">Local</v-tab>
-        <v-tab :disabled="formSaving || !canEditSecrets" style="padding: 
0">Storage</v-tab>
-        <v-tab :disabled="formSaving || !canEditSecrets" style="padding: 
0">Env</v-tab>
-        <v-tab :disabled="formSaving || !canEditSecrets" style="padding: 
0">File</v-tab>
+      <v-tabs
+          fixed-tabs
+          v-model="sourceStorageTypeIndex"
+      >
+        <v-tab
+            :disabled="formSaving || !canEditSecrets || isSynced" 
style="padding: 0">Local</v-tab>
+        <v-tab
+            :disabled="formSaving || !canEditSecrets || isSynced" 
style="padding: 0">Storage</v-tab>
+        <v-tab :disabled="formSaving || !canEditSecrets || isSynced" 
style="padding: 0">Env</v-tab>
+        <v-tab :disabled="formSaving || !canEditSecrets || isSynced" 
style="padding: 0">File</v-tab>
       </v-tabs>
 
       <div class="ml-4 mr-4 mt-6" v-if="sourceStorageType">
@@ -37,7 +42,7 @@
           :items="secretStorages"
           item-value="id"
           item-text="name"
-          :disabled="formSaving || !canEditSecrets"
+          :disabled="formSaving || !canEditSecrets || isSynced"
           outlined
           dense
           clearable
@@ -47,7 +52,7 @@
           v-if="supportStorages && sourceStorageType === 'vault' && 
item.source_storage_id != null"
           v-model="item.source_storage_key"
           :label="$t('Source Key')"
-          :disabled="formSaving || !canEditSecrets"
+          :disabled="formSaving || !canEditSecrets || isSynced"
           outlined
           dense
         />
@@ -135,7 +140,11 @@
       v-if="!isReadOnly && item.type === 'ssh'"
     />
 
-    <v-checkbox v-model="item.override_secret" :label="$t('override')" 
v-if="!isNew" />
+    <v-checkbox
+        v-model="item.override_secret"
+        :label="$t('override')"
+        v-if="!isNew"
+    />
 
     <v-alert dense text type="info" v-if="item.type === 'none'">
       {{ $t('useThisTypeOfKeyForHttpsRepositoriesAndForPlaybook') }}
@@ -171,6 +180,7 @@
         },
       ],
       secretStorages: null,
+      isSynced: false,
     };
   },
 
@@ -228,6 +238,10 @@
   },
 
   methods: {
+    afterLoadData() {
+      this.isSynced = JSON.parse(this.item.plain || '{}').dvls_id != null;
+    },
+
     getNewItem() {
       return {
         ssh: {},

++++++ semaphore.obsinfo ++++++
--- /var/tmp/diff_new_pack.FMy9li/_old  2026-03-15 14:33:54.903211618 +0100
+++ /var/tmp/diff_new_pack.FMy9li/_new  2026-03-15 14:33:54.903211618 +0100
@@ -1,5 +1,5 @@
 name: semaphore
-version: 2.17.22
-mtime: 1773328927
-commit: 1a419b9cbed7a13949abd616a12d0443ffd52f7d
+version: 2.17.24
+mtime: 1773416173
+commit: b9cb5beb6156fd9dcc252e3c503c405f5d319580
 

++++++ vendor.tar.gz ++++++
/work/SRC/openSUSE:Factory/semaphore/vendor.tar.gz 
/work/SRC/openSUSE:Factory/.semaphore.new.8177/vendor.tar.gz differ: char 13, 
line 1

++++++ web-2.17.22.tar.gz -> web-2.17.24.tar.gz ++++++
/work/SRC/openSUSE:Factory/semaphore/web-2.17.22.tar.gz 
/work/SRC/openSUSE:Factory/.semaphore.new.8177/web-2.17.24.tar.gz differ: char 
13, line 1

Reply via email to