Documentation
¶
Index ¶
- Constants
- Variables
- type AffiliationClient
- type Attachment
- type AttachmentRes
- type Auth0ClientProvider
- type AuthClientProvider
- type BugData
- type BugRestEnrich
- type Change
- type Comment
- type Comments
- type ESClientProvider
- type Enricher
- type EnricherParams
- type FetchedBugs
- type Fetcher
- func (f *Fetcher) FetchAll(origin string, date string, limit string, offset string, now time.Time) ([]Raw, *time.Time, error)
- func (f *Fetcher) FetchItem(origin string, bugID int, fetchedBug BugData, now time.Time) (*Raw, error)
- func (f *Fetcher) Query(index string, query map[string]interface{}) (*RawHits, error)
- type FetcherParams
- type HTTPClientProvider
- type History
- type HistoryBug
- type HistoryRes
- type HitSource
- type Hits
- type Manager
- type MgrParams
- type NHits
- type NestedHits
- type NestedRawHits
- type PersonDetail
- type Raw
- type RawHits
- type TopHits
Constants ¶
const ( // Category type Category = "bug" // BugzillaRest - DS name BugzillaRest string = "bugzillarest" )
Variables ¶
var ( // BugzillaRestRawMapping - bugzilla raw index mapping BugzillaRestRawMapping = []byte(`{ "mappings": {"dynamic":true, "properties":{ "metadata__updated_on":{"type":"date"}, "metadata__timestamp":{"type":"date"}, "updated_on":{"type":"date"}, "timestamp":{"type":"date"}, "short_description":{"type":"text","index":true}, "backend_version":{"type":"keyword"}, "backend_name":{"type":"keyword"}, "status":{"type":"keyword"}, "priority":{"type":"keyword"}, "severity":{"type":"keyword"}, "uuid":{"type": "keyword"}, "origin":{"type":"keyword"}, "tag":{"type":"keyword"} }} }`) // BugzillaRestEnrichMapping - bugzilla rest enriched index mapping BugzillaRestEnrichMapping = []byte(`{"mappings":{"dynamic_templates":[{"notanalyzed":{"match":"*","match_mapping_type":"string","mapping":{"type":"keyword"}}},{"int_to_float":{"match":"*","match_mapping_type":"long","mapping":{"type":"float"}}},{"formatdate":{"match":"*","match_mapping_type":"date","mapping":{"format":"strict_date_optional_time||epoch_millis","type":"date"}}}]}}`) )
Functions ¶
This section is empty.
Types ¶
type AffiliationClient ¶
type AffiliationClient interface {
GetIdentityByUser(key string, value string) (*libAffiliations.AffIdentity, error)
AddIdentity(identity *libAffiliations.Identity) bool
}
AffiliationClient manages user identity
type Attachment ¶
type Attachment struct {
Data string
Size int
CreationTime time.Time
LastChangeTime time.Time
ID int
BugID int
FileName string
Summary string
ContentType string
IsPrivate bool
IsObsolete bool
IsPatch bool
Creator string
Flags []string
}
Attachment describe bug attachment
type AttachmentRes ¶
type AttachmentRes struct {
Bugs map[string][]Attachment `json:"bugs"`
}
AttachmentRes response from bug attachment api
type Auth0ClientProvider ¶
Auth0ClientProvider ...
type AuthClientProvider ¶
AuthClientProvider interacts with auth0 server
type BugData ¶
type BugData struct {
History *[]History `json:"history"`
Resolution string `json:"resolution"`
Priority string `json:"priority"`
Keywords []string `json:"keywords"`
DependsOn []int `json:"depends_on"`
Alias []string `json:"alias"`
IsCcAccessible bool `json:"is_cc_accessible"`
Duplicates []int `json:"duplicates"`
SeeAlso []string `json:"see_also"`
LastChangeTime time.Time `json:"last_change_time"`
CreatorDetail *PersonDetail `json:"creator_detail"`
Blocks []int `json:"blocks"`
TargetMilestone string `json:"target_milestone"`
Deadline *string `json:"deadline"`
IsOpen bool `json:"is_open"`
RemainingTime int `json:"remaining_time"`
Flags []string `json:"flags"`
Groups []string `json:"groups"`
Component string `json:"component"`
Platform string `json:"platform"`
Comments Comments `json:"comments"`
EstimatedTime int `json:"estimated_time"`
OpSys string `json:"op_sys"`
Severity string `json:"severity"`
URL string `json:"url"`
Cc []string `json:"cc"`
IsConfirmed bool `json:"is_confirmed"`
IsCreatorAccessible bool `json:"is_creator_accessible"`
ActualTime int `json:"actual_time"`
AssignedTo string `json:"assigned_to"`
DupeOf *int `json:"dupe_of"`
Attachments []Attachment `json:"attachments"`
Tags []string `json:"tags"`
CreationTime time.Time `json:"creation_time"`
Whiteboard string `json:"whiteboard"`
CcDetail []PersonDetail `json:"cc_detail"`
Status string
Summary string
Classification string
QaContact string
Product string `json:"product"`
ID int `json:"id"`
Creator string `json:"creator"`
Version string `json:"version"`
AssignedToDetail *PersonDetail `json:"assigned_to_detail"`
}
BugData single bug data
type BugRestEnrich ¶
type BugRestEnrich struct {
UUID string `json:"uuid"`
Project string `json:"project"`
Changes int `json:"changes"`
Product string `json:"product"`
Component string `json:"component"`
Status string `json:"status"`
TimeOpenDays float64 `json:"timeopen_days"`
ChangedDate time.Time `json:"changed_date"`
Tag string `json:"tag"`
URL string `json:"url"`
CreationDate time.Time `json:"creation_date"`
DeltaTs time.Time `json:"delta_ts"`
Whiteboard *string `json:"whiteboard"`
AssignedTo string `json:"assigned_to"`
CreatorDetailID string `json:"creator_detail_id"`
CreatorDetailUUID string `json:"creator_detail_uuid"`
CreatorDetailName string `json:"creator_detail_name"`
CreatorDetailUserName string `json:"creator_detail_user_name"`
CreatorDetailDomain string `json:"creator_detail_domain"`
CreatorDetailOrgName string `json:"creator_detail_org_name"`
CreatorDetailMultiOrgName []string `json:"creator_detail_multi_org_names"`
CreatorDetailBot bool `json:"creator_detail_bot"`
AuthorID string `json:"author_id"`
AuthorUUID string `json:"author_uuid"`
AuthorName string `json:"author_name"`
AuthorUserName string `json:"author_user_name"`
AuthorDomain string `json:"author_domain"`
AuthorOrgName string `json:"author_org_name"`
AuthorMultiOrgNames []string `json:"author_multi_org_names"`
AuthorBot bool `json:"author_bot"`
AssignedToUUID string `json:"assigned_to_uuid"`
AssignedToOrgName string `json:"assigned_to_org_name"`
AssignedToDetailID string `json:"assigned_to_detail_id"`
AssignedToDetailUUID string `json:"assigned_to_detail_uuid"`
AssignedToDetailName string `json:"assigned_to_detail_name"`
AssignedToDetailUserName string `json:"assigned_to_detail_user_name"`
AssignedToDetailDomain string `json:"assigned_to_detail_domain"`
AssignedToDetailOrgName string `json:"assigned_to_detail_org_name"`
AssignedToDetailMultiOrgName []string `json:"assigned_to_detail_multi_org_names"`
AssignedToDetailBot bool `json:"assigned_to_detail_bot"`
MainDescription string `json:"main_description"`
MainDescriptionAnalyzed string `json:"main_description_analyzed"`
Summary string `json:"summary"`
SummaryAnalyzed string `json:"summary_analyzed"`
Comments int `json:"comments"`
RepositoryLabels *[]string `json:"repository_labels"`
MetadataUpdatedOn time.Time `json:"metadata__updated_on"`
MetadataTimestamp time.Time `json:"metadata__timestamp"`
MetadataEnrichedOn time.Time `json:"metadata__enriched_on"`
MetadataFilterRaw *string `json:"metadata__filter_raw"`
MetadataBackendName string `json:"metadata__backend_name"`
MetadataBackendVersion string `json:"metadata__backend_version"`
ISBugzillarestBugrest int `json:"is_bugzillarest_bugrest"`
CreationTs string `json:"creation_ts"`
NumberOfComments int `json:"number_of_comments"`
Origin string `json:"origin"`
Offset *string `json:"offset"`
ProjectTs float64 `json:"project_ts"`
Creator string `json:"creator"`
ISOpen bool `json:"is_open"`
ID int `json:"id"`
TimeToLastUpdateDays float64 `json:"time_to_last_update_days"`
TimeToClose float64 `json:"time_to_close"`
}
BugRestEnrich ...
type Comment ¶
type Comment struct {
ID int
Creator string
Time time.Time
Count int
IsPrivate bool
CreationTime time.Time
AttachmentID *int
Tags []string
}
Comment describe comment details
type ESClientProvider ¶
type ESClientProvider interface {
Add(index string, documentID string, body []byte) ([]byte, error)
CreateIndex(index string, body []byte) ([]byte, error)
Bulk(body []byte) ([]byte, error)
Get(index string, query map[string]interface{}, result interface{}) (err error)
GetStat(index string, field string, aggType string, mustConditions []map[string]interface{}, mustNotConditions []map[string]interface{}) (result time.Time, err error)
BulkInsert(data []elastic.BulkData) ([]byte, error)
DelayOfCreateIndex(ex func(str string, b []byte) ([]byte, error), uin uint, du time.Duration, index string, data []byte) error
}
ESClientProvider used in connecting to ES server
type Enricher ¶
type Enricher struct {
DSName string
BackendVersion string
Project string
// contains filtered or unexported fields
}
Enricher enrich Bugzilla raw
func NewEnricher ¶
func NewEnricher(params *EnricherParams, affiliationsClient AffiliationClient, auth0ClientProvider Auth0ClientProvider, httpClientProvider HTTPClientProvider, affBaseURL string, projectSlug string) *Enricher
NewEnricher initiate a new enricher instance
func (*Enricher) EnrichItem ¶
EnrichItem enrich Bugzilla raw item
type EnricherParams ¶
EnricherParams required parameters for bugzilla enricher
type FetchedBugs ¶
type FetchedBugs struct {
Bugs []BugData
}
FetchedBugs bugs fetched from bugzilla rest api
type Fetcher ¶
type Fetcher struct {
HTTPClientProvider HTTPClientProvider
ElasticSearchProvider ESClientProvider
BackendVersion string
Endpoint string
BackendName string
// contains filtered or unexported fields
}
Fetcher contains fetch functionalities
func NewFetcher ¶
func NewFetcher(params *FetcherParams, httpClientProvider HTTPClientProvider, esClientProvider ESClientProvider) *Fetcher
NewFetcher initiates a new bugZillaRest fetcher
func (*Fetcher) FetchAll ¶
func (f *Fetcher) FetchAll(origin string, date string, limit string, offset string, now time.Time) ([]Raw, *time.Time, error)
FetchAll fetches all bugs
type FetcherParams ¶
FetcherParams required parameters for bugzilla fetcher
type HTTPClientProvider ¶
type HTTPClientProvider interface {
Request(url string, method string, header map[string]string, body []byte, params map[string]string) (statusCode int, resBody []byte, err error)
}
HTTPClientProvider used in connecting to remote http server
type HistoryBug ¶
HistoryBug bug history
type HistoryRes ¶
type HistoryRes struct {
Bugs []HistoryBug
}
HistoryRes response from bug history api
type Manager ¶
type Manager struct {
Endpoint string
FetcherBackendVersion string
EnricherBackendVersion string
Fetch bool
Enrich bool
ESUrl string
ESUsername string
ESPassword string
ESIndex string
FromDate *time.Time
HTTPTimeout time.Duration
Project string
FetchSize int
EnrichSize int
ProjectSlug string
AffBaseURL string
ESCacheURL string
ESCacheUsername string
ESCachePassword string
AuthGrantType string
AuthClientID string
AuthClientSecret string
AuthAudience string
Auth0URL string
Environment string
Slug string
WebHookURL string
EsClientProvider ESClientProvider
Fetcher *Fetcher
Enricher *Enricher
Auth0ClientProvider Auth0ClientProvider
HTTPClientProvider HTTPClientProvider
Retries uint
Delay time.Duration
GapURL string
}
Manager describes bugzilla manager
func NewManager ¶
NewManager initiates bugzilla manager instance
type MgrParams ¶
type MgrParams struct {
EndPoint string
FetcherBackendVersion string
EnricherBackendVersion string
Fetch bool
Enrich bool
ESUrl string
EsUser string
EsPassword string
EsIndex string
FromDate *time.Time
HTTPTimeout time.Duration
Project string
FetchSize int
EnrichSize int
Retries uint
Delay time.Duration
GapURL string
ProjectSlug string
AffBaseURL string
ESCacheURL string
ESCacheUsername string
ESCachePassword string
AuthGrantType string
AuthClientID string
AuthClientSecret string
AuthAudience string
Auth0URL string
Environment string
Slug string
WebHookURL string
Fetcher *Fetcher
Enricher *Enricher
ESClientProvider ESClientProvider
Auth0ClientProvider Auth0ClientProvider
HTTPClientProvider HTTPClientProvider
}
MgrParams required for creating a new instance of Bugzillarest manager
type NestedHits ¶
NestedHits is the actual hit data
type NestedRawHits ¶
NestedRawHits is the actual hit data
type PersonDetail ¶
type PersonDetail struct {
Name string `json:"name"`
RealName string `json:"real_name"`
ID int `json:"id"`
}
PersonDetail describe user data
type Raw ¶
type Raw struct {
Data BugData `json:"data"`
UUID string `json:"uuid"`
MetadataUpdatedOn time.Time `json:"metadata__updated_on"`
ClassifiedFieldsFiltered *string `json:"classified_fields_filtered"`
UpdatedOn float64 `json:"updated_on"`
BackendName string `json:"backend_name"`
Category string `json:"category"`
Origin string `json:"origin"`
BackendVersion string `json:"backend_version"`
Tag string `json:"tag"`
Timestamp float64 `json:"timestamp"`
MetadataTimestamp time.Time `json:"metadata__timestamp"`
ActualTime int `json:"actual_time"`
EstimatedTime int `json:"estimated_time"`
RemainingTime int `json:"remaining_time"`
}
Raw bugzilla rest raw data