AzureDevopsClient

package
v0.0.0-...-881f0f7 Latest Latest
Warning

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

Go to latest
Published: Jun 1, 2024 License: MIT Imports: 14 Imported by: 0

Documentation

Index

Constants

View Source
const (
	AZURE_DEVOPS_SCOPE = "499b84ac-1321-427f-aa17-267ca6975798/.default"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type AgentPool

type AgentPool struct {
	Id       int64
	IsHosted bool
	Name     string
}

type AgentPoolAgent

type AgentPoolAgent struct {
	Id                int64
	Enabled           bool
	MaxParallelism    int64
	Name              string
	OsDescription     string
	ProvisioningState string
	Status            string
	Version           string
	CreatedOn         time.Time
	AssignedRequest   JobRequest
}

type AgentPoolAgentList

type AgentPoolAgentList struct {
	Count int              `json:"count"`
	List  []AgentPoolAgent `json:"value"`
}

type AgentPoolEntry

type AgentPoolEntry struct {
	CreatedOn     time.Time `json:"createdOn"`
	AutoProvision bool      `json:"autoProvision"`
	AutoUpdate    bool      `json:"autoUpdate"`
	AutoSize      bool      `json:"autoSize"`
	CreatedBy     struct {
		DisplayName string `json:"displayName"`
		URL         string `json:"url"`
		Links       struct {
			Avatar struct {
				Href string `json:"href"`
			} `json:"avatar"`
		} `json:"_links"`
		ID         string `json:"id"`
		UniqueName string `json:"uniqueName"`
		ImageURL   string `json:"imageUrl"`
		Descriptor string `json:"descriptor"`
	} `json:"createdBy"`
	Owner struct {
		DisplayName string `json:"displayName"`
		URL         string `json:"url"`
		Links       struct {
			Avatar struct {
				Href string `json:"href"`
			} `json:"avatar"`
		} `json:"_links"`
		ID         string `json:"id"`
		UniqueName string `json:"uniqueName"`
		ImageURL   string `json:"imageUrl"`
		Descriptor string `json:"descriptor"`
	} `json:"owner"`
	ID       int64  `json:"id"`
	Scope    string `json:"scope"`
	Name     string `json:"name"`
	IsHosted bool   `json:"isHosted"`
	PoolType string `json:"poolType"`
	Size     int    `json:"size"`
	IsLegacy bool   `json:"isLegacy"`
	Options  string `json:"options"`
}

type AgentPoolJobList

type AgentPoolJobList struct {
	Count int          `json:"count"`
	List  []JobRequest `json:"value"`
}

type AgentPoolList

type AgentPoolList struct {
	Count int              `json:"count"`
	Value []AgentPoolEntry `json:"value"`
}

type AgentPoolQueue

type AgentPoolQueue struct {
	Id   int64
	Name string
	Pool AgentPool
	Url  string
}

type AgentQueue

type AgentQueue struct {
	Id   int64  `json:"id"`
	Name string `json:"name"`
	Pool struct {
		Id       int64
		Scope    string
		Name     string
		IsHosted bool
		PoolType string
		Size     int64
	}
}

type AgentQueueList

type AgentQueueList struct {
	Count int          `json:"count"`
	List  []AgentQueue `json:"value"`
}

type Author

type Author struct {
	Name  string
	Email string
	Date  time.Time
}

type AzureDevopsClient

type AzureDevopsClient struct {

	// RequestCount has to be the first words
	// in order to be 64-aligned on 32-bit architectures.
	RequestCount   uint64
	RequestRetries int

	HostUrl *string

	ApiVersion string

	LimitProject                      int64
	LimitBuildsPerProject             int64
	LimitBuildsPerDefinition          int64
	LimitReleasesPerDefinition        int64
	LimitDeploymentPerDefinition      int64
	LimitReleaseDefinitionsPerProject int64
	LimitReleasesPerProject           int64
	// contains filtered or unexported fields
}

func NewAzureDevopsClient

func NewAzureDevopsClient(logger *zap.SugaredLogger) *AzureDevopsClient

func (*AzureDevopsClient) GetCurrentConcurrency

func (c *AzureDevopsClient) GetCurrentConcurrency() float64

func (*AzureDevopsClient) GetRequestCount

func (c *AzureDevopsClient) GetRequestCount() float64

func (*AzureDevopsClient) GetResourceUsageAgent

func (c *AzureDevopsClient) GetResourceUsageAgent() (ret ResourceUsageAgent, error error)

func (*AzureDevopsClient) GetResourceUsageBuild

func (c *AzureDevopsClient) GetResourceUsageBuild() (ret ResourceUsageBuild, error error)

func (*AzureDevopsClient) GetWorkItem

func (c *AzureDevopsClient) GetWorkItem(workItemUrl string) (workItem WorkItem, error error)

func (*AzureDevopsClient) Init

func (c *AzureDevopsClient) Init()

func (*AzureDevopsClient) ListAgentPoolAgents

func (c *AzureDevopsClient) ListAgentPoolAgents(agentPoolId int64) (list AgentPoolAgentList, error error)

func (*AzureDevopsClient) ListAgentPoolJobs

func (c *AzureDevopsClient) ListAgentPoolJobs(agentPoolId int64) (list AgentPoolJobList, error error)

func (*AzureDevopsClient) ListAgentPools

func (c *AzureDevopsClient) ListAgentPools() (list AgentPoolList, error error)

func (*AzureDevopsClient) ListAgentQueues

func (c *AzureDevopsClient) ListAgentQueues(project string) (list AgentQueueList, error error)

func (*AzureDevopsClient) ListBuildDefinitions

func (c *AzureDevopsClient) ListBuildDefinitions(project string) (list BuildDefinitionList, error error)

func (*AzureDevopsClient) ListBuildHistory

func (c *AzureDevopsClient) ListBuildHistory(project string, minTime time.Time) (list BuildList, error error)

func (*AzureDevopsClient) ListBuildHistoryWithStatus

func (c *AzureDevopsClient) ListBuildHistoryWithStatus(project string, minTime time.Time, statusFilter string) (list BuildList, error error)

func (*AzureDevopsClient) ListBuildTags

func (c *AzureDevopsClient) ListBuildTags(project string, buildID string) (list TagList, error error)

func (*AzureDevopsClient) ListBuildTimeline

func (c *AzureDevopsClient) ListBuildTimeline(project string, buildID string) (list TimelineRecordList, error error)

func (*AzureDevopsClient) ListBuilds

func (c *AzureDevopsClient) ListBuilds(project string) (list BuildList, error error)

func (*AzureDevopsClient) ListCommits

func (c *AzureDevopsClient) ListCommits(project string, repository string, fromDate time.Time) (list RepositoryCommitList, error error)

func (*AzureDevopsClient) ListLatestBuilds

func (c *AzureDevopsClient) ListLatestBuilds(project string) (list BuildList, error error)

func (*AzureDevopsClient) ListProjects

func (c *AzureDevopsClient) ListProjects() (list ProjectList, error error)

func (*AzureDevopsClient) ListPullrequest

func (c *AzureDevopsClient) ListPullrequest(project, repositoryId string) (list PullRequestList, error error)

func (*AzureDevopsClient) ListPushes

func (c *AzureDevopsClient) ListPushes(project string, repository string, fromDate time.Time) (list RepositoryPushList, error error)

func (*AzureDevopsClient) ListReleaseDefinitions

func (c *AzureDevopsClient) ListReleaseDefinitions(project string) (list ReleaseDefinitionList, error error)

func (*AzureDevopsClient) ListReleaseDeployments

func (c *AzureDevopsClient) ListReleaseDeployments(project string, releaseDefinitionId int64) (list ReleaseDeploymentList, error error)

func (*AzureDevopsClient) ListReleaseHistory

func (c *AzureDevopsClient) ListReleaseHistory(project string, minTime time.Time) (list ReleaseList, error error)

func (*AzureDevopsClient) ListReleases

func (c *AzureDevopsClient) ListReleases(project string, releaseDefinitionId int64) (list ReleaseList, error error)

func (*AzureDevopsClient) ListRepositories

func (c *AzureDevopsClient) ListRepositories(project string) (list RepositoryList, error error)

func (*AzureDevopsClient) QueryWorkItems

func (c *AzureDevopsClient) QueryWorkItems(queryPath, projectId string) (list WorkItemInfoList, error error)

func (*AzureDevopsClient) SetAccessToken

func (c *AzureDevopsClient) SetAccessToken(token string)

func (*AzureDevopsClient) SetApiVersion

func (c *AzureDevopsClient) SetApiVersion(apiversion string)

func (*AzureDevopsClient) SetConcurrency

func (c *AzureDevopsClient) SetConcurrency(v int64)

func (*AzureDevopsClient) SetOrganization

func (c *AzureDevopsClient) SetOrganization(url string)

func (*AzureDevopsClient) SetRetries

func (c *AzureDevopsClient) SetRetries(v int)

func (*AzureDevopsClient) SetUserAgent

func (c *AzureDevopsClient) SetUserAgent(v string)

func (*AzureDevopsClient) SupportsPatAuthentication

func (c *AzureDevopsClient) SupportsPatAuthentication() bool

func (*AzureDevopsClient) UseAzAuth

func (c *AzureDevopsClient) UseAzAuth() error

type Build

type Build struct {
	Id                  int64  `json:"id"`
	BuildNumber         string `json:"buildNumber"`
	BuildNumberRevision int64  `json:"buildNumberRevision"`
	Quality             string `json:"quality"`

	Definition BuildDefinition

	Project Project

	Queue AgentPoolQueue

	Reason        string
	Result        string
	Status        string
	QueueTime     time.Time
	QueuePosition string
	StartTime     time.Time
	FinishTime    time.Time
	Uri           string
	Url           string
	SourceBranch  string
	SourceVersion string

	RequestedBy  IdentifyRef
	RequestedFor IdentifyRef

	Links Links `json:"_links"`
}

func (*Build) QueueDuration

func (b *Build) QueueDuration() time.Duration

type BuildDefinition

type BuildDefinition struct {
	Id              int64
	Name            string
	Path            string
	Revision        int64
	QueueStatus     string
	BuildNameFormat string
	Links           Links `json:"_links"`
}

type BuildDefinitionList

type BuildDefinitionList struct {
	Count int               `json:"count"`
	List  []BuildDefinition `json:"value"`
}

type BuildList

type BuildList struct {
	Count int     `json:"count"`
	List  []Build `json:"value"`
}

type EntraIdErrorResponse

type EntraIdErrorResponse struct {
	Error            *string `json:"error"`
	ErrorDescription *string `json:"error_description"`
}

type EntraIdToken

type EntraIdToken struct {
	TokenType    *string `json:"token_type"`
	ExpiresIn    *int64  `json:"expires_in"`
	ExtExpiresIn *int64  `json:"ext_expires_in"`
	AccessToken  *string `json:"access_token"`
}

type IdentifyRef

type IdentifyRef struct {
	Id          string
	DisplayName string
	ProfileUrl  string
	UniqueName  string
	Url         string
	Descriptor  string
}

type JobRequest

type JobRequest struct {
	RequestId    int64
	Demands      []string
	QueueTime    time.Time
	AssignTime   *time.Time
	ReceiveTime  time.Time
	LockedUntil  time.Time
	ServiceOwner string
	HostId       string
	ScopeId      string
	PlanType     string
	PlanId       string
	JobId        string
	Definition   struct {
		Id    int64
		Name  string
		Links Links `json:"_links"`
	}
}
type Link struct {
	Href string
}
type Links struct {
	Self     Link
	Web      Link
	Source   Link
	Timeline Link
	Badge    Link
}

type Project

type Project struct {
	Id          string `json:"id"`
	Name        string `json:"name"`
	Description string `json:"description"`
	Url         string `json:"url"`
	State       string `json:"state"`
	WellFormed  string `json:"wellFormed"`
	Revision    int64  `json:"revision"`
	Visibility  string `json:"visibility"`

	RepositoryList RepositoryList
}

type ProjectList

type ProjectList struct {
	Count int       `json:"count"`
	List  []Project `json:"value"`
}

type PullRequest

type PullRequest struct {
	Id           int64 `json:"pullRequestId"`
	CodeReviewId int64 `json:"codeReviewId"`

	Title       string
	Description string
	Uri         string
	Url         string

	CreatedBy IdentifyRef

	SourceRefName string
	TargetRefName string

	Reviewers []PullRequestReviewer
	Labels    []PullRequestLabels

	Status       string `json:"status"`
	CreationDate time.Time
	ClosedDate   time.Time

	IsDraft bool

	Links Links `json:"_links"`
}

func (*PullRequest) GetVoteSummary

func (v *PullRequest) GetVoteSummary() PullRequestVoteSummary

type PullRequestLabels

type PullRequestLabels struct {
	Id     string
	Name   string
	Active bool
}

type PullRequestList

type PullRequestList struct {
	Count int           `json:"count"`
	List  []PullRequest `json:"value"`
}

type PullRequestReviewer

type PullRequestReviewer struct {
	Vote        int64
	DisplayName string
}

type PullRequestVoteSummary

type PullRequestVoteSummary struct {
	Approved            int64
	ApprovedSuggestions int64
	None                int64
	WaitingForAuthor    int64
	Rejected            int64
	Count               int64
}

func (*PullRequestVoteSummary) HumanizeString

func (v *PullRequestVoteSummary) HumanizeString() (status string)

type Query

type Query struct {
	Path string `json:"path"`
}

type Release

type Release struct {
	Id   int64  `json:"id"`
	Name string `json:"name"`

	Definition struct {
		Id    int64  `json:"id"`
		Name  string `json:"name"`
		Links Links  `json:"_links"`
	} `json:"releaseDefinition"`

	Project Project `json:"projectReference"`

	Queue AgentPoolQueue `json:"queue"`

	Reason        string    `json:"reason"`
	Result        bool      `json:"result"`
	Status        string    `json:"status"`
	CreatedOn     time.Time `json:"createdOn"`
	QueueTime     time.Time `json:"queueTime"`
	QueuePosition string    `json:"queuePosition"`
	StartTime     time.Time `json:"startTime"`
	FinishTime    time.Time `json:"finishTime"`
	Uri           string    `json:"uri"`
	Url           string    `json:"url"`

	Artifacts    []ReleaseArtifact    `json:"artifacts"`
	Environments []ReleaseEnvironment `json:"environments"`

	RequestedBy  IdentifyRef `json:"requestedBy"`
	RequestedFor IdentifyRef `json:"requestedFor"`

	Links Links `json:"_links"`
}

func (*Release) QueueDuration

func (r *Release) QueueDuration() time.Duration

type ReleaseArtifact

type ReleaseArtifact struct {
	SourceId string `json:"sourceId"`
	Type     string `json:"type"`
	Alias    string `json:"alias"`

	DefinitionReference struct {
		Definition struct {
			Id   string
			Name string
		}

		Project struct {
			Id   string
			Name string
		}

		Repository struct {
			Id   string
			Name string
		}

		Version struct {
			Id   string
			Name string
		}

		Branch struct {
			Id   string
			Name string
		}
	} `json:"definitionReference"`
}

type ReleaseDefinition

type ReleaseDefinition struct {
	Id                int64 `json:"id"`
	Name              string
	Path              string
	ReleaseNameFormat string `json:"releaseNameFormat"`

	Environments []ReleaseDefinitionEnvironment

	LastRelease Release `json:"lastRelease"`

	Links Links `json:"_links"`
}

type ReleaseDefinitionEnvironment

type ReleaseDefinitionEnvironment struct {
	Id   int64
	Name string
	Rank int64

	Owner          IdentifyRef
	CurrentRelease struct {
		Id  int64
		Url string
	} `json:"currentRelease"`

	BadgeUrl string `json:"badgeUrl"`
}

type ReleaseDefinitionList

type ReleaseDefinitionList struct {
	Count int                 `json:"count"`
	List  []ReleaseDefinition `json:"value"`
}

type ReleaseDeployment

type ReleaseDeployment struct {
	Id   int64 `json:"id"`
	Name string

	Release struct {
		Id    int64
		Name  string
		Links Links `json:"_links"`
	} `json:"release"`

	ReleaseDefinition struct {
		Id   int64
		Name string
		Path string
	} `json:"releaseDefinition"`

	Artifacts []ReleaseArtifact

	ReleaseEnvironment ReleaseDeploymentEnvironment

	PreDeployApprovals  []ReleaseEnvironmentApproval
	PostDeployApprovals []ReleaseEnvironmentApproval

	Reason           string
	DeploymentStatus string
	OperationStatus  string

	Attempt int64

	// sometimes dates are not valid here
	QueuedOn    string `json:"queuedOn,omitempty"`
	StartedOn   string `json:"startedOn,omitempty"`
	CompletedOn string `json:"completedOn,omitempty"`

	RequestedBy  IdentifyRef
	RequestedFor IdentifyRef

	Links Links `json:"_links"`
}

func (*ReleaseDeployment) ApprovedBy

func (d *ReleaseDeployment) ApprovedBy() string

func (*ReleaseDeployment) CompletedOnTime

func (d *ReleaseDeployment) CompletedOnTime() *time.Time

func (*ReleaseDeployment) QueuedOnTime

func (d *ReleaseDeployment) QueuedOnTime() *time.Time

func (*ReleaseDeployment) StartedOnTime

func (d *ReleaseDeployment) StartedOnTime() *time.Time

type ReleaseDeploymentEnvironment

type ReleaseDeploymentEnvironment struct {
	Id   int64
	Name string
}

type ReleaseDeploymentList

type ReleaseDeploymentList struct {
	Count int                 `json:"count"`
	List  []ReleaseDeployment `json:"value"`
}

type ReleaseEnvironment

type ReleaseEnvironment struct {
	Id                      int64  `json:"id"`
	ReleaseId               int64  `json:"releaseId"`
	DefinitionEnvironmentId int64  `json:"definitionEnvironmentId"`
	Name                    string `json:"name"`
	Status                  string `json:"status"`
	Rank                    int64  `json:"rank"`

	TriggerReason string `json:"triggerReason"`

	DeploySteps []ReleaseEnvironmentDeployStep `json:"deploySteps"`

	PreDeployApprovals  []ReleaseEnvironmentApproval `json:"preDeployApprovals"`
	PostDeployApprovals []ReleaseEnvironmentApproval `json:"postDeployApprovals"`

	CreatedOn      time.Time `json:"createdOn"`
	QueuedOn       time.Time `json:"queuedOn"`
	LastModifiedOn time.Time `json:"lastModifiedOn"`

	TimeToDeploy float64 `json:"timeToDeploy"`
}

type ReleaseEnvironmentApproval

type ReleaseEnvironmentApproval struct {
	Id               int64
	Revision         int64
	ApprovalType     string
	Status           string
	Comments         string
	IsAutomated      bool
	IsNotificationOn bool
	TrialNumber      int64 `json:"trialNumber"`
	Attempt          int64 `json:"attempt"`
	Rank             int64 `json:"rank"`

	Approver   IdentifyRef `json:"approver"`
	ApprovedBy IdentifyRef `json:"approvedBy"`

	CreatedOn  time.Time `json:"createdOn"`
	ModifiedOn time.Time `json:"modifiedOn"`
}

type ReleaseEnvironmentDeployStep

type ReleaseEnvironmentDeployStep struct {
	Id              int64
	DeploymentId    int64
	Attemt          int64
	Reason          string
	Status          string
	OperationStatus string

	ReleaseDeployPhases []ReleaseEnvironmentDeployStepPhase

	QueuedOn       time.Time
	LastModifiedOn time.Time
}

type ReleaseEnvironmentDeployStepPhase

type ReleaseEnvironmentDeployStepPhase struct {
	Id        int64
	PhaseId   string
	Name      string
	Rank      int64
	PhaseType string
	Status    string
	StartedOn time.Time `json:"startedOn"`
}

type ReleaseList

type ReleaseList struct {
	Count int       `json:"count"`
	List  []Release `json:"value"`
}

type Repository

type Repository struct {
	Id         string
	Name       string
	Url        string
	State      string
	WellFormed string
	Revision   int64
	Visibility string
	Size       int64

	IsDisabled *bool `json:"isDisabled"`

	Links Links `json:"_links"`
}

func (*Repository) Disabled

func (r *Repository) Disabled() (ret bool)

type RepositoryCommit

type RepositoryCommit struct {
	CommitId         string
	Author           Author
	Committer        Author
	Comment          string
	CommentTruncated bool
	ChangeCounts     struct {
		Add    int64
		Edit   int64
		Delete int64
	}

	Url       string
	RemoteUrl string
}

type RepositoryCommitList

type RepositoryCommitList struct {
	Count int                `json:"count"`
	List  []RepositoryCommit `json:"value"`
}

type RepositoryList

type RepositoryList struct {
	Count int          `json:"count"`
	List  []Repository `json:"value"`
}

type RepositoryPush

type RepositoryPush struct {
	PushId int64
}

type RepositoryPushList

type RepositoryPushList struct {
	Count int              `json:"count"`
	List  []RepositoryPush `json:"value"`
}

type ResourceUsageAgent

type ResourceUsageAgent struct {
	Data struct {
		Provider struct {
			IncludeResourceLimitsSection bool `json:"includeResourceLimitsSection"`
			IncludeConcurrentJobsSection bool `json:"includeConcurrentJobsSection"`

			ResourceUsages []ResourceUsageAgentUsageRow `json:"resourceUsages"`

			TaskHubLicenseDetails struct {
				FreeLicenseCount            *float64 `json:"freeLicenseCount"`
				FreeHostedLicenseCount      *float64 `json:"freeHostedLicenseCount"`
				EnterpriseUsersCount        *float64 `json:"enterpriseUsersCount"`
				PurchasedLicenseCount       *float64 `json:"purchasedLicenseCount"`
				PurchasedHostedLicenseCount *float64 `json:"purchasedHostedLicenseCount"`
				HostedLicensesArePremium    bool     `json:"hostedLicensesArePremium"`
				TotalLicenseCount           *float64 `json:"totalLicenseCount"`
				HasLicenseCountEverUpdated  bool     `json:"hasLicenseCountEverUpdated"`
				MsdnUsersCount              *float64 `json:"msdnUsersCount"`
				HostedAgentMinutesFreeCount *float64 `json:"hostedAgentMinutesFreeCount"`
				HostedAgentMinutesUsedCount *float64 `json:"hostedAgentMinutesUsedCount"`
				FailedToReachAllProviders   bool     `json:"failedToReachAllProviders"`
				TotalPrivateLicenseCount    *float64 `json:"totalPrivateLicenseCount"`
				TotalHostedLicenseCount     *float64 `json:"totalHostedLicenseCount"`
			} `json:"taskHubLicenseDetails"`
		} `json:"ms.vss-build-web.build-queue-hub-data-provider"`
	} `json:"data"`
}

type ResourceUsageAgentUsageRow

type ResourceUsageAgentUsageRow struct {
	ResourceLimit struct {
		ResourceLimitsData struct {
			FreeCount      string `json:"freeCount"`
			PurchasedCount string `json:"purchasedCount"`
		} `json:"resourceLimitsData"`

		HostId         string  `json:"hostId"`
		ParallelismTag string  `json:"parallelismTag"`
		IsHosted       bool    `json:"isHosted"`
		TotalCount     float64 `json:"totalCount"`
		IsPremium      bool    `json:"IsPremium"`
	} `json:"resourceLimit"`
}

type ResourceUsageBuild

type ResourceUsageBuild struct {
	DistributedTaskAgents *int `json:"distributedTaskAgents"`
	PaidPrivateAgentSlots *int `json:"paidPrivateAgentSlots"`
	TotalUsage            *int `json:"totalUsage"`
	XamlControllers       *int `json:"xamlControllers"`
}

type Tag

type Tag struct {
	Name  string
	Value string
	Type  string
}

type TagList

type TagList struct {
	Count int      `json:"count"`
	List  []string `json:"value"`
}

func (*TagList) Extract

func (t *TagList) Extract() (tags map[string]string, error error)

func (*TagList) Parse

func (t *TagList) Parse(tagSchema []string) (pTags []Tag, error error)

type TimelineRecord

type TimelineRecord struct {
	RecordType   string  `json:"type"`
	Name         string  `json:"name"`
	Id           string  `json:"id"`
	ParentId     string  `json:"parentId"`
	ErrorCount   float64 `json:"errorCount"`
	WarningCount float64 `json:"warningCount"`
	Result       string  `json:"result"`
	WorkerName   string  `json:"workerName"`
	Identifier   string  `json:"identifier"`
	StartTime    time.Time
	FinishTime   time.Time
}

type TimelineRecordList

type TimelineRecordList struct {
	List []TimelineRecord `json:"records"`
}

type WorkItem

type WorkItem struct {
	Id     int64          `json:"id"`
	Fields WorkItemFields `json:"fields"`
}

type WorkItemFields

type WorkItemFields struct {
	Title        string `json:"System.Title"`
	Path         string `json:"System.AreaPath"`
	CreatedDate  string `json:"System.CreatedDate"`
	AcceptedDate string `json:"Microsoft.VSTS.CodeReview.AcceptedDate"`
	ResolvedDate string `json:"Microsoft.VSTS.Common.ResolvedDate"`
	ClosedDate   string `json:"Microsoft.VSTS.Common.ClosedDate"`
}

type WorkItemInfo

type WorkItemInfo struct {
	Id  int    `json:"id"`
	Url string `json:"url"`
}

type WorkItemInfoList

type WorkItemInfoList struct {
	List []WorkItemInfo `json:"workItems"`
}

Jump to

Keyboard shortcuts

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