models

package
v0.2.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 22, 2017 License: Apache-2.0 Imports: 2 Imported by: 0

Documentation

Overview

Package models holds all models that are needed across packages. We place these models in their own package so as to avoid circular dependencies between packages (which is a compile error).

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Plan

type Plan struct {
	// Project is the project this plan is for.
	Project Project
	// LocalPath is the absolute path to the plan on disk
	// (versus the relative path from the repo root).
	LocalPath string
}

Plan is the result of running an Atlantis plan command. This model is used to represent a plan on disk.

type Project

type Project struct {
	// RepoFullName is the owner and repo name, ex. "hootsuite/atlantis"
	RepoFullName string
	// Path to project root in the repo.
	// If "." then project is at root.
	// Never ends in "/".
	Path string
}

Project represents a Terraform project. Since there may be multiple Terraform projects in a single repo we also include Path to the project root relative to the repo root.

func NewProject

func NewProject(repoFullName string, path string) Project

NewProject constructs a Project. Use this constructor because it sets Path correctly.

type ProjectLock

type ProjectLock struct {
	// Project is the project that is being locked.
	Project Project
	// Pull is the pull request from which the command was run that
	// created this lock.
	Pull PullRequest
	// User is the username of the user that ran the command
	// that created this lock.
	User User
	// Workspace is the Terraform workspace that this
	// lock is being held against.
	Workspace string
	// Time is the time at which the lock was first created.
	Time time.Time
}

ProjectLock represents a lock on a project.

type PullRequest

type PullRequest struct {
	// Num is the pull request number or ID.
	Num int
	// HeadCommit points to the head of the branch that is being
	// pull requested into the base.
	HeadCommit string
	// URL is the url of the pull request.
	// ex. "https://github.com/hootsuite/atlantis/pull/1"
	URL string
	// Branch is the name of the head branch (not the base).
	Branch string
	// Author is the username of the pull request author.
	Author string
	// State will be one of Open or Closed.
	// Gitlab supports an additional "merged" state but Github doesn't so we map
	// merged to Closed.
	State PullRequestState
}

PullRequest is a VCS pull request. GitLab calls these Merge Requests.

type PullRequestState added in v0.2.0

type PullRequestState int
const (
	Open PullRequestState = iota
	Closed
)

type Repo

type Repo struct {
	// FullName is the owner and repo name separated
	// by a "/", ex. "hootsuite/atlantis".
	FullName string
	// Owner is just the repo owner, ex. "hootsuite".
	Owner string
	// Name is just the repo name, ex. "atlantis".
	Name string
	// CloneURL is the full HTTPS url for cloning with username and token string
	// ex. "https://username:token@github.com/atlantis/atlantis.git".
	CloneURL string
	// SanitizedCloneURL is the full HTTPS url for cloning without the username and password.
	// ex. "https://github.com/atlantis/atlantis.git".
	SanitizedCloneURL string
}

Repo is a VCS repository.

type User

type User struct {
	Username string
}

User is a VCS user.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL