From 5175861c84a857763dd422caeda4b1f05c84ea17 Mon Sep 17 00:00:00 2001 From: qwerty287 Date: Tue, 31 Mar 2026 12:50:29 +0200 Subject: [PATCH 1/5] Deprecate commit avatar env vars --- cli/exec/metadata.go | 4 ++-- pipeline/frontend/metadata/drone_compatibility.go | 2 +- .../frontend/metadata/drone_compatibility_test.go | 6 ------ pipeline/frontend/metadata/environment.go | 6 ++++-- pipeline/frontend/metadata/types.go | 13 +++++++------ server/pipeline/step_builder/metadata.go | 5 ++--- 6 files changed, 16 insertions(+), 20 deletions(-) diff --git a/cli/exec/metadata.go b/cli/exec/metadata.go index 934a81d9d83..c4c4daf024e 100644 --- a/cli/exec/metadata.go +++ b/cli/exec/metadata.go @@ -106,7 +106,7 @@ func metadataFromContext(_ context.Context, c *cli.Command, axis matrix.Axis, w metadataFileAndOverrideOrDefault(c, "commit-message", func(s string) { m.Curr.Commit.Message = s }, c.String) metadataFileAndOverrideOrDefault(c, "commit-author-name", func(s string) { m.Curr.Commit.Author.Name = s }, c.String) metadataFileAndOverrideOrDefault(c, "commit-author-email", func(s string) { m.Curr.Commit.Author.Email = s }, c.String) - metadataFileAndOverrideOrDefault(c, "commit-author-avatar", func(s string) { m.Curr.Commit.Author.Avatar = s }, c.String) + metadataFileAndOverrideOrDefault(c, "commit-author-avatar", func(s string) { m.Curr.Avatar = s }, c.String) //nolint:staticcheck metadataFileAndOverrideOrDefault(c, "commit-pull-labels", func(sl []string) { m.Curr.Commit.PullRequestLabels = sl }, c.StringSlice) metadataFileAndOverrideOrDefault(c, "commit-pull-milestone", func(s string) { m.Curr.Commit.PullRequestMilestone = s }, c.String) @@ -129,7 +129,7 @@ func metadataFromContext(_ context.Context, c *cli.Command, axis matrix.Axis, w metadataFileAndOverrideOrDefault(c, "prev-commit-message", func(s string) { m.Prev.Commit.Message = s }, c.String) metadataFileAndOverrideOrDefault(c, "prev-commit-author-name", func(s string) { m.Prev.Commit.Author.Name = s }, c.String) metadataFileAndOverrideOrDefault(c, "prev-commit-author-email", func(s string) { m.Prev.Commit.Author.Email = s }, c.String) - metadataFileAndOverrideOrDefault(c, "prev-commit-author-avatar", func(s string) { m.Prev.Commit.Author.Avatar = s }, c.String) + metadataFileAndOverrideOrDefault(c, "prev-commit-author-avatar", func(s string) { m.Prev.Avatar = s }, c.String) //nolint:staticcheck // Workflow metadataFileAndOverrideOrDefault(c, "workflow-name", func(s string) { m.Workflow.Name = s }, c.String) diff --git a/pipeline/frontend/metadata/drone_compatibility.go b/pipeline/frontend/metadata/drone_compatibility.go index d93d14d90ba..666b3de5e8a 100644 --- a/pipeline/frontend/metadata/drone_compatibility.go +++ b/pipeline/frontend/metadata/drone_compatibility.go @@ -42,7 +42,7 @@ func SetDroneEnviron(env map[string]string) { copyEnv("CI_COMMIT_AUTHOR", "DRONE_COMMIT_AUTHOR", env) copyEnv("CI_COMMIT_AUTHOR", "DRONE_COMMIT_AUTHOR_NAME", env) copyEnv("CI_COMMIT_AUTHOR_EMAIL", "DRONE_COMMIT_AUTHOR_EMAIL", env) - copyEnv("CI_COMMIT_AUTHOR_AVATAR", "DRONE_COMMIT_AUTHOR_AVATAR", env) + copyEnv("CI_PIPELINE_AVATAR", "DRONE_COMMIT_AUTHOR_AVATAR", env) // repo copyEnv("CI_REPO", "DRONE_REPO", env) copyEnv("CI_REPO_OWNER", "DRONE_REPO_OWNER", env) diff --git a/pipeline/frontend/metadata/drone_compatibility_test.go b/pipeline/frontend/metadata/drone_compatibility_test.go index e31d0a7ac1a..084b21ee8f4 100644 --- a/pipeline/frontend/metadata/drone_compatibility_test.go +++ b/pipeline/frontend/metadata/drone_compatibility_test.go @@ -26,7 +26,6 @@ import ( func TestSetDroneEnvironOnPull(t *testing.T) { woodpeckerVars := `CI=woodpecker CI_COMMIT_AUTHOR=6543 -CI_COMMIT_AUTHOR_AVATAR=https://codeberg.org/avatars/09a234c768cb9bca78f6b2f82d6af173 CI_COMMIT_BRANCH=main CI_COMMIT_MESSAGE=fix testscript CI_COMMIT_PULL_REQUEST=9 @@ -42,7 +41,6 @@ CI_PIPELINE_EVENT=pull_request CI_PIPELINE_NUMBER=41 CI_PIPELINE_STARTED=1685749339 CI_PREV_COMMIT_AUTHOR=6543 -CI_PREV_COMMIT_AUTHOR_AVATAR=https://codeberg.org/avatars/09a234c768cb9bca78f6b2f82d6af173 CI_PREV_COMMIT_BRANCH=main CI_PREV_COMMIT_MESSAGE=Print filename and linenuber on fail CI_PREV_COMMIT_REF=refs/pull/13/head @@ -77,7 +75,6 @@ DRONE_BUILD_STARTED=1685749339 DRONE_BUILD_STATUS=success DRONE_COMMIT=a778b069d9f5992786d2db9be493b43868cfce76 DRONE_COMMIT_AUTHOR=6543 -DRONE_COMMIT_AUTHOR_AVATAR=https://codeberg.org/avatars/09a234c768cb9bca78f6b2f82d6af173 DRONE_COMMIT_AUTHOR_NAME=6543 DRONE_COMMIT_BEFORE=e246aff5a9466df2e522efc9007823a7496d9d41 DRONE_COMMIT_BRANCH=main @@ -108,7 +105,6 @@ PULLREQUEST_DRONE_PULL_REQUEST=9` func TestSetDroneEnvironOnPush(t *testing.T) { woodpeckerVars := `CI_COMMIT_AUTHOR=test -CI_COMMIT_AUTHOR_AVATAR=http://1.2.3.4:3000/avatars/dd46a756faad4727fb679320751f6dea CI_COMMIT_AUTHOR_EMAIL=test@noreply.localhost CI_COMMIT_BRANCH=main CI_COMMIT_MESSAGE=revert 9b2aed1392fc097ef7b027712977722fb004d463 @@ -134,7 +130,6 @@ CI_PIPELINE_PARENT=23 CI_PIPELINE_STARTED=1721328737 CI_PIPELINE_URL=http://1.2.3.4:8000/repos/2/pipeline/24 CI_PREV_COMMIT_AUTHOR=test -CI_PREV_COMMIT_AUTHOR_AVATAR=http://1.2.3.4:3000/avatars/dd46a756faad4727fb679320751f6dea CI_PREV_COMMIT_AUTHOR_EMAIL=test@noreply.localhost CI_PREV_COMMIT_BRANCH=main CI_PREV_COMMIT_MESSAGE=revert 9b2aed1392fc097ef7b027712977722fb004d463 @@ -191,7 +186,6 @@ DRONE_BUILD_STARTED=1721328737 DRONE_BUILD_STATUS=success DRONE_COMMIT=8826c98181353075bbeee8f99b400496488e3523 DRONE_COMMIT_AUTHOR=test -DRONE_COMMIT_AUTHOR_AVATAR=http://1.2.3.4:3000/avatars/dd46a756faad4727fb679320751f6dea DRONE_COMMIT_AUTHOR_EMAIL=test@noreply.localhost DRONE_COMMIT_AUTHOR_NAME=test DRONE_COMMIT_BEFORE=8826c98181353075bbeee8f99b400496488e3523 diff --git a/pipeline/frontend/metadata/environment.go b/pipeline/frontend/metadata/environment.go index 3b1331ce4fc..912e2c09f95 100644 --- a/pipeline/frontend/metadata/environment.go +++ b/pipeline/frontend/metadata/environment.go @@ -96,7 +96,6 @@ func (m *Metadata) Environ() map[string]string { setNonEmptyEnvVar(params, "CI_COMMIT_BRANCH", commit.Branch) setNonEmptyEnvVar(params, "CI_COMMIT_AUTHOR", commit.Author.Name) setNonEmptyEnvVar(params, "CI_COMMIT_AUTHOR_EMAIL", commit.Author.Email) - setNonEmptyEnvVar(params, "CI_COMMIT_AUTHOR_AVATAR", commit.Author.Avatar) if p, f := strings.CutPrefix(pipeline.Commit.Ref, "refs/tags/"); f { setNonEmptyEnvVar(params, "CI_COMMIT_TAG", p) } @@ -150,13 +149,16 @@ func (m *Metadata) Environ() map[string]string { setNonEmptyEnvVar(params, "CI_PREV_COMMIT_BRANCH", prevCommit.Branch) setNonEmptyEnvVar(params, "CI_PREV_COMMIT_AUTHOR", prevCommit.Author.Name) setNonEmptyEnvVar(params, "CI_PREV_COMMIT_AUTHOR_EMAIL", prevCommit.Author.Email) - setNonEmptyEnvVar(params, "CI_PREV_COMMIT_AUTHOR_AVATAR", prevCommit.Author.Avatar) if EventIsPull(prevPipeline.Event) { prevSourceBranch, prevTargetBranch := getSourceTargetBranches(prevCommit.Refspec) setNonEmptyEnvVar(params, "CI_PREV_COMMIT_SOURCE_BRANCH", prevSourceBranch) setNonEmptyEnvVar(params, "CI_PREV_COMMIT_TARGET_BRANCH", prevTargetBranch) } + // TODO Deprecated, remove in next major + setNonEmptyEnvVar(params, "CI_COMMIT_AUTHOR_AVATAR", pipeline.Avatar) + setNonEmptyEnvVar(params, "CI_PREV_COMMIT_AUTHOR_AVATAR", prevPipeline.Avatar) + return params } diff --git a/pipeline/frontend/metadata/types.go b/pipeline/frontend/metadata/types.go index ef550315f87..982bbd26cb9 100644 --- a/pipeline/frontend/metadata/types.go +++ b/pipeline/frontend/metadata/types.go @@ -53,11 +53,13 @@ type ( ForgeURL string `json:"forge_url,omitempty"` DeployTo string `json:"target,omitempty"` DeployTask string `json:"task,omitempty"` - Commit Commit `json:"commit,omitempty"` + Commit Commit `json:"commit"` Parent int64 `json:"parent,omitempty"` Cron string `json:"cron,omitempty"` Author string `json:"author,omitempty"` - Avatar string `json:"avatar,omitempty"` + + // Deprecated: remove in next major + Avatar string `json:"avatar,omitempty"` } // Commit defines runtime metadata for a commit. @@ -67,7 +69,7 @@ type ( Refspec string `json:"refspec,omitempty"` Branch string `json:"branch,omitempty"` Message string `json:"message,omitempty"` - Author Author `json:"author,omitempty"` + Author Author `json:"author"` ChangedFiles []string `json:"changed_files,omitempty"` PullRequestLabels []string `json:"labels,omitempty"` PullRequestMilestone string `json:"milestone,omitempty"` @@ -76,9 +78,8 @@ type ( // Author defines runtime metadata for a commit author. Author struct { - Name string `json:"name,omitempty"` - Email string `json:"email,omitempty"` - Avatar string `json:"avatar,omitempty"` + Name string `json:"name,omitempty"` + Email string `json:"email,omitempty"` } // Workflow defines runtime metadata for a workflow. diff --git a/server/pipeline/step_builder/metadata.go b/server/pipeline/step_builder/metadata.go index b7b57d9ad10..f99928c2162 100644 --- a/server/pipeline/step_builder/metadata.go +++ b/server/pipeline/step_builder/metadata.go @@ -124,9 +124,8 @@ func metadataPipelineFromModelPipeline(pipeline *model.Pipeline, includeParent b Branch: pipeline.Branch, Message: pipeline.Message, Author: metadata.Author{ - Name: pipeline.Author, - Email: pipeline.Email, - Avatar: pipeline.Avatar, + Name: pipeline.Author, + Email: pipeline.Email, }, ChangedFiles: pipeline.ChangedFiles, PullRequestLabels: pipeline.PullRequestLabels, From ed4a6275e704278e2531daceb9a2b4e770cbe2d1 Mon Sep 17 00:00:00 2001 From: qwerty287 Date: Tue, 31 Mar 2026 12:52:53 +0200 Subject: [PATCH 2/5] revert deprecation --- pipeline/frontend/metadata/types.go | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/pipeline/frontend/metadata/types.go b/pipeline/frontend/metadata/types.go index 982bbd26cb9..542395b6c7f 100644 --- a/pipeline/frontend/metadata/types.go +++ b/pipeline/frontend/metadata/types.go @@ -57,9 +57,7 @@ type ( Parent int64 `json:"parent,omitempty"` Cron string `json:"cron,omitempty"` Author string `json:"author,omitempty"` - - // Deprecated: remove in next major - Avatar string `json:"avatar,omitempty"` + Avatar string `json:"avatar,omitempty"` } // Commit defines runtime metadata for a commit. From 397ac403fbd548dd3eac91b54f767326c758aa8f Mon Sep 17 00:00:00 2001 From: qwerty287 Date: Tue, 31 Mar 2026 12:55:48 +0200 Subject: [PATCH 3/5] fix lint --- cli/exec/metadata.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cli/exec/metadata.go b/cli/exec/metadata.go index c4c4daf024e..597ac796b01 100644 --- a/cli/exec/metadata.go +++ b/cli/exec/metadata.go @@ -106,7 +106,7 @@ func metadataFromContext(_ context.Context, c *cli.Command, axis matrix.Axis, w metadataFileAndOverrideOrDefault(c, "commit-message", func(s string) { m.Curr.Commit.Message = s }, c.String) metadataFileAndOverrideOrDefault(c, "commit-author-name", func(s string) { m.Curr.Commit.Author.Name = s }, c.String) metadataFileAndOverrideOrDefault(c, "commit-author-email", func(s string) { m.Curr.Commit.Author.Email = s }, c.String) - metadataFileAndOverrideOrDefault(c, "commit-author-avatar", func(s string) { m.Curr.Avatar = s }, c.String) //nolint:staticcheck + metadataFileAndOverrideOrDefault(c, "commit-author-avatar", func(s string) { m.Curr.Avatar = s }, c.String) metadataFileAndOverrideOrDefault(c, "commit-pull-labels", func(sl []string) { m.Curr.Commit.PullRequestLabels = sl }, c.StringSlice) metadataFileAndOverrideOrDefault(c, "commit-pull-milestone", func(s string) { m.Curr.Commit.PullRequestMilestone = s }, c.String) @@ -129,7 +129,7 @@ func metadataFromContext(_ context.Context, c *cli.Command, axis matrix.Axis, w metadataFileAndOverrideOrDefault(c, "prev-commit-message", func(s string) { m.Prev.Commit.Message = s }, c.String) metadataFileAndOverrideOrDefault(c, "prev-commit-author-name", func(s string) { m.Prev.Commit.Author.Name = s }, c.String) metadataFileAndOverrideOrDefault(c, "prev-commit-author-email", func(s string) { m.Prev.Commit.Author.Email = s }, c.String) - metadataFileAndOverrideOrDefault(c, "prev-commit-author-avatar", func(s string) { m.Prev.Avatar = s }, c.String) //nolint:staticcheck + metadataFileAndOverrideOrDefault(c, "prev-commit-author-avatar", func(s string) { m.Prev.Avatar = s }, c.String) // Workflow metadataFileAndOverrideOrDefault(c, "workflow-name", func(s string) { m.Workflow.Name = s }, c.String) From 07b497dde809f99152e951cecf53da0cf5409ac1 Mon Sep 17 00:00:00 2001 From: qwerty287 Date: Tue, 31 Mar 2026 12:56:19 +0200 Subject: [PATCH 4/5] add todos --- cli/exec/metadata.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cli/exec/metadata.go b/cli/exec/metadata.go index 597ac796b01..a064cc4adfc 100644 --- a/cli/exec/metadata.go +++ b/cli/exec/metadata.go @@ -106,6 +106,7 @@ func metadataFromContext(_ context.Context, c *cli.Command, axis matrix.Axis, w metadataFileAndOverrideOrDefault(c, "commit-message", func(s string) { m.Curr.Commit.Message = s }, c.String) metadataFileAndOverrideOrDefault(c, "commit-author-name", func(s string) { m.Curr.Commit.Author.Name = s }, c.String) metadataFileAndOverrideOrDefault(c, "commit-author-email", func(s string) { m.Curr.Commit.Author.Email = s }, c.String) + // TODO remove in next major metadataFileAndOverrideOrDefault(c, "commit-author-avatar", func(s string) { m.Curr.Avatar = s }, c.String) metadataFileAndOverrideOrDefault(c, "commit-pull-labels", func(sl []string) { m.Curr.Commit.PullRequestLabels = sl }, c.StringSlice) @@ -129,6 +130,7 @@ func metadataFromContext(_ context.Context, c *cli.Command, axis matrix.Axis, w metadataFileAndOverrideOrDefault(c, "prev-commit-message", func(s string) { m.Prev.Commit.Message = s }, c.String) metadataFileAndOverrideOrDefault(c, "prev-commit-author-name", func(s string) { m.Prev.Commit.Author.Name = s }, c.String) metadataFileAndOverrideOrDefault(c, "prev-commit-author-email", func(s string) { m.Prev.Commit.Author.Email = s }, c.String) + // TODO remove in next major metadataFileAndOverrideOrDefault(c, "prev-commit-author-avatar", func(s string) { m.Prev.Avatar = s }, c.String) // Workflow From cca8047601af2fbc1236e9d8e403f2e3a3076799 Mon Sep 17 00:00:00 2001 From: qwerty287 Date: Tue, 31 Mar 2026 13:00:30 +0200 Subject: [PATCH 5/5] openapi --- cmd/server/openapi/docs.go | 3 --- 1 file changed, 3 deletions(-) diff --git a/cmd/server/openapi/docs.go b/cmd/server/openapi/docs.go index 5bc9d825223..5bdf20122b5 100644 --- a/cmd/server/openapi/docs.go +++ b/cmd/server/openapi/docs.go @@ -5826,9 +5826,6 @@ const docTemplate = `{ "metadata.Author": { "type": "object", "properties": { - "avatar": { - "type": "string" - }, "email": { "type": "string" },