From fc64fd8e64b439caa53251803017cbda3ebcae0a Mon Sep 17 00:00:00 2001 From: cluttrdev Date: Thu, 2 May 2024 22:45:03 +0200 Subject: [PATCH] feat: Add new protos --- grpc/client/client.go | 92 +- internal/exporter/exporter.go | 40 +- internal/gitlab/gitlab.go | 2 +- internal/gitlab/jobs.go | 86 +- internal/gitlab/merge_requests.go | 161 ++++ internal/gitlab/pipelines.go | 26 +- internal/gitlab/projects.go | 53 +- internal/tasks/mergerequests.go | 5 + protobuf/servicepb/service.pb.go | 790 +++++++++++------ protobuf/servicepb/service_grpc.pb.go | 301 +++++-- protobuf/typespb/commit.pb.go | 411 +++++++++ protobuf/typespb/job.pb.go | 704 +++++++++++---- protobuf/typespb/mergerequest.pb.go | 834 ++++++++++++++++++ protobuf/typespb/pipeline.pb.go | 196 ++-- protobuf/typespb/project.pb.go | 322 ++++--- protobuf/typespb/user.pb.go | 191 ++++ protos/gitlabexporter/protobuf/commit.proto | 38 + protos/gitlabexporter/protobuf/job.proto | 35 + .../protobuf/mergerequest.proto | 117 +++ protos/gitlabexporter/protobuf/pipeline.proto | 4 + protos/gitlabexporter/protobuf/project.proto | 46 +- .../protobuf/service/service.proto | 71 +- protos/gitlabexporter/protobuf/user.proto | 16 + 23 files changed, 3666 insertions(+), 875 deletions(-) create mode 100644 internal/gitlab/merge_requests.go create mode 100644 internal/tasks/mergerequests.go create mode 100644 protobuf/typespb/commit.pb.go create mode 100644 protobuf/typespb/mergerequest.pb.go create mode 100644 protobuf/typespb/user.pb.go create mode 100644 protos/gitlabexporter/protobuf/commit.proto create mode 100644 protos/gitlabexporter/protobuf/mergerequest.proto create mode 100644 protos/gitlabexporter/protobuf/user.proto diff --git a/grpc/client/client.go b/grpc/client/client.go index e3a64f1..62e1ef6 100644 --- a/grpc/client/client.go +++ b/grpc/client/client.go @@ -49,25 +49,25 @@ func (c *Client) MetricsCollector() prometheus.Collector { return c.metrics } -func RecordProjects(c *Client, ctx context.Context, data []*typespb.Project) error { - req := &servicepb.RecordProjectsRequest{ +func RecordCommits(c *Client, ctx context.Context, data []*typespb.Commit) error { + req := &servicepb.RecordCommitsRequest{ Data: data, } - _, err := c.stub.RecordProjects(ctx, req /* opts ...grpc.CallOption */) + _, err := c.stub.RecordCommits(ctx, req /* opts ...grpc.CallOption */) if err != nil { - return fmt.Errorf("error recording projects: %w", err) + return fmt.Errorf("error recording commits: %w", err) } return nil } -func RecordPipelines(c *Client, ctx context.Context, data []*typespb.Pipeline) error { - req := &servicepb.RecordPipelinesRequest{ +func RecordBridges(c *Client, ctx context.Context, data []*typespb.Bridge) error { + req := &servicepb.RecordBridgesRequest{ Data: data, } - _, err := c.stub.RecordPipelines(ctx, req /* opts ...grpc.CallOption */) + _, err := c.stub.RecordBridges(ctx, req /* opts ...grpc.CallOption */) if err != nil { - return fmt.Errorf("error recording pipelines: %w", err) + return fmt.Errorf("error recording bridges: %w", err) } return nil @@ -85,49 +85,61 @@ func RecordJobs(c *Client, ctx context.Context, data []*typespb.Job) error { return nil } -func RecordSections(c *Client, ctx context.Context, data []*typespb.Section) error { - req := &servicepb.RecordSectionsRequest{ +func RecordMergeRequests(c *Client, ctx context.Context, data []*typespb.MergeRequest) error { + req := &servicepb.RecordMergeRequestsRequest{ Data: data, } - _, err := c.stub.RecordSections(ctx, req /* opts ...grpc.CallOption */) + _, err := c.stub.RecordMergeRequests(ctx, req /* opts ...grpc.CallOption */) if err != nil { - return fmt.Errorf("error recording sections: %w", err) + return fmt.Errorf("error recording mergerequests: %w", err) } return nil } -func RecordBridges(c *Client, ctx context.Context, data []*typespb.Bridge) error { - req := &servicepb.RecordBridgesRequest{ +func RecordMetrics(c *Client, ctx context.Context, data []*typespb.Metric) error { + req := &servicepb.RecordMetricsRequest{ Data: data, } - _, err := c.stub.RecordBridges(ctx, req /* opts ...grpc.CallOption */) + _, err := c.stub.RecordMetrics(ctx, req /* opts ...grpc.CallOption */) if err != nil { - return fmt.Errorf("error recording brodges: %w", err) + return fmt.Errorf("error recording metrics: %w", err) } return nil } -func RecordTestReports(c *Client, ctx context.Context, data []*typespb.TestReport) error { - req := &servicepb.RecordTestReportsRequest{ +func RecordPipelines(c *Client, ctx context.Context, data []*typespb.Pipeline) error { + req := &servicepb.RecordPipelinesRequest{ Data: data, } - _, err := c.stub.RecordTestReports(ctx, req /* opts ...grpc.CallOption */) + _, err := c.stub.RecordPipelines(ctx, req /* opts ...grpc.CallOption */) if err != nil { - return fmt.Errorf("error recording testreports: %w", err) + return fmt.Errorf("error recording pipelines: %w", err) } return nil } -func RecordTestSuites(c *Client, ctx context.Context, data []*typespb.TestSuite) error { - req := &servicepb.RecordTestSuitesRequest{ +func RecordProjects(c *Client, ctx context.Context, data []*typespb.Project) error { + req := &servicepb.RecordProjectsRequest{ Data: data, } - _, err := c.stub.RecordTestSuites(ctx, req /* opts ...grpc.CallOption */) + _, err := c.stub.RecordProjects(ctx, req /* opts ...grpc.CallOption */) if err != nil { - return fmt.Errorf("error recording testsuites: %w", err) + return fmt.Errorf("error recording projects: %w", err) + } + + return nil +} + +func RecordSections(c *Client, ctx context.Context, data []*typespb.Section) error { + req := &servicepb.RecordSectionsRequest{ + Data: data, + } + _, err := c.stub.RecordSections(ctx, req /* opts ...grpc.CallOption */) + if err != nil { + return fmt.Errorf("error recording sections: %w", err) } return nil @@ -145,13 +157,25 @@ func RecordTestCases(c *Client, ctx context.Context, data []*typespb.TestCase) e return nil } -func RecordMetrics(c *Client, ctx context.Context, data []*typespb.Metric) error { - req := &servicepb.RecordMetricsRequest{ +func RecordTestReports(c *Client, ctx context.Context, data []*typespb.TestReport) error { + req := &servicepb.RecordTestReportsRequest{ Data: data, } - _, err := c.stub.RecordMetrics(ctx, req /* opts ...grpc.CallOption */) + _, err := c.stub.RecordTestReports(ctx, req /* opts ...grpc.CallOption */) if err != nil { - return fmt.Errorf("error recording metrics: %w", err) + return fmt.Errorf("error recording testreports: %w", err) + } + + return nil +} + +func RecordTestSuites(c *Client, ctx context.Context, data []*typespb.TestSuite) error { + req := &servicepb.RecordTestSuitesRequest{ + Data: data, + } + _, err := c.stub.RecordTestSuites(ctx, req /* opts ...grpc.CallOption */) + if err != nil { + return fmt.Errorf("error recording testsuites: %w", err) } return nil @@ -168,3 +192,15 @@ func RecordTraces(c *Client, ctx context.Context, data []*typespb.Trace) error { return nil } + +func RecordUsers(c *Client, ctx context.Context, data []*typespb.User) error { + req := &servicepb.RecordUsersRequest{ + Data: data, + } + _, err := c.stub.RecordUsers(ctx, req /* opts ...grpc.CallOption */) + if err != nil { + return fmt.Errorf("error recording users: %w", err) + } + + return nil +} diff --git a/internal/exporter/exporter.go b/internal/exporter/exporter.go index 321c7bc..09008fe 100644 --- a/internal/exporter/exporter.go +++ b/internal/exporter/exporter.go @@ -59,32 +59,36 @@ func export[T any](exporter *Exporter, ctx context.Context, data []*T, record re return errs } -func (e *Exporter) ExportProjects(ctx context.Context, data []*typespb.Project) error { - return export[typespb.Project](e, ctx, data, grpc_client.RecordProjects) +func (e *Exporter) ExportCommits(ctx context.Context, data []*typespb.Commit) error { + return export[typespb.Commit](e, ctx, data, grpc_client.RecordCommits) } -func (e *Exporter) ExportPipelines(ctx context.Context, data []*typespb.Pipeline) error { - return export[typespb.Pipeline](e, ctx, data, grpc_client.RecordPipelines) +func (e *Exporter) ExportBridges(ctx context.Context, data []*typespb.Bridge) error { + return export[typespb.Bridge](e, ctx, data, grpc_client.RecordBridges) } func (e *Exporter) ExportJobs(ctx context.Context, data []*typespb.Job) error { return export[typespb.Job](e, ctx, data, grpc_client.RecordJobs) } -func (e *Exporter) ExportSections(ctx context.Context, data []*typespb.Section) error { - return export[typespb.Section](e, ctx, data, grpc_client.RecordSections) +func (e *Exporter) ExportMergeRequests(ctx context.Context, data []*typespb.MergeRequest) error { + return export[typespb.MergeRequest](e, ctx, data, grpc_client.RecordMergeRequests) } -func (e *Exporter) ExportBridges(ctx context.Context, data []*typespb.Bridge) error { - return export[typespb.Bridge](e, ctx, data, grpc_client.RecordBridges) +func (e *Exporter) ExportMetrics(ctx context.Context, data []*typespb.Metric) error { + return export[typespb.Metric](e, ctx, data, grpc_client.RecordMetrics) } -func (e *Exporter) ExportTestReports(ctx context.Context, data []*typespb.TestReport) error { - return export[typespb.TestReport](e, ctx, data, grpc_client.RecordTestReports) +func (e *Exporter) ExportPipelines(ctx context.Context, data []*typespb.Pipeline) error { + return export[typespb.Pipeline](e, ctx, data, grpc_client.RecordPipelines) } -func (e *Exporter) ExportTestSuites(ctx context.Context, data []*typespb.TestSuite) error { - return export[typespb.TestSuite](e, ctx, data, grpc_client.RecordTestSuites) +func (e *Exporter) ExportProjects(ctx context.Context, data []*typespb.Project) error { + return export[typespb.Project](e, ctx, data, grpc_client.RecordProjects) +} + +func (e *Exporter) ExportSections(ctx context.Context, data []*typespb.Section) error { + return export[typespb.Section](e, ctx, data, grpc_client.RecordSections) } func (e *Exporter) ExportTestCases(ctx context.Context, data []*typespb.TestCase) error { @@ -103,14 +107,22 @@ func (e *Exporter) ExportTestCases(ctx context.Context, data []*typespb.TestCase return nil } -func (e *Exporter) ExportMetrics(ctx context.Context, data []*typespb.Metric) error { - return export[typespb.Metric](e, ctx, data, grpc_client.RecordMetrics) +func (e *Exporter) ExportTestReports(ctx context.Context, data []*typespb.TestReport) error { + return export[typespb.TestReport](e, ctx, data, grpc_client.RecordTestReports) +} + +func (e *Exporter) ExportTestSuites(ctx context.Context, data []*typespb.TestSuite) error { + return export[typespb.TestSuite](e, ctx, data, grpc_client.RecordTestSuites) } func (e *Exporter) ExportTraces(ctx context.Context, data []*typespb.Trace) error { return export[typespb.Trace](e, ctx, data, grpc_client.RecordTraces) } +func (e *Exporter) ExportUsers(ctx context.Context, data []*typespb.User) error { + return export[typespb.User](e, ctx, data, grpc_client.RecordUsers) +} + func (e *Exporter) ExportPipelineHierarchy(ctx context.Context, ph *gitlab.PipelineHierarchy) error { data, err := flattenPipelineHierarchy(ph) if err != nil { diff --git a/internal/gitlab/gitlab.go b/internal/gitlab/gitlab.go index 76e1b6e..15ef39a 100644 --- a/internal/gitlab/gitlab.go +++ b/internal/gitlab/gitlab.go @@ -9,7 +9,7 @@ import ( timestamppb "google.golang.org/protobuf/types/known/timestamppb" ) -func ptr[T any](v T) *T { +func Ptr[T any](v T) *T { return &v } diff --git a/internal/gitlab/jobs.go b/internal/gitlab/jobs.go index 143c12e..6588b1b 100644 --- a/internal/gitlab/jobs.go +++ b/internal/gitlab/jobs.go @@ -103,8 +103,17 @@ func (c *Client) ListPipelineBridges(ctx context.Context, projectID int64, pipel } func convertJob(job *gitlab.Job) *typespb.Job { + artifacts := make([]*typespb.JobArtifacts, 0, len(job.Artifacts)) + for _, a := range job.Artifacts { + artifacts = append(artifacts, &typespb.JobArtifacts{ + Filename: a.Filename, + FileType: a.FileType, + FileFormat: a.FileFormat, + Size: int64(a.Size), + }) + } + return &typespb.Job{ - // Commit: ConvertCommit(job.Commit), Id: int64(job.ID), Name: job.Name, Pipeline: &typespb.PipelineReference{ @@ -122,18 +131,69 @@ func convertJob(job *gitlab.Job) *typespb.Job { Duration: convertDuration(job.Duration), QueuedDuration: convertDuration(job.QueuedDuration), Coverage: job.Coverage, - // Artifacts: ?, - // ArtifactsFile: ?, - // Runner: ConvertRunner(job.Runner), - Stage: job.Stage, - Status: job.Status, - AllowFailure: job.AllowFailure, - FailureReason: job.FailureReason, - Tag: job.Tag, - WebUrl: job.WebURL, - TagList: job.TagList, - // Project: ConvertProject(job.Project), - // User: ConvertUser(job.User), + Stage: job.Stage, + Status: job.Status, + AllowFailure: job.AllowFailure, + FailureReason: job.FailureReason, + Tag: job.Tag, + WebUrl: job.WebURL, + TagList: job.TagList, + + Commit: convertCommit(job.Commit), + Project: convertProject(job.Project), + User: convertUser(job.User), + + Runner: &typespb.JobRunner{ + Id: int64(job.Runner.ID), + Name: job.Runner.Name, + Description: job.Runner.Description, + Active: job.Runner.Active, + IsShared: job.Runner.IsShared, + }, + + Artifacts: artifacts, + ArtifactsFile: &typespb.JobArtifactsFile{ + Filename: job.ArtifactsFile.Filename, + Size: int64(job.ArtifactsFile.Size), + }, + ArtifactsExpireAt: convertTime(job.ArtifactsExpireAt), + } +} + +func convertCommit(commit *gitlab.Commit) *typespb.Commit { + var status string + if commit.Status != nil { + status = string(*commit.Status) + } + return &typespb.Commit{ + Id: commit.ID, + ShortId: commit.ShortID, + ParentIds: commit.ParentIDs, + ProjectId: int64(commit.ProjectID), + AuthorName: commit.AuthorName, + AuthorEmail: commit.AuthorEmail, + AuthoredDate: convertTime(commit.AuthoredDate), + CommitterName: commit.CommitterName, + CommitterEmail: commit.CommitterEmail, + CommittedDate: convertTime(commit.CommittedDate), + CreatedAt: convertTime(commit.CreatedAt), + Title: commit.Title, + Message: commit.Message, + Trailers: commit.Trailers, + Stats: convertCommitStats(commit.Stats), + Status: status, + WebUrl: commit.WebURL, + } +} + +func convertCommitStats(stats *gitlab.CommitStats) *typespb.CommitStats { + if stats == nil { + return nil + } + return &typespb.CommitStats{ + Additions: int64(stats.Additions), + Deletions: int64(stats.Deletions), + Total: int64(stats.Total), } } diff --git a/internal/gitlab/merge_requests.go b/internal/gitlab/merge_requests.go new file mode 100644 index 0000000..d58f32b --- /dev/null +++ b/internal/gitlab/merge_requests.go @@ -0,0 +1,161 @@ +package gitlab + +import ( + "context" + "time" + + gitlab "github.com/xanzy/go-gitlab" + + "github.com/cluttrdev/gitlab-exporter/protobuf/typespb" +) + +type ListProjectMergeRequestsOptions struct { + gitlab.ListProjectMergeRequestsOptions + + Paginate bool +} + +func (c *Client) ListProjectMergeRequests(ctx context.Context, id int64, opt ListProjectMergeRequestsOptions) ([]*typespb.MergeRequest, error) { + var mergerequests []*typespb.MergeRequest + + options := []gitlab.RequestOptionFunc{ + gitlab.WithContext(ctx), + } + + for { + mrs, resp, err := c.client.MergeRequests.ListProjectMergeRequests(int(id), &opt.ListProjectMergeRequestsOptions, options...) + if err != nil { + return mergerequests, err + } + + for _, mr := range mrs { + mergerequests = append(mergerequests, ConvertMergeRequest(mr)) + } + + if !opt.Paginate { + break + } + + if opt.ListOptions.Pagination == "keyset" { + if resp.NextLink == "" { + break + } + options = []gitlab.RequestOptionFunc{ + gitlab.WithContext(ctx), + gitlab.WithKeysetPaginationParameters(resp.NextLink), + } + } else { + if resp.NextPage == 0 { + break + } + opt.Page = resp.NextPage + } + } + + return mergerequests, nil +} + +func ConvertMergeRequest(mr *gitlab.MergeRequest) *typespb.MergeRequest { + return &typespb.MergeRequest{ + Id: int64(mr.ID), + Iid: int64(mr.IID), + ProjectId: int64(mr.ProjectID), + + CreatedAt: convertTime(mr.CreatedAt), + UpdatedAt: convertTime(mr.UpdatedAt), + MergedAt: convertTime(mr.MergedAt), + ClosedAt: convertTime(mr.ClosedAt), + + SourceProjectId: int64(mr.SourceProjectID), + TargetProjectId: int64(mr.TargetProjectID), + SourceBranch: mr.SourceBranch, + TargetBranch: mr.TargetBranch, + + Title: mr.Title, + State: mr.State, + DetailedMergeStatus: mr.DetailedMergeStatus, + Draft: mr.Draft, + HasConflicts: mr.HasConflicts, + MergeError: mr.MergeError, + + DiffRefs: &typespb.MergeRequestDiffRefs{ + BaseSha: mr.DiffRefs.BaseSha, + HeadSha: mr.DiffRefs.HeadSha, + StartSha: mr.DiffRefs.StartSha, + }, + + Author: convertBasicUser(mr.Author), + Assignee: convertBasicUser(mr.Assignee), + Assignees: convertUsers(mr.Assignees), + Reviewers: convertUsers(mr.Reviewers), + MergeUser: convertBasicUser(mr.MergedBy), + CloseUser: convertBasicUser(mr.ClosedBy), + + Labels: mr.Labels, + + Sha: mr.SHA, + MergeCommitSha: mr.MergeCommitSHA, + SquashCommitSha: mr.SquashCommitSHA, + + ChangesCount: mr.ChangesCount, + UserNotesCount: int64(mr.UserNotesCount), + Upvotes: int64(mr.Upvotes), + Downvotes: int64(mr.Downvotes), + + Pipeline: convertPipelineInfo(mr.Pipeline), + + Milestone: convertMilestone(mr.Milestone), + + WebUrl: mr.WebURL, + } +} + +func convertBasicUser(u *gitlab.BasicUser) *typespb.User { + if u == nil { + return nil + } + return &typespb.User{ + Id: int64(u.ID), + Username: u.Username, + Name: u.Name, + State: u.State, + CreatedAt: convertTime(u.CreatedAt), + } +} + +func convertUser(u *gitlab.User) *typespb.User { + if u == nil { + return nil + } + return &typespb.User{ + Id: int64(u.ID), + Username: u.Username, + Name: u.Name, + State: u.State, + CreatedAt: convertTime(u.CreatedAt), + } +} + +func convertUsers(us []*gitlab.BasicUser) []*typespb.User { + users := make([]*typespb.User, 0, len(us)) + for _, u := range us { + users = append(users, convertBasicUser(u)) + } + return users +} + +func convertMilestone(m *gitlab.Milestone) *typespb.Milestone { + if m == nil { + return nil + } + return &typespb.Milestone{ + Id: int64(m.ID), + Iid: int64(m.IID), + ProjectId: int64(m.ProjectID), + GroupId: int64(m.GroupID), + CreatedAt: convertTime(m.CreatedAt), + UpdatedAt: convertTime(m.UpdatedAt), + StartDate: convertTime((*time.Time)(m.StartDate)), + DueDate: convertTime((*time.Time)(m.DueDate)), + } +} diff --git a/internal/gitlab/pipelines.go b/internal/gitlab/pipelines.go index b4a7e17..d6be845 100644 --- a/internal/gitlab/pipelines.go +++ b/internal/gitlab/pipelines.go @@ -62,6 +62,9 @@ func (c *Client) GetPipeline(ctx context.Context, projectID int64, pipelineID in } func convertPipelineInfo(pipeline *gitlab.PipelineInfo) *typespb.PipelineInfo { + if pipeline == nil { + return nil + } return &typespb.PipelineInfo{ Id: int64(pipeline.ID), Iid: int64(pipeline.IID), @@ -78,17 +81,16 @@ func convertPipelineInfo(pipeline *gitlab.PipelineInfo) *typespb.PipelineInfo { func convertPipeline(pipeline *gitlab.Pipeline) *typespb.Pipeline { return &typespb.Pipeline{ - Id: int64(pipeline.ID), - Iid: int64(pipeline.IID), - ProjectId: int64(pipeline.ProjectID), - Status: pipeline.Status, - Source: pipeline.Source, - Ref: pipeline.Ref, - Sha: pipeline.SHA, - BeforeSha: pipeline.BeforeSHA, - Tag: pipeline.Tag, - YamlErrors: pipeline.YamlErrors, - // User: ConvertUser(pipeline.User), + Id: int64(pipeline.ID), + Iid: int64(pipeline.IID), + ProjectId: int64(pipeline.ProjectID), + Status: pipeline.Status, + Source: pipeline.Source, + Ref: pipeline.Ref, + Sha: pipeline.SHA, + BeforeSha: pipeline.BeforeSHA, + Tag: pipeline.Tag, + YamlErrors: pipeline.YamlErrors, CreatedAt: convertTime(pipeline.CreatedAt), UpdatedAt: convertTime(pipeline.UpdatedAt), StartedAt: convertTime(pipeline.StartedAt), @@ -98,7 +100,7 @@ func convertPipeline(pipeline *gitlab.Pipeline) *typespb.Pipeline { QueuedDuration: convertDuration(float64(pipeline.QueuedDuration)), Coverage: convertCoverage(pipeline.Coverage), WebUrl: pipeline.WebURL, - // DetailedStatus: ConvertDetailedStatus(pipeline.DetailedStatus), + User: convertBasicUser(pipeline.User), } } diff --git a/internal/gitlab/projects.go b/internal/gitlab/projects.go index 203ff00..16a2fce 100644 --- a/internal/gitlab/projects.go +++ b/internal/gitlab/projects.go @@ -38,7 +38,7 @@ func (c *Client) ListProjects(ctx context.Context, opt ListProjectsOptions) ([]* func (c *Client) GetProject(ctx context.Context, id int64) (*typespb.Project, error) { opt := gitlab.GetProjectOptions{ - Statistics: ptr(true), + Statistics: Ptr(true), } p, _, err := c.client.Projects.GetProject(int(id), &opt, gitlab.WithContext(ctx)) @@ -130,20 +130,35 @@ func convertProject(p *gitlab.Project) *typespb.Project { NameWithNamespace: p.NameWithNamespace, Path: p.Path, PathWithNamespace: p.PathWithNamespace, - Description: p.Description, CreatedAt: convertTime(p.CreatedAt), LastActivityAt: convertTime(p.LastActivityAt), + Namespace: convertProjectNamespace(p.Namespace), + Owner: convertUser(p.Owner), + CreatorId: int64(p.CreatorID), + + Topics: p.Topics, + ForksCount: int64(p.ForksCount), + StarsCount: int64(p.StarCount), + Statistics: convertProjectStatistics(p.Statistics), + OpenIssuesCount: int64(p.OpenIssuesCount), + + Description: p.Description, + + EmptyRepo: p.EmptyRepo, + Archived: p.Archived, + DefaultBranch: p.DefaultBranch, + Visibility: string(p.Visibility), WebUrl: p.WebURL, - - Namespace: convertProjectNamespace(p.Namespace), - Statistics: convertProjectStatistics(p), } } func convertProjectNamespace(n *gitlab.ProjectNamespace) *typespb.ProjectNamespace { + if n == nil { + return nil + } return &typespb.ProjectNamespace{ Id: int64(n.ID), Name: n.Name, @@ -157,21 +172,19 @@ func convertProjectNamespace(n *gitlab.ProjectNamespace) *typespb.ProjectNamespa } } -func convertProjectStatistics(p *gitlab.Project) *typespb.ProjectStatistics { - s := &typespb.ProjectStatistics{ - ForksCount: int64(p.ForksCount), - StarsCount: int64(p.StarCount), +func convertProjectStatistics(stats *gitlab.Statistics) *typespb.ProjectStatistics { + if stats == nil { + return nil } - if p.Statistics != nil { - s.CommitCount = p.Statistics.CommitCount - s.StorageSize = p.Statistics.StorageSize - s.RepositorySize = p.Statistics.RepositorySize - s.WikiSize = p.Statistics.WikiSize - s.LfsObjectsSize = p.Statistics.LFSObjectsSize - s.JobArtifactsSize = p.Statistics.JobArtifactsSize - s.PackagesSize = p.Statistics.PackagesSize - s.SnippetsSize = p.Statistics.SnippetsSize - s.UploadsSize = p.Statistics.UploadsSize + return &typespb.ProjectStatistics{ + CommitCount: stats.CommitCount, + StorageSize: stats.StorageSize, + RepositorySize: stats.RepositorySize, + WikiSize: stats.WikiSize, + LfsObjectsSize: stats.LFSObjectsSize, + JobArtifactsSize: stats.JobArtifactsSize, + PackagesSize: stats.PackagesSize, + SnippetsSize: stats.SnippetsSize, + UploadsSize: stats.UploadsSize, } - return s } diff --git a/internal/tasks/mergerequests.go b/internal/tasks/mergerequests.go new file mode 100644 index 0000000..f3745c5 --- /dev/null +++ b/internal/tasks/mergerequests.go @@ -0,0 +1,5 @@ +package tasks + +type ExportProjectMergeRequestsOptions struct { + +} diff --git a/protobuf/servicepb/service.pb.go b/protobuf/servicepb/service.pb.go index 9746869..4d6464c 100644 --- a/protobuf/servicepb/service.pb.go +++ b/protobuf/servicepb/service.pb.go @@ -68,16 +68,16 @@ func (x *RecordSummary) GetRecordedCount() int32 { return 0 } -type RecordProjectsRequest struct { +type RecordCommitsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Data []*typespb.Project `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty"` + Data []*typespb.Commit `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty"` } -func (x *RecordProjectsRequest) Reset() { - *x = RecordProjectsRequest{} +func (x *RecordCommitsRequest) Reset() { + *x = RecordCommitsRequest{} if protoimpl.UnsafeEnabled { mi := &file_gitlabexporter_protobuf_service_service_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -85,13 +85,13 @@ func (x *RecordProjectsRequest) Reset() { } } -func (x *RecordProjectsRequest) String() string { +func (x *RecordCommitsRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RecordProjectsRequest) ProtoMessage() {} +func (*RecordCommitsRequest) ProtoMessage() {} -func (x *RecordProjectsRequest) ProtoReflect() protoreflect.Message { +func (x *RecordCommitsRequest) ProtoReflect() protoreflect.Message { mi := &file_gitlabexporter_protobuf_service_service_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -103,28 +103,28 @@ func (x *RecordProjectsRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RecordProjectsRequest.ProtoReflect.Descriptor instead. -func (*RecordProjectsRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use RecordCommitsRequest.ProtoReflect.Descriptor instead. +func (*RecordCommitsRequest) Descriptor() ([]byte, []int) { return file_gitlabexporter_protobuf_service_service_proto_rawDescGZIP(), []int{1} } -func (x *RecordProjectsRequest) GetData() []*typespb.Project { +func (x *RecordCommitsRequest) GetData() []*typespb.Commit { if x != nil { return x.Data } return nil } -type RecordPipelinesRequest struct { +type RecordBridgesRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Data []*typespb.Pipeline `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty"` + Data []*typespb.Bridge `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty"` } -func (x *RecordPipelinesRequest) Reset() { - *x = RecordPipelinesRequest{} +func (x *RecordBridgesRequest) Reset() { + *x = RecordBridgesRequest{} if protoimpl.UnsafeEnabled { mi := &file_gitlabexporter_protobuf_service_service_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -132,13 +132,13 @@ func (x *RecordPipelinesRequest) Reset() { } } -func (x *RecordPipelinesRequest) String() string { +func (x *RecordBridgesRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RecordPipelinesRequest) ProtoMessage() {} +func (*RecordBridgesRequest) ProtoMessage() {} -func (x *RecordPipelinesRequest) ProtoReflect() protoreflect.Message { +func (x *RecordBridgesRequest) ProtoReflect() protoreflect.Message { mi := &file_gitlabexporter_protobuf_service_service_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -150,12 +150,12 @@ func (x *RecordPipelinesRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RecordPipelinesRequest.ProtoReflect.Descriptor instead. -func (*RecordPipelinesRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use RecordBridgesRequest.ProtoReflect.Descriptor instead. +func (*RecordBridgesRequest) Descriptor() ([]byte, []int) { return file_gitlabexporter_protobuf_service_service_proto_rawDescGZIP(), []int{2} } -func (x *RecordPipelinesRequest) GetData() []*typespb.Pipeline { +func (x *RecordBridgesRequest) GetData() []*typespb.Bridge { if x != nil { return x.Data } @@ -209,16 +209,16 @@ func (x *RecordJobsRequest) GetData() []*typespb.Job { return nil } -type RecordSectionsRequest struct { +type RecordMergeRequestsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Data []*typespb.Section `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty"` + Data []*typespb.MergeRequest `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty"` } -func (x *RecordSectionsRequest) Reset() { - *x = RecordSectionsRequest{} +func (x *RecordMergeRequestsRequest) Reset() { + *x = RecordMergeRequestsRequest{} if protoimpl.UnsafeEnabled { mi := &file_gitlabexporter_protobuf_service_service_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -226,13 +226,13 @@ func (x *RecordSectionsRequest) Reset() { } } -func (x *RecordSectionsRequest) String() string { +func (x *RecordMergeRequestsRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RecordSectionsRequest) ProtoMessage() {} +func (*RecordMergeRequestsRequest) ProtoMessage() {} -func (x *RecordSectionsRequest) ProtoReflect() protoreflect.Message { +func (x *RecordMergeRequestsRequest) ProtoReflect() protoreflect.Message { mi := &file_gitlabexporter_protobuf_service_service_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -244,28 +244,28 @@ func (x *RecordSectionsRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RecordSectionsRequest.ProtoReflect.Descriptor instead. -func (*RecordSectionsRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use RecordMergeRequestsRequest.ProtoReflect.Descriptor instead. +func (*RecordMergeRequestsRequest) Descriptor() ([]byte, []int) { return file_gitlabexporter_protobuf_service_service_proto_rawDescGZIP(), []int{4} } -func (x *RecordSectionsRequest) GetData() []*typespb.Section { +func (x *RecordMergeRequestsRequest) GetData() []*typespb.MergeRequest { if x != nil { return x.Data } return nil } -type RecordBridgesRequest struct { +type RecordMetricsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Data []*typespb.Bridge `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty"` + Data []*typespb.Metric `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty"` } -func (x *RecordBridgesRequest) Reset() { - *x = RecordBridgesRequest{} +func (x *RecordMetricsRequest) Reset() { + *x = RecordMetricsRequest{} if protoimpl.UnsafeEnabled { mi := &file_gitlabexporter_protobuf_service_service_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -273,13 +273,13 @@ func (x *RecordBridgesRequest) Reset() { } } -func (x *RecordBridgesRequest) String() string { +func (x *RecordMetricsRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RecordBridgesRequest) ProtoMessage() {} +func (*RecordMetricsRequest) ProtoMessage() {} -func (x *RecordBridgesRequest) ProtoReflect() protoreflect.Message { +func (x *RecordMetricsRequest) ProtoReflect() protoreflect.Message { mi := &file_gitlabexporter_protobuf_service_service_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -291,28 +291,28 @@ func (x *RecordBridgesRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RecordBridgesRequest.ProtoReflect.Descriptor instead. -func (*RecordBridgesRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use RecordMetricsRequest.ProtoReflect.Descriptor instead. +func (*RecordMetricsRequest) Descriptor() ([]byte, []int) { return file_gitlabexporter_protobuf_service_service_proto_rawDescGZIP(), []int{5} } -func (x *RecordBridgesRequest) GetData() []*typespb.Bridge { +func (x *RecordMetricsRequest) GetData() []*typespb.Metric { if x != nil { return x.Data } return nil } -type RecordTestReportsRequest struct { +type RecordPipelinesRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Data []*typespb.TestReport `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty"` + Data []*typespb.Pipeline `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty"` } -func (x *RecordTestReportsRequest) Reset() { - *x = RecordTestReportsRequest{} +func (x *RecordPipelinesRequest) Reset() { + *x = RecordPipelinesRequest{} if protoimpl.UnsafeEnabled { mi := &file_gitlabexporter_protobuf_service_service_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -320,13 +320,13 @@ func (x *RecordTestReportsRequest) Reset() { } } -func (x *RecordTestReportsRequest) String() string { +func (x *RecordPipelinesRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RecordTestReportsRequest) ProtoMessage() {} +func (*RecordPipelinesRequest) ProtoMessage() {} -func (x *RecordTestReportsRequest) ProtoReflect() protoreflect.Message { +func (x *RecordPipelinesRequest) ProtoReflect() protoreflect.Message { mi := &file_gitlabexporter_protobuf_service_service_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -338,28 +338,28 @@ func (x *RecordTestReportsRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RecordTestReportsRequest.ProtoReflect.Descriptor instead. -func (*RecordTestReportsRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use RecordPipelinesRequest.ProtoReflect.Descriptor instead. +func (*RecordPipelinesRequest) Descriptor() ([]byte, []int) { return file_gitlabexporter_protobuf_service_service_proto_rawDescGZIP(), []int{6} } -func (x *RecordTestReportsRequest) GetData() []*typespb.TestReport { +func (x *RecordPipelinesRequest) GetData() []*typespb.Pipeline { if x != nil { return x.Data } return nil } -type RecordTestSuitesRequest struct { +type RecordProjectsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Data []*typespb.TestSuite `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty"` + Data []*typespb.Project `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty"` } -func (x *RecordTestSuitesRequest) Reset() { - *x = RecordTestSuitesRequest{} +func (x *RecordProjectsRequest) Reset() { + *x = RecordProjectsRequest{} if protoimpl.UnsafeEnabled { mi := &file_gitlabexporter_protobuf_service_service_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -367,13 +367,13 @@ func (x *RecordTestSuitesRequest) Reset() { } } -func (x *RecordTestSuitesRequest) String() string { +func (x *RecordProjectsRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RecordTestSuitesRequest) ProtoMessage() {} +func (*RecordProjectsRequest) ProtoMessage() {} -func (x *RecordTestSuitesRequest) ProtoReflect() protoreflect.Message { +func (x *RecordProjectsRequest) ProtoReflect() protoreflect.Message { mi := &file_gitlabexporter_protobuf_service_service_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -385,12 +385,59 @@ func (x *RecordTestSuitesRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RecordTestSuitesRequest.ProtoReflect.Descriptor instead. -func (*RecordTestSuitesRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use RecordProjectsRequest.ProtoReflect.Descriptor instead. +func (*RecordProjectsRequest) Descriptor() ([]byte, []int) { return file_gitlabexporter_protobuf_service_service_proto_rawDescGZIP(), []int{7} } -func (x *RecordTestSuitesRequest) GetData() []*typespb.TestSuite { +func (x *RecordProjectsRequest) GetData() []*typespb.Project { + if x != nil { + return x.Data + } + return nil +} + +type RecordSectionsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Data []*typespb.Section `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty"` +} + +func (x *RecordSectionsRequest) Reset() { + *x = RecordSectionsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_gitlabexporter_protobuf_service_service_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RecordSectionsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RecordSectionsRequest) ProtoMessage() {} + +func (x *RecordSectionsRequest) ProtoReflect() protoreflect.Message { + mi := &file_gitlabexporter_protobuf_service_service_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RecordSectionsRequest.ProtoReflect.Descriptor instead. +func (*RecordSectionsRequest) Descriptor() ([]byte, []int) { + return file_gitlabexporter_protobuf_service_service_proto_rawDescGZIP(), []int{8} +} + +func (x *RecordSectionsRequest) GetData() []*typespb.Section { if x != nil { return x.Data } @@ -408,7 +455,7 @@ type RecordTestCasesRequest struct { func (x *RecordTestCasesRequest) Reset() { *x = RecordTestCasesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_gitlabexporter_protobuf_service_service_proto_msgTypes[8] + mi := &file_gitlabexporter_protobuf_service_service_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -421,7 +468,7 @@ func (x *RecordTestCasesRequest) String() string { func (*RecordTestCasesRequest) ProtoMessage() {} func (x *RecordTestCasesRequest) ProtoReflect() protoreflect.Message { - mi := &file_gitlabexporter_protobuf_service_service_proto_msgTypes[8] + mi := &file_gitlabexporter_protobuf_service_service_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -434,7 +481,7 @@ func (x *RecordTestCasesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use RecordTestCasesRequest.ProtoReflect.Descriptor instead. func (*RecordTestCasesRequest) Descriptor() ([]byte, []int) { - return file_gitlabexporter_protobuf_service_service_proto_rawDescGZIP(), []int{8} + return file_gitlabexporter_protobuf_service_service_proto_rawDescGZIP(), []int{9} } func (x *RecordTestCasesRequest) GetData() []*typespb.TestCase { @@ -444,31 +491,31 @@ func (x *RecordTestCasesRequest) GetData() []*typespb.TestCase { return nil } -type RecordMetricsRequest struct { +type RecordTestReportsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Data []*typespb.Metric `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty"` + Data []*typespb.TestReport `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty"` } -func (x *RecordMetricsRequest) Reset() { - *x = RecordMetricsRequest{} +func (x *RecordTestReportsRequest) Reset() { + *x = RecordTestReportsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_gitlabexporter_protobuf_service_service_proto_msgTypes[9] + mi := &file_gitlabexporter_protobuf_service_service_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *RecordMetricsRequest) String() string { +func (x *RecordTestReportsRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RecordMetricsRequest) ProtoMessage() {} +func (*RecordTestReportsRequest) ProtoMessage() {} -func (x *RecordMetricsRequest) ProtoReflect() protoreflect.Message { - mi := &file_gitlabexporter_protobuf_service_service_proto_msgTypes[9] +func (x *RecordTestReportsRequest) ProtoReflect() protoreflect.Message { + mi := &file_gitlabexporter_protobuf_service_service_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -479,12 +526,59 @@ func (x *RecordMetricsRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RecordMetricsRequest.ProtoReflect.Descriptor instead. -func (*RecordMetricsRequest) Descriptor() ([]byte, []int) { - return file_gitlabexporter_protobuf_service_service_proto_rawDescGZIP(), []int{9} +// Deprecated: Use RecordTestReportsRequest.ProtoReflect.Descriptor instead. +func (*RecordTestReportsRequest) Descriptor() ([]byte, []int) { + return file_gitlabexporter_protobuf_service_service_proto_rawDescGZIP(), []int{10} } -func (x *RecordMetricsRequest) GetData() []*typespb.Metric { +func (x *RecordTestReportsRequest) GetData() []*typespb.TestReport { + if x != nil { + return x.Data + } + return nil +} + +type RecordTestSuitesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Data []*typespb.TestSuite `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty"` +} + +func (x *RecordTestSuitesRequest) Reset() { + *x = RecordTestSuitesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_gitlabexporter_protobuf_service_service_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RecordTestSuitesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RecordTestSuitesRequest) ProtoMessage() {} + +func (x *RecordTestSuitesRequest) ProtoReflect() protoreflect.Message { + mi := &file_gitlabexporter_protobuf_service_service_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RecordTestSuitesRequest.ProtoReflect.Descriptor instead. +func (*RecordTestSuitesRequest) Descriptor() ([]byte, []int) { + return file_gitlabexporter_protobuf_service_service_proto_rawDescGZIP(), []int{11} +} + +func (x *RecordTestSuitesRequest) GetData() []*typespb.TestSuite { if x != nil { return x.Data } @@ -502,7 +596,7 @@ type RecordTracesRequest struct { func (x *RecordTracesRequest) Reset() { *x = RecordTracesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_gitlabexporter_protobuf_service_service_proto_msgTypes[10] + mi := &file_gitlabexporter_protobuf_service_service_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -515,7 +609,7 @@ func (x *RecordTracesRequest) String() string { func (*RecordTracesRequest) ProtoMessage() {} func (x *RecordTracesRequest) ProtoReflect() protoreflect.Message { - mi := &file_gitlabexporter_protobuf_service_service_proto_msgTypes[10] + mi := &file_gitlabexporter_protobuf_service_service_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -528,7 +622,7 @@ func (x *RecordTracesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use RecordTracesRequest.ProtoReflect.Descriptor instead. func (*RecordTracesRequest) Descriptor() ([]byte, []int) { - return file_gitlabexporter_protobuf_service_service_proto_rawDescGZIP(), []int{10} + return file_gitlabexporter_protobuf_service_service_proto_rawDescGZIP(), []int{12} } func (x *RecordTracesRequest) GetData() []*typespb.Trace { @@ -538,6 +632,53 @@ func (x *RecordTracesRequest) GetData() []*typespb.Trace { return nil } +type RecordUsersRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Data []*typespb.User `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty"` +} + +func (x *RecordUsersRequest) Reset() { + *x = RecordUsersRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_gitlabexporter_protobuf_service_service_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RecordUsersRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RecordUsersRequest) ProtoMessage() {} + +func (x *RecordUsersRequest) ProtoReflect() protoreflect.Message { + mi := &file_gitlabexporter_protobuf_service_service_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RecordUsersRequest.ProtoReflect.Descriptor instead. +func (*RecordUsersRequest) Descriptor() ([]byte, []int) { + return file_gitlabexporter_protobuf_service_service_proto_rawDescGZIP(), []int{13} +} + +func (x *RecordUsersRequest) GetData() []*typespb.User { + if x != nil { + return x.Data + } + return nil +} + var File_gitlabexporter_protobuf_service_service_proto protoreflect.FileDescriptor var file_gitlabexporter_protobuf_service_service_proto_rawDesc = []byte{ @@ -546,159 +687,205 @@ var file_gitlabexporter_protobuf_service_service_proto_rawDesc = []byte{ 0x65, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1f, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x1a, 0x25, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, - 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x26, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, - 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, - 0x21, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2f, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x6a, 0x6f, 0x62, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x1a, 0x25, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, - 0x65, 0x72, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x28, 0x67, 0x69, 0x74, 0x6c, 0x61, - 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x1a, 0x24, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, - 0x74, 0x65, 0x72, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x23, 0x67, 0x69, 0x74, 0x6c, 0x61, + 0x1a, 0x24, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, + 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x21, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, + 0x6a, 0x6f, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2a, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x36, - 0x0a, 0x0d, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, - 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x65, - 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x4d, 0x0a, 0x15, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, - 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x34, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, - 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, - 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x4f, 0x0a, 0x16, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x50, - 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x35, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, - 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, + 0x75, 0x66, 0x2f, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x24, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x26, 0x67, 0x69, 0x74, + 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2f, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x1a, 0x25, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x72, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x25, 0x67, 0x69, 0x74, 0x6c, + 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2f, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x1a, 0x28, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x72, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x72, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x23, 0x67, 0x69, 0x74, + 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2f, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x1a, 0x22, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, + 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x36, 0x0a, 0x0d, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x53, 0x75, + 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x65, + 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x72, + 0x65, 0x63, 0x6f, 0x72, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x4b, 0x0a, 0x14, + 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x33, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x43, 0x6f, 0x6d, + 0x6d, 0x69, 0x74, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x4b, 0x0a, 0x14, 0x52, 0x65, 0x63, + 0x6f, 0x72, 0x64, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x33, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x1f, 0x2e, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x45, 0x0a, 0x11, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x4d, 0x0a, - 0x15, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x34, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x4b, 0x0a, 0x14, - 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x33, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, - 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x72, 0x69, - 0x64, 0x67, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x53, 0x0a, 0x18, 0x52, 0x65, 0x63, - 0x6f, 0x72, 0x64, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x37, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, - 0x72, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x65, - 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x51, - 0x0a, 0x17, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, - 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x04, 0x64, 0x61, 0x74, - 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, - 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, - 0x61, 0x22, 0x4f, 0x0a, 0x16, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x54, 0x65, 0x73, 0x74, 0x43, - 0x61, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x35, 0x0a, 0x04, 0x64, - 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x69, 0x74, 0x6c, + 0x62, 0x75, 0x66, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x57, 0x0a, + 0x1a, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x04, 0x64, + 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x04, 0x64, 0x61, - 0x74, 0x61, 0x22, 0x4b, 0x0a, 0x14, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x33, 0x0a, 0x04, 0x64, 0x61, - 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x69, 0x74, 0x6c, 0x61, - 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, - 0x49, 0x0a, 0x13, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x54, 0x72, 0x61, 0x63, 0x65, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, - 0x72, 0x61, 0x63, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x32, 0xe7, 0x09, 0x0a, 0x0e, 0x47, - 0x69, 0x74, 0x4c, 0x61, 0x62, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x7a, 0x0a, - 0x0e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, - 0x36, 0x2e, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, - 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, - 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x22, 0x00, 0x12, 0x7c, 0x0a, 0x0f, 0x52, 0x65, 0x63, - 0x6f, 0x72, 0x64, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x12, 0x37, 0x2e, 0x67, + 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x4b, 0x0a, 0x14, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x33, + 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, - 0x65, 0x63, 0x6f, 0x72, 0x64, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x53, 0x75, - 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x22, 0x00, 0x12, 0x72, 0x0a, 0x0a, 0x52, 0x65, 0x63, 0x6f, 0x72, - 0x64, 0x4a, 0x6f, 0x62, 0x73, 0x12, 0x32, 0x2e, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x4a, 0x6f, - 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x67, 0x69, 0x74, 0x6c, - 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x63, 0x6f, - 0x72, 0x64, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x22, 0x00, 0x12, 0x7a, 0x0a, 0x0e, 0x52, - 0x65, 0x63, 0x6f, 0x72, 0x64, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x36, 0x2e, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x04, 0x64, + 0x61, 0x74, 0x61, 0x22, 0x4f, 0x0a, 0x16, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x50, 0x69, 0x70, + 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x35, 0x0a, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x69, + 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x22, 0x4d, 0x0a, 0x15, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x50, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x34, 0x0a, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x69, + 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x04, 0x64, + 0x61, 0x74, 0x61, 0x22, 0x4d, 0x0a, 0x15, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x53, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x34, 0x0a, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x69, 0x74, + 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x64, 0x61, + 0x74, 0x61, 0x22, 0x4f, 0x0a, 0x16, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x54, 0x65, 0x73, 0x74, + 0x43, 0x61, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x35, 0x0a, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x69, 0x74, + 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x04, 0x64, + 0x61, 0x74, 0x61, 0x22, 0x53, 0x0a, 0x18, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x54, 0x65, 0x73, + 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x37, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, + 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x51, 0x0a, 0x17, 0x52, 0x65, 0x63, 0x6f, + 0x72, 0x64, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, + 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x65, 0x73, 0x74, + 0x53, 0x75, 0x69, 0x74, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x49, 0x0a, 0x13, 0x52, + 0x65, 0x63, 0x6f, 0x72, 0x64, 0x54, 0x72, 0x61, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x32, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x1e, 0x2e, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, + 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x47, 0x0a, 0x12, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, + 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x31, 0x0a, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x69, 0x74, + 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x32, + 0xde, 0x0c, 0x0a, 0x0e, 0x47, 0x69, 0x74, 0x4c, 0x61, 0x62, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, + 0x65, 0x72, 0x12, 0x78, 0x0a, 0x0d, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x42, 0x72, 0x69, 0x64, + 0x67, 0x65, 0x73, 0x12, 0x35, 0x2e, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, + 0x72, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x42, 0x72, 0x69, 0x64, + 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x67, 0x69, 0x74, + 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x63, + 0x6f, 0x72, 0x64, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x22, 0x00, 0x12, 0x78, 0x0a, 0x0d, + 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x12, 0x35, 0x2e, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, - 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x53, 0x75, - 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x22, 0x00, 0x12, 0x78, 0x0a, 0x0d, 0x52, 0x65, 0x63, 0x6f, 0x72, - 0x64, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x12, 0x35, 0x2e, 0x67, 0x69, 0x74, 0x6c, 0x61, + 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x53, 0x75, 0x6d, + 0x6d, 0x61, 0x72, 0x79, 0x22, 0x00, 0x12, 0x72, 0x0a, 0x0a, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, + 0x4a, 0x6f, 0x62, 0x73, 0x12, 0x32, 0x2e, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x4a, 0x6f, 0x62, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x72, - 0x64, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x64, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x22, 0x00, 0x12, 0x84, 0x01, 0x0a, 0x13, 0x52, + 0x65, 0x63, 0x6f, 0x72, 0x64, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x73, 0x12, 0x3b, 0x2e, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x4d, 0x65, 0x72, 0x67, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x22, - 0x00, 0x12, 0x80, 0x01, 0x0a, 0x11, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x54, 0x65, 0x73, 0x74, - 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x39, 0x2e, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, + 0x00, 0x12, 0x78, 0x0a, 0x0d, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x73, 0x12, 0x35, 0x2e, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x67, 0x69, 0x74, 0x6c, + 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x63, 0x6f, + 0x72, 0x64, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x22, 0x00, 0x12, 0x7c, 0x0a, 0x0f, 0x52, + 0x65, 0x63, 0x6f, 0x72, 0x64, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x12, 0x37, + 0x2e, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, - 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, - 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x53, 0x75, 0x6d, 0x6d, 0x61, - 0x72, 0x79, 0x22, 0x00, 0x12, 0x7e, 0x0a, 0x10, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x54, 0x65, - 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x73, 0x12, 0x38, 0x2e, 0x67, 0x69, 0x74, 0x6c, 0x61, - 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x72, - 0x64, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, - 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x53, 0x75, 0x6d, 0x6d, 0x61, - 0x72, 0x79, 0x22, 0x00, 0x12, 0x7c, 0x0a, 0x0f, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x54, 0x65, - 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x12, 0x37, 0x2e, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, + 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x22, 0x00, 0x12, 0x7a, 0x0a, 0x0e, 0x52, 0x65, 0x63, + 0x6f, 0x72, 0x64, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, 0x36, 0x2e, 0x67, 0x69, + 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, + 0x63, 0x6f, 0x72, 0x64, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, + 0x72, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x53, 0x75, 0x6d, 0x6d, + 0x61, 0x72, 0x79, 0x22, 0x00, 0x12, 0x7a, 0x0a, 0x0e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x53, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x36, 0x2e, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, - 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x2e, 0x2e, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x22, + 0x00, 0x12, 0x7c, 0x0a, 0x0f, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x54, 0x65, 0x73, 0x74, 0x43, + 0x61, 0x73, 0x65, 0x73, 0x12, 0x37, 0x2e, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x54, 0x65, 0x73, + 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, + 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, + 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x22, 0x00, 0x12, + 0x80, 0x01, 0x0a, 0x11, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x39, 0x2e, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x54, 0x65, + 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, - 0x22, 0x00, 0x12, 0x78, 0x0a, 0x0d, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x73, 0x12, 0x35, 0x2e, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, - 0x72, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x67, 0x69, 0x74, - 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x63, - 0x6f, 0x72, 0x64, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x22, 0x00, 0x12, 0x76, 0x0a, 0x0c, - 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x54, 0x72, 0x61, 0x63, 0x65, 0x73, 0x12, 0x34, 0x2e, 0x67, - 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, - 0x65, 0x63, 0x6f, 0x72, 0x64, 0x54, 0x72, 0x61, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, + 0x22, 0x00, 0x12, 0x7e, 0x0a, 0x10, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x54, 0x65, 0x73, 0x74, + 0x53, 0x75, 0x69, 0x74, 0x65, 0x73, 0x12, 0x38, 0x2e, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, + 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x54, + 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x2e, 0x2e, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, + 0x22, 0x00, 0x12, 0x76, 0x0a, 0x0c, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x54, 0x72, 0x61, 0x63, + 0x65, 0x73, 0x12, 0x34, 0x2e, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x53, 0x75, 0x6d, 0x6d, 0x61, - 0x72, 0x79, 0x22, 0x00, 0x42, 0x39, 0x5a, 0x37, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, - 0x6f, 0x6d, 0x2f, 0x63, 0x6c, 0x75, 0x74, 0x74, 0x72, 0x64, 0x65, 0x76, 0x2f, 0x67, 0x69, 0x74, - 0x6c, 0x61, 0x62, 0x2d, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2f, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x70, 0x62, 0x62, - 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x54, 0x72, 0x61, 0x63, 0x65, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x67, 0x69, 0x74, 0x6c, 0x61, + 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x72, + 0x64, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x22, 0x00, 0x12, 0x74, 0x0a, 0x0b, 0x52, 0x65, + 0x63, 0x6f, 0x72, 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x33, 0x2e, 0x67, 0x69, 0x74, 0x6c, + 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x63, 0x6f, + 0x72, 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, + 0x2e, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x22, 0x00, + 0x42, 0x39, 0x5a, 0x37, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, + 0x6c, 0x75, 0x74, 0x74, 0x72, 0x64, 0x65, 0x76, 0x2f, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x2d, + 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, } var ( @@ -713,66 +900,81 @@ func file_gitlabexporter_protobuf_service_service_proto_rawDescGZIP() []byte { return file_gitlabexporter_protobuf_service_service_proto_rawDescData } -var file_gitlabexporter_protobuf_service_service_proto_msgTypes = make([]protoimpl.MessageInfo, 11) +var file_gitlabexporter_protobuf_service_service_proto_msgTypes = make([]protoimpl.MessageInfo, 14) var file_gitlabexporter_protobuf_service_service_proto_goTypes = []interface{}{ - (*RecordSummary)(nil), // 0: gitlabexporter.protobuf.service.RecordSummary - (*RecordProjectsRequest)(nil), // 1: gitlabexporter.protobuf.service.RecordProjectsRequest - (*RecordPipelinesRequest)(nil), // 2: gitlabexporter.protobuf.service.RecordPipelinesRequest - (*RecordJobsRequest)(nil), // 3: gitlabexporter.protobuf.service.RecordJobsRequest - (*RecordSectionsRequest)(nil), // 4: gitlabexporter.protobuf.service.RecordSectionsRequest - (*RecordBridgesRequest)(nil), // 5: gitlabexporter.protobuf.service.RecordBridgesRequest - (*RecordTestReportsRequest)(nil), // 6: gitlabexporter.protobuf.service.RecordTestReportsRequest - (*RecordTestSuitesRequest)(nil), // 7: gitlabexporter.protobuf.service.RecordTestSuitesRequest - (*RecordTestCasesRequest)(nil), // 8: gitlabexporter.protobuf.service.RecordTestCasesRequest - (*RecordMetricsRequest)(nil), // 9: gitlabexporter.protobuf.service.RecordMetricsRequest - (*RecordTracesRequest)(nil), // 10: gitlabexporter.protobuf.service.RecordTracesRequest - (*typespb.Project)(nil), // 11: gitlabexporter.protobuf.Project - (*typespb.Pipeline)(nil), // 12: gitlabexporter.protobuf.Pipeline - (*typespb.Job)(nil), // 13: gitlabexporter.protobuf.Job - (*typespb.Section)(nil), // 14: gitlabexporter.protobuf.Section - (*typespb.Bridge)(nil), // 15: gitlabexporter.protobuf.Bridge - (*typespb.TestReport)(nil), // 16: gitlabexporter.protobuf.TestReport - (*typespb.TestSuite)(nil), // 17: gitlabexporter.protobuf.TestSuite - (*typespb.TestCase)(nil), // 18: gitlabexporter.protobuf.TestCase - (*typespb.Metric)(nil), // 19: gitlabexporter.protobuf.Metric - (*typespb.Trace)(nil), // 20: gitlabexporter.protobuf.Trace + (*RecordSummary)(nil), // 0: gitlabexporter.protobuf.service.RecordSummary + (*RecordCommitsRequest)(nil), // 1: gitlabexporter.protobuf.service.RecordCommitsRequest + (*RecordBridgesRequest)(nil), // 2: gitlabexporter.protobuf.service.RecordBridgesRequest + (*RecordJobsRequest)(nil), // 3: gitlabexporter.protobuf.service.RecordJobsRequest + (*RecordMergeRequestsRequest)(nil), // 4: gitlabexporter.protobuf.service.RecordMergeRequestsRequest + (*RecordMetricsRequest)(nil), // 5: gitlabexporter.protobuf.service.RecordMetricsRequest + (*RecordPipelinesRequest)(nil), // 6: gitlabexporter.protobuf.service.RecordPipelinesRequest + (*RecordProjectsRequest)(nil), // 7: gitlabexporter.protobuf.service.RecordProjectsRequest + (*RecordSectionsRequest)(nil), // 8: gitlabexporter.protobuf.service.RecordSectionsRequest + (*RecordTestCasesRequest)(nil), // 9: gitlabexporter.protobuf.service.RecordTestCasesRequest + (*RecordTestReportsRequest)(nil), // 10: gitlabexporter.protobuf.service.RecordTestReportsRequest + (*RecordTestSuitesRequest)(nil), // 11: gitlabexporter.protobuf.service.RecordTestSuitesRequest + (*RecordTracesRequest)(nil), // 12: gitlabexporter.protobuf.service.RecordTracesRequest + (*RecordUsersRequest)(nil), // 13: gitlabexporter.protobuf.service.RecordUsersRequest + (*typespb.Commit)(nil), // 14: gitlabexporter.protobuf.Commit + (*typespb.Bridge)(nil), // 15: gitlabexporter.protobuf.Bridge + (*typespb.Job)(nil), // 16: gitlabexporter.protobuf.Job + (*typespb.MergeRequest)(nil), // 17: gitlabexporter.protobuf.MergeRequest + (*typespb.Metric)(nil), // 18: gitlabexporter.protobuf.Metric + (*typespb.Pipeline)(nil), // 19: gitlabexporter.protobuf.Pipeline + (*typespb.Project)(nil), // 20: gitlabexporter.protobuf.Project + (*typespb.Section)(nil), // 21: gitlabexporter.protobuf.Section + (*typespb.TestCase)(nil), // 22: gitlabexporter.protobuf.TestCase + (*typespb.TestReport)(nil), // 23: gitlabexporter.protobuf.TestReport + (*typespb.TestSuite)(nil), // 24: gitlabexporter.protobuf.TestSuite + (*typespb.Trace)(nil), // 25: gitlabexporter.protobuf.Trace + (*typespb.User)(nil), // 26: gitlabexporter.protobuf.User } var file_gitlabexporter_protobuf_service_service_proto_depIdxs = []int32{ - 11, // 0: gitlabexporter.protobuf.service.RecordProjectsRequest.data:type_name -> gitlabexporter.protobuf.Project - 12, // 1: gitlabexporter.protobuf.service.RecordPipelinesRequest.data:type_name -> gitlabexporter.protobuf.Pipeline - 13, // 2: gitlabexporter.protobuf.service.RecordJobsRequest.data:type_name -> gitlabexporter.protobuf.Job - 14, // 3: gitlabexporter.protobuf.service.RecordSectionsRequest.data:type_name -> gitlabexporter.protobuf.Section - 15, // 4: gitlabexporter.protobuf.service.RecordBridgesRequest.data:type_name -> gitlabexporter.protobuf.Bridge - 16, // 5: gitlabexporter.protobuf.service.RecordTestReportsRequest.data:type_name -> gitlabexporter.protobuf.TestReport - 17, // 6: gitlabexporter.protobuf.service.RecordTestSuitesRequest.data:type_name -> gitlabexporter.protobuf.TestSuite - 18, // 7: gitlabexporter.protobuf.service.RecordTestCasesRequest.data:type_name -> gitlabexporter.protobuf.TestCase - 19, // 8: gitlabexporter.protobuf.service.RecordMetricsRequest.data:type_name -> gitlabexporter.protobuf.Metric - 20, // 9: gitlabexporter.protobuf.service.RecordTracesRequest.data:type_name -> gitlabexporter.protobuf.Trace - 1, // 10: gitlabexporter.protobuf.service.GitLabExporter.RecordProjects:input_type -> gitlabexporter.protobuf.service.RecordProjectsRequest - 2, // 11: gitlabexporter.protobuf.service.GitLabExporter.RecordPipelines:input_type -> gitlabexporter.protobuf.service.RecordPipelinesRequest - 3, // 12: gitlabexporter.protobuf.service.GitLabExporter.RecordJobs:input_type -> gitlabexporter.protobuf.service.RecordJobsRequest - 4, // 13: gitlabexporter.protobuf.service.GitLabExporter.RecordSections:input_type -> gitlabexporter.protobuf.service.RecordSectionsRequest - 5, // 14: gitlabexporter.protobuf.service.GitLabExporter.RecordBridges:input_type -> gitlabexporter.protobuf.service.RecordBridgesRequest - 6, // 15: gitlabexporter.protobuf.service.GitLabExporter.RecordTestReports:input_type -> gitlabexporter.protobuf.service.RecordTestReportsRequest - 7, // 16: gitlabexporter.protobuf.service.GitLabExporter.RecordTestSuites:input_type -> gitlabexporter.protobuf.service.RecordTestSuitesRequest - 8, // 17: gitlabexporter.protobuf.service.GitLabExporter.RecordTestCases:input_type -> gitlabexporter.protobuf.service.RecordTestCasesRequest - 9, // 18: gitlabexporter.protobuf.service.GitLabExporter.RecordMetrics:input_type -> gitlabexporter.protobuf.service.RecordMetricsRequest - 10, // 19: gitlabexporter.protobuf.service.GitLabExporter.RecordTraces:input_type -> gitlabexporter.protobuf.service.RecordTracesRequest - 0, // 20: gitlabexporter.protobuf.service.GitLabExporter.RecordProjects:output_type -> gitlabexporter.protobuf.service.RecordSummary - 0, // 21: gitlabexporter.protobuf.service.GitLabExporter.RecordPipelines:output_type -> gitlabexporter.protobuf.service.RecordSummary - 0, // 22: gitlabexporter.protobuf.service.GitLabExporter.RecordJobs:output_type -> gitlabexporter.protobuf.service.RecordSummary - 0, // 23: gitlabexporter.protobuf.service.GitLabExporter.RecordSections:output_type -> gitlabexporter.protobuf.service.RecordSummary - 0, // 24: gitlabexporter.protobuf.service.GitLabExporter.RecordBridges:output_type -> gitlabexporter.protobuf.service.RecordSummary - 0, // 25: gitlabexporter.protobuf.service.GitLabExporter.RecordTestReports:output_type -> gitlabexporter.protobuf.service.RecordSummary - 0, // 26: gitlabexporter.protobuf.service.GitLabExporter.RecordTestSuites:output_type -> gitlabexporter.protobuf.service.RecordSummary - 0, // 27: gitlabexporter.protobuf.service.GitLabExporter.RecordTestCases:output_type -> gitlabexporter.protobuf.service.RecordSummary - 0, // 28: gitlabexporter.protobuf.service.GitLabExporter.RecordMetrics:output_type -> gitlabexporter.protobuf.service.RecordSummary - 0, // 29: gitlabexporter.protobuf.service.GitLabExporter.RecordTraces:output_type -> gitlabexporter.protobuf.service.RecordSummary - 20, // [20:30] is the sub-list for method output_type - 10, // [10:20] is the sub-list for method input_type - 10, // [10:10] is the sub-list for extension type_name - 10, // [10:10] is the sub-list for extension extendee - 0, // [0:10] is the sub-list for field type_name + 14, // 0: gitlabexporter.protobuf.service.RecordCommitsRequest.data:type_name -> gitlabexporter.protobuf.Commit + 15, // 1: gitlabexporter.protobuf.service.RecordBridgesRequest.data:type_name -> gitlabexporter.protobuf.Bridge + 16, // 2: gitlabexporter.protobuf.service.RecordJobsRequest.data:type_name -> gitlabexporter.protobuf.Job + 17, // 3: gitlabexporter.protobuf.service.RecordMergeRequestsRequest.data:type_name -> gitlabexporter.protobuf.MergeRequest + 18, // 4: gitlabexporter.protobuf.service.RecordMetricsRequest.data:type_name -> gitlabexporter.protobuf.Metric + 19, // 5: gitlabexporter.protobuf.service.RecordPipelinesRequest.data:type_name -> gitlabexporter.protobuf.Pipeline + 20, // 6: gitlabexporter.protobuf.service.RecordProjectsRequest.data:type_name -> gitlabexporter.protobuf.Project + 21, // 7: gitlabexporter.protobuf.service.RecordSectionsRequest.data:type_name -> gitlabexporter.protobuf.Section + 22, // 8: gitlabexporter.protobuf.service.RecordTestCasesRequest.data:type_name -> gitlabexporter.protobuf.TestCase + 23, // 9: gitlabexporter.protobuf.service.RecordTestReportsRequest.data:type_name -> gitlabexporter.protobuf.TestReport + 24, // 10: gitlabexporter.protobuf.service.RecordTestSuitesRequest.data:type_name -> gitlabexporter.protobuf.TestSuite + 25, // 11: gitlabexporter.protobuf.service.RecordTracesRequest.data:type_name -> gitlabexporter.protobuf.Trace + 26, // 12: gitlabexporter.protobuf.service.RecordUsersRequest.data:type_name -> gitlabexporter.protobuf.User + 2, // 13: gitlabexporter.protobuf.service.GitLabExporter.RecordBridges:input_type -> gitlabexporter.protobuf.service.RecordBridgesRequest + 1, // 14: gitlabexporter.protobuf.service.GitLabExporter.RecordCommits:input_type -> gitlabexporter.protobuf.service.RecordCommitsRequest + 3, // 15: gitlabexporter.protobuf.service.GitLabExporter.RecordJobs:input_type -> gitlabexporter.protobuf.service.RecordJobsRequest + 4, // 16: gitlabexporter.protobuf.service.GitLabExporter.RecordMergeRequests:input_type -> gitlabexporter.protobuf.service.RecordMergeRequestsRequest + 5, // 17: gitlabexporter.protobuf.service.GitLabExporter.RecordMetrics:input_type -> gitlabexporter.protobuf.service.RecordMetricsRequest + 6, // 18: gitlabexporter.protobuf.service.GitLabExporter.RecordPipelines:input_type -> gitlabexporter.protobuf.service.RecordPipelinesRequest + 7, // 19: gitlabexporter.protobuf.service.GitLabExporter.RecordProjects:input_type -> gitlabexporter.protobuf.service.RecordProjectsRequest + 8, // 20: gitlabexporter.protobuf.service.GitLabExporter.RecordSections:input_type -> gitlabexporter.protobuf.service.RecordSectionsRequest + 9, // 21: gitlabexporter.protobuf.service.GitLabExporter.RecordTestCases:input_type -> gitlabexporter.protobuf.service.RecordTestCasesRequest + 10, // 22: gitlabexporter.protobuf.service.GitLabExporter.RecordTestReports:input_type -> gitlabexporter.protobuf.service.RecordTestReportsRequest + 11, // 23: gitlabexporter.protobuf.service.GitLabExporter.RecordTestSuites:input_type -> gitlabexporter.protobuf.service.RecordTestSuitesRequest + 12, // 24: gitlabexporter.protobuf.service.GitLabExporter.RecordTraces:input_type -> gitlabexporter.protobuf.service.RecordTracesRequest + 13, // 25: gitlabexporter.protobuf.service.GitLabExporter.RecordUsers:input_type -> gitlabexporter.protobuf.service.RecordUsersRequest + 0, // 26: gitlabexporter.protobuf.service.GitLabExporter.RecordBridges:output_type -> gitlabexporter.protobuf.service.RecordSummary + 0, // 27: gitlabexporter.protobuf.service.GitLabExporter.RecordCommits:output_type -> gitlabexporter.protobuf.service.RecordSummary + 0, // 28: gitlabexporter.protobuf.service.GitLabExporter.RecordJobs:output_type -> gitlabexporter.protobuf.service.RecordSummary + 0, // 29: gitlabexporter.protobuf.service.GitLabExporter.RecordMergeRequests:output_type -> gitlabexporter.protobuf.service.RecordSummary + 0, // 30: gitlabexporter.protobuf.service.GitLabExporter.RecordMetrics:output_type -> gitlabexporter.protobuf.service.RecordSummary + 0, // 31: gitlabexporter.protobuf.service.GitLabExporter.RecordPipelines:output_type -> gitlabexporter.protobuf.service.RecordSummary + 0, // 32: gitlabexporter.protobuf.service.GitLabExporter.RecordProjects:output_type -> gitlabexporter.protobuf.service.RecordSummary + 0, // 33: gitlabexporter.protobuf.service.GitLabExporter.RecordSections:output_type -> gitlabexporter.protobuf.service.RecordSummary + 0, // 34: gitlabexporter.protobuf.service.GitLabExporter.RecordTestCases:output_type -> gitlabexporter.protobuf.service.RecordSummary + 0, // 35: gitlabexporter.protobuf.service.GitLabExporter.RecordTestReports:output_type -> gitlabexporter.protobuf.service.RecordSummary + 0, // 36: gitlabexporter.protobuf.service.GitLabExporter.RecordTestSuites:output_type -> gitlabexporter.protobuf.service.RecordSummary + 0, // 37: gitlabexporter.protobuf.service.GitLabExporter.RecordTraces:output_type -> gitlabexporter.protobuf.service.RecordSummary + 0, // 38: gitlabexporter.protobuf.service.GitLabExporter.RecordUsers:output_type -> gitlabexporter.protobuf.service.RecordSummary + 26, // [26:39] is the sub-list for method output_type + 13, // [13:26] is the sub-list for method input_type + 13, // [13:13] is the sub-list for extension type_name + 13, // [13:13] is the sub-list for extension extendee + 0, // [0:13] is the sub-list for field type_name } func init() { file_gitlabexporter_protobuf_service_service_proto_init() } @@ -794,7 +996,7 @@ func file_gitlabexporter_protobuf_service_service_proto_init() { } } file_gitlabexporter_protobuf_service_service_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RecordProjectsRequest); i { + switch v := v.(*RecordCommitsRequest); i { case 0: return &v.state case 1: @@ -806,7 +1008,7 @@ func file_gitlabexporter_protobuf_service_service_proto_init() { } } file_gitlabexporter_protobuf_service_service_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RecordPipelinesRequest); i { + switch v := v.(*RecordBridgesRequest); i { case 0: return &v.state case 1: @@ -830,7 +1032,7 @@ func file_gitlabexporter_protobuf_service_service_proto_init() { } } file_gitlabexporter_protobuf_service_service_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RecordSectionsRequest); i { + switch v := v.(*RecordMergeRequestsRequest); i { case 0: return &v.state case 1: @@ -842,7 +1044,7 @@ func file_gitlabexporter_protobuf_service_service_proto_init() { } } file_gitlabexporter_protobuf_service_service_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RecordBridgesRequest); i { + switch v := v.(*RecordMetricsRequest); i { case 0: return &v.state case 1: @@ -854,7 +1056,7 @@ func file_gitlabexporter_protobuf_service_service_proto_init() { } } file_gitlabexporter_protobuf_service_service_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RecordTestReportsRequest); i { + switch v := v.(*RecordPipelinesRequest); i { case 0: return &v.state case 1: @@ -866,7 +1068,7 @@ func file_gitlabexporter_protobuf_service_service_proto_init() { } } file_gitlabexporter_protobuf_service_service_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RecordTestSuitesRequest); i { + switch v := v.(*RecordProjectsRequest); i { case 0: return &v.state case 1: @@ -878,7 +1080,7 @@ func file_gitlabexporter_protobuf_service_service_proto_init() { } } file_gitlabexporter_protobuf_service_service_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RecordTestCasesRequest); i { + switch v := v.(*RecordSectionsRequest); i { case 0: return &v.state case 1: @@ -890,7 +1092,7 @@ func file_gitlabexporter_protobuf_service_service_proto_init() { } } file_gitlabexporter_protobuf_service_service_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RecordMetricsRequest); i { + switch v := v.(*RecordTestCasesRequest); i { case 0: return &v.state case 1: @@ -902,6 +1104,30 @@ func file_gitlabexporter_protobuf_service_service_proto_init() { } } file_gitlabexporter_protobuf_service_service_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RecordTestReportsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_gitlabexporter_protobuf_service_service_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RecordTestSuitesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_gitlabexporter_protobuf_service_service_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RecordTracesRequest); i { case 0: return &v.state @@ -913,6 +1139,18 @@ func file_gitlabexporter_protobuf_service_service_proto_init() { return nil } } + file_gitlabexporter_protobuf_service_service_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RecordUsersRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -920,7 +1158,7 @@ func file_gitlabexporter_protobuf_service_service_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_gitlabexporter_protobuf_service_service_proto_rawDesc, NumEnums: 0, - NumMessages: 11, + NumMessages: 14, NumExtensions: 0, NumServices: 1, }, diff --git a/protobuf/servicepb/service_grpc.pb.go b/protobuf/servicepb/service_grpc.pb.go index 4777205..806a41d 100644 --- a/protobuf/servicepb/service_grpc.pb.go +++ b/protobuf/servicepb/service_grpc.pb.go @@ -19,32 +19,38 @@ import ( const _ = grpc.SupportPackageIsVersion7 const ( - GitLabExporter_RecordProjects_FullMethodName = "/gitlabexporter.protobuf.service.GitLabExporter/RecordProjects" - GitLabExporter_RecordPipelines_FullMethodName = "/gitlabexporter.protobuf.service.GitLabExporter/RecordPipelines" - GitLabExporter_RecordJobs_FullMethodName = "/gitlabexporter.protobuf.service.GitLabExporter/RecordJobs" - GitLabExporter_RecordSections_FullMethodName = "/gitlabexporter.protobuf.service.GitLabExporter/RecordSections" - GitLabExporter_RecordBridges_FullMethodName = "/gitlabexporter.protobuf.service.GitLabExporter/RecordBridges" - GitLabExporter_RecordTestReports_FullMethodName = "/gitlabexporter.protobuf.service.GitLabExporter/RecordTestReports" - GitLabExporter_RecordTestSuites_FullMethodName = "/gitlabexporter.protobuf.service.GitLabExporter/RecordTestSuites" - GitLabExporter_RecordTestCases_FullMethodName = "/gitlabexporter.protobuf.service.GitLabExporter/RecordTestCases" - GitLabExporter_RecordMetrics_FullMethodName = "/gitlabexporter.protobuf.service.GitLabExporter/RecordMetrics" - GitLabExporter_RecordTraces_FullMethodName = "/gitlabexporter.protobuf.service.GitLabExporter/RecordTraces" + GitLabExporter_RecordBridges_FullMethodName = "/gitlabexporter.protobuf.service.GitLabExporter/RecordBridges" + GitLabExporter_RecordCommits_FullMethodName = "/gitlabexporter.protobuf.service.GitLabExporter/RecordCommits" + GitLabExporter_RecordJobs_FullMethodName = "/gitlabexporter.protobuf.service.GitLabExporter/RecordJobs" + GitLabExporter_RecordMergeRequests_FullMethodName = "/gitlabexporter.protobuf.service.GitLabExporter/RecordMergeRequests" + GitLabExporter_RecordMetrics_FullMethodName = "/gitlabexporter.protobuf.service.GitLabExporter/RecordMetrics" + GitLabExporter_RecordPipelines_FullMethodName = "/gitlabexporter.protobuf.service.GitLabExporter/RecordPipelines" + GitLabExporter_RecordProjects_FullMethodName = "/gitlabexporter.protobuf.service.GitLabExporter/RecordProjects" + GitLabExporter_RecordSections_FullMethodName = "/gitlabexporter.protobuf.service.GitLabExporter/RecordSections" + GitLabExporter_RecordTestCases_FullMethodName = "/gitlabexporter.protobuf.service.GitLabExporter/RecordTestCases" + GitLabExporter_RecordTestReports_FullMethodName = "/gitlabexporter.protobuf.service.GitLabExporter/RecordTestReports" + GitLabExporter_RecordTestSuites_FullMethodName = "/gitlabexporter.protobuf.service.GitLabExporter/RecordTestSuites" + GitLabExporter_RecordTraces_FullMethodName = "/gitlabexporter.protobuf.service.GitLabExporter/RecordTraces" + GitLabExporter_RecordUsers_FullMethodName = "/gitlabexporter.protobuf.service.GitLabExporter/RecordUsers" ) // GitLabExporterClient is the client API for GitLabExporter service. // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. type GitLabExporterClient interface { - RecordProjects(ctx context.Context, in *RecordProjectsRequest, opts ...grpc.CallOption) (*RecordSummary, error) - RecordPipelines(ctx context.Context, in *RecordPipelinesRequest, opts ...grpc.CallOption) (*RecordSummary, error) + RecordBridges(ctx context.Context, in *RecordBridgesRequest, opts ...grpc.CallOption) (*RecordSummary, error) + RecordCommits(ctx context.Context, in *RecordCommitsRequest, opts ...grpc.CallOption) (*RecordSummary, error) RecordJobs(ctx context.Context, in *RecordJobsRequest, opts ...grpc.CallOption) (*RecordSummary, error) + RecordMergeRequests(ctx context.Context, in *RecordMergeRequestsRequest, opts ...grpc.CallOption) (*RecordSummary, error) + RecordMetrics(ctx context.Context, in *RecordMetricsRequest, opts ...grpc.CallOption) (*RecordSummary, error) + RecordPipelines(ctx context.Context, in *RecordPipelinesRequest, opts ...grpc.CallOption) (*RecordSummary, error) + RecordProjects(ctx context.Context, in *RecordProjectsRequest, opts ...grpc.CallOption) (*RecordSummary, error) RecordSections(ctx context.Context, in *RecordSectionsRequest, opts ...grpc.CallOption) (*RecordSummary, error) - RecordBridges(ctx context.Context, in *RecordBridgesRequest, opts ...grpc.CallOption) (*RecordSummary, error) + RecordTestCases(ctx context.Context, in *RecordTestCasesRequest, opts ...grpc.CallOption) (*RecordSummary, error) RecordTestReports(ctx context.Context, in *RecordTestReportsRequest, opts ...grpc.CallOption) (*RecordSummary, error) RecordTestSuites(ctx context.Context, in *RecordTestSuitesRequest, opts ...grpc.CallOption) (*RecordSummary, error) - RecordTestCases(ctx context.Context, in *RecordTestCasesRequest, opts ...grpc.CallOption) (*RecordSummary, error) - RecordMetrics(ctx context.Context, in *RecordMetricsRequest, opts ...grpc.CallOption) (*RecordSummary, error) RecordTraces(ctx context.Context, in *RecordTracesRequest, opts ...grpc.CallOption) (*RecordSummary, error) + RecordUsers(ctx context.Context, in *RecordUsersRequest, opts ...grpc.CallOption) (*RecordSummary, error) } type gitLabExporterClient struct { @@ -55,18 +61,18 @@ func NewGitLabExporterClient(cc grpc.ClientConnInterface) GitLabExporterClient { return &gitLabExporterClient{cc} } -func (c *gitLabExporterClient) RecordProjects(ctx context.Context, in *RecordProjectsRequest, opts ...grpc.CallOption) (*RecordSummary, error) { +func (c *gitLabExporterClient) RecordBridges(ctx context.Context, in *RecordBridgesRequest, opts ...grpc.CallOption) (*RecordSummary, error) { out := new(RecordSummary) - err := c.cc.Invoke(ctx, GitLabExporter_RecordProjects_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, GitLabExporter_RecordBridges_FullMethodName, in, out, opts...) if err != nil { return nil, err } return out, nil } -func (c *gitLabExporterClient) RecordPipelines(ctx context.Context, in *RecordPipelinesRequest, opts ...grpc.CallOption) (*RecordSummary, error) { +func (c *gitLabExporterClient) RecordCommits(ctx context.Context, in *RecordCommitsRequest, opts ...grpc.CallOption) (*RecordSummary, error) { out := new(RecordSummary) - err := c.cc.Invoke(ctx, GitLabExporter_RecordPipelines_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, GitLabExporter_RecordCommits_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -82,36 +88,45 @@ func (c *gitLabExporterClient) RecordJobs(ctx context.Context, in *RecordJobsReq return out, nil } -func (c *gitLabExporterClient) RecordSections(ctx context.Context, in *RecordSectionsRequest, opts ...grpc.CallOption) (*RecordSummary, error) { +func (c *gitLabExporterClient) RecordMergeRequests(ctx context.Context, in *RecordMergeRequestsRequest, opts ...grpc.CallOption) (*RecordSummary, error) { out := new(RecordSummary) - err := c.cc.Invoke(ctx, GitLabExporter_RecordSections_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, GitLabExporter_RecordMergeRequests_FullMethodName, in, out, opts...) if err != nil { return nil, err } return out, nil } -func (c *gitLabExporterClient) RecordBridges(ctx context.Context, in *RecordBridgesRequest, opts ...grpc.CallOption) (*RecordSummary, error) { +func (c *gitLabExporterClient) RecordMetrics(ctx context.Context, in *RecordMetricsRequest, opts ...grpc.CallOption) (*RecordSummary, error) { out := new(RecordSummary) - err := c.cc.Invoke(ctx, GitLabExporter_RecordBridges_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, GitLabExporter_RecordMetrics_FullMethodName, in, out, opts...) if err != nil { return nil, err } return out, nil } -func (c *gitLabExporterClient) RecordTestReports(ctx context.Context, in *RecordTestReportsRequest, opts ...grpc.CallOption) (*RecordSummary, error) { +func (c *gitLabExporterClient) RecordPipelines(ctx context.Context, in *RecordPipelinesRequest, opts ...grpc.CallOption) (*RecordSummary, error) { out := new(RecordSummary) - err := c.cc.Invoke(ctx, GitLabExporter_RecordTestReports_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, GitLabExporter_RecordPipelines_FullMethodName, in, out, opts...) if err != nil { return nil, err } return out, nil } -func (c *gitLabExporterClient) RecordTestSuites(ctx context.Context, in *RecordTestSuitesRequest, opts ...grpc.CallOption) (*RecordSummary, error) { +func (c *gitLabExporterClient) RecordProjects(ctx context.Context, in *RecordProjectsRequest, opts ...grpc.CallOption) (*RecordSummary, error) { out := new(RecordSummary) - err := c.cc.Invoke(ctx, GitLabExporter_RecordTestSuites_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, GitLabExporter_RecordProjects_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *gitLabExporterClient) RecordSections(ctx context.Context, in *RecordSectionsRequest, opts ...grpc.CallOption) (*RecordSummary, error) { + out := new(RecordSummary) + err := c.cc.Invoke(ctx, GitLabExporter_RecordSections_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -127,9 +142,18 @@ func (c *gitLabExporterClient) RecordTestCases(ctx context.Context, in *RecordTe return out, nil } -func (c *gitLabExporterClient) RecordMetrics(ctx context.Context, in *RecordMetricsRequest, opts ...grpc.CallOption) (*RecordSummary, error) { +func (c *gitLabExporterClient) RecordTestReports(ctx context.Context, in *RecordTestReportsRequest, opts ...grpc.CallOption) (*RecordSummary, error) { out := new(RecordSummary) - err := c.cc.Invoke(ctx, GitLabExporter_RecordMetrics_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, GitLabExporter_RecordTestReports_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *gitLabExporterClient) RecordTestSuites(ctx context.Context, in *RecordTestSuitesRequest, opts ...grpc.CallOption) (*RecordSummary, error) { + out := new(RecordSummary) + err := c.cc.Invoke(ctx, GitLabExporter_RecordTestSuites_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -145,20 +169,32 @@ func (c *gitLabExporterClient) RecordTraces(ctx context.Context, in *RecordTrace return out, nil } +func (c *gitLabExporterClient) RecordUsers(ctx context.Context, in *RecordUsersRequest, opts ...grpc.CallOption) (*RecordSummary, error) { + out := new(RecordSummary) + err := c.cc.Invoke(ctx, GitLabExporter_RecordUsers_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // GitLabExporterServer is the server API for GitLabExporter service. // All implementations must embed UnimplementedGitLabExporterServer // for forward compatibility type GitLabExporterServer interface { - RecordProjects(context.Context, *RecordProjectsRequest) (*RecordSummary, error) - RecordPipelines(context.Context, *RecordPipelinesRequest) (*RecordSummary, error) + RecordBridges(context.Context, *RecordBridgesRequest) (*RecordSummary, error) + RecordCommits(context.Context, *RecordCommitsRequest) (*RecordSummary, error) RecordJobs(context.Context, *RecordJobsRequest) (*RecordSummary, error) + RecordMergeRequests(context.Context, *RecordMergeRequestsRequest) (*RecordSummary, error) + RecordMetrics(context.Context, *RecordMetricsRequest) (*RecordSummary, error) + RecordPipelines(context.Context, *RecordPipelinesRequest) (*RecordSummary, error) + RecordProjects(context.Context, *RecordProjectsRequest) (*RecordSummary, error) RecordSections(context.Context, *RecordSectionsRequest) (*RecordSummary, error) - RecordBridges(context.Context, *RecordBridgesRequest) (*RecordSummary, error) + RecordTestCases(context.Context, *RecordTestCasesRequest) (*RecordSummary, error) RecordTestReports(context.Context, *RecordTestReportsRequest) (*RecordSummary, error) RecordTestSuites(context.Context, *RecordTestSuitesRequest) (*RecordSummary, error) - RecordTestCases(context.Context, *RecordTestCasesRequest) (*RecordSummary, error) - RecordMetrics(context.Context, *RecordMetricsRequest) (*RecordSummary, error) RecordTraces(context.Context, *RecordTracesRequest) (*RecordSummary, error) + RecordUsers(context.Context, *RecordUsersRequest) (*RecordSummary, error) mustEmbedUnimplementedGitLabExporterServer() } @@ -166,20 +202,32 @@ type GitLabExporterServer interface { type UnimplementedGitLabExporterServer struct { } -func (UnimplementedGitLabExporterServer) RecordProjects(context.Context, *RecordProjectsRequest) (*RecordSummary, error) { - return nil, status.Errorf(codes.Unimplemented, "method RecordProjects not implemented") +func (UnimplementedGitLabExporterServer) RecordBridges(context.Context, *RecordBridgesRequest) (*RecordSummary, error) { + return nil, status.Errorf(codes.Unimplemented, "method RecordBridges not implemented") } -func (UnimplementedGitLabExporterServer) RecordPipelines(context.Context, *RecordPipelinesRequest) (*RecordSummary, error) { - return nil, status.Errorf(codes.Unimplemented, "method RecordPipelines not implemented") +func (UnimplementedGitLabExporterServer) RecordCommits(context.Context, *RecordCommitsRequest) (*RecordSummary, error) { + return nil, status.Errorf(codes.Unimplemented, "method RecordCommits not implemented") } func (UnimplementedGitLabExporterServer) RecordJobs(context.Context, *RecordJobsRequest) (*RecordSummary, error) { return nil, status.Errorf(codes.Unimplemented, "method RecordJobs not implemented") } +func (UnimplementedGitLabExporterServer) RecordMergeRequests(context.Context, *RecordMergeRequestsRequest) (*RecordSummary, error) { + return nil, status.Errorf(codes.Unimplemented, "method RecordMergeRequests not implemented") +} +func (UnimplementedGitLabExporterServer) RecordMetrics(context.Context, *RecordMetricsRequest) (*RecordSummary, error) { + return nil, status.Errorf(codes.Unimplemented, "method RecordMetrics not implemented") +} +func (UnimplementedGitLabExporterServer) RecordPipelines(context.Context, *RecordPipelinesRequest) (*RecordSummary, error) { + return nil, status.Errorf(codes.Unimplemented, "method RecordPipelines not implemented") +} +func (UnimplementedGitLabExporterServer) RecordProjects(context.Context, *RecordProjectsRequest) (*RecordSummary, error) { + return nil, status.Errorf(codes.Unimplemented, "method RecordProjects not implemented") +} func (UnimplementedGitLabExporterServer) RecordSections(context.Context, *RecordSectionsRequest) (*RecordSummary, error) { return nil, status.Errorf(codes.Unimplemented, "method RecordSections not implemented") } -func (UnimplementedGitLabExporterServer) RecordBridges(context.Context, *RecordBridgesRequest) (*RecordSummary, error) { - return nil, status.Errorf(codes.Unimplemented, "method RecordBridges not implemented") +func (UnimplementedGitLabExporterServer) RecordTestCases(context.Context, *RecordTestCasesRequest) (*RecordSummary, error) { + return nil, status.Errorf(codes.Unimplemented, "method RecordTestCases not implemented") } func (UnimplementedGitLabExporterServer) RecordTestReports(context.Context, *RecordTestReportsRequest) (*RecordSummary, error) { return nil, status.Errorf(codes.Unimplemented, "method RecordTestReports not implemented") @@ -187,15 +235,12 @@ func (UnimplementedGitLabExporterServer) RecordTestReports(context.Context, *Rec func (UnimplementedGitLabExporterServer) RecordTestSuites(context.Context, *RecordTestSuitesRequest) (*RecordSummary, error) { return nil, status.Errorf(codes.Unimplemented, "method RecordTestSuites not implemented") } -func (UnimplementedGitLabExporterServer) RecordTestCases(context.Context, *RecordTestCasesRequest) (*RecordSummary, error) { - return nil, status.Errorf(codes.Unimplemented, "method RecordTestCases not implemented") -} -func (UnimplementedGitLabExporterServer) RecordMetrics(context.Context, *RecordMetricsRequest) (*RecordSummary, error) { - return nil, status.Errorf(codes.Unimplemented, "method RecordMetrics not implemented") -} func (UnimplementedGitLabExporterServer) RecordTraces(context.Context, *RecordTracesRequest) (*RecordSummary, error) { return nil, status.Errorf(codes.Unimplemented, "method RecordTraces not implemented") } +func (UnimplementedGitLabExporterServer) RecordUsers(context.Context, *RecordUsersRequest) (*RecordSummary, error) { + return nil, status.Errorf(codes.Unimplemented, "method RecordUsers not implemented") +} func (UnimplementedGitLabExporterServer) mustEmbedUnimplementedGitLabExporterServer() {} // UnsafeGitLabExporterServer may be embedded to opt out of forward compatibility for this service. @@ -209,38 +254,38 @@ func RegisterGitLabExporterServer(s grpc.ServiceRegistrar, srv GitLabExporterSer s.RegisterService(&GitLabExporter_ServiceDesc, srv) } -func _GitLabExporter_RecordProjects_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(RecordProjectsRequest) +func _GitLabExporter_RecordBridges_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RecordBridgesRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(GitLabExporterServer).RecordProjects(ctx, in) + return srv.(GitLabExporterServer).RecordBridges(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: GitLabExporter_RecordProjects_FullMethodName, + FullMethod: GitLabExporter_RecordBridges_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(GitLabExporterServer).RecordProjects(ctx, req.(*RecordProjectsRequest)) + return srv.(GitLabExporterServer).RecordBridges(ctx, req.(*RecordBridgesRequest)) } return interceptor(ctx, in, info, handler) } -func _GitLabExporter_RecordPipelines_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(RecordPipelinesRequest) +func _GitLabExporter_RecordCommits_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RecordCommitsRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(GitLabExporterServer).RecordPipelines(ctx, in) + return srv.(GitLabExporterServer).RecordCommits(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: GitLabExporter_RecordPipelines_FullMethodName, + FullMethod: GitLabExporter_RecordCommits_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(GitLabExporterServer).RecordPipelines(ctx, req.(*RecordPipelinesRequest)) + return srv.(GitLabExporterServer).RecordCommits(ctx, req.(*RecordCommitsRequest)) } return interceptor(ctx, in, info, handler) } @@ -263,74 +308,92 @@ func _GitLabExporter_RecordJobs_Handler(srv interface{}, ctx context.Context, de return interceptor(ctx, in, info, handler) } -func _GitLabExporter_RecordSections_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(RecordSectionsRequest) +func _GitLabExporter_RecordMergeRequests_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RecordMergeRequestsRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(GitLabExporterServer).RecordSections(ctx, in) + return srv.(GitLabExporterServer).RecordMergeRequests(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: GitLabExporter_RecordSections_FullMethodName, + FullMethod: GitLabExporter_RecordMergeRequests_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(GitLabExporterServer).RecordSections(ctx, req.(*RecordSectionsRequest)) + return srv.(GitLabExporterServer).RecordMergeRequests(ctx, req.(*RecordMergeRequestsRequest)) } return interceptor(ctx, in, info, handler) } -func _GitLabExporter_RecordBridges_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(RecordBridgesRequest) +func _GitLabExporter_RecordMetrics_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RecordMetricsRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(GitLabExporterServer).RecordBridges(ctx, in) + return srv.(GitLabExporterServer).RecordMetrics(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: GitLabExporter_RecordBridges_FullMethodName, + FullMethod: GitLabExporter_RecordMetrics_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(GitLabExporterServer).RecordBridges(ctx, req.(*RecordBridgesRequest)) + return srv.(GitLabExporterServer).RecordMetrics(ctx, req.(*RecordMetricsRequest)) } return interceptor(ctx, in, info, handler) } -func _GitLabExporter_RecordTestReports_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(RecordTestReportsRequest) +func _GitLabExporter_RecordPipelines_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RecordPipelinesRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(GitLabExporterServer).RecordTestReports(ctx, in) + return srv.(GitLabExporterServer).RecordPipelines(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: GitLabExporter_RecordTestReports_FullMethodName, + FullMethod: GitLabExporter_RecordPipelines_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(GitLabExporterServer).RecordTestReports(ctx, req.(*RecordTestReportsRequest)) + return srv.(GitLabExporterServer).RecordPipelines(ctx, req.(*RecordPipelinesRequest)) } return interceptor(ctx, in, info, handler) } -func _GitLabExporter_RecordTestSuites_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(RecordTestSuitesRequest) +func _GitLabExporter_RecordProjects_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RecordProjectsRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(GitLabExporterServer).RecordTestSuites(ctx, in) + return srv.(GitLabExporterServer).RecordProjects(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: GitLabExporter_RecordTestSuites_FullMethodName, + FullMethod: GitLabExporter_RecordProjects_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(GitLabExporterServer).RecordTestSuites(ctx, req.(*RecordTestSuitesRequest)) + return srv.(GitLabExporterServer).RecordProjects(ctx, req.(*RecordProjectsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _GitLabExporter_RecordSections_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RecordSectionsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GitLabExporterServer).RecordSections(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: GitLabExporter_RecordSections_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GitLabExporterServer).RecordSections(ctx, req.(*RecordSectionsRequest)) } return interceptor(ctx, in, info, handler) } @@ -353,20 +416,38 @@ func _GitLabExporter_RecordTestCases_Handler(srv interface{}, ctx context.Contex return interceptor(ctx, in, info, handler) } -func _GitLabExporter_RecordMetrics_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(RecordMetricsRequest) +func _GitLabExporter_RecordTestReports_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RecordTestReportsRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(GitLabExporterServer).RecordMetrics(ctx, in) + return srv.(GitLabExporterServer).RecordTestReports(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: GitLabExporter_RecordMetrics_FullMethodName, + FullMethod: GitLabExporter_RecordTestReports_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(GitLabExporterServer).RecordMetrics(ctx, req.(*RecordMetricsRequest)) + return srv.(GitLabExporterServer).RecordTestReports(ctx, req.(*RecordTestReportsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _GitLabExporter_RecordTestSuites_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RecordTestSuitesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GitLabExporterServer).RecordTestSuites(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: GitLabExporter_RecordTestSuites_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GitLabExporterServer).RecordTestSuites(ctx, req.(*RecordTestSuitesRequest)) } return interceptor(ctx, in, info, handler) } @@ -389,6 +470,24 @@ func _GitLabExporter_RecordTraces_Handler(srv interface{}, ctx context.Context, return interceptor(ctx, in, info, handler) } +func _GitLabExporter_RecordUsers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RecordUsersRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GitLabExporterServer).RecordUsers(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: GitLabExporter_RecordUsers_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GitLabExporterServer).RecordUsers(ctx, req.(*RecordUsersRequest)) + } + return interceptor(ctx, in, info, handler) +} + // GitLabExporter_ServiceDesc is the grpc.ServiceDesc for GitLabExporter service. // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) @@ -397,45 +496,57 @@ var GitLabExporter_ServiceDesc = grpc.ServiceDesc{ HandlerType: (*GitLabExporterServer)(nil), Methods: []grpc.MethodDesc{ { - MethodName: "RecordProjects", - Handler: _GitLabExporter_RecordProjects_Handler, + MethodName: "RecordBridges", + Handler: _GitLabExporter_RecordBridges_Handler, }, { - MethodName: "RecordPipelines", - Handler: _GitLabExporter_RecordPipelines_Handler, + MethodName: "RecordCommits", + Handler: _GitLabExporter_RecordCommits_Handler, }, { MethodName: "RecordJobs", Handler: _GitLabExporter_RecordJobs_Handler, }, { - MethodName: "RecordSections", - Handler: _GitLabExporter_RecordSections_Handler, + MethodName: "RecordMergeRequests", + Handler: _GitLabExporter_RecordMergeRequests_Handler, }, { - MethodName: "RecordBridges", - Handler: _GitLabExporter_RecordBridges_Handler, + MethodName: "RecordMetrics", + Handler: _GitLabExporter_RecordMetrics_Handler, }, { - MethodName: "RecordTestReports", - Handler: _GitLabExporter_RecordTestReports_Handler, + MethodName: "RecordPipelines", + Handler: _GitLabExporter_RecordPipelines_Handler, }, { - MethodName: "RecordTestSuites", - Handler: _GitLabExporter_RecordTestSuites_Handler, + MethodName: "RecordProjects", + Handler: _GitLabExporter_RecordProjects_Handler, + }, + { + MethodName: "RecordSections", + Handler: _GitLabExporter_RecordSections_Handler, }, { MethodName: "RecordTestCases", Handler: _GitLabExporter_RecordTestCases_Handler, }, { - MethodName: "RecordMetrics", - Handler: _GitLabExporter_RecordMetrics_Handler, + MethodName: "RecordTestReports", + Handler: _GitLabExporter_RecordTestReports_Handler, + }, + { + MethodName: "RecordTestSuites", + Handler: _GitLabExporter_RecordTestSuites_Handler, }, { MethodName: "RecordTraces", Handler: _GitLabExporter_RecordTraces_Handler, }, + { + MethodName: "RecordUsers", + Handler: _GitLabExporter_RecordUsers_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "gitlabexporter/protobuf/service/service.proto", diff --git a/protobuf/typespb/commit.pb.go b/protobuf/typespb/commit.pb.go new file mode 100644 index 0000000..8f5f791 --- /dev/null +++ b/protobuf/typespb/commit.pb.go @@ -0,0 +1,411 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.30.0 +// protoc v4.22.2 +// source: gitlabexporter/protobuf/commit.proto + +package typespb + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + timestamppb "google.golang.org/protobuf/types/known/timestamppb" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type Commit struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + ShortId string `protobuf:"bytes,2,opt,name=short_id,json=shortId,proto3" json:"short_id,omitempty"` + ParentIds []string `protobuf:"bytes,3,rep,name=parent_ids,json=parentIds,proto3" json:"parent_ids,omitempty"` + ProjectId int64 `protobuf:"varint,4,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` + AuthorName string `protobuf:"bytes,5,opt,name=author_name,json=authorName,proto3" json:"author_name,omitempty"` + AuthorEmail string `protobuf:"bytes,6,opt,name=author_email,json=authorEmail,proto3" json:"author_email,omitempty"` + AuthoredDate *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=authored_date,json=authoredDate,proto3" json:"authored_date,omitempty"` + CommitterName string `protobuf:"bytes,8,opt,name=committer_name,json=committerName,proto3" json:"committer_name,omitempty"` + CommitterEmail string `protobuf:"bytes,9,opt,name=committer_email,json=committerEmail,proto3" json:"committer_email,omitempty"` + CommittedDate *timestamppb.Timestamp `protobuf:"bytes,10,opt,name=committed_date,json=committedDate,proto3" json:"committed_date,omitempty"` + CreatedAt *timestamppb.Timestamp `protobuf:"bytes,11,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` + Title string `protobuf:"bytes,12,opt,name=title,proto3" json:"title,omitempty"` + Message string `protobuf:"bytes,13,opt,name=message,proto3" json:"message,omitempty"` + Trailers map[string]string `protobuf:"bytes,14,rep,name=trailers,proto3" json:"trailers,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + Stats *CommitStats `protobuf:"bytes,15,opt,name=stats,proto3" json:"stats,omitempty"` + Status string `protobuf:"bytes,16,opt,name=status,proto3" json:"status,omitempty"` + WebUrl string `protobuf:"bytes,17,opt,name=web_url,json=webUrl,proto3" json:"web_url,omitempty"` +} + +func (x *Commit) Reset() { + *x = Commit{} + if protoimpl.UnsafeEnabled { + mi := &file_gitlabexporter_protobuf_commit_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Commit) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Commit) ProtoMessage() {} + +func (x *Commit) ProtoReflect() protoreflect.Message { + mi := &file_gitlabexporter_protobuf_commit_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Commit.ProtoReflect.Descriptor instead. +func (*Commit) Descriptor() ([]byte, []int) { + return file_gitlabexporter_protobuf_commit_proto_rawDescGZIP(), []int{0} +} + +func (x *Commit) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *Commit) GetShortId() string { + if x != nil { + return x.ShortId + } + return "" +} + +func (x *Commit) GetParentIds() []string { + if x != nil { + return x.ParentIds + } + return nil +} + +func (x *Commit) GetProjectId() int64 { + if x != nil { + return x.ProjectId + } + return 0 +} + +func (x *Commit) GetAuthorName() string { + if x != nil { + return x.AuthorName + } + return "" +} + +func (x *Commit) GetAuthorEmail() string { + if x != nil { + return x.AuthorEmail + } + return "" +} + +func (x *Commit) GetAuthoredDate() *timestamppb.Timestamp { + if x != nil { + return x.AuthoredDate + } + return nil +} + +func (x *Commit) GetCommitterName() string { + if x != nil { + return x.CommitterName + } + return "" +} + +func (x *Commit) GetCommitterEmail() string { + if x != nil { + return x.CommitterEmail + } + return "" +} + +func (x *Commit) GetCommittedDate() *timestamppb.Timestamp { + if x != nil { + return x.CommittedDate + } + return nil +} + +func (x *Commit) GetCreatedAt() *timestamppb.Timestamp { + if x != nil { + return x.CreatedAt + } + return nil +} + +func (x *Commit) GetTitle() string { + if x != nil { + return x.Title + } + return "" +} + +func (x *Commit) GetMessage() string { + if x != nil { + return x.Message + } + return "" +} + +func (x *Commit) GetTrailers() map[string]string { + if x != nil { + return x.Trailers + } + return nil +} + +func (x *Commit) GetStats() *CommitStats { + if x != nil { + return x.Stats + } + return nil +} + +func (x *Commit) GetStatus() string { + if x != nil { + return x.Status + } + return "" +} + +func (x *Commit) GetWebUrl() string { + if x != nil { + return x.WebUrl + } + return "" +} + +type CommitStats struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Additions int64 `protobuf:"varint,1,opt,name=additions,proto3" json:"additions,omitempty"` + Deletions int64 `protobuf:"varint,2,opt,name=deletions,proto3" json:"deletions,omitempty"` + Total int64 `protobuf:"varint,3,opt,name=total,proto3" json:"total,omitempty"` +} + +func (x *CommitStats) Reset() { + *x = CommitStats{} + if protoimpl.UnsafeEnabled { + mi := &file_gitlabexporter_protobuf_commit_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CommitStats) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CommitStats) ProtoMessage() {} + +func (x *CommitStats) ProtoReflect() protoreflect.Message { + mi := &file_gitlabexporter_protobuf_commit_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CommitStats.ProtoReflect.Descriptor instead. +func (*CommitStats) Descriptor() ([]byte, []int) { + return file_gitlabexporter_protobuf_commit_proto_rawDescGZIP(), []int{1} +} + +func (x *CommitStats) GetAdditions() int64 { + if x != nil { + return x.Additions + } + return 0 +} + +func (x *CommitStats) GetDeletions() int64 { + if x != nil { + return x.Deletions + } + return 0 +} + +func (x *CommitStats) GetTotal() int64 { + if x != nil { + return x.Total + } + return 0 +} + +var File_gitlabexporter_protobuf_commit_proto protoreflect.FileDescriptor + +var file_gitlabexporter_protobuf_commit_proto_rawDesc = []byte{ + 0x0a, 0x24, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, + 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x17, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x1a, + 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x22, 0xe9, 0x05, 0x0a, 0x06, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x73, + 0x68, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, + 0x68, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x5f, 0x69, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x49, 0x64, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x75, 0x74, 0x68, 0x6f, + 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x5f, + 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x75, 0x74, + 0x68, 0x6f, 0x72, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x3f, 0x0a, 0x0d, 0x61, 0x75, 0x74, 0x68, + 0x6f, 0x72, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0c, 0x61, 0x75, 0x74, + 0x68, 0x6f, 0x72, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6f, 0x6d, + 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0d, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x5f, 0x65, 0x6d, + 0x61, 0x69, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6d, 0x6d, 0x69, + 0x74, 0x74, 0x65, 0x72, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x41, 0x0a, 0x0e, 0x63, 0x6f, 0x6d, + 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0d, 0x63, + 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x39, 0x0a, 0x0a, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, + 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x18, 0x0a, + 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x49, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x69, 0x6c, + 0x65, 0x72, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x69, 0x74, 0x6c, + 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x2e, 0x54, 0x72, 0x61, 0x69, 0x6c, + 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x74, 0x72, 0x61, 0x69, 0x6c, 0x65, + 0x72, 0x73, 0x12, 0x3a, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, + 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, + 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x12, 0x16, + 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x77, 0x65, 0x62, 0x5f, 0x75, 0x72, + 0x6c, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x77, 0x65, 0x62, 0x55, 0x72, 0x6c, 0x1a, + 0x3b, 0x0a, 0x0d, 0x54, 0x72, 0x61, 0x69, 0x6c, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, + 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x5f, 0x0a, 0x0b, + 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x61, + 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, + 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x65, 0x6c, + 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x64, 0x65, + 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x42, 0x37, 0x5a, + 0x35, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6c, 0x75, 0x74, + 0x74, 0x72, 0x64, 0x65, 0x76, 0x2f, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x2d, 0x65, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, + 0x79, 0x70, 0x65, 0x73, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_gitlabexporter_protobuf_commit_proto_rawDescOnce sync.Once + file_gitlabexporter_protobuf_commit_proto_rawDescData = file_gitlabexporter_protobuf_commit_proto_rawDesc +) + +func file_gitlabexporter_protobuf_commit_proto_rawDescGZIP() []byte { + file_gitlabexporter_protobuf_commit_proto_rawDescOnce.Do(func() { + file_gitlabexporter_protobuf_commit_proto_rawDescData = protoimpl.X.CompressGZIP(file_gitlabexporter_protobuf_commit_proto_rawDescData) + }) + return file_gitlabexporter_protobuf_commit_proto_rawDescData +} + +var file_gitlabexporter_protobuf_commit_proto_msgTypes = make([]protoimpl.MessageInfo, 3) +var file_gitlabexporter_protobuf_commit_proto_goTypes = []interface{}{ + (*Commit)(nil), // 0: gitlabexporter.protobuf.Commit + (*CommitStats)(nil), // 1: gitlabexporter.protobuf.CommitStats + nil, // 2: gitlabexporter.protobuf.Commit.TrailersEntry + (*timestamppb.Timestamp)(nil), // 3: google.protobuf.Timestamp +} +var file_gitlabexporter_protobuf_commit_proto_depIdxs = []int32{ + 3, // 0: gitlabexporter.protobuf.Commit.authored_date:type_name -> google.protobuf.Timestamp + 3, // 1: gitlabexporter.protobuf.Commit.committed_date:type_name -> google.protobuf.Timestamp + 3, // 2: gitlabexporter.protobuf.Commit.created_at:type_name -> google.protobuf.Timestamp + 2, // 3: gitlabexporter.protobuf.Commit.trailers:type_name -> gitlabexporter.protobuf.Commit.TrailersEntry + 1, // 4: gitlabexporter.protobuf.Commit.stats:type_name -> gitlabexporter.protobuf.CommitStats + 5, // [5:5] is the sub-list for method output_type + 5, // [5:5] is the sub-list for method input_type + 5, // [5:5] is the sub-list for extension type_name + 5, // [5:5] is the sub-list for extension extendee + 0, // [0:5] is the sub-list for field type_name +} + +func init() { file_gitlabexporter_protobuf_commit_proto_init() } +func file_gitlabexporter_protobuf_commit_proto_init() { + if File_gitlabexporter_protobuf_commit_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_gitlabexporter_protobuf_commit_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Commit); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_gitlabexporter_protobuf_commit_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CommitStats); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_gitlabexporter_protobuf_commit_proto_rawDesc, + NumEnums: 0, + NumMessages: 3, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_gitlabexporter_protobuf_commit_proto_goTypes, + DependencyIndexes: file_gitlabexporter_protobuf_commit_proto_depIdxs, + MessageInfos: file_gitlabexporter_protobuf_commit_proto_msgTypes, + }.Build() + File_gitlabexporter_protobuf_commit_proto = out.File + file_gitlabexporter_protobuf_commit_proto_rawDesc = nil + file_gitlabexporter_protobuf_commit_proto_goTypes = nil + file_gitlabexporter_protobuf_commit_proto_depIdxs = nil +} diff --git a/protobuf/typespb/job.pb.go b/protobuf/typespb/job.pb.go index d7cc3ea..fccef7a 100644 --- a/protobuf/typespb/job.pb.go +++ b/protobuf/typespb/job.pb.go @@ -27,24 +27,31 @@ type Job struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Pipeline *PipelineReference `protobuf:"bytes,1,opt,name=pipeline,proto3" json:"pipeline,omitempty"` - Id int64 `protobuf:"varint,2,opt,name=id,proto3" json:"id,omitempty"` - Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` - Ref string `protobuf:"bytes,4,opt,name=ref,proto3" json:"ref,omitempty"` - Stage string `protobuf:"bytes,5,opt,name=stage,proto3" json:"stage,omitempty"` - Status string `protobuf:"bytes,6,opt,name=status,proto3" json:"status,omitempty"` - CreatedAt *timestamppb.Timestamp `protobuf:"bytes,10,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` - StartedAt *timestamppb.Timestamp `protobuf:"bytes,11,opt,name=started_at,json=startedAt,proto3" json:"started_at,omitempty"` - FinishedAt *timestamppb.Timestamp `protobuf:"bytes,12,opt,name=finished_at,json=finishedAt,proto3" json:"finished_at,omitempty"` - ErasedAt *timestamppb.Timestamp `protobuf:"bytes,13,opt,name=erased_at,json=erasedAt,proto3" json:"erased_at,omitempty"` - Duration *durationpb.Duration `protobuf:"bytes,14,opt,name=duration,proto3" json:"duration,omitempty"` - QueuedDuration *durationpb.Duration `protobuf:"bytes,15,opt,name=queued_duration,json=queuedDuration,proto3" json:"queued_duration,omitempty"` - Coverage float64 `protobuf:"fixed64,20,opt,name=coverage,proto3" json:"coverage,omitempty"` - Tag bool `protobuf:"varint,21,opt,name=tag,proto3" json:"tag,omitempty"` - AllowFailure bool `protobuf:"varint,22,opt,name=allow_failure,json=allowFailure,proto3" json:"allow_failure,omitempty"` - FailureReason string `protobuf:"bytes,23,opt,name=failure_reason,json=failureReason,proto3" json:"failure_reason,omitempty"` - WebUrl string `protobuf:"bytes,24,opt,name=web_url,json=webUrl,proto3" json:"web_url,omitempty"` - TagList []string `protobuf:"bytes,25,rep,name=tag_list,json=tagList,proto3" json:"tag_list,omitempty"` + Pipeline *PipelineReference `protobuf:"bytes,1,opt,name=pipeline,proto3" json:"pipeline,omitempty"` + Id int64 `protobuf:"varint,2,opt,name=id,proto3" json:"id,omitempty"` + Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` + Ref string `protobuf:"bytes,4,opt,name=ref,proto3" json:"ref,omitempty"` + Stage string `protobuf:"bytes,5,opt,name=stage,proto3" json:"stage,omitempty"` + Status string `protobuf:"bytes,6,opt,name=status,proto3" json:"status,omitempty"` + CreatedAt *timestamppb.Timestamp `protobuf:"bytes,10,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` + StartedAt *timestamppb.Timestamp `protobuf:"bytes,11,opt,name=started_at,json=startedAt,proto3" json:"started_at,omitempty"` + FinishedAt *timestamppb.Timestamp `protobuf:"bytes,12,opt,name=finished_at,json=finishedAt,proto3" json:"finished_at,omitempty"` + ErasedAt *timestamppb.Timestamp `protobuf:"bytes,13,opt,name=erased_at,json=erasedAt,proto3" json:"erased_at,omitempty"` + Duration *durationpb.Duration `protobuf:"bytes,14,opt,name=duration,proto3" json:"duration,omitempty"` + QueuedDuration *durationpb.Duration `protobuf:"bytes,15,opt,name=queued_duration,json=queuedDuration,proto3" json:"queued_duration,omitempty"` + Coverage float64 `protobuf:"fixed64,20,opt,name=coverage,proto3" json:"coverage,omitempty"` + Tag bool `protobuf:"varint,21,opt,name=tag,proto3" json:"tag,omitempty"` + AllowFailure bool `protobuf:"varint,22,opt,name=allow_failure,json=allowFailure,proto3" json:"allow_failure,omitempty"` + FailureReason string `protobuf:"bytes,23,opt,name=failure_reason,json=failureReason,proto3" json:"failure_reason,omitempty"` + WebUrl string `protobuf:"bytes,24,opt,name=web_url,json=webUrl,proto3" json:"web_url,omitempty"` + TagList []string `protobuf:"bytes,25,rep,name=tag_list,json=tagList,proto3" json:"tag_list,omitempty"` + Commit *Commit `protobuf:"bytes,30,opt,name=commit,proto3" json:"commit,omitempty"` + Project *Project `protobuf:"bytes,31,opt,name=project,proto3" json:"project,omitempty"` + User *User `protobuf:"bytes,32,opt,name=user,proto3" json:"user,omitempty"` + Runner *JobRunner `protobuf:"bytes,33,opt,name=runner,proto3" json:"runner,omitempty"` + Artifacts []*JobArtifacts `protobuf:"bytes,34,rep,name=artifacts,proto3" json:"artifacts,omitempty"` + ArtifactsFile *JobArtifactsFile `protobuf:"bytes,35,opt,name=artifacts_file,json=artifactsFile,proto3" json:"artifacts_file,omitempty"` + ArtifactsExpireAt *timestamppb.Timestamp `protobuf:"bytes,36,opt,name=artifacts_expire_at,json=artifactsExpireAt,proto3" json:"artifacts_expire_at,omitempty"` } func (x *Job) Reset() { @@ -205,6 +212,260 @@ func (x *Job) GetTagList() []string { return nil } +func (x *Job) GetCommit() *Commit { + if x != nil { + return x.Commit + } + return nil +} + +func (x *Job) GetProject() *Project { + if x != nil { + return x.Project + } + return nil +} + +func (x *Job) GetUser() *User { + if x != nil { + return x.User + } + return nil +} + +func (x *Job) GetRunner() *JobRunner { + if x != nil { + return x.Runner + } + return nil +} + +func (x *Job) GetArtifacts() []*JobArtifacts { + if x != nil { + return x.Artifacts + } + return nil +} + +func (x *Job) GetArtifactsFile() *JobArtifactsFile { + if x != nil { + return x.ArtifactsFile + } + return nil +} + +func (x *Job) GetArtifactsExpireAt() *timestamppb.Timestamp { + if x != nil { + return x.ArtifactsExpireAt + } + return nil +} + +type JobRunner struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` + Active bool `protobuf:"varint,4,opt,name=active,proto3" json:"active,omitempty"` + IsShared bool `protobuf:"varint,5,opt,name=is_shared,json=isShared,proto3" json:"is_shared,omitempty"` +} + +func (x *JobRunner) Reset() { + *x = JobRunner{} + if protoimpl.UnsafeEnabled { + mi := &file_gitlabexporter_protobuf_job_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *JobRunner) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*JobRunner) ProtoMessage() {} + +func (x *JobRunner) ProtoReflect() protoreflect.Message { + mi := &file_gitlabexporter_protobuf_job_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use JobRunner.ProtoReflect.Descriptor instead. +func (*JobRunner) Descriptor() ([]byte, []int) { + return file_gitlabexporter_protobuf_job_proto_rawDescGZIP(), []int{1} +} + +func (x *JobRunner) GetId() int64 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *JobRunner) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *JobRunner) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *JobRunner) GetActive() bool { + if x != nil { + return x.Active + } + return false +} + +func (x *JobRunner) GetIsShared() bool { + if x != nil { + return x.IsShared + } + return false +} + +type JobArtifacts struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Filename string `protobuf:"bytes,1,opt,name=filename,proto3" json:"filename,omitempty"` + FileType string `protobuf:"bytes,2,opt,name=file_type,json=fileType,proto3" json:"file_type,omitempty"` + FileFormat string `protobuf:"bytes,3,opt,name=file_format,json=fileFormat,proto3" json:"file_format,omitempty"` + Size int64 `protobuf:"varint,4,opt,name=size,proto3" json:"size,omitempty"` +} + +func (x *JobArtifacts) Reset() { + *x = JobArtifacts{} + if protoimpl.UnsafeEnabled { + mi := &file_gitlabexporter_protobuf_job_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *JobArtifacts) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*JobArtifacts) ProtoMessage() {} + +func (x *JobArtifacts) ProtoReflect() protoreflect.Message { + mi := &file_gitlabexporter_protobuf_job_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use JobArtifacts.ProtoReflect.Descriptor instead. +func (*JobArtifacts) Descriptor() ([]byte, []int) { + return file_gitlabexporter_protobuf_job_proto_rawDescGZIP(), []int{2} +} + +func (x *JobArtifacts) GetFilename() string { + if x != nil { + return x.Filename + } + return "" +} + +func (x *JobArtifacts) GetFileType() string { + if x != nil { + return x.FileType + } + return "" +} + +func (x *JobArtifacts) GetFileFormat() string { + if x != nil { + return x.FileFormat + } + return "" +} + +func (x *JobArtifacts) GetSize() int64 { + if x != nil { + return x.Size + } + return 0 +} + +type JobArtifactsFile struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Filename string `protobuf:"bytes,1,opt,name=filename,proto3" json:"filename,omitempty"` + Size int64 `protobuf:"varint,2,opt,name=size,proto3" json:"size,omitempty"` +} + +func (x *JobArtifactsFile) Reset() { + *x = JobArtifactsFile{} + if protoimpl.UnsafeEnabled { + mi := &file_gitlabexporter_protobuf_job_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *JobArtifactsFile) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*JobArtifactsFile) ProtoMessage() {} + +func (x *JobArtifactsFile) ProtoReflect() protoreflect.Message { + mi := &file_gitlabexporter_protobuf_job_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use JobArtifactsFile.ProtoReflect.Descriptor instead. +func (*JobArtifactsFile) Descriptor() ([]byte, []int) { + return file_gitlabexporter_protobuf_job_proto_rawDescGZIP(), []int{3} +} + +func (x *JobArtifactsFile) GetFilename() string { + if x != nil { + return x.Filename + } + return "" +} + +func (x *JobArtifactsFile) GetSize() int64 { + if x != nil { + return x.Size + } + return 0 +} + type JobReference struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -218,7 +479,7 @@ type JobReference struct { func (x *JobReference) Reset() { *x = JobReference{} if protoimpl.UnsafeEnabled { - mi := &file_gitlabexporter_protobuf_job_proto_msgTypes[1] + mi := &file_gitlabexporter_protobuf_job_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -231,7 +492,7 @@ func (x *JobReference) String() string { func (*JobReference) ProtoMessage() {} func (x *JobReference) ProtoReflect() protoreflect.Message { - mi := &file_gitlabexporter_protobuf_job_proto_msgTypes[1] + mi := &file_gitlabexporter_protobuf_job_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -244,7 +505,7 @@ func (x *JobReference) ProtoReflect() protoreflect.Message { // Deprecated: Use JobReference.ProtoReflect.Descriptor instead. func (*JobReference) Descriptor() ([]byte, []int) { - return file_gitlabexporter_protobuf_job_proto_rawDescGZIP(), []int{1} + return file_gitlabexporter_protobuf_job_proto_rawDescGZIP(), []int{4} } func (x *JobReference) GetId() int64 { @@ -291,12 +552,14 @@ type Bridge struct { AllowFailure bool `protobuf:"varint,22,opt,name=allow_failure,json=allowFailure,proto3" json:"allow_failure,omitempty"` FailureReason string `protobuf:"bytes,23,opt,name=failure_reason,json=failureReason,proto3" json:"failure_reason,omitempty"` WebUrl string `protobuf:"bytes,24,opt,name=web_url,json=webUrl,proto3" json:"web_url,omitempty"` + Commit *Commit `protobuf:"bytes,30,opt,name=commit,proto3" json:"commit,omitempty"` + User *User `protobuf:"bytes,31,opt,name=user,proto3" json:"user,omitempty"` } func (x *Bridge) Reset() { *x = Bridge{} if protoimpl.UnsafeEnabled { - mi := &file_gitlabexporter_protobuf_job_proto_msgTypes[2] + mi := &file_gitlabexporter_protobuf_job_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -309,7 +572,7 @@ func (x *Bridge) String() string { func (*Bridge) ProtoMessage() {} func (x *Bridge) ProtoReflect() protoreflect.Message { - mi := &file_gitlabexporter_protobuf_job_proto_msgTypes[2] + mi := &file_gitlabexporter_protobuf_job_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -322,7 +585,7 @@ func (x *Bridge) ProtoReflect() protoreflect.Message { // Deprecated: Use Bridge.ProtoReflect.Descriptor instead. func (*Bridge) Descriptor() ([]byte, []int) { - return file_gitlabexporter_protobuf_job_proto_rawDescGZIP(), []int{2} + return file_gitlabexporter_protobuf_job_proto_rawDescGZIP(), []int{5} } func (x *Bridge) GetPipeline() *PipelineInfo { @@ -451,6 +714,20 @@ func (x *Bridge) GetWebUrl() string { return "" } +func (x *Bridge) GetCommit() *Commit { + if x != nil { + return x.Commit + } + return nil +} + +func (x *Bridge) GetUser() *User { + if x != nil { + return x.User + } + return nil +} + var File_gitlabexporter_protobuf_job_proto protoreflect.FileDescriptor var file_gitlabexporter_protobuf_job_proto_rawDesc = []byte{ @@ -461,111 +738,174 @@ var file_gitlabexporter_protobuf_job_proto_rawDesc = []byte{ 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, - 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x26, 0x67, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x24, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2f, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xc6, 0x05, 0x0a, 0x03, 0x4a, 0x6f, 0x62, 0x12, 0x46, 0x0a, - 0x08, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x2a, 0x2e, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, - 0x6e, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x08, 0x70, 0x69, 0x70, - 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x65, 0x66, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x72, 0x65, 0x66, 0x12, 0x14, 0x0a, 0x05, 0x73, - 0x74, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x67, - 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x1a, 0x26, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x72, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x70, 0x69, 0x70, + 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x25, 0x67, 0x69, 0x74, + 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2f, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x1a, 0x22, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, + 0x65, 0x72, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x75, 0x73, 0x65, 0x72, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x8d, 0x09, 0x0a, 0x03, 0x4a, 0x6f, 0x62, 0x12, 0x46, + 0x0a, 0x08, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2a, 0x2e, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x50, 0x69, 0x70, 0x65, 0x6c, + 0x69, 0x6e, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x08, 0x70, 0x69, + 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x65, + 0x66, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x72, 0x65, 0x66, 0x12, 0x14, 0x0a, 0x05, + 0x73, 0x74, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, + 0x5f, 0x61, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x41, 0x74, + 0x12, 0x3b, 0x0a, 0x0b, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x52, 0x0a, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x41, 0x74, 0x12, 0x37, 0x0a, + 0x09, 0x65, 0x72, 0x61, 0x73, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x08, 0x65, 0x72, + 0x61, 0x73, 0x65, 0x64, 0x41, 0x74, 0x12, 0x35, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x42, 0x0a, + 0x0f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x0e, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x18, 0x14, 0x20, + 0x01, 0x28, 0x01, 0x52, 0x08, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x12, 0x10, 0x0a, + 0x03, 0x74, 0x61, 0x67, 0x18, 0x15, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x61, 0x67, 0x12, + 0x23, 0x0a, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, + 0x18, 0x16, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x46, 0x61, 0x69, + 0x6c, 0x75, 0x72, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x5f, + 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x66, 0x61, + 0x69, 0x6c, 0x75, 0x72, 0x65, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x77, + 0x65, 0x62, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x77, 0x65, + 0x62, 0x55, 0x72, 0x6c, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x61, 0x67, 0x5f, 0x6c, 0x69, 0x73, 0x74, + 0x18, 0x19, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x74, 0x61, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x12, + 0x37, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1f, 0x2e, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, + 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x3a, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x69, 0x74, 0x6c, + 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x07, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x12, 0x31, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x20, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x73, 0x65, + 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x06, 0x72, 0x75, 0x6e, 0x6e, 0x65, + 0x72, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, + 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x6e, 0x65, 0x72, 0x52, 0x06, 0x72, 0x75, 0x6e, + 0x6e, 0x65, 0x72, 0x12, 0x43, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, + 0x18, 0x22, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, + 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x4a, 0x6f, 0x62, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x52, 0x09, 0x61, + 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x12, 0x50, 0x0a, 0x0e, 0x61, 0x72, 0x74, 0x69, + 0x66, 0x61, 0x63, 0x74, 0x73, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x23, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x29, 0x2e, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4a, 0x6f, 0x62, 0x41, 0x72, + 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x0d, 0x61, 0x72, 0x74, + 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x4a, 0x0a, 0x13, 0x61, 0x72, + 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x5f, 0x61, + 0x74, 0x18, 0x24, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x52, 0x11, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x45, 0x78, + 0x70, 0x69, 0x72, 0x65, 0x41, 0x74, 0x22, 0x86, 0x01, 0x0a, 0x09, 0x4a, 0x6f, 0x62, 0x52, 0x75, + 0x6e, 0x6e, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, + 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x73, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x22, + 0x7c, 0x0a, 0x0c, 0x4a, 0x6f, 0x62, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x12, + 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x66, + 0x69, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x66, 0x69, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x69, 0x6c, 0x65, + 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, + 0x69, 0x6c, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x22, 0x42, 0x0a, + 0x10, 0x4a, 0x6f, 0x62, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x46, 0x69, 0x6c, + 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, + 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x69, 0x7a, + 0x65, 0x22, 0x4a, 0x0a, 0x0c, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, + 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xed, 0x06, + 0x0a, 0x06, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x12, 0x41, 0x0a, 0x08, 0x70, 0x69, 0x70, 0x65, + 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x69, 0x74, + 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x08, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x10, 0x0a, 0x03, 0x72, 0x65, 0x66, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x72, 0x65, + 0x66, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x73, 0x74, 0x61, 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x56, 0x0a, 0x13, 0x64, 0x6f, 0x77, 0x6e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x5f, 0x70, 0x69, + 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, + 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x12, 0x64, 0x6f, 0x77, 0x6e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, + 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, + 0x41, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x3b, 0x0a, + 0x0b, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, + 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x41, 0x74, 0x12, 0x37, 0x0a, 0x09, 0x65, 0x72, + 0x61, 0x73, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x64, 0x41, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x5f, - 0x61, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, - 0x3b, 0x0a, 0x0b, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0c, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x52, 0x0a, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x41, 0x74, 0x12, 0x37, 0x0a, 0x09, - 0x65, 0x72, 0x61, 0x73, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x08, 0x65, 0x72, 0x61, - 0x73, 0x65, 0x64, 0x41, 0x74, 0x12, 0x35, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x42, 0x0a, 0x0f, - 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x08, 0x65, 0x72, 0x61, 0x73, 0x65, + 0x64, 0x41, 0x74, 0x12, 0x35, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x0e, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x18, 0x14, 0x20, 0x01, - 0x28, 0x01, 0x52, 0x08, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, - 0x74, 0x61, 0x67, 0x18, 0x15, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x61, 0x67, 0x12, 0x23, - 0x0a, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x18, - 0x16, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x46, 0x61, 0x69, 0x6c, - 0x75, 0x72, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x5f, 0x72, - 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x66, 0x61, 0x69, - 0x6c, 0x75, 0x72, 0x65, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x77, 0x65, - 0x62, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x77, 0x65, 0x62, - 0x55, 0x72, 0x6c, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x61, 0x67, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, - 0x19, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x74, 0x61, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x4a, - 0x0a, 0x0c, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x0e, - 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x81, 0x06, 0x0a, 0x06, 0x42, - 0x72, 0x69, 0x64, 0x67, 0x65, 0x12, 0x41, 0x0a, 0x08, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, - 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, - 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, - 0x72, 0x65, 0x66, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x72, 0x65, 0x66, 0x12, 0x14, - 0x0a, 0x05, 0x73, 0x74, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, - 0x74, 0x61, 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x56, 0x0a, 0x13, - 0x64, 0x6f, 0x77, 0x6e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, - 0x69, 0x6e, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x69, 0x74, 0x6c, - 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x12, 0x64, 0x6f, 0x77, 0x6e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x69, 0x70, 0x65, - 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, - 0x61, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, - 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0b, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, - 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x3b, 0x0a, 0x0b, 0x66, 0x69, - 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x66, 0x69, 0x6e, - 0x69, 0x73, 0x68, 0x65, 0x64, 0x41, 0x74, 0x12, 0x37, 0x0a, 0x09, 0x65, 0x72, 0x61, 0x73, 0x65, - 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x08, 0x65, 0x72, 0x61, 0x73, 0x65, 0x64, 0x41, 0x74, - 0x12, 0x35, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0e, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x64, - 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x42, 0x0a, 0x0f, 0x71, 0x75, 0x65, 0x75, 0x65, - 0x64, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x71, 0x75, 0x65, - 0x75, 0x65, 0x64, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x63, - 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x63, - 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x61, 0x67, 0x18, 0x15, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x61, 0x67, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x6c, 0x6c, - 0x6f, 0x77, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x0c, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x12, 0x25, - 0x0a, 0x0e, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, - 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x52, - 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x77, 0x65, 0x62, 0x5f, 0x75, 0x72, 0x6c, - 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x77, 0x65, 0x62, 0x55, 0x72, 0x6c, 0x42, 0x37, - 0x5a, 0x35, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6c, 0x75, - 0x74, 0x74, 0x72, 0x64, 0x65, 0x76, 0x2f, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x2d, 0x65, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, - 0x74, 0x79, 0x70, 0x65, 0x73, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x42, 0x0a, 0x0f, 0x71, 0x75, + 0x65, 0x75, 0x65, 0x64, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0f, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, + 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, + 0x0a, 0x08, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x01, + 0x52, 0x08, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x61, + 0x67, 0x18, 0x15, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x61, 0x67, 0x12, 0x23, 0x0a, 0x0d, + 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x18, 0x16, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0c, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, + 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x5f, 0x72, 0x65, 0x61, + 0x73, 0x6f, 0x6e, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x66, 0x61, 0x69, 0x6c, 0x75, + 0x72, 0x65, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x77, 0x65, 0x62, 0x5f, + 0x75, 0x72, 0x6c, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x77, 0x65, 0x62, 0x55, 0x72, + 0x6c, 0x12, 0x37, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x1e, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, + 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, + 0x69, 0x74, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x31, 0x0a, 0x04, 0x75, 0x73, + 0x65, 0x72, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x69, 0x74, 0x6c, 0x61, + 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x42, 0x37, 0x5a, + 0x35, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6c, 0x75, 0x74, + 0x74, 0x72, 0x64, 0x65, 0x76, 0x2f, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x2d, 0x65, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, + 0x79, 0x70, 0x65, 0x73, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -580,37 +920,52 @@ func file_gitlabexporter_protobuf_job_proto_rawDescGZIP() []byte { return file_gitlabexporter_protobuf_job_proto_rawDescData } -var file_gitlabexporter_protobuf_job_proto_msgTypes = make([]protoimpl.MessageInfo, 3) +var file_gitlabexporter_protobuf_job_proto_msgTypes = make([]protoimpl.MessageInfo, 6) var file_gitlabexporter_protobuf_job_proto_goTypes = []interface{}{ (*Job)(nil), // 0: gitlabexporter.protobuf.Job - (*JobReference)(nil), // 1: gitlabexporter.protobuf.JobReference - (*Bridge)(nil), // 2: gitlabexporter.protobuf.Bridge - (*PipelineReference)(nil), // 3: gitlabexporter.protobuf.PipelineReference - (*timestamppb.Timestamp)(nil), // 4: google.protobuf.Timestamp - (*durationpb.Duration)(nil), // 5: google.protobuf.Duration - (*PipelineInfo)(nil), // 6: gitlabexporter.protobuf.PipelineInfo + (*JobRunner)(nil), // 1: gitlabexporter.protobuf.JobRunner + (*JobArtifacts)(nil), // 2: gitlabexporter.protobuf.JobArtifacts + (*JobArtifactsFile)(nil), // 3: gitlabexporter.protobuf.JobArtifactsFile + (*JobReference)(nil), // 4: gitlabexporter.protobuf.JobReference + (*Bridge)(nil), // 5: gitlabexporter.protobuf.Bridge + (*PipelineReference)(nil), // 6: gitlabexporter.protobuf.PipelineReference + (*timestamppb.Timestamp)(nil), // 7: google.protobuf.Timestamp + (*durationpb.Duration)(nil), // 8: google.protobuf.Duration + (*Commit)(nil), // 9: gitlabexporter.protobuf.Commit + (*Project)(nil), // 10: gitlabexporter.protobuf.Project + (*User)(nil), // 11: gitlabexporter.protobuf.User + (*PipelineInfo)(nil), // 12: gitlabexporter.protobuf.PipelineInfo } var file_gitlabexporter_protobuf_job_proto_depIdxs = []int32{ - 3, // 0: gitlabexporter.protobuf.Job.pipeline:type_name -> gitlabexporter.protobuf.PipelineReference - 4, // 1: gitlabexporter.protobuf.Job.created_at:type_name -> google.protobuf.Timestamp - 4, // 2: gitlabexporter.protobuf.Job.started_at:type_name -> google.protobuf.Timestamp - 4, // 3: gitlabexporter.protobuf.Job.finished_at:type_name -> google.protobuf.Timestamp - 4, // 4: gitlabexporter.protobuf.Job.erased_at:type_name -> google.protobuf.Timestamp - 5, // 5: gitlabexporter.protobuf.Job.duration:type_name -> google.protobuf.Duration - 5, // 6: gitlabexporter.protobuf.Job.queued_duration:type_name -> google.protobuf.Duration - 6, // 7: gitlabexporter.protobuf.Bridge.pipeline:type_name -> gitlabexporter.protobuf.PipelineInfo - 6, // 8: gitlabexporter.protobuf.Bridge.downstream_pipeline:type_name -> gitlabexporter.protobuf.PipelineInfo - 4, // 9: gitlabexporter.protobuf.Bridge.created_at:type_name -> google.protobuf.Timestamp - 4, // 10: gitlabexporter.protobuf.Bridge.started_at:type_name -> google.protobuf.Timestamp - 4, // 11: gitlabexporter.protobuf.Bridge.finished_at:type_name -> google.protobuf.Timestamp - 4, // 12: gitlabexporter.protobuf.Bridge.erased_at:type_name -> google.protobuf.Timestamp - 5, // 13: gitlabexporter.protobuf.Bridge.duration:type_name -> google.protobuf.Duration - 5, // 14: gitlabexporter.protobuf.Bridge.queued_duration:type_name -> google.protobuf.Duration - 15, // [15:15] is the sub-list for method output_type - 15, // [15:15] is the sub-list for method input_type - 15, // [15:15] is the sub-list for extension type_name - 15, // [15:15] is the sub-list for extension extendee - 0, // [0:15] is the sub-list for field type_name + 6, // 0: gitlabexporter.protobuf.Job.pipeline:type_name -> gitlabexporter.protobuf.PipelineReference + 7, // 1: gitlabexporter.protobuf.Job.created_at:type_name -> google.protobuf.Timestamp + 7, // 2: gitlabexporter.protobuf.Job.started_at:type_name -> google.protobuf.Timestamp + 7, // 3: gitlabexporter.protobuf.Job.finished_at:type_name -> google.protobuf.Timestamp + 7, // 4: gitlabexporter.protobuf.Job.erased_at:type_name -> google.protobuf.Timestamp + 8, // 5: gitlabexporter.protobuf.Job.duration:type_name -> google.protobuf.Duration + 8, // 6: gitlabexporter.protobuf.Job.queued_duration:type_name -> google.protobuf.Duration + 9, // 7: gitlabexporter.protobuf.Job.commit:type_name -> gitlabexporter.protobuf.Commit + 10, // 8: gitlabexporter.protobuf.Job.project:type_name -> gitlabexporter.protobuf.Project + 11, // 9: gitlabexporter.protobuf.Job.user:type_name -> gitlabexporter.protobuf.User + 1, // 10: gitlabexporter.protobuf.Job.runner:type_name -> gitlabexporter.protobuf.JobRunner + 2, // 11: gitlabexporter.protobuf.Job.artifacts:type_name -> gitlabexporter.protobuf.JobArtifacts + 3, // 12: gitlabexporter.protobuf.Job.artifacts_file:type_name -> gitlabexporter.protobuf.JobArtifactsFile + 7, // 13: gitlabexporter.protobuf.Job.artifacts_expire_at:type_name -> google.protobuf.Timestamp + 12, // 14: gitlabexporter.protobuf.Bridge.pipeline:type_name -> gitlabexporter.protobuf.PipelineInfo + 12, // 15: gitlabexporter.protobuf.Bridge.downstream_pipeline:type_name -> gitlabexporter.protobuf.PipelineInfo + 7, // 16: gitlabexporter.protobuf.Bridge.created_at:type_name -> google.protobuf.Timestamp + 7, // 17: gitlabexporter.protobuf.Bridge.started_at:type_name -> google.protobuf.Timestamp + 7, // 18: gitlabexporter.protobuf.Bridge.finished_at:type_name -> google.protobuf.Timestamp + 7, // 19: gitlabexporter.protobuf.Bridge.erased_at:type_name -> google.protobuf.Timestamp + 8, // 20: gitlabexporter.protobuf.Bridge.duration:type_name -> google.protobuf.Duration + 8, // 21: gitlabexporter.protobuf.Bridge.queued_duration:type_name -> google.protobuf.Duration + 9, // 22: gitlabexporter.protobuf.Bridge.commit:type_name -> gitlabexporter.protobuf.Commit + 11, // 23: gitlabexporter.protobuf.Bridge.user:type_name -> gitlabexporter.protobuf.User + 24, // [24:24] is the sub-list for method output_type + 24, // [24:24] is the sub-list for method input_type + 24, // [24:24] is the sub-list for extension type_name + 24, // [24:24] is the sub-list for extension extendee + 0, // [0:24] is the sub-list for field type_name } func init() { file_gitlabexporter_protobuf_job_proto_init() } @@ -618,7 +973,10 @@ func file_gitlabexporter_protobuf_job_proto_init() { if File_gitlabexporter_protobuf_job_proto != nil { return } + file_gitlabexporter_protobuf_commit_proto_init() file_gitlabexporter_protobuf_pipeline_proto_init() + file_gitlabexporter_protobuf_project_proto_init() + file_gitlabexporter_protobuf_user_proto_init() if !protoimpl.UnsafeEnabled { file_gitlabexporter_protobuf_job_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Job); i { @@ -633,7 +991,7 @@ func file_gitlabexporter_protobuf_job_proto_init() { } } file_gitlabexporter_protobuf_job_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*JobReference); i { + switch v := v.(*JobRunner); i { case 0: return &v.state case 1: @@ -645,6 +1003,42 @@ func file_gitlabexporter_protobuf_job_proto_init() { } } file_gitlabexporter_protobuf_job_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*JobArtifacts); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_gitlabexporter_protobuf_job_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*JobArtifactsFile); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_gitlabexporter_protobuf_job_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*JobReference); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_gitlabexporter_protobuf_job_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Bridge); i { case 0: return &v.state @@ -663,7 +1057,7 @@ func file_gitlabexporter_protobuf_job_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_gitlabexporter_protobuf_job_proto_rawDesc, NumEnums: 0, - NumMessages: 3, + NumMessages: 6, NumExtensions: 0, NumServices: 0, }, diff --git a/protobuf/typespb/mergerequest.pb.go b/protobuf/typespb/mergerequest.pb.go new file mode 100644 index 0000000..2af780f --- /dev/null +++ b/protobuf/typespb/mergerequest.pb.go @@ -0,0 +1,834 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.30.0 +// protoc v4.22.2 +// source: gitlabexporter/protobuf/mergerequest.proto + +package typespb + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + timestamppb "google.golang.org/protobuf/types/known/timestamppb" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type MergeRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // ID of the merge request. + Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + // Internal ID of the merge request. + Iid int64 `protobuf:"varint,2,opt,name=iid,proto3" json:"iid,omitempty"` + // ID of the merge request project. + ProjectId int64 `protobuf:"varint,3,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` + // Timestamp of when the merge request was created. + CreatedAt *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` + // Timestamp of when the merge request was updated. + UpdatedAt *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` + // Timestamp of when the merge request merged. + MergedAt *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=merged_at,json=mergedAt,proto3" json:"merged_at,omitempty"` + // Timestamp of when the merge request was closed. + ClosedAt *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=closed_at,json=closedAt,proto3" json:"closed_at,omitempty"` + // ID of the merge request source project. + SourceProjectId int64 `protobuf:"varint,8,opt,name=source_project_id,json=sourceProjectId,proto3" json:"source_project_id,omitempty"` + // ID of the merge request target project. + TargetProjectId int64 `protobuf:"varint,9,opt,name=target_project_id,json=targetProjectId,proto3" json:"target_project_id,omitempty"` + // Source branch of the merge request. + SourceBranch string `protobuf:"bytes,10,opt,name=source_branch,json=sourceBranch,proto3" json:"source_branch,omitempty"` + // Target branch of the merge request. + TargetBranch string `protobuf:"bytes,11,opt,name=target_branch,json=targetBranch,proto3" json:"target_branch,omitempty"` + // Title of the merge request. + Title string `protobuf:"bytes,12,opt,name=title,proto3" json:"title,omitempty"` + // State of the merge request. Can be opened, closed, merged or locked. + State string `protobuf:"bytes,13,opt,name=state,proto3" json:"state,omitempty"` + // Detailed merge status of the merge request. + DetailedMergeStatus string `protobuf:"bytes,14,opt,name=detailed_merge_status,json=detailedMergeStatus,proto3" json:"detailed_merge_status,omitempty"` + // Indicates if the merge request is a draft. + Draft bool `protobuf:"varint,15,opt,name=draft,proto3" json:"draft,omitempty"` + // Indicates if merge request has conflicts and cannot merge. + HasConflicts bool `protobuf:"varint,16,opt,name=has_conflicts,json=hasConflicts,proto3" json:"has_conflicts,omitempty"` + // Error message shown when a merge has failed. + MergeError string `protobuf:"bytes,17,opt,name=merge_error,json=mergeError,proto3" json:"merge_error,omitempty"` + // References of the base SHA, the head SHA, and the start SHA for this merge request. + DiffRefs *MergeRequestDiffRefs `protobuf:"bytes,18,opt,name=diff_refs,json=diffRefs,proto3" json:"diff_refs,omitempty"` + // User who created this merge request. + Author *User `protobuf:"bytes,19,opt,name=author,proto3" json:"author,omitempty"` + // First assignee of the merge request. + Assignee *User `protobuf:"bytes,20,opt,name=assignee,proto3" json:"assignee,omitempty"` + // Assignees of the merge request. + Assignees []*User `protobuf:"bytes,21,rep,name=assignees,proto3" json:"assignees,omitempty"` + // Reviewers of the merge request. + Reviewers []*User `protobuf:"bytes,22,rep,name=reviewers,proto3" json:"reviewers,omitempty"` + // The user who merged this merge request, the user who set it to auto-merge, or null. + MergeUser *User `protobuf:"bytes,23,opt,name=merge_user,json=mergeUser,proto3" json:"merge_user,omitempty"` + // User who closed this merge request. + CloseUser *User `protobuf:"bytes,24,opt,name=close_user,json=closeUser,proto3" json:"close_user,omitempty"` + // Labels of the merge request. + Labels []string `protobuf:"bytes,25,rep,name=labels,proto3" json:"labels,omitempty"` + // Diff head SHA of the merge request. + Sha string `protobuf:"bytes,26,opt,name=sha,proto3" json:"sha,omitempty"` + // SHA of the merge request commit. Empty until merged. + MergeCommitSha string `protobuf:"bytes,27,opt,name=merge_commit_sha,json=mergeCommitSha,proto3" json:"merge_commit_sha,omitempty"` + // SHA of the squash commit. Empty until merged. + SquashCommitSha string `protobuf:"bytes,28,opt,name=squash_commit_sha,json=squashCommitSha,proto3" json:"squash_commit_sha,omitempty"` + // Number of changes made on the merge request. + ChangesCount string `protobuf:"bytes,29,opt,name=changes_count,json=changesCount,proto3" json:"changes_count,omitempty"` + // User notes count of the merge request. + UserNotesCount int64 `protobuf:"varint,30,opt,name=user_notes_count,json=userNotesCount,proto3" json:"user_notes_count,omitempty"` + // Number of upvotes for the merge request. + Upvotes int64 `protobuf:"varint,31,opt,name=upvotes,proto3" json:"upvotes,omitempty"` + // Number of downvotes for the merge request. + Downvotes int64 `protobuf:"varint,32,opt,name=downvotes,proto3" json:"downvotes,omitempty"` + // Pipeline running on the branch HEAD of the merge request. + Pipeline *PipelineInfo `protobuf:"bytes,33,opt,name=pipeline,proto3" json:"pipeline,omitempty"` + // Milestone of the merge request. + Milestone *Milestone `protobuf:"bytes,34,opt,name=milestone,proto3" json:"milestone,omitempty"` + // Web URL of the merge request. + WebUrl string `protobuf:"bytes,35,opt,name=web_url,json=webUrl,proto3" json:"web_url,omitempty"` +} + +func (x *MergeRequest) Reset() { + *x = MergeRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_gitlabexporter_protobuf_mergerequest_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MergeRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MergeRequest) ProtoMessage() {} + +func (x *MergeRequest) ProtoReflect() protoreflect.Message { + mi := &file_gitlabexporter_protobuf_mergerequest_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MergeRequest.ProtoReflect.Descriptor instead. +func (*MergeRequest) Descriptor() ([]byte, []int) { + return file_gitlabexporter_protobuf_mergerequest_proto_rawDescGZIP(), []int{0} +} + +func (x *MergeRequest) GetId() int64 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *MergeRequest) GetIid() int64 { + if x != nil { + return x.Iid + } + return 0 +} + +func (x *MergeRequest) GetProjectId() int64 { + if x != nil { + return x.ProjectId + } + return 0 +} + +func (x *MergeRequest) GetCreatedAt() *timestamppb.Timestamp { + if x != nil { + return x.CreatedAt + } + return nil +} + +func (x *MergeRequest) GetUpdatedAt() *timestamppb.Timestamp { + if x != nil { + return x.UpdatedAt + } + return nil +} + +func (x *MergeRequest) GetMergedAt() *timestamppb.Timestamp { + if x != nil { + return x.MergedAt + } + return nil +} + +func (x *MergeRequest) GetClosedAt() *timestamppb.Timestamp { + if x != nil { + return x.ClosedAt + } + return nil +} + +func (x *MergeRequest) GetSourceProjectId() int64 { + if x != nil { + return x.SourceProjectId + } + return 0 +} + +func (x *MergeRequest) GetTargetProjectId() int64 { + if x != nil { + return x.TargetProjectId + } + return 0 +} + +func (x *MergeRequest) GetSourceBranch() string { + if x != nil { + return x.SourceBranch + } + return "" +} + +func (x *MergeRequest) GetTargetBranch() string { + if x != nil { + return x.TargetBranch + } + return "" +} + +func (x *MergeRequest) GetTitle() string { + if x != nil { + return x.Title + } + return "" +} + +func (x *MergeRequest) GetState() string { + if x != nil { + return x.State + } + return "" +} + +func (x *MergeRequest) GetDetailedMergeStatus() string { + if x != nil { + return x.DetailedMergeStatus + } + return "" +} + +func (x *MergeRequest) GetDraft() bool { + if x != nil { + return x.Draft + } + return false +} + +func (x *MergeRequest) GetHasConflicts() bool { + if x != nil { + return x.HasConflicts + } + return false +} + +func (x *MergeRequest) GetMergeError() string { + if x != nil { + return x.MergeError + } + return "" +} + +func (x *MergeRequest) GetDiffRefs() *MergeRequestDiffRefs { + if x != nil { + return x.DiffRefs + } + return nil +} + +func (x *MergeRequest) GetAuthor() *User { + if x != nil { + return x.Author + } + return nil +} + +func (x *MergeRequest) GetAssignee() *User { + if x != nil { + return x.Assignee + } + return nil +} + +func (x *MergeRequest) GetAssignees() []*User { + if x != nil { + return x.Assignees + } + return nil +} + +func (x *MergeRequest) GetReviewers() []*User { + if x != nil { + return x.Reviewers + } + return nil +} + +func (x *MergeRequest) GetMergeUser() *User { + if x != nil { + return x.MergeUser + } + return nil +} + +func (x *MergeRequest) GetCloseUser() *User { + if x != nil { + return x.CloseUser + } + return nil +} + +func (x *MergeRequest) GetLabels() []string { + if x != nil { + return x.Labels + } + return nil +} + +func (x *MergeRequest) GetSha() string { + if x != nil { + return x.Sha + } + return "" +} + +func (x *MergeRequest) GetMergeCommitSha() string { + if x != nil { + return x.MergeCommitSha + } + return "" +} + +func (x *MergeRequest) GetSquashCommitSha() string { + if x != nil { + return x.SquashCommitSha + } + return "" +} + +func (x *MergeRequest) GetChangesCount() string { + if x != nil { + return x.ChangesCount + } + return "" +} + +func (x *MergeRequest) GetUserNotesCount() int64 { + if x != nil { + return x.UserNotesCount + } + return 0 +} + +func (x *MergeRequest) GetUpvotes() int64 { + if x != nil { + return x.Upvotes + } + return 0 +} + +func (x *MergeRequest) GetDownvotes() int64 { + if x != nil { + return x.Downvotes + } + return 0 +} + +func (x *MergeRequest) GetPipeline() *PipelineInfo { + if x != nil { + return x.Pipeline + } + return nil +} + +func (x *MergeRequest) GetMilestone() *Milestone { + if x != nil { + return x.Milestone + } + return nil +} + +func (x *MergeRequest) GetWebUrl() string { + if x != nil { + return x.WebUrl + } + return "" +} + +type MergeRequestDiffRefs struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + BaseSha string `protobuf:"bytes,1,opt,name=base_sha,json=baseSha,proto3" json:"base_sha,omitempty"` + HeadSha string `protobuf:"bytes,2,opt,name=head_sha,json=headSha,proto3" json:"head_sha,omitempty"` + StartSha string `protobuf:"bytes,3,opt,name=start_sha,json=startSha,proto3" json:"start_sha,omitempty"` +} + +func (x *MergeRequestDiffRefs) Reset() { + *x = MergeRequestDiffRefs{} + if protoimpl.UnsafeEnabled { + mi := &file_gitlabexporter_protobuf_mergerequest_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MergeRequestDiffRefs) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MergeRequestDiffRefs) ProtoMessage() {} + +func (x *MergeRequestDiffRefs) ProtoReflect() protoreflect.Message { + mi := &file_gitlabexporter_protobuf_mergerequest_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MergeRequestDiffRefs.ProtoReflect.Descriptor instead. +func (*MergeRequestDiffRefs) Descriptor() ([]byte, []int) { + return file_gitlabexporter_protobuf_mergerequest_proto_rawDescGZIP(), []int{1} +} + +func (x *MergeRequestDiffRefs) GetBaseSha() string { + if x != nil { + return x.BaseSha + } + return "" +} + +func (x *MergeRequestDiffRefs) GetHeadSha() string { + if x != nil { + return x.HeadSha + } + return "" +} + +func (x *MergeRequestDiffRefs) GetStartSha() string { + if x != nil { + return x.StartSha + } + return "" +} + +type Milestone struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + Iid int64 `protobuf:"varint,2,opt,name=iid,proto3" json:"iid,omitempty"` + ProjectId int64 `protobuf:"varint,3,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` + GroupId int64 `protobuf:"varint,4,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"` + CreatedAt *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` + UpdatedAt *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` + StartDate *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=start_date,json=startDate,proto3" json:"start_date,omitempty"` + DueDate *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=due_date,json=dueDate,proto3" json:"due_date,omitempty"` + Title string `protobuf:"bytes,9,opt,name=title,proto3" json:"title,omitempty"` + State string `protobuf:"bytes,10,opt,name=state,proto3" json:"state,omitempty"` + Expired bool `protobuf:"varint,11,opt,name=expired,proto3" json:"expired,omitempty"` + WebUrl string `protobuf:"bytes,12,opt,name=web_url,json=webUrl,proto3" json:"web_url,omitempty"` +} + +func (x *Milestone) Reset() { + *x = Milestone{} + if protoimpl.UnsafeEnabled { + mi := &file_gitlabexporter_protobuf_mergerequest_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Milestone) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Milestone) ProtoMessage() {} + +func (x *Milestone) ProtoReflect() protoreflect.Message { + mi := &file_gitlabexporter_protobuf_mergerequest_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Milestone.ProtoReflect.Descriptor instead. +func (*Milestone) Descriptor() ([]byte, []int) { + return file_gitlabexporter_protobuf_mergerequest_proto_rawDescGZIP(), []int{2} +} + +func (x *Milestone) GetId() int64 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *Milestone) GetIid() int64 { + if x != nil { + return x.Iid + } + return 0 +} + +func (x *Milestone) GetProjectId() int64 { + if x != nil { + return x.ProjectId + } + return 0 +} + +func (x *Milestone) GetGroupId() int64 { + if x != nil { + return x.GroupId + } + return 0 +} + +func (x *Milestone) GetCreatedAt() *timestamppb.Timestamp { + if x != nil { + return x.CreatedAt + } + return nil +} + +func (x *Milestone) GetUpdatedAt() *timestamppb.Timestamp { + if x != nil { + return x.UpdatedAt + } + return nil +} + +func (x *Milestone) GetStartDate() *timestamppb.Timestamp { + if x != nil { + return x.StartDate + } + return nil +} + +func (x *Milestone) GetDueDate() *timestamppb.Timestamp { + if x != nil { + return x.DueDate + } + return nil +} + +func (x *Milestone) GetTitle() string { + if x != nil { + return x.Title + } + return "" +} + +func (x *Milestone) GetState() string { + if x != nil { + return x.State + } + return "" +} + +func (x *Milestone) GetExpired() bool { + if x != nil { + return x.Expired + } + return false +} + +func (x *Milestone) GetWebUrl() string { + if x != nil { + return x.WebUrl + } + return "" +} + +var File_gitlabexporter_protobuf_mergerequest_proto protoreflect.FileDescriptor + +var file_gitlabexporter_protobuf_mergerequest_proto_rawDesc = []byte{ + 0x0a, 0x2a, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, + 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x72, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x17, 0x67, 0x69, + 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x26, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, + 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x22, + 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2f, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x22, 0xee, 0x0b, 0x0a, 0x0c, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x03, 0x69, 0x69, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x49, 0x64, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, + 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, + 0x39, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, + 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x37, 0x0a, 0x09, 0x6d, 0x65, + 0x72, 0x67, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x08, 0x6d, 0x65, 0x72, 0x67, 0x65, + 0x64, 0x41, 0x74, 0x12, 0x37, 0x0a, 0x09, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x5f, 0x61, 0x74, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x52, 0x08, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x41, 0x74, 0x12, 0x2a, 0x0a, 0x11, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, + 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x74, 0x61, 0x72, 0x67, + 0x65, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x0f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x62, + 0x72, 0x61, 0x6e, 0x63, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x61, 0x72, + 0x67, 0x65, 0x74, 0x5f, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0c, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x12, 0x14, + 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, + 0x69, 0x74, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0d, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x32, 0x0a, 0x15, 0x64, 0x65, + 0x74, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x5f, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x64, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x65, 0x64, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, + 0x0a, 0x05, 0x64, 0x72, 0x61, 0x66, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x64, + 0x72, 0x61, 0x66, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x68, 0x61, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, + 0x6c, 0x69, 0x63, 0x74, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x68, 0x61, 0x73, + 0x43, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x65, 0x72, + 0x67, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x6d, 0x65, 0x72, 0x67, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x4a, 0x0a, 0x09, 0x64, 0x69, + 0x66, 0x66, 0x5f, 0x72, 0x65, 0x66, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, + 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x44, 0x69, 0x66, 0x66, 0x52, 0x65, 0x66, 0x73, 0x52, 0x08, 0x64, 0x69, + 0x66, 0x66, 0x52, 0x65, 0x66, 0x73, 0x12, 0x35, 0x0a, 0x06, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, + 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, + 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x06, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x12, 0x39, 0x0a, + 0x08, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1d, 0x2e, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x08, + 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x65, 0x12, 0x3b, 0x0a, 0x09, 0x61, 0x73, 0x73, 0x69, + 0x67, 0x6e, 0x65, 0x65, 0x73, 0x18, 0x15, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x69, + 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x09, 0x61, 0x73, 0x73, 0x69, + 0x67, 0x6e, 0x65, 0x65, 0x73, 0x12, 0x3b, 0x0a, 0x09, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x65, + 0x72, 0x73, 0x18, 0x16, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x69, 0x74, 0x6c, 0x61, + 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x09, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x65, + 0x72, 0x73, 0x12, 0x3c, 0x0a, 0x0a, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x5f, 0x75, 0x73, 0x65, 0x72, + 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, + 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x09, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x55, 0x73, 0x65, 0x72, + 0x12, 0x3c, 0x0a, 0x0a, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x18, 0x18, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, + 0x73, 0x65, 0x72, 0x52, 0x09, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x55, 0x73, 0x65, 0x72, 0x12, 0x16, + 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x19, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x68, 0x61, 0x18, 0x1a, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x68, 0x61, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x65, 0x72, 0x67, + 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f, 0x73, 0x68, 0x61, 0x18, 0x1b, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0e, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x53, + 0x68, 0x61, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x71, 0x75, 0x61, 0x73, 0x68, 0x5f, 0x63, 0x6f, 0x6d, + 0x6d, 0x69, 0x74, 0x5f, 0x73, 0x68, 0x61, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, + 0x71, 0x75, 0x61, 0x73, 0x68, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x53, 0x68, 0x61, 0x12, 0x23, + 0x0a, 0x0d, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x1d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x74, 0x65, + 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x75, + 0x73, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x65, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x18, 0x0a, + 0x07, 0x75, 0x70, 0x76, 0x6f, 0x74, 0x65, 0x73, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, + 0x75, 0x70, 0x76, 0x6f, 0x74, 0x65, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x6f, 0x77, 0x6e, 0x76, + 0x6f, 0x74, 0x65, 0x73, 0x18, 0x20, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x64, 0x6f, 0x77, 0x6e, + 0x76, 0x6f, 0x74, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x08, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, + 0x65, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, + 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, + 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x40, 0x0a, 0x09, 0x6d, 0x69, 0x6c, 0x65, + 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x69, + 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x52, + 0x09, 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x77, 0x65, + 0x62, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x23, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x77, 0x65, 0x62, + 0x55, 0x72, 0x6c, 0x22, 0x69, 0x0a, 0x14, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x44, 0x69, 0x66, 0x66, 0x52, 0x65, 0x66, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x62, + 0x61, 0x73, 0x65, 0x5f, 0x73, 0x68, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, + 0x61, 0x73, 0x65, 0x53, 0x68, 0x61, 0x12, 0x19, 0x0a, 0x08, 0x68, 0x65, 0x61, 0x64, 0x5f, 0x73, + 0x68, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x68, 0x65, 0x61, 0x64, 0x53, 0x68, + 0x61, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x73, 0x68, 0x61, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x72, 0x74, 0x53, 0x68, 0x61, 0x22, 0xae, + 0x03, 0x0a, 0x09, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x12, 0x0e, 0x0a, 0x02, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, + 0x69, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x69, 0x69, 0x64, 0x12, 0x1d, + 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x19, 0x0a, + 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x41, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, + 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x39, + 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x44, 0x61, 0x74, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x64, 0x75, 0x65, + 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x64, 0x75, 0x65, 0x44, 0x61, 0x74, 0x65, + 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, + 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, + 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x77, 0x65, 0x62, 0x5f, 0x75, 0x72, + 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x77, 0x65, 0x62, 0x55, 0x72, 0x6c, 0x42, + 0x37, 0x5a, 0x35, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6c, + 0x75, 0x74, 0x74, 0x72, 0x64, 0x65, 0x76, 0x2f, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x2d, 0x65, + 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_gitlabexporter_protobuf_mergerequest_proto_rawDescOnce sync.Once + file_gitlabexporter_protobuf_mergerequest_proto_rawDescData = file_gitlabexporter_protobuf_mergerequest_proto_rawDesc +) + +func file_gitlabexporter_protobuf_mergerequest_proto_rawDescGZIP() []byte { + file_gitlabexporter_protobuf_mergerequest_proto_rawDescOnce.Do(func() { + file_gitlabexporter_protobuf_mergerequest_proto_rawDescData = protoimpl.X.CompressGZIP(file_gitlabexporter_protobuf_mergerequest_proto_rawDescData) + }) + return file_gitlabexporter_protobuf_mergerequest_proto_rawDescData +} + +var file_gitlabexporter_protobuf_mergerequest_proto_msgTypes = make([]protoimpl.MessageInfo, 3) +var file_gitlabexporter_protobuf_mergerequest_proto_goTypes = []interface{}{ + (*MergeRequest)(nil), // 0: gitlabexporter.protobuf.MergeRequest + (*MergeRequestDiffRefs)(nil), // 1: gitlabexporter.protobuf.MergeRequestDiffRefs + (*Milestone)(nil), // 2: gitlabexporter.protobuf.Milestone + (*timestamppb.Timestamp)(nil), // 3: google.protobuf.Timestamp + (*User)(nil), // 4: gitlabexporter.protobuf.User + (*PipelineInfo)(nil), // 5: gitlabexporter.protobuf.PipelineInfo +} +var file_gitlabexporter_protobuf_mergerequest_proto_depIdxs = []int32{ + 3, // 0: gitlabexporter.protobuf.MergeRequest.created_at:type_name -> google.protobuf.Timestamp + 3, // 1: gitlabexporter.protobuf.MergeRequest.updated_at:type_name -> google.protobuf.Timestamp + 3, // 2: gitlabexporter.protobuf.MergeRequest.merged_at:type_name -> google.protobuf.Timestamp + 3, // 3: gitlabexporter.protobuf.MergeRequest.closed_at:type_name -> google.protobuf.Timestamp + 1, // 4: gitlabexporter.protobuf.MergeRequest.diff_refs:type_name -> gitlabexporter.protobuf.MergeRequestDiffRefs + 4, // 5: gitlabexporter.protobuf.MergeRequest.author:type_name -> gitlabexporter.protobuf.User + 4, // 6: gitlabexporter.protobuf.MergeRequest.assignee:type_name -> gitlabexporter.protobuf.User + 4, // 7: gitlabexporter.protobuf.MergeRequest.assignees:type_name -> gitlabexporter.protobuf.User + 4, // 8: gitlabexporter.protobuf.MergeRequest.reviewers:type_name -> gitlabexporter.protobuf.User + 4, // 9: gitlabexporter.protobuf.MergeRequest.merge_user:type_name -> gitlabexporter.protobuf.User + 4, // 10: gitlabexporter.protobuf.MergeRequest.close_user:type_name -> gitlabexporter.protobuf.User + 5, // 11: gitlabexporter.protobuf.MergeRequest.pipeline:type_name -> gitlabexporter.protobuf.PipelineInfo + 2, // 12: gitlabexporter.protobuf.MergeRequest.milestone:type_name -> gitlabexporter.protobuf.Milestone + 3, // 13: gitlabexporter.protobuf.Milestone.created_at:type_name -> google.protobuf.Timestamp + 3, // 14: gitlabexporter.protobuf.Milestone.updated_at:type_name -> google.protobuf.Timestamp + 3, // 15: gitlabexporter.protobuf.Milestone.start_date:type_name -> google.protobuf.Timestamp + 3, // 16: gitlabexporter.protobuf.Milestone.due_date:type_name -> google.protobuf.Timestamp + 17, // [17:17] is the sub-list for method output_type + 17, // [17:17] is the sub-list for method input_type + 17, // [17:17] is the sub-list for extension type_name + 17, // [17:17] is the sub-list for extension extendee + 0, // [0:17] is the sub-list for field type_name +} + +func init() { file_gitlabexporter_protobuf_mergerequest_proto_init() } +func file_gitlabexporter_protobuf_mergerequest_proto_init() { + if File_gitlabexporter_protobuf_mergerequest_proto != nil { + return + } + file_gitlabexporter_protobuf_pipeline_proto_init() + file_gitlabexporter_protobuf_user_proto_init() + if !protoimpl.UnsafeEnabled { + file_gitlabexporter_protobuf_mergerequest_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MergeRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_gitlabexporter_protobuf_mergerequest_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MergeRequestDiffRefs); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_gitlabexporter_protobuf_mergerequest_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Milestone); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_gitlabexporter_protobuf_mergerequest_proto_rawDesc, + NumEnums: 0, + NumMessages: 3, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_gitlabexporter_protobuf_mergerequest_proto_goTypes, + DependencyIndexes: file_gitlabexporter_protobuf_mergerequest_proto_depIdxs, + MessageInfos: file_gitlabexporter_protobuf_mergerequest_proto_msgTypes, + }.Build() + File_gitlabexporter_protobuf_mergerequest_proto = out.File + file_gitlabexporter_protobuf_mergerequest_proto_rawDesc = nil + file_gitlabexporter_protobuf_mergerequest_proto_goTypes = nil + file_gitlabexporter_protobuf_mergerequest_proto_depIdxs = nil +} diff --git a/protobuf/typespb/pipeline.pb.go b/protobuf/typespb/pipeline.pb.go index 810ed47..1605865 100644 --- a/protobuf/typespb/pipeline.pb.go +++ b/protobuf/typespb/pipeline.pb.go @@ -46,6 +46,7 @@ type Pipeline struct { QueuedDuration *durationpb.Duration `protobuf:"bytes,17,opt,name=queued_duration,json=queuedDuration,proto3" json:"queued_duration,omitempty"` Coverage float64 `protobuf:"fixed64,18,opt,name=coverage,proto3" json:"coverage,omitempty"` WebUrl string `protobuf:"bytes,19,opt,name=web_url,json=webUrl,proto3" json:"web_url,omitempty"` + User *User `protobuf:"bytes,20,opt,name=user,proto3" json:"user,omitempty"` } func (x *Pipeline) Reset() { @@ -213,6 +214,13 @@ func (x *Pipeline) GetWebUrl() string { return "" } +func (x *Pipeline) GetUser() *User { + if x != nil { + return x.User + } + return nil +} + type PipelineInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -422,83 +430,88 @@ var file_gitlabexporter_protobuf_pipeline_proto_rawDesc = []byte{ 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x22, 0xce, 0x05, 0x0a, 0x08, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x12, - 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, - 0x10, 0x0a, 0x03, 0x69, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x69, 0x69, - 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, - 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x12, 0x10, 0x0a, 0x03, 0x72, 0x65, 0x66, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x72, - 0x65, 0x66, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x68, 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x73, 0x68, 0x61, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x5f, 0x73, - 0x68, 0x61, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, - 0x53, 0x68, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x61, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x03, 0x74, 0x61, 0x67, 0x12, 0x1f, 0x0a, 0x0b, 0x79, 0x61, 0x6d, 0x6c, 0x5f, 0x65, 0x72, - 0x72, 0x6f, 0x72, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x79, 0x61, 0x6d, 0x6c, - 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, - 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x39, 0x0a, 0x0a, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, + 0x74, 0x6f, 0x1a, 0x22, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, + 0x65, 0x72, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x75, 0x73, 0x65, 0x72, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x81, 0x06, 0x0a, 0x08, 0x50, 0x69, 0x70, 0x65, 0x6c, + 0x69, 0x6e, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x03, 0x69, 0x69, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x65, 0x66, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x72, 0x65, 0x66, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x68, 0x61, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x68, 0x61, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x65, 0x66, 0x6f, + 0x72, 0x65, 0x5f, 0x73, 0x68, 0x61, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x65, + 0x66, 0x6f, 0x72, 0x65, 0x53, 0x68, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x61, 0x67, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x61, 0x67, 0x12, 0x1f, 0x0a, 0x0b, 0x79, 0x61, 0x6d, + 0x6c, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x79, 0x61, 0x6d, 0x6c, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, + 0x5f, 0x61, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, + 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0d, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x3b, 0x0a, 0x0b, 0x66, + 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x3b, 0x0a, 0x0b, 0x66, 0x69, 0x6e, 0x69, 0x73, - 0x68, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, - 0x65, 0x64, 0x41, 0x74, 0x12, 0x3d, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, - 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, - 0x64, 0x41, 0x74, 0x12, 0x35, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x42, 0x0a, 0x0f, 0x71, 0x75, - 0x65, 0x75, 0x65, 0x64, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x11, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, - 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, - 0x0a, 0x08, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x01, - 0x52, 0x08, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x77, 0x65, - 0x62, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x77, 0x65, 0x62, - 0x55, 0x72, 0x6c, 0x22, 0xb2, 0x02, 0x0a, 0x0c, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, - 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x03, 0x69, 0x69, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, - 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x65, 0x66, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x72, 0x65, 0x66, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x68, 0x61, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x68, 0x61, 0x12, 0x17, 0x0a, 0x07, 0x77, 0x65, 0x62, - 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x77, 0x65, 0x62, 0x55, - 0x72, 0x6c, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x39, 0x0a, - 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x75, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x7e, 0x0a, 0x11, 0x50, 0x69, 0x70, 0x65, - 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x0e, 0x0a, - 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1d, 0x0a, - 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, - 0x72, 0x65, 0x66, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x72, 0x65, 0x66, 0x12, 0x10, - 0x0a, 0x03, 0x73, 0x68, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x68, 0x61, - 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x37, 0x5a, 0x35, 0x67, 0x69, 0x74, 0x68, - 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6c, 0x75, 0x74, 0x74, 0x72, 0x64, 0x65, 0x76, - 0x2f, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x2d, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, - 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x70, - 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x66, 0x69, + 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x41, 0x74, 0x12, 0x3d, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, + 0x69, 0x74, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, + 0x69, 0x74, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x35, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x42, + 0x0a, 0x0f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x0e, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x18, 0x12, + 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x12, 0x17, + 0x0a, 0x07, 0x77, 0x65, 0x62, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x77, 0x65, 0x62, 0x55, 0x72, 0x6c, 0x12, 0x31, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, + 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x22, 0xb2, 0x02, 0x0a, 0x0c, 0x50, + 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x69, + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x69, 0x69, 0x64, 0x12, 0x1d, 0x0a, + 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x10, 0x0a, 0x03, + 0x72, 0x65, 0x66, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x72, 0x65, 0x66, 0x12, 0x10, + 0x0a, 0x03, 0x73, 0x68, 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x68, 0x61, + 0x12, 0x17, 0x0a, 0x07, 0x77, 0x65, 0x62, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x77, 0x65, 0x62, 0x55, 0x72, 0x6c, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x64, 0x41, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, + 0x61, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, + 0x7e, 0x0a, 0x11, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x63, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x02, 0x69, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x65, 0x66, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x72, 0x65, 0x66, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x68, 0x61, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x73, 0x68, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, + 0x37, 0x5a, 0x35, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6c, + 0x75, 0x74, 0x74, 0x72, 0x64, 0x65, 0x76, 0x2f, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x2d, 0x65, + 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -520,22 +533,24 @@ var file_gitlabexporter_protobuf_pipeline_proto_goTypes = []interface{}{ (*PipelineReference)(nil), // 2: gitlabexporter.protobuf.PipelineReference (*timestamppb.Timestamp)(nil), // 3: google.protobuf.Timestamp (*durationpb.Duration)(nil), // 4: google.protobuf.Duration + (*User)(nil), // 5: gitlabexporter.protobuf.User } var file_gitlabexporter_protobuf_pipeline_proto_depIdxs = []int32{ - 3, // 0: gitlabexporter.protobuf.Pipeline.created_at:type_name -> google.protobuf.Timestamp - 3, // 1: gitlabexporter.protobuf.Pipeline.updated_at:type_name -> google.protobuf.Timestamp - 3, // 2: gitlabexporter.protobuf.Pipeline.started_at:type_name -> google.protobuf.Timestamp - 3, // 3: gitlabexporter.protobuf.Pipeline.finished_at:type_name -> google.protobuf.Timestamp - 3, // 4: gitlabexporter.protobuf.Pipeline.committed_at:type_name -> google.protobuf.Timestamp - 4, // 5: gitlabexporter.protobuf.Pipeline.duration:type_name -> google.protobuf.Duration - 4, // 6: gitlabexporter.protobuf.Pipeline.queued_duration:type_name -> google.protobuf.Duration - 3, // 7: gitlabexporter.protobuf.PipelineInfo.created_at:type_name -> google.protobuf.Timestamp - 3, // 8: gitlabexporter.protobuf.PipelineInfo.updated_at:type_name -> google.protobuf.Timestamp - 9, // [9:9] is the sub-list for method output_type - 9, // [9:9] is the sub-list for method input_type - 9, // [9:9] is the sub-list for extension type_name - 9, // [9:9] is the sub-list for extension extendee - 0, // [0:9] is the sub-list for field type_name + 3, // 0: gitlabexporter.protobuf.Pipeline.created_at:type_name -> google.protobuf.Timestamp + 3, // 1: gitlabexporter.protobuf.Pipeline.updated_at:type_name -> google.protobuf.Timestamp + 3, // 2: gitlabexporter.protobuf.Pipeline.started_at:type_name -> google.protobuf.Timestamp + 3, // 3: gitlabexporter.protobuf.Pipeline.finished_at:type_name -> google.protobuf.Timestamp + 3, // 4: gitlabexporter.protobuf.Pipeline.committed_at:type_name -> google.protobuf.Timestamp + 4, // 5: gitlabexporter.protobuf.Pipeline.duration:type_name -> google.protobuf.Duration + 4, // 6: gitlabexporter.protobuf.Pipeline.queued_duration:type_name -> google.protobuf.Duration + 5, // 7: gitlabexporter.protobuf.Pipeline.user:type_name -> gitlabexporter.protobuf.User + 3, // 8: gitlabexporter.protobuf.PipelineInfo.created_at:type_name -> google.protobuf.Timestamp + 3, // 9: gitlabexporter.protobuf.PipelineInfo.updated_at:type_name -> google.protobuf.Timestamp + 10, // [10:10] is the sub-list for method output_type + 10, // [10:10] is the sub-list for method input_type + 10, // [10:10] is the sub-list for extension type_name + 10, // [10:10] is the sub-list for extension extendee + 0, // [0:10] is the sub-list for field type_name } func init() { file_gitlabexporter_protobuf_pipeline_proto_init() } @@ -543,6 +558,7 @@ func file_gitlabexporter_protobuf_pipeline_proto_init() { if File_gitlabexporter_protobuf_pipeline_proto != nil { return } + file_gitlabexporter_protobuf_user_proto_init() if !protoimpl.UnsafeEnabled { file_gitlabexporter_protobuf_pipeline_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Pipeline); i { diff --git a/protobuf/typespb/project.pb.go b/protobuf/typespb/project.pb.go index 83de6e7..50334b7 100644 --- a/protobuf/typespb/project.pb.go +++ b/protobuf/typespb/project.pb.go @@ -31,13 +31,22 @@ type Project struct { NameWithNamespace string `protobuf:"bytes,3,opt,name=name_with_namespace,json=nameWithNamespace,proto3" json:"name_with_namespace,omitempty"` Path string `protobuf:"bytes,4,opt,name=path,proto3" json:"path,omitempty"` PathWithNamespace string `protobuf:"bytes,5,opt,name=path_with_namespace,json=pathWithNamespace,proto3" json:"path_with_namespace,omitempty"` - Description string `protobuf:"bytes,6,opt,name=description,proto3" json:"description,omitempty"` CreatedAt *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` LastActivityAt *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=last_activity_at,json=lastActivityAt,proto3" json:"last_activity_at,omitempty"` Namespace *ProjectNamespace `protobuf:"bytes,9,opt,name=namespace,proto3" json:"namespace,omitempty"` - Statistics *ProjectStatistics `protobuf:"bytes,10,opt,name=statistics,proto3" json:"statistics,omitempty"` - DefaultBranch string `protobuf:"bytes,11,opt,name=default_branch,json=defaultBranch,proto3" json:"default_branch,omitempty"` - WebUrl string `protobuf:"bytes,12,opt,name=web_url,json=webUrl,proto3" json:"web_url,omitempty"` + Owner *User `protobuf:"bytes,10,opt,name=owner,proto3" json:"owner,omitempty"` + CreatorId int64 `protobuf:"varint,11,opt,name=creator_id,json=creatorId,proto3" json:"creator_id,omitempty"` + Topics []string `protobuf:"bytes,12,rep,name=topics,proto3" json:"topics,omitempty"` + ForksCount int64 `protobuf:"varint,13,opt,name=forks_count,json=forksCount,proto3" json:"forks_count,omitempty"` + StarsCount int64 `protobuf:"varint,14,opt,name=stars_count,json=starsCount,proto3" json:"stars_count,omitempty"` + Statistics *ProjectStatistics `protobuf:"bytes,15,opt,name=statistics,proto3" json:"statistics,omitempty"` + OpenIssuesCount int64 `protobuf:"varint,16,opt,name=open_issues_count,json=openIssuesCount,proto3" json:"open_issues_count,omitempty"` + Description string `protobuf:"bytes,17,opt,name=description,proto3" json:"description,omitempty"` + EmptyRepo bool `protobuf:"varint,18,opt,name=empty_repo,json=emptyRepo,proto3" json:"empty_repo,omitempty"` + Archived bool `protobuf:"varint,19,opt,name=archived,proto3" json:"archived,omitempty"` + DefaultBranch string `protobuf:"bytes,20,opt,name=default_branch,json=defaultBranch,proto3" json:"default_branch,omitempty"` + Visibility string `protobuf:"bytes,21,opt,name=visibility,proto3" json:"visibility,omitempty"` + WebUrl string `protobuf:"bytes,22,opt,name=web_url,json=webUrl,proto3" json:"web_url,omitempty"` } func (x *Project) Reset() { @@ -107,13 +116,6 @@ func (x *Project) GetPathWithNamespace() string { return "" } -func (x *Project) GetDescription() string { - if x != nil { - return x.Description - } - return "" -} - func (x *Project) GetCreatedAt() *timestamppb.Timestamp { if x != nil { return x.CreatedAt @@ -135,6 +137,41 @@ func (x *Project) GetNamespace() *ProjectNamespace { return nil } +func (x *Project) GetOwner() *User { + if x != nil { + return x.Owner + } + return nil +} + +func (x *Project) GetCreatorId() int64 { + if x != nil { + return x.CreatorId + } + return 0 +} + +func (x *Project) GetTopics() []string { + if x != nil { + return x.Topics + } + return nil +} + +func (x *Project) GetForksCount() int64 { + if x != nil { + return x.ForksCount + } + return 0 +} + +func (x *Project) GetStarsCount() int64 { + if x != nil { + return x.StarsCount + } + return 0 +} + func (x *Project) GetStatistics() *ProjectStatistics { if x != nil { return x.Statistics @@ -142,6 +179,34 @@ func (x *Project) GetStatistics() *ProjectStatistics { return nil } +func (x *Project) GetOpenIssuesCount() int64 { + if x != nil { + return x.OpenIssuesCount + } + return 0 +} + +func (x *Project) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *Project) GetEmptyRepo() bool { + if x != nil { + return x.EmptyRepo + } + return false +} + +func (x *Project) GetArchived() bool { + if x != nil { + return x.Archived + } + return false +} + func (x *Project) GetDefaultBranch() string { if x != nil { return x.DefaultBranch @@ -149,6 +214,13 @@ func (x *Project) GetDefaultBranch() string { return "" } +func (x *Project) GetVisibility() string { + if x != nil { + return x.Visibility + } + return "" +} + func (x *Project) GetWebUrl() string { if x != nil { return x.WebUrl @@ -264,18 +336,16 @@ type ProjectStatistics struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ForksCount int64 `protobuf:"varint,1,opt,name=forks_count,json=forksCount,proto3" json:"forks_count,omitempty"` - StarsCount int64 `protobuf:"varint,2,opt,name=stars_count,json=starsCount,proto3" json:"stars_count,omitempty"` - CommitCount int64 `protobuf:"varint,3,opt,name=commit_count,json=commitCount,proto3" json:"commit_count,omitempty"` - StorageSize int64 `protobuf:"varint,4,opt,name=storage_size,json=storageSize,proto3" json:"storage_size,omitempty"` - RepositorySize int64 `protobuf:"varint,5,opt,name=repository_size,json=repositorySize,proto3" json:"repository_size,omitempty"` - WikiSize int64 `protobuf:"varint,6,opt,name=wiki_size,json=wikiSize,proto3" json:"wiki_size,omitempty"` - LfsObjectsSize int64 `protobuf:"varint,7,opt,name=lfs_objects_size,json=lfsObjectsSize,proto3" json:"lfs_objects_size,omitempty"` - JobArtifactsSize int64 `protobuf:"varint,8,opt,name=job_artifacts_size,json=jobArtifactsSize,proto3" json:"job_artifacts_size,omitempty"` - PipelineArtifactsSize int64 `protobuf:"varint,9,opt,name=pipeline_artifacts_size,json=pipelineArtifactsSize,proto3" json:"pipeline_artifacts_size,omitempty"` - PackagesSize int64 `protobuf:"varint,10,opt,name=packages_size,json=packagesSize,proto3" json:"packages_size,omitempty"` - SnippetsSize int64 `protobuf:"varint,11,opt,name=snippets_size,json=snippetsSize,proto3" json:"snippets_size,omitempty"` - UploadsSize int64 `protobuf:"varint,12,opt,name=uploads_size,json=uploadsSize,proto3" json:"uploads_size,omitempty"` + CommitCount int64 `protobuf:"varint,1,opt,name=commit_count,json=commitCount,proto3" json:"commit_count,omitempty"` + StorageSize int64 `protobuf:"varint,2,opt,name=storage_size,json=storageSize,proto3" json:"storage_size,omitempty"` + RepositorySize int64 `protobuf:"varint,3,opt,name=repository_size,json=repositorySize,proto3" json:"repository_size,omitempty"` + WikiSize int64 `protobuf:"varint,4,opt,name=wiki_size,json=wikiSize,proto3" json:"wiki_size,omitempty"` + LfsObjectsSize int64 `protobuf:"varint,5,opt,name=lfs_objects_size,json=lfsObjectsSize,proto3" json:"lfs_objects_size,omitempty"` + JobArtifactsSize int64 `protobuf:"varint,6,opt,name=job_artifacts_size,json=jobArtifactsSize,proto3" json:"job_artifacts_size,omitempty"` + PipelineArtifactsSize int64 `protobuf:"varint,7,opt,name=pipeline_artifacts_size,json=pipelineArtifactsSize,proto3" json:"pipeline_artifacts_size,omitempty"` + PackagesSize int64 `protobuf:"varint,8,opt,name=packages_size,json=packagesSize,proto3" json:"packages_size,omitempty"` + SnippetsSize int64 `protobuf:"varint,9,opt,name=snippets_size,json=snippetsSize,proto3" json:"snippets_size,omitempty"` + UploadsSize int64 `protobuf:"varint,10,opt,name=uploads_size,json=uploadsSize,proto3" json:"uploads_size,omitempty"` } func (x *ProjectStatistics) Reset() { @@ -310,20 +380,6 @@ func (*ProjectStatistics) Descriptor() ([]byte, []int) { return file_gitlabexporter_protobuf_project_proto_rawDescGZIP(), []int{2} } -func (x *ProjectStatistics) GetForksCount() int64 { - if x != nil { - return x.ForksCount - } - return 0 -} - -func (x *ProjectStatistics) GetStarsCount() int64 { - if x != nil { - return x.StarsCount - } - return 0 -} - func (x *ProjectStatistics) GetCommitCount() int64 { if x != nil { return x.CommitCount @@ -403,88 +459,105 @@ var file_gitlabexporter_protobuf_project_proto_rawDesc = []byte{ 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x22, 0x99, 0x04, 0x0a, 0x07, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x0e, 0x0a, - 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, - 0x6e, 0x61, 0x6d, 0x65, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, - 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x2e, 0x0a, 0x13, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x77, 0x69, - 0x74, 0x68, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x11, 0x70, 0x61, 0x74, 0x68, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x61, 0x6d, 0x65, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, - 0x41, 0x74, 0x12, 0x44, 0x0a, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, - 0x69, 0x74, 0x79, 0x5f, 0x61, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x41, 0x63, - 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x41, 0x74, 0x12, 0x47, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x69, - 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4e, 0x61, 0x6d, - 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, - 0x65, 0x12, 0x4a, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, + 0x6f, 0x1a, 0x22, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x72, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xce, 0x06, 0x0a, 0x07, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, + 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x77, 0x69, + 0x74, 0x68, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x11, 0x6e, 0x61, 0x6d, 0x65, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x61, 0x6d, 0x65, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x2e, 0x0a, 0x13, 0x70, 0x61, 0x74, + 0x68, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x70, 0x61, 0x74, 0x68, 0x57, 0x69, 0x74, 0x68, + 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x64, 0x41, 0x74, 0x12, 0x44, 0x0a, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x61, 0x63, 0x74, + 0x69, 0x76, 0x69, 0x74, 0x79, 0x5f, 0x61, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0e, 0x6c, 0x61, 0x73, 0x74, + 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x41, 0x74, 0x12, 0x47, 0x0a, 0x09, 0x6e, 0x61, + 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, + 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4e, + 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x12, 0x33, 0x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x73, 0x65, + 0x72, 0x52, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x6f, 0x70, 0x69, 0x63, + 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x12, + 0x1f, 0x0a, 0x0b, 0x66, 0x6f, 0x72, 0x6b, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0d, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x6f, 0x72, 0x6b, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x72, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x73, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x12, 0x4a, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x18, + 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, - 0x73, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x12, 0x25, 0x0a, - 0x0e, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x18, - 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x42, 0x72, - 0x61, 0x6e, 0x63, 0x68, 0x12, 0x17, 0x0a, 0x07, 0x77, 0x65, 0x62, 0x5f, 0x75, 0x72, 0x6c, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x77, 0x65, 0x62, 0x55, 0x72, 0x6c, 0x22, 0xd0, 0x01, - 0x0a, 0x10, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, - 0x63, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, - 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, - 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x1b, - 0x0a, 0x09, 0x66, 0x75, 0x6c, 0x6c, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x66, 0x75, 0x6c, 0x6c, 0x50, 0x61, 0x74, 0x68, 0x12, 0x1b, 0x0a, 0x09, 0x70, - 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, - 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x76, 0x61, 0x74, - 0x61, 0x72, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x76, - 0x61, 0x74, 0x61, 0x72, 0x55, 0x72, 0x6c, 0x12, 0x17, 0x0a, 0x07, 0x77, 0x65, 0x62, 0x5f, 0x75, - 0x72, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x77, 0x65, 0x62, 0x55, 0x72, 0x6c, - 0x22, 0xde, 0x03, 0x0a, 0x11, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x74, 0x61, 0x74, - 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x6f, 0x72, 0x6b, 0x73, 0x5f, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x6f, 0x72, - 0x6b, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x72, 0x73, - 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x73, 0x74, - 0x61, 0x72, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, - 0x69, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, - 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x73, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x0b, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x27, - 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x73, 0x69, 0x7a, - 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, - 0x6f, 0x72, 0x79, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x77, 0x69, 0x6b, 0x69, 0x5f, - 0x73, 0x69, 0x7a, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x77, 0x69, 0x6b, 0x69, - 0x53, 0x69, 0x7a, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x6c, 0x66, 0x73, 0x5f, 0x6f, 0x62, 0x6a, 0x65, - 0x63, 0x74, 0x73, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, - 0x6c, 0x66, 0x73, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x2c, - 0x0a, 0x12, 0x6a, 0x6f, 0x62, 0x5f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x5f, - 0x73, 0x69, 0x7a, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x6a, 0x6f, 0x62, 0x41, - 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x36, 0x0a, 0x17, - 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, - 0x74, 0x73, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x15, 0x70, - 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, - 0x53, 0x69, 0x7a, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, - 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x70, 0x61, 0x63, - 0x6b, 0x61, 0x67, 0x65, 0x73, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x6e, 0x69, - 0x70, 0x70, 0x65, 0x74, 0x73, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x0c, 0x73, 0x6e, 0x69, 0x70, 0x70, 0x65, 0x74, 0x73, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x21, - 0x0a, 0x0c, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x0c, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x53, 0x69, 0x7a, - 0x65, 0x42, 0x37, 0x5a, 0x35, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, - 0x63, 0x6c, 0x75, 0x74, 0x74, 0x72, 0x64, 0x65, 0x76, 0x2f, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, - 0x2d, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x33, + 0x73, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x12, 0x2a, 0x0a, + 0x11, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x69, 0x73, 0x73, 0x75, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x6f, 0x70, 0x65, 0x6e, 0x49, 0x73, + 0x73, 0x75, 0x65, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x65, + 0x6d, 0x70, 0x74, 0x79, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x09, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x52, 0x65, 0x70, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x72, + 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x18, 0x13, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x61, 0x72, + 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, + 0x74, 0x5f, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, + 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x12, 0x1e, 0x0a, + 0x0a, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x15, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x17, 0x0a, + 0x07, 0x77, 0x65, 0x62, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x77, 0x65, 0x62, 0x55, 0x72, 0x6c, 0x22, 0xd0, 0x01, 0x0a, 0x10, 0x50, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x12, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6b, + 0x69, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x75, 0x6c, 0x6c, 0x5f, + 0x70, 0x61, 0x74, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x75, 0x6c, 0x6c, + 0x50, 0x61, 0x74, 0x68, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x69, + 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x49, + 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x5f, 0x75, 0x72, 0x6c, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x55, 0x72, 0x6c, + 0x12, 0x17, 0x0a, 0x07, 0x77, 0x65, 0x62, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x77, 0x65, 0x62, 0x55, 0x72, 0x6c, 0x22, 0x9c, 0x03, 0x0a, 0x11, 0x50, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x12, + 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, + 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, + 0x6f, 0x72, 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, + 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1b, + 0x0a, 0x09, 0x77, 0x69, 0x6b, 0x69, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x08, 0x77, 0x69, 0x6b, 0x69, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x6c, + 0x66, 0x73, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x6c, 0x66, 0x73, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, + 0x73, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x6a, 0x6f, 0x62, 0x5f, 0x61, 0x72, 0x74, + 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x10, 0x6a, 0x6f, 0x62, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x53, + 0x69, 0x7a, 0x65, 0x12, 0x36, 0x0a, 0x17, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x5f, + 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x15, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x41, 0x72, + 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x70, + 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x53, 0x69, 0x7a, 0x65, + 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x6e, 0x69, 0x70, 0x70, 0x65, 0x74, 0x73, 0x5f, 0x73, 0x69, 0x7a, + 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x73, 0x6e, 0x69, 0x70, 0x70, 0x65, 0x74, + 0x73, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x73, + 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x75, 0x70, 0x6c, + 0x6f, 0x61, 0x64, 0x73, 0x53, 0x69, 0x7a, 0x65, 0x42, 0x37, 0x5a, 0x35, 0x67, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6c, 0x75, 0x74, 0x74, 0x72, 0x64, 0x65, 0x76, + 0x2f, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x2d, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, + 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x70, + 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -505,17 +578,19 @@ var file_gitlabexporter_protobuf_project_proto_goTypes = []interface{}{ (*ProjectNamespace)(nil), // 1: gitlabexporter.protobuf.ProjectNamespace (*ProjectStatistics)(nil), // 2: gitlabexporter.protobuf.ProjectStatistics (*timestamppb.Timestamp)(nil), // 3: google.protobuf.Timestamp + (*User)(nil), // 4: gitlabexporter.protobuf.User } var file_gitlabexporter_protobuf_project_proto_depIdxs = []int32{ 3, // 0: gitlabexporter.protobuf.Project.created_at:type_name -> google.protobuf.Timestamp 3, // 1: gitlabexporter.protobuf.Project.last_activity_at:type_name -> google.protobuf.Timestamp 1, // 2: gitlabexporter.protobuf.Project.namespace:type_name -> gitlabexporter.protobuf.ProjectNamespace - 2, // 3: gitlabexporter.protobuf.Project.statistics:type_name -> gitlabexporter.protobuf.ProjectStatistics - 4, // [4:4] is the sub-list for method output_type - 4, // [4:4] is the sub-list for method input_type - 4, // [4:4] is the sub-list for extension type_name - 4, // [4:4] is the sub-list for extension extendee - 0, // [0:4] is the sub-list for field type_name + 4, // 3: gitlabexporter.protobuf.Project.owner:type_name -> gitlabexporter.protobuf.User + 2, // 4: gitlabexporter.protobuf.Project.statistics:type_name -> gitlabexporter.protobuf.ProjectStatistics + 5, // [5:5] is the sub-list for method output_type + 5, // [5:5] is the sub-list for method input_type + 5, // [5:5] is the sub-list for extension type_name + 5, // [5:5] is the sub-list for extension extendee + 0, // [0:5] is the sub-list for field type_name } func init() { file_gitlabexporter_protobuf_project_proto_init() } @@ -523,6 +598,7 @@ func file_gitlabexporter_protobuf_project_proto_init() { if File_gitlabexporter_protobuf_project_proto != nil { return } + file_gitlabexporter_protobuf_user_proto_init() if !protoimpl.UnsafeEnabled { file_gitlabexporter_protobuf_project_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Project); i { diff --git a/protobuf/typespb/user.pb.go b/protobuf/typespb/user.pb.go new file mode 100644 index 0000000..b12e50d --- /dev/null +++ b/protobuf/typespb/user.pb.go @@ -0,0 +1,191 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.30.0 +// protoc v4.22.2 +// source: gitlabexporter/protobuf/user.proto + +package typespb + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + timestamppb "google.golang.org/protobuf/types/known/timestamppb" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type User struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + Username string `protobuf:"bytes,2,opt,name=username,proto3" json:"username,omitempty"` + Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` + State string `protobuf:"bytes,4,opt,name=state,proto3" json:"state,omitempty"` + CreatedAt *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` +} + +func (x *User) Reset() { + *x = User{} + if protoimpl.UnsafeEnabled { + mi := &file_gitlabexporter_protobuf_user_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *User) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*User) ProtoMessage() {} + +func (x *User) ProtoReflect() protoreflect.Message { + mi := &file_gitlabexporter_protobuf_user_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use User.ProtoReflect.Descriptor instead. +func (*User) Descriptor() ([]byte, []int) { + return file_gitlabexporter_protobuf_user_proto_rawDescGZIP(), []int{0} +} + +func (x *User) GetId() int64 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *User) GetUsername() string { + if x != nil { + return x.Username + } + return "" +} + +func (x *User) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *User) GetState() string { + if x != nil { + return x.State + } + return "" +} + +func (x *User) GetCreatedAt() *timestamppb.Timestamp { + if x != nil { + return x.CreatedAt + } + return nil +} + +var File_gitlabexporter_protobuf_user_proto protoreflect.FileDescriptor + +var file_gitlabexporter_protobuf_user_proto_rawDesc = []byte{ + 0x0a, 0x22, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, + 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x17, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x65, 0x78, 0x70, 0x6f, + 0x72, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x1a, 0x1f, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x97, + 0x01, 0x0a, 0x04, 0x55, 0x73, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x39, 0x0a, + 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x42, 0x37, 0x5a, 0x35, 0x67, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6c, 0x75, 0x74, 0x74, 0x72, 0x64, 0x65, 0x76, + 0x2f, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x2d, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, + 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x70, + 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_gitlabexporter_protobuf_user_proto_rawDescOnce sync.Once + file_gitlabexporter_protobuf_user_proto_rawDescData = file_gitlabexporter_protobuf_user_proto_rawDesc +) + +func file_gitlabexporter_protobuf_user_proto_rawDescGZIP() []byte { + file_gitlabexporter_protobuf_user_proto_rawDescOnce.Do(func() { + file_gitlabexporter_protobuf_user_proto_rawDescData = protoimpl.X.CompressGZIP(file_gitlabexporter_protobuf_user_proto_rawDescData) + }) + return file_gitlabexporter_protobuf_user_proto_rawDescData +} + +var file_gitlabexporter_protobuf_user_proto_msgTypes = make([]protoimpl.MessageInfo, 1) +var file_gitlabexporter_protobuf_user_proto_goTypes = []interface{}{ + (*User)(nil), // 0: gitlabexporter.protobuf.User + (*timestamppb.Timestamp)(nil), // 1: google.protobuf.Timestamp +} +var file_gitlabexporter_protobuf_user_proto_depIdxs = []int32{ + 1, // 0: gitlabexporter.protobuf.User.created_at:type_name -> google.protobuf.Timestamp + 1, // [1:1] is the sub-list for method output_type + 1, // [1:1] is the sub-list for method input_type + 1, // [1:1] is the sub-list for extension type_name + 1, // [1:1] is the sub-list for extension extendee + 0, // [0:1] is the sub-list for field type_name +} + +func init() { file_gitlabexporter_protobuf_user_proto_init() } +func file_gitlabexporter_protobuf_user_proto_init() { + if File_gitlabexporter_protobuf_user_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_gitlabexporter_protobuf_user_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*User); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_gitlabexporter_protobuf_user_proto_rawDesc, + NumEnums: 0, + NumMessages: 1, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_gitlabexporter_protobuf_user_proto_goTypes, + DependencyIndexes: file_gitlabexporter_protobuf_user_proto_depIdxs, + MessageInfos: file_gitlabexporter_protobuf_user_proto_msgTypes, + }.Build() + File_gitlabexporter_protobuf_user_proto = out.File + file_gitlabexporter_protobuf_user_proto_rawDesc = nil + file_gitlabexporter_protobuf_user_proto_goTypes = nil + file_gitlabexporter_protobuf_user_proto_depIdxs = nil +} diff --git a/protos/gitlabexporter/protobuf/commit.proto b/protos/gitlabexporter/protobuf/commit.proto new file mode 100644 index 0000000..0404501 --- /dev/null +++ b/protos/gitlabexporter/protobuf/commit.proto @@ -0,0 +1,38 @@ +syntax = "proto3"; + +option go_package = "github.com/cluttrdev/gitlab-exporter/protobuf/typespb"; + +package gitlabexporter.protobuf; + +import "google/protobuf/timestamp.proto"; + +message Commit { + string id = 1; + string short_id = 2; + repeated string parent_ids = 3; + int64 project_id = 4; + + string author_name = 5; + string author_email = 6; + google.protobuf.Timestamp authored_date = 7; + string committer_name = 8; + string committer_email = 9; + google.protobuf.Timestamp committed_date = 10; + google.protobuf.Timestamp created_at = 11; + + string title = 12; + string message = 13; + map trailers = 14; + + CommitStats stats = 15; + + string status = 16; + string web_url = 17; +} + +message CommitStats { + int64 additions = 1; + int64 deletions = 2; + int64 total = 3; +} + diff --git a/protos/gitlabexporter/protobuf/job.proto b/protos/gitlabexporter/protobuf/job.proto index 4293987..0d6b327 100644 --- a/protos/gitlabexporter/protobuf/job.proto +++ b/protos/gitlabexporter/protobuf/job.proto @@ -7,7 +7,10 @@ package gitlabexporter.protobuf; import "google/protobuf/timestamp.proto"; import "google/protobuf/duration.proto"; +import "gitlabexporter/protobuf/commit.proto"; import "gitlabexporter/protobuf/pipeline.proto"; +import "gitlabexporter/protobuf/project.proto"; +import "gitlabexporter/protobuf/user.proto"; message Job { PipelineReference pipeline = 1; @@ -32,6 +35,35 @@ message Job { string failure_reason = 23; string web_url = 24; repeated string tag_list = 25; + + Commit commit = 30; + Project project = 31; + User user = 32; + JobRunner runner = 33; + + repeated JobArtifacts artifacts = 34; + JobArtifactsFile artifacts_file = 35; + google.protobuf.Timestamp artifacts_expire_at = 36; +} + +message JobRunner { + int64 id = 1; + string name = 2; + string description = 3; + bool active = 4; + bool is_shared = 5; +} + +message JobArtifacts { + string filename = 1; + string file_type = 2; + string file_format = 3; + int64 size = 4; +} + +message JobArtifactsFile { + string filename = 1; + int64 size = 2; } message JobReference { @@ -64,4 +96,7 @@ message Bridge { bool allow_failure = 22; string failure_reason = 23; string web_url = 24; + + Commit commit = 30; + User user = 31; } diff --git a/protos/gitlabexporter/protobuf/mergerequest.proto b/protos/gitlabexporter/protobuf/mergerequest.proto new file mode 100644 index 0000000..06ce2bc --- /dev/null +++ b/protos/gitlabexporter/protobuf/mergerequest.proto @@ -0,0 +1,117 @@ +syntax = "proto3"; + +option go_package = "github.com/cluttrdev/gitlab-exporter/protobuf/typespb"; + +package gitlabexporter.protobuf; + +import "google/protobuf/timestamp.proto"; + +import "gitlabexporter/protobuf/pipeline.proto"; +import "gitlabexporter/protobuf/user.proto"; + +message MergeRequest { + // ID of the merge request. + int64 id = 1; + // Internal ID of the merge request. + int64 iid = 2; + // ID of the merge request project. + int64 project_id = 3; + + // Timestamp of when the merge request was created. + google.protobuf.Timestamp created_at = 4; + // Timestamp of when the merge request was updated. + google.protobuf.Timestamp updated_at = 5; + // Timestamp of when the merge request merged. + google.protobuf.Timestamp merged_at = 6; + // Timestamp of when the merge request was closed. + google.protobuf.Timestamp closed_at = 7; + + // ID of the merge request source project. + int64 source_project_id = 8; + // ID of the merge request target project. + int64 target_project_id = 9; + // Source branch of the merge request. + string source_branch = 10; + // Target branch of the merge request. + string target_branch = 11; + + // Title of the merge request. + string title = 12; + // State of the merge request. Can be opened, closed, merged or locked. + string state = 13; + // Detailed merge status of the merge request. + string detailed_merge_status = 14; + // Indicates if the merge request is a draft. + bool draft = 15; + // Indicates if merge request has conflicts and cannot merge. + bool has_conflicts = 16; + // Error message shown when a merge has failed. + string merge_error = 17; + + // References of the base SHA, the head SHA, and the start SHA for this merge request. + MergeRequestDiffRefs diff_refs = 18; + + // User who created this merge request. + User author = 19; + // First assignee of the merge request. + User assignee = 20; + // Assignees of the merge request. + repeated User assignees = 21; + // Reviewers of the merge request. + repeated User reviewers = 22; + // The user who merged this merge request, the user who set it to auto-merge, or null. + User merge_user = 23; + // User who closed this merge request. + User close_user = 24; + // Labels of the merge request. + repeated string labels = 25; + + // Diff head SHA of the merge request. + string sha = 26; + // SHA of the merge request commit. Empty until merged. + string merge_commit_sha = 27; + // SHA of the squash commit. Empty until merged. + string squash_commit_sha = 28; + + // Number of changes made on the merge request. + string changes_count = 29; + // User notes count of the merge request. + int64 user_notes_count = 30; + // Number of upvotes for the merge request. + int64 upvotes = 31; + // Number of downvotes for the merge request. + int64 downvotes = 32; + + // Pipeline running on the branch HEAD of the merge request. + PipelineInfo pipeline = 33; + + // Milestone of the merge request. + Milestone milestone = 34; + + // Web URL of the merge request. + string web_url = 35; +} + +message MergeRequestDiffRefs { + string base_sha = 1; + string head_sha = 2; + string start_sha = 3; +} + +message Milestone { + int64 id = 1; + int64 iid = 2; + int64 project_id = 3; + int64 group_id = 4; + + google.protobuf.Timestamp created_at = 5; + google.protobuf.Timestamp updated_at = 6; + google.protobuf.Timestamp start_date = 7; + google.protobuf.Timestamp due_date = 8; + + string title = 9; + string state = 10; + bool expired = 11; + + string web_url = 12; +} diff --git a/protos/gitlabexporter/protobuf/pipeline.proto b/protos/gitlabexporter/protobuf/pipeline.proto index b86ae00..d80fcc7 100644 --- a/protos/gitlabexporter/protobuf/pipeline.proto +++ b/protos/gitlabexporter/protobuf/pipeline.proto @@ -7,6 +7,8 @@ package gitlabexporter.protobuf; import "google/protobuf/timestamp.proto"; import "google/protobuf/duration.proto"; +import "gitlabexporter/protobuf/user.proto"; + message Pipeline { int64 id = 1; int64 iid = 2; @@ -27,6 +29,8 @@ message Pipeline { google.protobuf.Duration queued_duration = 17; double coverage = 18; string web_url = 19; + + User user = 20; } message PipelineInfo { diff --git a/protos/gitlabexporter/protobuf/project.proto b/protos/gitlabexporter/protobuf/project.proto index 05e361c..133287f 100644 --- a/protos/gitlabexporter/protobuf/project.proto +++ b/protos/gitlabexporter/protobuf/project.proto @@ -6,22 +6,37 @@ package gitlabexporter.protobuf; import "google/protobuf/timestamp.proto"; +import "gitlabexporter/protobuf/user.proto"; + message Project { int64 id = 1; string name = 2; string name_with_namespace = 3; string path = 4; string path_with_namespace = 5; - string description = 6; google.protobuf.Timestamp created_at = 7; google.protobuf.Timestamp last_activity_at = 8; ProjectNamespace namespace = 9; - ProjectStatistics statistics = 10; + User owner = 10; + int64 creator_id = 11; + + repeated string topics = 12; + int64 forks_count = 13; + int64 stars_count = 14; + ProjectStatistics statistics = 15; + int64 open_issues_count = 16; + + string description = 17; + + bool empty_repo = 18; + bool archived = 19; + + string default_branch = 20; + string visibility = 21; - string default_branch = 11; - string web_url = 12; + string web_url = 22; } message ProjectNamespace { @@ -37,17 +52,14 @@ message ProjectNamespace { } message ProjectStatistics { - int64 forks_count = 1; - int64 stars_count = 2; - - int64 commit_count = 3; - int64 storage_size = 4; - int64 repository_size = 5; - int64 wiki_size = 6; - int64 lfs_objects_size = 7; - int64 job_artifacts_size = 8; - int64 pipeline_artifacts_size = 9; - int64 packages_size = 10; - int64 snippets_size = 11; - int64 uploads_size = 12; + int64 commit_count = 1; + int64 storage_size = 2; + int64 repository_size = 3; + int64 wiki_size = 4; + int64 lfs_objects_size = 5; + int64 job_artifacts_size = 6; + int64 pipeline_artifacts_size = 7; + int64 packages_size = 8; + int64 snippets_size = 9; + int64 uploads_size = 10; } diff --git a/protos/gitlabexporter/protobuf/service/service.proto b/protos/gitlabexporter/protobuf/service/service.proto index 8a91f38..d66e4f8 100644 --- a/protos/gitlabexporter/protobuf/service/service.proto +++ b/protos/gitlabexporter/protobuf/service/service.proto @@ -4,77 +4,86 @@ option go_package = "github.com/cluttrdev/gitlab-exporter/protobuf/servicepb"; package gitlabexporter.protobuf.service; -import "gitlabexporter/protobuf/project.proto"; -import "gitlabexporter/protobuf/pipeline.proto"; +import "gitlabexporter/protobuf/commit.proto"; import "gitlabexporter/protobuf/job.proto"; +import "gitlabexporter/protobuf/mergerequest.proto"; +import "gitlabexporter/protobuf/metric.proto"; +import "gitlabexporter/protobuf/pipeline.proto"; +import "gitlabexporter/protobuf/project.proto"; import "gitlabexporter/protobuf/section.proto"; import "gitlabexporter/protobuf/testreport.proto"; -import "gitlabexporter/protobuf/metric.proto"; import "gitlabexporter/protobuf/trace.proto"; +import "gitlabexporter/protobuf/user.proto"; service GitLabExporter { - rpc RecordProjects(RecordProjectsRequest) returns (RecordSummary) {} - - rpc RecordPipelines(RecordPipelinesRequest) returns (RecordSummary) {} - + rpc RecordBridges(RecordBridgesRequest) returns (RecordSummary) {} + rpc RecordCommits(RecordCommitsRequest) returns (RecordSummary) {} rpc RecordJobs(RecordJobsRequest) returns (RecordSummary) {} - + rpc RecordMergeRequests(RecordMergeRequestsRequest) returns (RecordSummary) {} + rpc RecordMetrics(RecordMetricsRequest) returns (RecordSummary) {} + rpc RecordPipelines(RecordPipelinesRequest) returns (RecordSummary) {} + rpc RecordProjects(RecordProjectsRequest) returns (RecordSummary) {} rpc RecordSections(RecordSectionsRequest) returns (RecordSummary) {} - - rpc RecordBridges(RecordBridgesRequest) returns (RecordSummary) {} - + rpc RecordTestCases(RecordTestCasesRequest) returns (RecordSummary) {} rpc RecordTestReports(RecordTestReportsRequest) returns (RecordSummary) {} - rpc RecordTestSuites(RecordTestSuitesRequest) returns (RecordSummary) {} - - rpc RecordTestCases(RecordTestCasesRequest) returns (RecordSummary) {} - - rpc RecordMetrics(RecordMetricsRequest) returns (RecordSummary) {} - rpc RecordTraces(RecordTracesRequest) returns (RecordSummary) {} + rpc RecordUsers(RecordUsersRequest) returns (RecordSummary) {} } message RecordSummary { int32 recorded_count = 1; } -message RecordProjectsRequest { - repeated gitlabexporter.protobuf.Project data = 1; +message RecordCommitsRequest { + repeated gitlabexporter.protobuf.Commit data = 1; } -message RecordPipelinesRequest { - repeated gitlabexporter.protobuf.Pipeline data = 1; +message RecordBridgesRequest { + repeated gitlabexporter.protobuf.Bridge data = 1; } message RecordJobsRequest { repeated gitlabexporter.protobuf.Job data = 1; } -message RecordSectionsRequest { - repeated gitlabexporter.protobuf.Section data = 1; +message RecordMergeRequestsRequest { + repeated gitlabexporter.protobuf.MergeRequest data = 1; } -message RecordBridgesRequest { - repeated gitlabexporter.protobuf.Bridge data = 1; +message RecordMetricsRequest { + repeated gitlabexporter.protobuf.Metric data = 1; } -message RecordTestReportsRequest { - repeated gitlabexporter.protobuf.TestReport data = 1; +message RecordPipelinesRequest { + repeated gitlabexporter.protobuf.Pipeline data = 1; } -message RecordTestSuitesRequest { - repeated gitlabexporter.protobuf.TestSuite data = 1; +message RecordProjectsRequest { + repeated gitlabexporter.protobuf.Project data = 1; +} + +message RecordSectionsRequest { + repeated gitlabexporter.protobuf.Section data = 1; } message RecordTestCasesRequest { repeated gitlabexporter.protobuf.TestCase data = 1; } -message RecordMetricsRequest { - repeated gitlabexporter.protobuf.Metric data = 1; +message RecordTestReportsRequest { + repeated gitlabexporter.protobuf.TestReport data = 1; +} + +message RecordTestSuitesRequest { + repeated gitlabexporter.protobuf.TestSuite data = 1; } message RecordTracesRequest { repeated gitlabexporter.protobuf.Trace data = 1; } + +message RecordUsersRequest { + repeated gitlabexporter.protobuf.User data = 1; +} diff --git a/protos/gitlabexporter/protobuf/user.proto b/protos/gitlabexporter/protobuf/user.proto new file mode 100644 index 0000000..e3794a8 --- /dev/null +++ b/protos/gitlabexporter/protobuf/user.proto @@ -0,0 +1,16 @@ +syntax = "proto3"; + +option go_package = "github.com/cluttrdev/gitlab-exporter/protobuf/typespb"; + +package gitlabexporter.protobuf; + +import "google/protobuf/timestamp.proto"; + +message User { + int64 id = 1; + string username = 2; + string name = 3; + string state = 4; + + google.protobuf.Timestamp created_at = 5; +}