Categorygithub.com/LF-Engineering/da-ds
modulepackage
0.0.0-20220623121928-b175f3041c1b
Repository: https://github.com/lf-engineering/da-ds.git
Documentation: pkg.go.dev

# README

dads

DevAnalytics data source

  • Jira: implemented
  • Groups.io: wip

# Packages

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author

# Functions

AddRedacted - adds redacted string.
AffsDataForRoles - return affs data for given roles.
AffsIdentityIDs - returns affiliations identity id, uuid data uses internal cache.
AnonymizeURL - remove sensitive data from the URL.
Base64DecodeCookies - decode cookies stored as stream of bytes to array of strings.
Base64DecodeHeaders - decode headers stored as stream of bytes to map of string arrays.
Base64EncodeCookies - encode cookies array (strings) to base64 stream of bytes.
Base64EncodeHeaders - encode headers to base64 stream of bytes.
BytesToStringTrunc - truncate bytes stream to no more than maxLen.
CacheSummary - display cache summary stats.
CommonFields - common rich item fields { "is_dsname_category": 1, "grimoire_creation_date": dt}.
ConfluenceEnrichItemsFunc - iterate items and enrich them items is a current pack of input items docs is a pointer to where extracted identities will be stored.
ConnectAffiliationsDB - connect to affilaitions DB.
CookieToString - convert cookie to string.
CopyAffsRoleData - copy affiliations fields from source role to dest role.
CreateESCache - creates dads_cache index needed for caching.
DBUploadIdentitiesFunc - function to upload identities to affiliation DB We assume here that docs maintained my iterator func contains a list of [3]string Each identity is [3]string [name, username, email] outDocs is maintained with DB bulk size last flag signalling that this is the last (so it must flush output then) there can be no items in input pack in the last flush call.
DeepSet - set deep property of non-type decoded interface.
Dig interface for array of keys.
DumpKeys - dump interface structure, but only keys, no values.
DumpPreview - dump interface structure, keys and truncated values preview.
EmptyAffsItem - return empty affiliations item for a given role.
Enrich - implement fetch raw data (generic).
EnrichComments - return rich item from raw item for a given author type.
EnrichItem - perform generic additional operations on already enriched item.
EnrichPairProgrammingItem - additional operations on already enriched item for pair programming.
EnsurePath - craete archive directory (and all necessary parents as well) if noLastDir is set, then skip creating the last directory in the path.
ESBulkUploadFunc - function to bulk upload items to ES We assume here that docs maintained my iterator func contains a list of rich items outDocs is maintained with ES bulk size last flag signalling that this is the last (so it must flush output then) there can be no items in input pack in the last flush call.
ESCacheDelete - delete cache key.
ESCacheDeleteExpired - delete expired cache entries.
ESCacheGet - get value from cache.
ESCacheSet - set cache value.
ExecCommand - execute command given by array of strings with eventual environment map.
ExecCommandPipe - execute command given by array of strings with eventual environment map, return STDOUT pipe to read from.
ExecDB - execute DB query without transaction.
ExecSQL - execute db query with transaction if provided.
ExecTX - execute DB query with transaction.
ExecuteAffiliationsAPICall - execute a call to Affiliations API.
Fatalf - it will call FatalOnError using fmt.Errorf with args provided.
FatalOnError displays error message (if error present) and exits program.
FetchRaw - implement fetch raw data (generic).
FilterRedacted - filter out all known redacted starings.
FindObject - fetch given fields from object (identities, profiles, uidentities etc.) having key=id Assuming that given object has an unique key to gte it.
ForEachESItem - perform specific function for all raw/rich items ufunct: function to perform on input pack, receives input pack, pointer to an output pack and a flag signalling that this is the last (so it must flush output then) there can be no items in input pack in the last flush call uitems: function to extract items from input data: can just add documents, but can also maintain a pack of documents identities receives items and pointer to output items (which then become input for ufunct).
GerritEnrichItemsFunc - iterate items and enrich them items is a current pack of input items docs is a pointer to where extracted identities will be stored.
GetAPIToken - return an API token to use dev-analytics-api API calls If JWT_TOKEN env is specified - just use the provided token without any checks Else get auth0 data from AUTH0_DATA and generate/reuse a token stored in ES cache.
GetEnrollments - returns enrollments for a given uuid in a given date, possibly multiple uses cache with date resolution (pslug,uuid,dt.YYYYMMDD).
GetEnrollmentsBoth - returns org name(s) for given uuid and name returns data returned by bot GetEnrollmentsSingle and GetEnrollmentsMulti by using a single HTTP request when both were not yet called for a given key.
GetEnrollmentsMulti - returns org name(s) for given uuid and name Returns 1 or more organizations (all that matches the current date) If none matches it returns array [Unknown].
GetEnrollmentsSingle - returns org name (or Unknown) for given uuid and date.
GetESCache - get value from cache - thread safe and support expiration.
GetIdentityUUID - identity's UUID for a given ID uses internal cache.
GetL2Cache - get value from cache - thread safe and support expiration.
GetLastOffset - get last offset from ElasticSearch.
GetLastUpdate - get last update date from ElasticSearch.
GetRedacted - get redacted.
GetThreadsNum returns the number of available CPUs If environment variable DA_DS_ST is set it retuns 1 It can be used to debug single threaded verion.
GitEnrichItemsFunc - iterate items and enrich them items is a current pack of input items docs is a pointer to where extracted identities will be stored.
GitHubEnrichItemsFunc - iterate items and enrich them items is a current pack of input items docs is a pointer to where extracted identities will be stored.
GroupsioEnrichItemsFunc - iterate items and enrich them items is a current pack of input items docs is a pointer to where extracted identities will be stored.
HandleMapping - create/update mapping for raw or rich index.
IdentityAffsData - add affiliations related data identity - full identity aid identity ID value (which is uuid), for example from "author_id", "creator_id" etc.
IdentityAffsDomain -return domain for given identity using email if specified.
IndexAt - index of substring starting at a given position.
InitializeAuth0 - initializes Auth0 client using data stored in AUTH0_DATA.
InterfaceToStringTrunc - truncate interface representation.
IsOldFormat - is this an old format index (bitergia one)?.
IsValidDomain - is MX domain valid? uses internal cache.
IsValidEmail - is email correct: len, regexp, MX domain uses internal cache.
ItemsIdentitiesFunc - extract identities from items items is a current pack of ES input items docs is a pointer to where extracted identities will be stored each identity is [3]string [name, username, email].
ItemsRefreshIdentitiesFunc - refresh input items/re-enrich items is a current pack of ES rich items docs is a pointer to where updated rich items will be stored.
JiraEnrichItemsFunc - iterate items and enrich them items is a current pack of input items docs is a pointer to where extracted identities will be stored.
JSONEscape - escape string for JSON to avoid injections.
KeysOnly - return a corresponding interface contining only keys.
MatchGroups - return regular expression matching groups as a map.
MatchGroupsArray - return regular expression matching groups as a map.
MaybeESCacheCleanup - chance of cleaning expired cache entries.
MaybeMemCacheCleanup - chance of cleaning expired cache entries.
MemCacheDeleteExpired - delete expired cache entries.
NewFlag ...
NoSSLVerify - turn off SSL validation.
ParseAddresses - parse address string into one or more name/email pairs.
ParseDateWithTz - try to parse mbox date.
ParseMBoxMsg - parse a raw MBox message into object to be inserte dinto raw ES.
PartitionString - partition a string to [pre-sep, sep, post-sep].
PeriodParse - tries to parse period.
PostprocessFields - check name field, if it is empty then copy from email (if not empty) or username (if not empty) Then check name and username - it cannot contain email addess, if it does - replace a@domain with a-MISSING-NAME.
PostprocessNameUsername - check name field, if it is empty then copy from email (if not empty) or username (if not empty) Then check name and username - it cannot contain email addess, if it does - replace a@domain with a-MISSING-NAME.
PrettyPrintJSON - pretty formats raw JSON bytes.
PreviewOnly - return a corresponding interface with preview values.
PrintCache - pretty print cache entries.
Printf is a wrapper around Printf(...) that supports logging and removes redacted data.
PrintfNoRedacted is a wrapper around Printf(...) that supports logging and don't removes redacted data.
ProgressInfo display info about progress: i/n if current time >= last + period If displayed info, update last.
QueryDB - query database without transaction.
QueryOut - display DB query.
QuerySQL - query DB using transaction if provided.
QueryToStringArray - execute SQL query returning multiple rows each containitg a single string column.
QueryToStringIntArrays - execute SQL query returning multiple rows each containitg (string,int64).
QueryTX - query database with transaction.
RedactEmail - possibly redact email from "in" If in contains @, replace part after last "@" with suff If in doesn't contain "@" then return it or (if forceSuff is set) return in + suff.
RefreshIdentities - refresh identities We iterate over rich index to refresh its affiliation data.
Request - wrapper around RequestNoRetry supporting retries.
RequestNoRetry - wrapper to do any HTTP request jsonStatuses - set of status code ranges to be parsed as JSONs errorStatuses - specify status value ranges for which we should return error okStatuses - specify status value ranges for which we should return error (only taken into account if not empty).
ResetThreadsNum - allows clearing current setting so the new one can be applied.
ResetUUIDCache - resets cache.
RocketchatEnrichItemsFunc - iterate items and enrich them items is a current pack of input items docs is a pointer to where extracted identities will be stored.
SendMultipleDocumentsToGAP - send failed ES bulk to GAP API.
SendSingleDocumentToGAP - send failed ES item to GAP API.
SendToElastic - send items to ElasticSearch.
SetDBSessionOrigin - Set Session DB variable @origin to 'dads' so we will know which tool performed the DB operation.
SetESCache - set cache value, expiration date and handles multithreading etc.
SetL2Cache - set cache value, expiration date and handles multithreading etc.
SetMT - we're in multithreaded mode, setup global caches mutexes.
SleepForRateLimit - sleep for rate or return error when rate exceeded.
StandardItemsFunc - just get each doument's _source and append to output docs items is a current pack of input items docs is a pointer to where extracted items will be stored.
StringToBool - convert string value to boolean value returns false for anything that was parsed as false, zero, empty etc: f, F, false, False, fALSe, 0, "", 0.00 else returns true.
StringToCookie - convert string to cookie.
StringTrunc - truncate string to no more than maxLen.
StubEnrichItemsFunc - iterate items and enrich them items is a current pack of input items docs is a pointer to where extracted identities will be stored.
TimeParseAny - attempts to parse time from string YYYY-MM-DD HH:MI:SS Skipping parts from right until only YYYY id left.
TimeParseES - parse datetime in ElasticSearch output format.
TimeParseESSec - parse datetime in ElasticSearch output format.
TimeParseInterfaceString - parse interface{} -> string -> time.Time.
ToESDate - return time formatted as YYYY-MM-DDTHH:MI:SS.uuuuuu+00:00.
ToYMDDate - return time formatted as YYYYMMDD.
ToYMDHMDate - return time formatted as YYYY-MM-DD HH:MI.
ToYMDHMSDate - return time formatted as YYYY-MM-DD HH:MI:SS.
ToYMDTHMSZDate - return time formatted as YYYY-MM-DDTHH:MI:SSZ.
UpdateRateLimit - generic function to get rate limit data from header.
UploadIdentities - upload identities to SH DB We assume here that docs maintained my iterator func contains a list of [3]string Each identity is [3]string [name, username, email].
UUIDAffs - generate UUID of string args uses internal cache downcases arguments, all but first can be empty.
UUIDNonEmpty - generate UUID of string args (all must be non-empty) uses internal cache used to generate document UUID's.

