diff --git a/commit.go b/commit.go index df9e694..4e8695c 100644 --- a/commit.go +++ b/commit.go @@ -41,7 +41,7 @@ type ( } ) -func currFlags() []cli.Flag { +func commitFlags() []cli.Flag { return []cli.Flag{ &cli.StringFlag{ Name: "commit.sha", @@ -106,7 +106,7 @@ func currFlags() []cli.Flag { } } -func currFromContext(c *cli.Context) Commit { +func commitFromContext(c *cli.Context) Commit { return Commit{ Sha: c.String("commit.sha"), Ref: c.String("commit.ref"), @@ -125,7 +125,7 @@ func currFromContext(c *cli.Context) Commit { } } -func prevFlags() []cli.Flag { +func previousCommitFlags() []cli.Flag { return []cli.Flag{ &cli.StringFlag{ Name: "prev.commit.sha", @@ -170,7 +170,7 @@ func prevFlags() []cli.Flag { } } -func prevFromContext(c *cli.Context) Commit { +func previousCommitFromContext(c *cli.Context) Commit { return Commit{ Sha: c.String("prev.commit.sha"), Ref: c.String("prev.commit.ref"), diff --git a/flags.go b/flags.go index 2107685..84394f6 100644 --- a/flags.go +++ b/flags.go @@ -25,8 +25,8 @@ func Flags() []cli.Flag { // Pipeline flags flags = append(flags, repositoryFlags()...) flags = append(flags, pipelineFlags()...) - flags = append(flags, currFlags()...) - flags = append(flags, prevFlags()...) + flags = append(flags, commitFlags()...) + flags = append(flags, previousCommitFlags()...) flags = append(flags, stepFlags()...) flags = append(flags, systemFlags()...) flags = append(flags, forgeFlags()...) diff --git a/forge.go b/forge.go index 9e14ae3..c60a31d 100644 --- a/forge.go +++ b/forge.go @@ -28,6 +28,9 @@ const ( // Forge defines metadata for integration with a forge. type Forge struct { Type string `json:"type,omitempty"` + URL string `json:"url,omitempty"` + + // Deprecated: Please use URL instead. Link string `json:"link,omitempty"` } @@ -35,14 +38,15 @@ func forgeFlags() []cli.Flag { return []cli.Flag{ &cli.StringFlag{ Name: "forge.type", - Usage: "forge type (gitea, github, gitlab, bitbucker)", + Usage: "forge type (gitea, github, gitlab, bitbucket)", EnvVars: []string{ "CI_FORGE_TYPE", }, }, &cli.StringFlag{ - Name: "forge.link", - Usage: "forge link", + Name: "forge.url", + Aliases: []string{"forge.link"}, + Usage: "forge url", EnvVars: []string{ "CI_FORGE_URL", "CI_FORGE_LINK", @@ -54,6 +58,7 @@ func forgeFlags() []cli.Flag { func forgeFromContext(ctx *cli.Context) Forge { return Forge{ Type: ctx.String("forge.type"), - Link: ctx.String("forge.link"), + Link: ctx.String("forge.url"), + URL: ctx.String("forge.url"), } } diff --git a/metadata.go b/metadata.go index 4b6ce24..2be333c 100644 --- a/metadata.go +++ b/metadata.go @@ -20,24 +20,36 @@ import ( // Metadata defines runtime metadata. type Metadata struct { - Repository Repository `json:"repo,omitempty"` - Pipeline Pipeline `json:"curr,omitempty"` - Curr Commit `json:"commit,omitempty"` - Prev Commit `json:"prev,omitempty"` - Step Step `json:"step,omitempty"` - System System `json:"sys,omitempty"` - Forge Forge `json:"forge,omitempty"` + Repository Repository `json:"repo,omitempty"` + Pipeline Pipeline `json:"curr,omitempty"` + Commit Commit `json:"commit,omitempty"` + PreviousCommit Commit `json:"previous_commit,omitempty"` + Step Step `json:"step,omitempty"` + System System `json:"sys,omitempty"` + Forge Forge `json:"forge,omitempty"` + + // Deprecated: Please use Commit instead. + Curr Commit + + // Deprecated: Please use PreviousCommit instead. + Prev Commit `json:"prev,omitempty"` } // MetadataFromContext creates a Metadata from the cli.Context. func MetadataFromContext(ctx *cli.Context) Metadata { + commit := commitFromContext(ctx) + previousCommit := previousCommitFromContext(ctx) + return Metadata{ - Repository: repositoryFromContext(ctx), - Pipeline: pipelineFromContext(ctx), - Curr: currFromContext(ctx), - Prev: prevFromContext(ctx), - Step: stepFromContext(ctx), - System: systemFromContext(ctx), - Forge: forgeFromContext(ctx), + Repository: repositoryFromContext(ctx), + Pipeline: pipelineFromContext(ctx), + Commit: commit, + PreviousCommit: previousCommit, + Step: stepFromContext(ctx), + System: systemFromContext(ctx), + Forge: forgeFromContext(ctx), + + Curr: commit, + Prev: previousCommit, } } diff --git a/metadata_test.go b/metadata_test.go index 5f8c7bc..3d8e89b 100644 --- a/metadata_test.go +++ b/metadata_test.go @@ -85,7 +85,7 @@ func TestMetadata(t *testing.T) { // Repository assert.Equal(t, "woodpecker", plugin.Metadata.Repository.Name) assert.Equal(t, "woodpecker-ci", plugin.Metadata.Repository.Owner) - assert.Equal(t, "https://codeberg.org/woodpecker-plugins/go-plugin", plugin.Metadata.Repository.Link) + assert.Equal(t, "https://codeberg.org/woodpecker-plugins/go-plugin", plugin.Metadata.Repository.URL) assert.Equal(t, "https://codeberg.org/woodpecker-plugins/go-plugin.git", plugin.Metadata.Repository.CloneURL) assert.Equal(t, "main", plugin.Metadata.Repository.Branch) assert.False(t, plugin.Metadata.Repository.Private) @@ -103,7 +103,7 @@ func TestMetadata(t *testing.T) { // Pipeline assert.Equal(t, int64(1), plugin.Metadata.Pipeline.Number) assert.Equal(t, EventTypePush, plugin.Metadata.Pipeline.Event) - assert.Equal(t, "https://ci.woodpecker-ci.org/woodpecker-ci/woodpecker/1", plugin.Metadata.Pipeline.Link) + assert.Equal(t, "https://ci.woodpecker-ci.org/woodpecker-ci/woodpecker/1", plugin.Metadata.Pipeline.URL) assert.Equal(t, "running", plugin.Metadata.Pipeline.Status) assert.Equal(t, time.Unix(1611234567, 0), plugin.Metadata.Pipeline.Created) assert.Equal(t, time.Unix(1611234567, 0), plugin.Metadata.Pipeline.Started) @@ -114,11 +114,11 @@ func TestMetadata(t *testing.T) { // System assert.Equal(t, "woodpecker", plugin.Metadata.System.Name) - assert.Equal(t, "https://ci.woodpecker-ci.org", plugin.Metadata.System.Link) + assert.Equal(t, "https://ci.woodpecker-ci.org", plugin.Metadata.System.URL) assert.Equal(t, "1.0.0", plugin.Metadata.System.Version) assert.Equal(t, "woodpecker-ci.org", plugin.Metadata.System.Host) // Forge assert.Equal(t, ForgeTypeGitea, plugin.Metadata.Forge.Type) - assert.Equal(t, "https://codeberg.org", plugin.Metadata.Forge.Link) + assert.Equal(t, "https://codeberg.org", plugin.Metadata.Forge.URL) } diff --git a/pipeline.go b/pipeline.go index 218534a..65a4444 100644 --- a/pipeline.go +++ b/pipeline.go @@ -34,12 +34,15 @@ type Pipeline struct { Number int64 `json:"number,omitempty"` Status string `json:"status,omitempty"` Event string `json:"event,omitempty"` - Link string `json:"link,omitempty"` + URL string `json:"url,omitempty"` DeployTarget string `json:"target,omitempty"` Created time.Time `json:"created,omitempty"` Started time.Time `json:"started,omitempty"` Finished time.Time `json:"finished,omitempty"` Parent int64 `json:"parent,omitempty"` + + // Deprecated: Please use URL instead. + Link string `json:"link,omitempty"` } func pipelineFlags() []cli.Flag { @@ -69,8 +72,9 @@ func pipelineFlags() []cli.Flag { }, }, &cli.StringFlag{ - Name: "pipeline.link", - Usage: "pipeline link", + Name: "pipeline.url", + Aliases: []string{"pipeline.link"}, + Usage: "pipeline url", EnvVars: []string{ "CI_PIPELINE_URL", "CI_PIPELINE_LINK", @@ -125,7 +129,8 @@ func pipelineFromContext(c *cli.Context) Pipeline { Number: c.Int64("pipeline.number"), Status: c.String("pipeline.status"), Event: c.String("pipeline.event"), - Link: c.String("pipeline.link"), + URL: c.String("pipeline.url"), + Link: c.String("pipeline.url"), DeployTarget: c.String("pipeline.deploy-target"), Created: time.Unix(c.Int64("pipeline.created"), 0), Started: time.Unix(c.Int64("pipeline.started"), 0), diff --git a/repo.go b/repo.go index 0b4e1ef..9040471 100644 --- a/repo.go +++ b/repo.go @@ -20,16 +20,28 @@ import ( // Repository defines runtime metadata for a repository. type Repository struct { - Name string `json:"name,omitempty"` - Owner string `json:"owner,omitempty"` - Link string `json:"link,omitempty"` - CloneURL string `json:"clone_url,omitempty"` - Private bool `json:"private,omitempty"` - Branch string `json:"default_branch,omitempty"` + RemoteID string `json:"remote_id,omitempty"` + Name string `json:"name,omitempty"` + Owner string `json:"owner,omitempty"` + Link string `json:"link,omitempty"` + URL string `json:"url,omitempty"` + CloneURL string `json:"clone_url,omitempty"` + Private bool `json:"private,omitempty"` + DefaultBranch string `json:"default_branch,omitempty"` + + // Deprecated: Please use DefaultBranch instead. + Branch string } func repositoryFlags() []cli.Flag { return []cli.Flag{ + &cli.StringFlag{ + Name: "repo.remote-id", + Usage: "repo remote id", + EnvVars: []string{ + "CI_REPO_REMOTE_ID", + }, + }, &cli.StringFlag{ Name: "repo.name", Usage: "repo name", @@ -47,8 +59,9 @@ func repositoryFlags() []cli.Flag { }, }, &cli.StringFlag{ - Name: "repo.link", - Usage: "repo link", + Name: "repo.url", + Aliases: []string{"repo.link"}, + Usage: "repo url", EnvVars: []string{ "CI_REPO_URL", "CI_REPO_LINK", @@ -84,11 +97,14 @@ func repositoryFlags() []cli.Flag { func repositoryFromContext(c *cli.Context) Repository { return Repository{ - Name: c.String("repo.name"), - Owner: c.String("repo.owner"), - Link: c.String("repo.link"), - CloneURL: c.String("repo.clone-url"), - Private: c.Bool("repo.private"), - Branch: c.String("repo.default-branch"), + RemoteID: c.String("repo.remote-id"), + Name: c.String("repo.name"), + Owner: c.String("repo.owner"), + URL: c.String("repo.url"), + Link: c.String("repo.url"), + CloneURL: c.String("repo.clone-url"), + Private: c.Bool("repo.private"), + Branch: c.String("repo.default-branch"), + DefaultBranch: c.String("repo.default-branch"), } } diff --git a/system.go b/system.go index 658e1ef..59ed29e 100644 --- a/system.go +++ b/system.go @@ -24,9 +24,12 @@ import ( type System struct { Name string `json:"name,omitempty"` Host string `json:"host,omitempty"` - Link string `json:"link,omitempty"` Platform string `json:"arch,omitempty"` Version string `json:"version,omitempty"` + URL string `json:"url,omitempty"` + + // Deprecated: Please use URL instead. + Link string `json:"link,omitempty"` } func systemFlags() []cli.Flag { @@ -48,8 +51,9 @@ func systemFlags() []cli.Flag { }, }, &cli.StringFlag{ - Name: "system.link", - Usage: "system link", + Name: "system.url", + Aliases: []string{"system.link"}, + Usage: "system url", EnvVars: []string{ "CI_SYSTEM_URL", "CI_SYSTEM_LINK", @@ -75,19 +79,20 @@ func systemFlags() []cli.Flag { } func systemFromContext(ctx *cli.Context) System { - link := ctx.String("system.link") + url := ctx.String("system.url") host := ctx.String("system.host") - if link == "" && host != "" { - // Alternative link format used by Drone. + if url == "" && host != "" { + // Alternative url format used by Drone. proto := os.Getenv("DRONE_SYSTEM_PROTO") if proto != "" { - link = proto + "://" + host + url = proto + "://" + host } } return System{ Name: ctx.String("system.name"), Host: host, - Link: link, + URL: url, + Link: url, Platform: ctx.String("system.arch"), Version: ctx.String("system.version"), }