shared

package
v2.0.1-0...-d4b4061 Latest Latest
Warning

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

Go to latest
Published: Sep 10, 2021 License: MIT Imports: 35 Imported by: 0

Documentation

Index

Constants

View Source
const (
	IssueMetadata metadataStateType = iota
	PRMetadata
)

Variables

This section is empty.

Functions

func AddMetadataToIssueParams

func AddMetadataToIssueParams(client *api.Client, baseRepo ghrepo.Interface, params map[string]interface{}, tb *IssueMetadataState) error

func BodySurvey

func BodySurvey(state *IssueMetadataState, templateContent, editorCommand string) error

func ColorForPR

func ColorForPR(pr api.PullRequest) string

func ColorForState

func ColorForState(state string) string

ColorForState returns a color constant for a PR/Issue state

func CommentList

func CommentList(io *iostreams.IOStreams, comments api.Comments, reviews api.PullRequestReviews, preview bool) (string, error)

func CommentableConfirmSubmitSurvey

func CommentableConfirmSubmitSurvey() (bool, error)

func CommentableEditSurvey

func CommentableEditSurvey(cf func() (config.Config, error), io *iostreams.IOStreams) func() (string, error)

func CommentableInteractiveEditSurvey

func CommentableInteractiveEditSurvey(cf func() (config.Config, error), io *iostreams.IOStreams) func() (string, error)

func CommentablePreRun

func CommentablePreRun(cmd *cobra.Command, opts *CommentableOptions) error

func CommentableRun

func CommentableRun(opts *CommentableOptions) error

func EditFieldsSurvey

func EditFieldsSurvey(editable *Editable, editorCommand string) error

func FetchOptions

func FetchOptions(client *api.Client, repo ghrepo.Interface, editable *Editable) error

func FieldsToEditSurvey

func FieldsToEditSurvey(editable *Editable) error

func FillFromJSON

func FillFromJSON(io *iostreams.IOStreams, recoverFile string, state *IssueMetadataState) error

func FindTemplates

func FindTemplates(dir, path string) ([]string, string)

func ListHeader

func ListHeader(repoName string, itemName string, matchCount int, totalMatchCount int, hasFilters bool) string

func ListURLWithQuery

func ListURLWithQuery(listURL string, options FilterOptions) (string, error)

func MetadataSurvey

func MetadataSurvey(io *iostreams.IOStreams, baseRepo ghrepo.Interface, fetcher RepoMetadataFetcher, state *IssueMetadataState) error

func NewMockFinder

func NewMockFinder(selector string, pr *api.PullRequest, repo ghrepo.Interface) *mockFinder

func NewTemplateManager

func NewTemplateManager(httpClient *http.Client, repo ghrepo.Interface, dir string, allowFS bool, isPR bool) *templateManager

func PreserveInput

func PreserveInput(io *iostreams.IOStreams, state *IssueMetadataState, createErr *error) func()

func PrintHeader

func PrintHeader(io *iostreams.IOStreams, s string)

func PrintMessage

func PrintMessage(io *iostreams.IOStreams, s string)

func QueryHasStateClause

func QueryHasStateClause(searchQuery string) bool

func RawCommentList

func RawCommentList(comments api.Comments, reviews api.PullRequestReviews) string

func ReactionGroupList

func ReactionGroupList(rgs api.ReactionGroups) string

func RunCommandFinder

func RunCommandFinder(selector string, pr *api.PullRequest, repo ghrepo.Interface) *mockFinder

RunCommandFinder is the NewMockFinder substitute to be used ONLY in runCommand-style tests.

func SearchQueryBuild

func SearchQueryBuild(options FilterOptions) string

func StateTitleWithColor

func StateTitleWithColor(cs *iostreams.ColorScheme, pr api.PullRequest) string

func TitleSurvey

func TitleSurvey(state *IssueMetadataState) error

func WithPrAndIssueQueryParams

func WithPrAndIssueQueryParams(client *api.Client, baseRepo ghrepo.Interface, baseURL string, state IssueMetadataState) (string, error)

Types

type Action

type Action int
const (
	SubmitAction Action = iota
	PreviewAction
	CancelAction
	MetadataAction
	EditCommitMessageAction
)

func ConfirmSubmission

func ConfirmSubmission(allowPreview bool, allowMetadata bool) (Action, error)

type Comment

type Comment interface {
	AuthorLogin() string
	Association() string
	Content() string
	Created() time.Time
	HiddenReason() string
	IsEdited() bool
	IsHidden() bool
	Link() string
	Reactions() api.ReactionGroups
	Status() string
}

type Commentable

type Commentable interface {
	Link() string
	Identifier() string
}

type CommentableOptions

