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
