From 25dcc45148dfa16bb8d784ebbc891b69da4aba72 Mon Sep 17 00:00:00 2001 From: Don Date: Mon, 9 Sep 2019 14:02:00 -0700 Subject: [PATCH] Add Repo struct --- pkg/plugin/env.go | 29 +++++++++++++++++++++++++++++ pkg/plugin/types.go | 28 ++++++++++++++++++++++++++++ 2 files changed, 57 insertions(+) diff --git a/pkg/plugin/env.go b/pkg/plugin/env.go index 33f9c7a..1418d9d 100644 --- a/pkg/plugin/env.go +++ b/pkg/plugin/env.go @@ -20,6 +20,35 @@ import ( // Drone prior to the 1.0 release. const ( + // The following environment variables are being ignored currently + // + // * DRONE_GIT_HTTP_URL + // * DRONE_GIT_SSH_URL + // * DRONE_REPO_NAMESPACE - Redundant to DRONE_REPO_OWNER + + //--------------------------------------------------------------------- + // Repo Enviornment Variables + //--------------------------------------------------------------------- + + // RepoDefaultBranchEnvVar corresponds to Repo.DefaultBranch. + RepoDefaultBranchEnvVar = "DRONE_REPO_BRANCH" + // RepoFullNameEnvVar corresponds to Repo.FullName. + RepoFullNameEnvVar = "DRONE_REPO" + // RepoLinkEnvVar corresponds to Repo.Link. + RepoLinkEnvVar = "DRONE_REPO_LINK" + // RepoNameEnvVar corresponds to Repo.Name + RepoNameEnvVar = "DRONE_REPO_NAME" + // RepoOwnerEnvVar corresponds to Repo.Owner. + RepoOwnerEnvVar = "DRONE_REPO_OWNER" + // RepoPrivateEnvVar corresponds to Repo.Private. + RepoPrivateEnvVar = "DRONE_REPO_PRIVATE" + // RepoRemoteURLEnvVar corresponds to Repo.RemoteURL. + RepoRemoteURLEnvVar = "DRONE_REMOTE_URL" + // RepoSCMEnvVar corresponds to Repo.SCM. + RepoSCMEnvVar = "DRONE_REPO_SCM" + // RepoVisibilityEnvVar corresponds to Repo.Visbility. + RepoVisibilityEnvVar = "DRONE_REPO_VISIBILITY" + //--------------------------------------------------------------------- // Stage Enviornment Variables //--------------------------------------------------------------------- diff --git a/pkg/plugin/types.go b/pkg/plugin/types.go index 4c063dc..ad11a3a 100644 --- a/pkg/plugin/types.go +++ b/pkg/plugin/types.go @@ -27,6 +27,19 @@ type ( Step Step } + // Repo represents the repository for the build. + Repo struct { + DefaultBranch string + FullName string + Link string + Name string + Owner string + Private bool + RemoteURL string + SCM string + Visibility string + } + // Stage represents a build stage. Stage struct { // Arch is the platform architecture of the current build stage. @@ -88,6 +101,21 @@ type ( } ) +// RepoFromEnv creates a Repo from the environment variables used by Drone. +func RepoFromEnv() Repo { + return Repo{ + DefaultBranch: StringEnvVar(RepoDefaultBranchEnvVar), + FullName: StringEnvVar(RepoFullNameEnvVar), + Link: StringEnvVar(RepoLinkEnvVar), + Name: StringEnvVar(RepoNameEnvVar), + Owner: StringEnvVar(RepoOwnerEnvVar), + Private: BoolEnvVar(RepoPrivateEnvVar), + RemoteURL: StringEnvVar(RepoRemoteURLEnvVar), + SCM: StringEnvVar(RepoSCMEnvVar), + Visibility: StringEnvVar(RepoVisibilityEnvVar), + } +} + // StageFromEnv creates a Stage from the environment variables used by Drone. func StageFromEnv() Stage { return Stage{