# Constants

AbuseWaitSeconds - N - wait random(N:2N) seconds if GitHub detected abuse 7 means from 7 to 13 seconds, 10 on average.
Approval - common constant string.
Author - default author field.
BulkRefreshMode - bulk upload refresh mode, can be: false, true, wait_for (ES defaults to false).
BulkWaitForActiveShardsMode - bulk upload wait_for_active_shards mode, can be: 1, 2, ..., all (ES defaults to 1).
CacheCleanupProb - probability of cache cleanup in %.
CacheGitHubCommentReactions - cache this?.
CacheGitHubIssueComments - cache this?.
CacheGitHubIssueReactions - cache this?.
CacheGitHubIssues - cache this?.
CacheGitHubPull - cache this?.
CacheGitHubPullCommits - cache this?.
CacheGitHubPullRequestedReviewers - cache this?.
CacheGitHubPullReviewComments - cache this?.
CacheGitHubPullReviews - cache this?.
CacheGitHubPulls - cache this?.
CacheGitHubRepo - cache this?.
CacheGitHubReviewCommentReactions - cache this?.
CacheGitHubUser - cache this?.
CacheGitHubUserFiles - cache this in files?.
CacheGitHubUserOrgs - cache this?.
Changeset - common constant string.
ClosedStatusCategoryKey - issue closed status key.
Comment - common constant string.
Commit - common constant string.
Confluence - common constant string.
ConfluenceBackendVersion - backend version.
ContentType - common constant string.
DADSOrigin - common constant string.
DadsWarning - common constant string.
DefaultAuthorField - default author field.
DefaultDateField - default date field.
DefaultEnrichDateField - default date field.
DefaultIDField - default id field.
DefaultOffsetField - default offset field.
DefaultOriginField - default origin field.
DefaultRateLimitHeader - default value for rate limit header.
DefaultRateLimitResetHeader - default value for rate limit reset header.
DefaultTagField - default tag field.
DefaultTimestampField - default timestamp field.
Delete - common constant string.
From - common constant string.
Gerrit - common constant string.
GerritBackendVersion - backend version.
GerritCodeReviewApprovalType - code review approval type.
GerritDefaultMaxReviews = default max reviews when processing gerrit.
GerritDefaultSSHKeyPath - default path to look for gerrit ssh private key.
GerritDefaultSSHPort - default gerrit ssh port.
Get - common constant string.
Git - common constant string.
GitBackendVersion - backend version.
GitCommitDateField - date field in the commit structure.
GitDefaultCachePath - default path where gitops cache files are stored.
GitDefaultReposPath - default path where git repository clones.
GitDefaultSearchField - default search field.
GitGenerateFlatDocs - do we want to generate flat commit co-authors docs, like docs with type: commit_co_author, commit_signer etc.?.
GitHub - common constant string.
GitHubBackendVersion - backend version.
GitHubURL - GitHub URL.
GitHubURLRoot - GitHub URL root.
GitMaxCommitProperties - maximum properties that can be set on the commit object.
GitOpsCommand - command that maintains git stats cache GitOpsCommand = "gitops.py".
GitOpsFailureFatal - is GitOpsCommand failure fatal?.
GitOpsNoCleanup - if set, it will skip gitops repo cleanup.
GitParseStateCommit - commit parser state.
GitParseStateFile - file parser state.
GitParseStateHeader - header parser state.
GitParseStateInit - init parser state.
GitParseStateMessage - message parser state.
GitUUID - field used as a rich item ID when pair progrmamming is enabled.
Groupsio - common constant string.
GroupsioAPIDownloadArchives - download archives API.
GroupsioAPIGetsubs - getsubs API.
GroupsioAPILogin - login API.
GroupsioAPIURL - Groups.io API URL.
GroupsioBackendVersion - backend version.
GroupsioDefaultArchPath - default path where archives are stored.
GroupsioDefaultSearchField - default search field.
GroupsioMaxMessageBodyLength - trucacte message bodies longer than this (per each multi-body email part).
GroupsioMaxMessageProperties - maximum properties that can be set on the message object.
GroupsioMaxRecipients - maximum number of emails parsed from To:.
GroupsioMaxRichMessageLines - maximum numbe rof message text/plain lines copied to rich index.
GroupsioMBoxFile - default messages file name.
GroupsioMessageDateField - message ID field from email.
GroupsioMessageIDField - message ID field from email.
GroupsioMessageReceivedField - message Received filed.
GroupsioURLRoot - root url for group name origin.
HistoricalContent - common constant string.
ID - common constant string.
Issue - common constant string.
ItemsPerPage - how many items in a page.
Jira - common constant string.
JiraAPIComment - comments API subpath.
JiraAPIField - field API subpath.
JiraAPIIssue - issue API subpath.
JiraAPIRoot - main API path.
JiraAPISearch - search API subpath.
JiraBackendVersion - backend version.
JiraDefaultSearchField - default search field.
JiraDropCustomFields - drop custom fields from raw index.
JiraFilterByProjectInComments - filter by project when searching for comments.
JiraMapCustomFields - run custom fields mapping.
JiraRichAuthorField - rich index author field.
KeywordMaxlength - max description length.
LowerContentType - common constant string.
MaxCommentBodyLength - max comment body length.
MaxGitHubUsersFileCacheAge 90 days (in seconds) - file is considered too old anywhere between 90-180 days.
MaxIssueBodyLength - max issue body length.
MaxPayloadPrintfLen - truncate messages longer than this.
MaxPullBodyLength - max pull request body length.
MaxReviewBodyLength - max review body length.
MaxReviewCommentBodyLength - max review comment body length.
MBoxDropXFields - drop fields starting with X- - to avoid ES 1000 fields limit.
Message - common constant string.
MissingName - common constant string.
MultiOrgNames - suffix for multiple orgs affiliation data.
Nil - common constant string.
None - common constant string.
NoSearchContextFound - this appearch when processing takes so long, that the scroll expires.
Offset - common constant string.
OK - common constant string.
OrphanedCommitsCommand - command to list orphaned commits.
OrphanedCommitsFailureFatal - is OrphanedCommitsCommand failure fatal?.
Patchset - common constant string.
Post
Post - common constant string.
ProjectSlug - common constant string.
Put - common constant string.
Recipient - default author field.
Redacted - [redacted].
RedactedEmail - common constant string.
Review - common constant string.
Rocketchat - common constant string.
RocketchatBackendVersion - backend version.
Stub - common constant string.
StubBackendVersion - backend version.
TooManyScrolls - this appearch in error message when too many scrolls are created.
Unknown - common constant string.
UUID - common constant string.
Wait59m - common constant string.
WantEnrichIssueAssignees - do we want to create rich documents for issue assignees (it contains identity data too).
WantEnrichIssueCommentReactions - do we want to create rich documents for issue comment reactions (it contains identity data too).
WantEnrichIssueReactions - do we want to create rich documents for issue reactions (it contains identity data too).
WantEnrichPullRequestAssignees - do we want to create rich documents for pull request assignees (it contains identity data too).
WantEnrichPullRequestCommentReactions - do we want to create rich documents for pull request comment reactions (it contains identity data too).
WantEnrichPullRequestRequestedReviewers - do we want to create rich documents for pull request requested reviewers (it contains identity data too).

