Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package trufflehog for openSUSE:Factory checked in at 2026-03-26 21:12:05 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/trufflehog (Old) and /work/SRC/openSUSE:Factory/.trufflehog.new.8177 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "trufflehog" Thu Mar 26 21:12:05 2026 rev:118 rq:1342924 version:3.94.1 Changes: -------- --- /work/SRC/openSUSE:Factory/trufflehog/trufflehog.changes 2026-03-22 14:14:30.123017124 +0100 +++ /work/SRC/openSUSE:Factory/.trufflehog.new.8177/trufflehog.changes 2026-03-27 06:51:58.156061307 +0100 @@ -1,0 +2,6 @@ +Thu Mar 26 05:47:05 UTC 2026 - Johannes Kastl <[email protected]> + +- Update to version 3.94.1: + * use struct-based SourceMetadataFunc signature across git sources (#4813) + +------------------------------------------------------------------- Old: ---- trufflehog-3.94.0.obscpio New: ---- trufflehog-3.94.1.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ trufflehog.spec ++++++ --- /var/tmp/diff_new_pack.3KV6bh/_old 2026-03-27 06:51:59.780128348 +0100 +++ /var/tmp/diff_new_pack.3KV6bh/_new 2026-03-27 06:51:59.784128513 +0100 @@ -17,7 +17,7 @@ Name: trufflehog -Version: 3.94.0 +Version: 3.94.1 Release: 0 Summary: CLI tool to find exposed secrets in source and archives License: AGPL-3.0-or-later ++++++ _service ++++++ --- /var/tmp/diff_new_pack.3KV6bh/_old 2026-03-27 06:51:59.812129669 +0100 +++ /var/tmp/diff_new_pack.3KV6bh/_new 2026-03-27 06:51:59.812129669 +0100 @@ -2,7 +2,7 @@ <service name="obs_scm" mode="manual"> <param name="url">https://github.com/trufflesecurity/trufflehog.git</param> <param name="scm">git</param> - <param name="revision">v3.94.0</param> + <param name="revision">v3.94.1</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.3KV6bh/_old 2026-03-27 06:51:59.832130495 +0100 +++ /var/tmp/diff_new_pack.3KV6bh/_new 2026-03-27 06:51:59.832130495 +0100 @@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/trufflesecurity/trufflehog.git</param> - <param name="changesrevision">6c64db94d5b2e09d7e0948fb6bd3166cc6fffbc7</param></service></servicedata> + <param name="changesrevision">586f66d7886cd0b037c7c245d4a6e34ef357ab10</param></service></servicedata> (No newline at EOF) ++++++ trufflehog-3.94.0.obscpio -> trufflehog-3.94.1.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trufflehog-3.94.0/hack/snifftest/main.go new/trufflehog-3.94.1/hack/snifftest/main.go --- old/trufflehog-3.94.0/hack/snifftest/main.go 2026-03-20 15:39:48.000000000 +0100 +++ new/trufflehog-3.94.1/hack/snifftest/main.go 2026-03-24 12:22:30.000000000 +0100 @@ -197,15 +197,15 @@ SkipBinaries: true, SkipArchives: false, Concurrency: runtime.NumCPU(), - SourceMetadataFunc: func(file, email, commit, timestamp, repository, repositoryLocalPath string, line int64) *source_metadatapb.MetaData { + SourceMetadataFunc: func(info git.SourceMetadataInfo) *source_metadatapb.MetaData { return &source_metadatapb.MetaData{ Data: &source_metadatapb.MetaData_Git{ Git: &source_metadatapb.Git{ - Commit: commit, - File: file, - Email: email, - Repository: repository, - Timestamp: timestamp, + Commit: info.Commit, + File: info.File, + Email: info.Email, + Repository: info.Repository, + Timestamp: info.Timestamp, }, }, } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trufflehog-3.94.0/pkg/sources/git/git.go new/trufflehog-3.94.1/pkg/sources/git/git.go --- old/trufflehog-3.94.0/pkg/sources/git/git.go 2026-03-20 15:39:48.000000000 +0100 +++ new/trufflehog-3.94.1/pkg/sources/git/git.go 2026-03-24 12:22:30.000000000 +0100 @@ -57,12 +57,27 @@ // WithCustomContentWriter sets the useCustomContentWriter flag on the source. func (s *Source) WithCustomContentWriter() { s.useCustomContentWriter = true } +// SourceMetadataInfo contains the metadata fields passed to SourceMetadataFunc. +// Using a struct allows adding new fields without breaking existing consumers. +type SourceMetadataInfo struct { + File string + Email string + Commit string + Timestamp string + Repository string + RepositoryLocalPath string + Line int64 +} + +// SourceMetadataFunc is a function that maps git source metadata to a protobuf MetaData message. +type SourceMetadataFunc func(info SourceMetadataInfo) *source_metadatapb.MetaData + type Git struct { sourceType sourcespb.SourceType sourceName string sourceID sources.SourceID jobID sources.JobID - sourceMetadataFunc func(file, email, commit, timestamp, repository, repositoryLocalPath string, line int64) *source_metadatapb.MetaData + sourceMetadataFunc SourceMetadataFunc verify bool metrics metricsCollector concurrency *semaphore.Weighted @@ -76,7 +91,7 @@ // Config for a Git source. type Config struct { Concurrency int - SourceMetadataFunc func(file, email, commit, timestamp, repository, repositoryLocalPath string, line int64) *source_metadatapb.MetaData + SourceMetadataFunc SourceMetadataFunc SourceName string JobID sources.JobID @@ -212,17 +227,17 @@ SkipBinaries: conn.GetSkipBinaries(), SkipArchives: conn.GetSkipArchives(), Concurrency: concurrency, - SourceMetadataFunc: func(file, email, commit, timestamp, repository, repositoryLocalPath string, line int64) *source_metadatapb.MetaData { + SourceMetadataFunc: func(info SourceMetadataInfo) *source_metadatapb.MetaData { return &source_metadatapb.MetaData{ Data: &source_metadatapb.MetaData_Git{ Git: &source_metadatapb.Git{ - Commit: sanitizer.UTF8(commit), - File: sanitizer.UTF8(file), - Email: sanitizer.UTF8(email), - Repository: sanitizer.UTF8(repository), - Timestamp: sanitizer.UTF8(timestamp), - Line: line, - RepositoryLocalPath: sanitizer.UTF8(repositoryLocalPath), + Commit: sanitizer.UTF8(info.Commit), + File: sanitizer.UTF8(info.File), + Email: sanitizer.UTF8(info.Email), + Repository: sanitizer.UTF8(info.Repository), + Timestamp: sanitizer.UTF8(info.Timestamp), + Line: info.Line, + RepositoryLocalPath: sanitizer.UTF8(info.RepositoryLocalPath), }, }, } @@ -747,8 +762,14 @@ // Scan the commit metadata. // See https://github.com/trufflesecurity/trufflehog/issues/2683 var ( - metadata = s.sourceMetadataFunc("", email, fullHash, when, remoteURL, path, 0) - sb strings.Builder + metadata = s.sourceMetadataFunc(SourceMetadataInfo{ + Email: email, + Commit: fullHash, + Timestamp: when, + Repository: remoteURL, + RepositoryLocalPath: path, + }) + sb strings.Builder ) sb.WriteString(email) sb.WriteString("\n") @@ -789,7 +810,14 @@ continue } - metadata := s.sourceMetadataFunc(fileName, email, fullHash, when, remoteURL, path, 0) + metadata := s.sourceMetadataFunc(SourceMetadataInfo{ + File: fileName, + Email: email, + Commit: fullHash, + Timestamp: when, + Repository: remoteURL, + RepositoryLocalPath: path, + }) chunkSkel := &sources.Chunk{ SourceName: s.sourceName, SourceID: s.sourceID, @@ -816,7 +844,15 @@ } chunkData := func(d *gitparse.Diff) error { - metadata := s.sourceMetadataFunc(fileName, email, fullHash, when, remoteURL, path, int64(diff.LineStart)) + metadata := s.sourceMetadataFunc(SourceMetadataInfo{ + File: fileName, + Email: email, + Commit: fullHash, + Timestamp: when, + Repository: remoteURL, + RepositoryLocalPath: path, + Line: int64(diff.LineStart), + }) reader, err := d.ReadCloser() if err != nil { @@ -875,7 +911,14 @@ // Add oversize chunk info if newChunkBuffer.Len() > 0 { // Send the existing fragment. - metadata := s.sourceMetadataFunc(fileName, email, hash, when, urlMetadata, "", int64(diff.LineStart+lastOffset)) + metadata := s.sourceMetadataFunc(SourceMetadataInfo{ + File: fileName, + Email: email, + Commit: hash, + Timestamp: when, + Repository: urlMetadata, + Line: int64(diff.LineStart + lastOffset), + }) chunk := sources.Chunk{ SourceName: s.sourceName, SourceID: s.sourceID, @@ -895,7 +938,14 @@ } if len(line) > sources.DefaultChunkSize { // Send the oversize line. - metadata := s.sourceMetadataFunc(fileName, email, hash, when, urlMetadata, "", int64(diff.LineStart+offset)) + metadata := s.sourceMetadataFunc(SourceMetadataInfo{ + File: fileName, + Email: email, + Commit: hash, + Timestamp: when, + Repository: urlMetadata, + Line: int64(diff.LineStart + offset), + }) chunk := sources.Chunk{ SourceName: s.sourceName, SourceID: s.sourceID, @@ -919,7 +969,14 @@ } // Send anything still in the new chunk buffer if newChunkBuffer.Len() > 0 { - metadata := s.sourceMetadataFunc(fileName, email, hash, when, urlMetadata, "", int64(diff.LineStart+lastOffset)) + metadata := s.sourceMetadataFunc(SourceMetadataInfo{ + File: fileName, + Email: email, + Commit: hash, + Timestamp: when, + Repository: urlMetadata, + Line: int64(diff.LineStart + lastOffset), + }) chunk := sources.Chunk{ SourceName: s.sourceName, SourceID: s.sourceID, @@ -1020,7 +1077,14 @@ continue } - metadata := s.sourceMetadataFunc(fileName, email, "Staged", when, urlMetadata, path, 0) + metadata := s.sourceMetadataFunc(SourceMetadataInfo{ + File: fileName, + Email: email, + Commit: "Staged", + Timestamp: when, + Repository: urlMetadata, + RepositoryLocalPath: path, + }) chunkSkel := &sources.Chunk{ SourceName: s.sourceName, SourceID: s.sourceID, @@ -1036,7 +1100,15 @@ } chunkData := func(d *gitparse.Diff) error { - metadata := s.sourceMetadataFunc(fileName, email, "Staged", when, urlMetadata, path, int64(diff.LineStart)) + metadata := s.sourceMetadataFunc(SourceMetadataInfo{ + File: fileName, + Email: email, + Commit: "Staged", + Timestamp: when, + Repository: urlMetadata, + RepositoryLocalPath: path, + Line: int64(diff.LineStart), + }) reader, err := d.ReadCloser() if err != nil { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trufflehog-3.94.0/pkg/sources/github/github.go new/trufflehog-3.94.1/pkg/sources/github/github.go --- old/trufflehog-3.94.0/pkg/sources/github/github.go 2026-03-20 15:39:48.000000000 +0100 +++ new/trufflehog-3.94.1/pkg/sources/github/github.go 2026-03-24 12:22:30.000000000 +0100 @@ -288,19 +288,19 @@ SkipBinaries: conn.GetSkipBinaries(), SkipArchives: conn.GetSkipArchives(), Concurrency: concurrency, - SourceMetadataFunc: func(file, email, commit, timestamp, repository, repositoryLocalPath string, line int64) *source_metadatapb.MetaData { + SourceMetadataFunc: func(info git.SourceMetadataInfo) *source_metadatapb.MetaData { return &source_metadatapb.MetaData{ Data: &source_metadatapb.MetaData_Github{ Github: &source_metadatapb.Github{ - Commit: sanitizer.UTF8(commit), - File: sanitizer.UTF8(file), - Email: sanitizer.UTF8(email), - Repository: sanitizer.UTF8(repository), - Link: giturl.GenerateLink(repository, commit, file, line), - Timestamp: sanitizer.UTF8(timestamp), - Line: line, - Visibility: s.visibilityOf(aCtx, repository), - RepositoryLocalPath: sanitizer.UTF8(repositoryLocalPath), + Commit: sanitizer.UTF8(info.Commit), + File: sanitizer.UTF8(info.File), + Email: sanitizer.UTF8(info.Email), + Repository: sanitizer.UTF8(info.Repository), + Link: giturl.GenerateLink(info.Repository, info.Commit, info.File, info.Line), + Timestamp: sanitizer.UTF8(info.Timestamp), + Line: info.Line, + Visibility: s.visibilityOf(aCtx, info.Repository), + RepositoryLocalPath: sanitizer.UTF8(info.RepositoryLocalPath), }, }, } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trufflehog-3.94.0/pkg/sources/github_experimental/github_experimental.go new/trufflehog-3.94.1/pkg/sources/github_experimental/github_experimental.go --- old/trufflehog-3.94.0/pkg/sources/github_experimental/github_experimental.go 2026-03-20 15:39:48.000000000 +0100 +++ new/trufflehog-3.94.1/pkg/sources/github_experimental/github_experimental.go 2026-03-24 12:22:30.000000000 +0100 @@ -128,18 +128,18 @@ SkipBinaries: false, SkipArchives: false, Concurrency: concurrency, - SourceMetadataFunc: func(file, email, commit, timestamp, repository, repositoryLocalPath string, line int64) *source_metadatapb.MetaData { + SourceMetadataFunc: func(info git.SourceMetadataInfo) *source_metadatapb.MetaData { return &source_metadatapb.MetaData{ Data: &source_metadatapb.MetaData_Github{ Github: &source_metadatapb.Github{ - Commit: sanitizer.UTF8(commit), - File: sanitizer.UTF8(file), - Email: sanitizer.UTF8(email), - Repository: sanitizer.UTF8(repository), - Link: giturl.GenerateLink(repository, commit, file, line), - Timestamp: sanitizer.UTF8(timestamp), - Line: line, - Visibility: s.visibilityOf(aCtx, repository), + Commit: sanitizer.UTF8(info.Commit), + File: sanitizer.UTF8(info.File), + Email: sanitizer.UTF8(info.Email), + Repository: sanitizer.UTF8(info.Repository), + Link: giturl.GenerateLink(info.Repository, info.Commit, info.File, info.Line), + Timestamp: sanitizer.UTF8(info.Timestamp), + Line: info.Line, + Visibility: s.visibilityOf(aCtx, info.Repository), }, }, } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trufflehog-3.94.0/pkg/sources/gitlab/gitlab.go new/trufflehog-3.94.1/pkg/sources/gitlab/gitlab.go --- old/trufflehog-3.94.0/pkg/sources/gitlab/gitlab.go 2026-03-20 15:39:48.000000000 +0100 +++ new/trufflehog-3.94.1/pkg/sources/gitlab/gitlab.go 2026-03-24 12:22:30.000000000 +0100 @@ -231,18 +231,18 @@ SkipBinaries: conn.GetSkipBinaries(), SkipArchives: conn.GetSkipArchives(), Concurrency: concurrency, - SourceMetadataFunc: func(file, email, commit, timestamp, repository, repositoryLocalPath string, line int64) *source_metadatapb.MetaData { + SourceMetadataFunc: func(info git.SourceMetadataInfo) *source_metadatapb.MetaData { gitlabMetadata := &source_metadatapb.Gitlab{ - Commit: sanitizer.UTF8(commit), - File: sanitizer.UTF8(file), - Email: sanitizer.UTF8(email), - Repository: sanitizer.UTF8(repository), - RepositoryLocalPath: sanitizer.UTF8(repositoryLocalPath), - Link: giturl.GenerateLink(repository, commit, file, line), - Timestamp: sanitizer.UTF8(timestamp), - Line: line, + Commit: sanitizer.UTF8(info.Commit), + File: sanitizer.UTF8(info.File), + Email: sanitizer.UTF8(info.Email), + Repository: sanitizer.UTF8(info.Repository), + RepositoryLocalPath: sanitizer.UTF8(info.RepositoryLocalPath), + Link: giturl.GenerateLink(info.Repository, info.Commit, info.File, info.Line), + Timestamp: sanitizer.UTF8(info.Timestamp), + Line: info.Line, } - proj, ok := s.repoToProjCache.get(repository) + proj, ok := s.repoToProjCache.get(info.Repository) if ok { gitlabMetadata.ProjectId = int64(proj.id) gitlabMetadata.ProjectName = proj.name diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trufflehog-3.94.0/pkg/sources/huggingface/huggingface.go new/trufflehog-3.94.1/pkg/sources/huggingface/huggingface.go --- old/trufflehog-3.94.0/pkg/sources/huggingface/huggingface.go 2026-03-20 15:39:48.000000000 +0100 +++ new/trufflehog-3.94.1/pkg/sources/huggingface/huggingface.go 2026-03-24 12:22:30.000000000 +0100 @@ -235,19 +235,19 @@ SourceType: s.Type(), Verify: s.verify, Concurrency: concurrency, - SourceMetadataFunc: func(file, email, commit, timestamp, repository, repositoryLocalPath string, line int64) *source_metadatapb.MetaData { + SourceMetadataFunc: func(info git.SourceMetadataInfo) *source_metadatapb.MetaData { return &source_metadatapb.MetaData{ Data: &source_metadatapb.MetaData_Huggingface{ Huggingface: &source_metadatapb.Huggingface{ - Commit: sanitizer.UTF8(commit), - File: sanitizer.UTF8(file), - Email: sanitizer.UTF8(email), - Repository: sanitizer.UTF8(repository), - Link: giturl.GenerateLink(repository, commit, file, line), - Timestamp: sanitizer.UTF8(timestamp), - Line: line, - Visibility: s.visibilityOf(ctx, repository), - ResourceType: s.getResourceType(ctx, repository), + Commit: sanitizer.UTF8(info.Commit), + File: sanitizer.UTF8(info.File), + Email: sanitizer.UTF8(info.Email), + Repository: sanitizer.UTF8(info.Repository), + Link: giturl.GenerateLink(info.Repository, info.Commit, info.File, info.Line), + Timestamp: sanitizer.UTF8(info.Timestamp), + Line: info.Line, + Visibility: s.visibilityOf(ctx, info.Repository), + ResourceType: s.getResourceType(ctx, info.Repository), }, }, } ++++++ trufflehog.obsinfo ++++++ --- /var/tmp/diff_new_pack.3KV6bh/_old 2026-03-27 06:52:02.440238157 +0100 +++ /var/tmp/diff_new_pack.3KV6bh/_new 2026-03-27 06:52:02.456238817 +0100 @@ -1,5 +1,5 @@ name: trufflehog -version: 3.94.0 -mtime: 1774017588 -commit: 6c64db94d5b2e09d7e0948fb6bd3166cc6fffbc7 +version: 3.94.1 +mtime: 1774351350 +commit: 586f66d7886cd0b037c7c245d4a6e34ef357ab10 ++++++ vendor.tar.gz ++++++ /work/SRC/openSUSE:Factory/trufflehog/vendor.tar.gz /work/SRC/openSUSE:Factory/.trufflehog.new.8177/vendor.tar.gz differ: char 13, line 1