type CommentableOptions struct {
	IO                    *iostreams.IOStreams
	HttpClient            func() (*http.Client, error)
	RetrieveCommentable   func() (Commentable, ghrepo.Interface, error)
	EditSurvey            func() (string, error)
	InteractiveEditSurvey func() (string, error)
	ConfirmSubmitSurvey   func() (bool, error)
	OpenInBrowser         func(string) error
	Interactive           bool
	InputType             InputType
	Body                  string
}

type Editable

type Editable struct {
	Title     EditableString
	Body      EditableString
	Base      EditableString
	Reviewers EditableSlice
	Assignees EditableSlice
	Labels    EditableSlice
	Projects  EditableSlice
	Milestone EditableString
	Metadata  api.RepoMetadataResult
}

func (Editable) AssigneeIds

func (e Editable) AssigneeIds(client *api.Client, repo ghrepo.Interface) (*[]string, error)

func (Editable) BodyValue

func (e Editable) BodyValue() *string

func (Editable) Dirty

func (e Editable) Dirty() bool

func (Editable) LabelIds

func (e Editable) LabelIds() (*[]string, error)

func (Editable) MilestoneId

func (e Editable) MilestoneId() (*string, error)

func (Editable) ProjectIds

func (e Editable) ProjectIds() (*[]string, error)

func (Editable) ReviewerIds

func (e Editable) ReviewerIds() (*[]string, *[]string, error)

func (Editable) TitleValue

func (e Editable) TitleValue() *string

type EditableSlice

type EditableSlice struct {
	Value   []string
	Add     []string
	Remove  []string
	Default []string
	Options []string
	Edited  bool
	Allowed bool
}

type EditableString

type EditableString struct {
	Value   string
	Default string
	Options []string
	Edited  bool
}

type FilterOptions

type FilterOptions struct {
	Entity     string
	State      string
	Assignee   string
	Labels     []string
	Author     string
	BaseBranch string
	Mention    string
	Milestone  string
	Search     string

	Fields []string
}

func (*FilterOptions) IsDefault

func (opts *FilterOptions) IsDefault() bool

type FindOptions

type FindOptions struct {
	// Selector can be a number with optional `#` prefix, a branch name with optional `<owner>:` prefix, or
	// a PR URL.
	Selector string
	// Fields lists the GraphQL fields to fetch for the PullRequest.
	Fields []string
	// BaseBranch is the name of the base branch to scope the PR-for-branch lookup to.
	BaseBranch string
	// States lists the possible PR states to scope the PR-for-branch lookup to.
	States []string
}

type InputType

type InputType int
const (
	InputTypeEditor InputType = iota
	InputTypeInline
	InputTypeWeb
)

type IssueMetadataState

type IssueMetadataState struct {
	Type metadataStateType

	Draft bool

	Body  string
	Title string

	Metadata   []string
	Reviewers  []string
	Assignees  []string
	Labels     []string
	Projects   []string
	Milestones []string

	MetadataResult *api.RepoMetadataResult
	// contains filtered or unexported fields
}

func (*IssueMetadataState) HasMetadata

func (tb *IssueMetadataState) HasMetadata() bool

func (*IssueMetadataState) IsDirty

func (tb *IssueMetadataState) IsDirty() bool

func (*IssueMetadataState) MarkDirty

func (tb *IssueMetadataState) MarkDirty()

type MeReplacer

type MeReplacer struct {
	// contains filtered or unexported fields
}

MeReplacer resolves usages of `@me` to the handle of the currently logged in user.

func NewMeReplacer

func NewMeReplacer(apiClient *api.Client, hostname string) *MeReplacer

func (*MeReplacer) Replace

func (r *MeReplacer) Replace(handle string) (string, error)

func (*MeReplacer) ReplaceSlice

func (r *MeReplacer) ReplaceSlice(handles []string) ([]string, error)

type MetadataFetcher

type MetadataFetcher struct {
	IO        *iostreams.IOStreams
	APIClient *api.Client
	Repo      ghrepo.Interface
	State     *IssueMetadataState
}

func (*MetadataFetcher) RepoMetadataFetch

func (mf *MetadataFetcher) RepoMetadataFetch(input api.RepoMetadataInput) (*api.RepoMetadataResult, error)

type NotFoundError

type NotFoundError struct {
	// contains filtered or unexported fields
}

func (*NotFoundError) Unwrap

func (err *NotFoundError) Unwrap() error

type PRFinder

type PRFinder interface {
	Find(opts FindOptions) (*api.PullRequest, ghrepo.Interface, error)
}

func NewFinder

func NewFinder(factory *cmdutil.Factory) PRFinder

type RepoMetadataFetcher

type RepoMetadataFetcher interface {
	RepoMetadataFetch(api.RepoMetadataInput) (*api.RepoMetadataResult, error)
}

type Template

type Template interface {
	Name() string
	NameForSubmit() string
	Body() []byte
}

Jump to

Keyboard shortcuts

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