# Variables

AffsFields - all properties added by affiliations (excluding multi org name) AffsFields = []string{"_id", "_uuid", "_name", "_user_name", "_domain", "_gender", "_gender_acc", "_org_name", "_bot"}.
AnonymizeURLPattern - used to remove sensitive data from the url - 3rd can be a GitHub password.
CloseAddrRE - '...>' -> '>' (..
CommitsHash is a map of commit hashes for each repo.
ConfluenceCategories - categories defined for Confluence.
ConfluenceContentRoles - roles to fetch affiliation data for historical content.
ConfluenceDefaultMaxContents - max contents to fetch at a time.
ConfluenceDefaultSearchField - default search field.
ConfluenceRawMapping - Confluence raw index mapping.
ConfluenceRichAuthorField - rich index author field.
ConfluenceRichMapping - Confluence rich index mapping.
DefaultDateFrom - default date from.
EmailRegex - regexp to match email address.
EmailReplacer - replacer for some email buggy characters.
GerritApprovalRoles - roles to fetch affiliation data for approval.
GerritCategories - categories defined for gerrit.
GerritCommentRoles - roles to fetch affiliation data for comment.
GerritDefaultSearchField - default search field.
GerritPatchsetRoles - roles to fetch affiliation data for patchset.
GerritRawMapping - Gerrit raw index mapping.
GerritReviewRoles - roles to fetch affiliation data for review.
GerritRichMapping - Gerrit rich index mapping.
GerritVersionRegexp - gerrit verion pattern.
GitActionPattern - action pattern - note that original used `\.{,3}` which is not supported in go - you must specify from=0: `\.{0,3}`.
GitAllowedTrailers - allowed commit trailer flags (lowercase/case insensitive -> correct case).
GitAuthorsPattern - author pattern.
GitCategories - categories defined for git.
GitCoAuthorsPattern - author pattern.
GitCommitPattern - pattern to match a commit.
GitCommitRoles - roles to fetch affiliation data.
GitDefaultEnv - default git command environment.
GitDocFilePattern - files matching this pattern are detected as documentation files, so commit will be marked as doc_commit.
GitHeaderPattern - pattern to match a commit.
GitHubCategories - categories defined for GitHub.
GitHubIssueAssigneeRoles - roles to fetch affiliation data for github issue comment.
GitHubIssueCommentRoles - roles to fetch affiliation data for github issue comment.
GitHubIssueReactionRoles - roles to fetch affiliation data for github issue reactions or issue comment reactions.
GitHubIssueRoles - roles to fetch affiliation data for github issue.
GitHubPullRequestAssigneeRoles - roles to fetch affiliation data for github pull request comment.
GitHubPullRequestCommentRoles - roles to fetch affiliation data for github pull request comment.
GitHubPullRequestReactionRoles - roles to fetch affiliation data for github pull request comment reactions.
GitHubPullRequestRequestedReviewerRoles - roles to fetch affiliation data for github pull request requested reviewer.
GitHubPullRequestReviewRoles - roles to fetch affiliation data for github pull request comment.
GitHubPullRequestRoles - roles to fetch affiliation data for github pull request.
GitHubRawMapping - GitHub raw index mapping GitHubRawMapping = []byte(`{"properties":{"metadata__updated_on":{"type":"date"}}}`).
GitHubRichMapping - GitHub rich index mapping GitHubRichMapping = []byte(`{"properties":{"metadata__updated_on":{"type":"date"},"merge_author_geolocation":{"type":"geo_point"},"assignee_geolocation":{"type":"geo_point"},"state":{"type":"keyword"},"user_geolocation":{"type":"geo_point"},"title_analyzed":{"type":"text","index":true}}}`) GitHubRichMapping = []byte(`{"dynamic":true,"properties":{"metadata__updated_on":{"type":"date","format":"strict_date_optional_time||epoch_millis"},"merge_author_geolocation":{"type":"geo_point"},"assignee_geolocation":{"type":"geo_point"},"id_in_repo":{"type":"long"},"state":{"type":"keyword"},"user_geolocation":{"type":"geo_point"},"title_analyzed":{"type":"text","index":true},"body_analyzed":{"type":"text","index":true},"code_merge_duration":{"type":"float"},"time_open_days":{"type":"float"},"time_to_close_days":{"type":"float"},"time_to_first_attention":{"type":"float"},"time_to_merge_request_response":{"type":"float"},"id_in_repo":{"type":"long"}},"dynamic_templates":[{"notanalyzed":{"match":"*","unmatch":"body","match_mapping_type":"string","mapping":{"type":"keyword"}}},{"formatdate":{"match":"*","match_mapping_type":"date","mapping":{"format":"strict_date_optional_time||epoch_millis","type":"date"}}}]}`).
GitLogOptions - default git log options.
GitMessagePattern - message patterns.
GitPPAuthors - flag to authors mapping used in pair programming mode.
GitRawMapping - Git raw index mapping.
GitRichMapping - Git rich index mapping GitRichMapping = []byte(`{"dynamic":true,"properties":{"file_data":{"type":"nested"},"author_name":{"type":"keyword"},"metadata__updated_on":{"type":"date","format":"strict_date_optional_time||epoch_millis"},"message_analyzed":{"type":"text","index":true}},"dynamic_templates":[{"notanalyzed":{"match":"*","unmatch":"message_analyzed","match_mapping_type":"string","mapping":{"type":"keyword"}}},{"formatdate":{"match":"*","match_mapping_type":"date","mapping":{"format":"strict_date_optional_time||epoch_millis","type":"date"}}}]}`) GitRichMapping = []byte(`{"dynamic":true,"properties":{"file_data":{"type":"nested"},"authors_signed":{"type":"nested"},"authors_co_authored":{"type":"nested"},"authors_tested":{"type":"nested"},"authors_approved":{"type":"nested"},"authors_reviewed":{"type":"nested"},"authors_reported":{"type":"nested"},"authors_informed":{"type":"nested"},"authors_resolved":{"type":"nested"},"authors_influenced":{"type":"nested"},"author_name":{"type":"keyword"},"pair_programming_commit":{"type":"float"},"time_to_commit_hours":{"type":"float"},"metadata__updated_on":{"type":"date","format":"strict_date_optional_time||epoch_millis"},"message_analyzed":{"type":"text","index":true}},"dynamic_templates":[{"notanalyzed":{"match":"*","unmatch":"message_analyzed","match_mapping_type":"string","mapping":{"type":"keyword"}}},{"formatdate":{"match":"*","match_mapping_type":"date","mapping":{"format":"strict_date_optional_time||epoch_millis","type":"date"}}}]}`).
GitStatsPattern - stats pattern.
GitTrailerOtherAuthors - trailer name to authors map (for all documents).
GitTrailerPattern - message trailer pattern.
GitTrailerPPAuthors - trailer name to authors map (for pair programming).
GitTrailerSameAsAuthor - can a given trailer be the same as the main commit's author?.
GRedactedMtx - guard access to this map while in MT.
GRedactedStrings - need to be global, to redact them from error logs.
GroupsioCategories - categories defined for Groupsio.
GroupsioMBoxMsgSeparator - used to split mbox file into separate messages.
GroupsioMsgLineSeparator - used to split mbox message into its separate lines.
GroupsioRawMapping - Groupsio raw index mapping.
GroupsioRichMapping - Groupsio rich index mapping.
JiraCategories - categories defined for Jira.
JiraKeepCustomFiled - we're dropping all but those custom fields.
JiraRawMapping - Jira raw index mapping JiraRawMapping = []byte(`{"dynamic":true,"properties":{"metadata__updated_on":{"type":"date"},"data":{"properties":{"renderedFields":{"dynamic":false,"properties":{}},"operations":{"dynamic":false,"properties":{}},"fields":{"dynamic":true,"properties":{"description":{"type":"text","index":true},"workratio":{"type":"double"},"environment":{"type":"text","index":true}}},"changelog":{"properties":{"histories":{"dynamic":false,"properties":{}}}},"comments_data":{"properties":{"body":{"type":"text","index":true}}}}}}}`).
JiraRichMapping - Jira rich index mapping JiraRichMapping = []byte(`{"properties":{"metadata__updated_on":{"type":"date"},"main_description_analyzed":{"type":"text","index":true},"releases":{"type":"keyword"},"body":{"type":"text","index":true}}}`).
JiraRoles - roles defined for Jira backend.
JiraSearchFields - extra search fields.
LowerDayNames - downcased 3 letter US day names.
LowerFullMonthNames - map lower month names (full).
LowerMonthNames - map lower month names.
MappingNotAnalyzeString - make all string keywords by default (not analyze them).
MT - are we running in multiple threading mode?.
MustWaitRE - parse too many requests error message.
OpenAddrRE - '<...' -> '<' (..
RawFields - standard raw fields.
RequiredAffsFields - required affs fields.
RocketchatCategories - categories defined for Rocketchat.
RocketchatDefaultMaxItems - max items to retrieve from API via a single request.
RocketchatDefaultMinRate - default min rate points (when not set).
RocketchatDefaultSearchField - default search field.
RocketchatRawMapping - Rocketchat raw index mapping.
RocketchatRichMapping - Rocketchat rich index mapping.
RocketchatRoles - roles to fetch affiliation data for rocketchat messages.
SettingsFieldsNumberLimit - make maximum number of index fields bigger (some raw indices have a lot of fields and we don't control this).
SpacesRE - match 1 or more space characters.
StubCategories - categories defined for Stub.
StubRawMapping - Stub raw index mapping.
StubRichMapping - Stub rich index mapping.
TZOffsetRE - time zone offset that comes after +0..
WhiteSpace - one or more whitespace characters.

# Structs

BugZilla parameter context contains all required parameters to run Bugzilla fetch and enrich.
Ctx - environment context packed in structure.
DateCacheEntry - parse date cache entry.
DSConfluence - DS implementation for confluence - does nothing at all, just presents a skeleton code.
DSGerrit - DS implementation for stub - does nothing at all, just presents a skeleton code.
DSGit - DS implementation for git.
DSGitHub - DS implementation for GitHub.
DSGroupsio - DS implementation for stub - does nothing at all, just presents a skeleton code.
DSJira - DS implementation for Jira.
DSRocketchat - DS implementation for rocketchat - does nothing at all, just presents a skeleton code.
DSStub - DS implementation for stub - does nothing at all, just presents a skeleton code.
ESCacheEntry - single cache entry.
GoogleGroups parameter context contains all required parameters to run google groups fetch and enrich.
JiraField - informatin about fields present in issues.
MemCacheEntry - single cache entry.
PiperMail parameter context contains all required parameters to run Piper mail fetch and enrich.
PLS - programming language summary.
RawPLS - programming language summary (all fields as strings).
Repository dockerhub repository data.

# Interfaces

DS - interface for all data source types.

# Type aliases

Flag gets CLI flag values.