diff --git a/github/common_column.go b/github/common_column.go new file mode 100644 index 0000000..448ad13 --- /dev/null +++ b/github/common_column.go @@ -0,0 +1,57 @@ +package github + +import ( + "context" + + "github.com/shurcooL/githubv4" + "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" + "github.com/turbot/steampipe-plugin-sdk/v5/memoize" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" +) + +func commonColumns(c []*plugin.Column) []*plugin.Column { + return append([]*plugin.Column{ + { + Name: "login_id", + Description: "Unique identifier for the user login.", + Type: proto.ColumnType_STRING, + Hydrate: getLoginId, + Transform: transform.FromValue(), + }, + }, c...) +} + +// if the caching is required other than per connection, build a cache key for the call and use it in Memoize. +var getLoginIdMemoized = plugin.HydrateFunc(getLoginIdUncached).Memoize(memoize.WithCacheKeyFunction(getLoginIdCacheKey)) + +// declare a wrapper hydrate function to call the memoized function +// - this is required when a memoized function is used for a column definition +func getLoginId(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + return getLoginIdMemoized(ctx, d, h) +} + +// Build a cache key for the call to getLoginIdCacheKey. +func getLoginIdCacheKey(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + key := "getLoginId" + return key, nil +} + +func getLoginIdUncached(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + + client := connectV4(ctx, d) + + var query struct { + Viewer struct { + Login githubv4.String + ID githubv4.ID + } + } + err := client.Query(ctx, &query, nil) + if err != nil { + plugin.Logger(ctx).Error("getLoginIdUncached", "api_error", err) + return nil, err + } + + return query.Viewer.ID, nil +} diff --git a/github/plugin.go b/github/plugin.go index c7bef5e..81fbe29 100644 --- a/github/plugin.go +++ b/github/plugin.go @@ -14,6 +14,12 @@ func Plugin(ctx context.Context) *plugin.Plugin { ConnectionConfigSchema: &plugin.ConnectionConfigSchema{ NewInstance: ConfigInstance, }, + ConnectionKeyColumns: []plugin.ConnectionKeyColumn{ + { + Name: "login_id", + Hydrate: getLoginId, + }, + }, DefaultTransform: transform.FromGo(), DefaultRetryConfig: retryConfig(), TableMap: map[string]*plugin.Table{ diff --git a/github/table_github_actions_artifact.go b/github/table_github_actions_artifact.go index 9569a4f..e678e6f 100644 --- a/github/table_github_actions_artifact.go +++ b/github/table_github_actions_artifact.go @@ -24,7 +24,7 @@ func tableGitHubActionsArtifact() *plugin.Table { ShouldIgnoreError: isNotFoundError([]string{"404"}), Hydrate: tableGitHubArtifactGet, }, - Columns: []*plugin.Column{ + Columns: commonColumns([]*plugin.Column{ // Top columns {Name: "repository_full_name", Type: proto.ColumnType_STRING, Transform: transform.FromQual("repository_full_name"), Description: "Full name of the repository that contains the artifact."}, {Name: "name", Type: proto.ColumnType_STRING, Description: "The name of the artifact."}, @@ -37,7 +37,7 @@ func tableGitHubActionsArtifact() *plugin.Table { {Name: "expired", Type: proto.ColumnType_BOOL, Description: "It defines whether the artifact is expires or not."}, {Name: "expires_at", Type: proto.ColumnType_TIMESTAMP, Transform: transform.FromField("ExpiresAt").Transform(convertTimestamp), Description: "Time when the artifact expires."}, {Name: "node_id", Type: proto.ColumnType_STRING, Description: "Node where GitHub stores this data internally."}, - }, + }), } } diff --git a/github/table_github_actions_repository_runner.go b/github/table_github_actions_repository_runner.go index 7dd2471..6376e29 100644 --- a/github/table_github_actions_repository_runner.go +++ b/github/table_github_actions_repository_runner.go @@ -24,7 +24,7 @@ func tableGitHubActionsRepositoryRunner() *plugin.Table { ShouldIgnoreError: isNotFoundError([]string{"404"}), Hydrate: tableGitHubRunnerGet, }, - Columns: []*plugin.Column{ + Columns: commonColumns([]*plugin.Column{ // Top columns {Name: "repository_full_name", Type: proto.ColumnType_STRING, Transform: transform.FromQual("repository_full_name"), Description: "Full name of the repository that contains the runners."}, {Name: "id", Type: proto.ColumnType_INT, Transform: transform.FromGo(), Description: "The unique identifier of the runner."}, @@ -33,7 +33,7 @@ func tableGitHubActionsRepositoryRunner() *plugin.Table { {Name: "status", Type: proto.ColumnType_STRING, Description: "The status of the runner."}, {Name: "busy", Type: proto.ColumnType_BOOL, Description: "Indicates whether the runner is currently in use or not."}, {Name: "labels", Type: proto.ColumnType_JSON, Description: "Labels represents a collection of labels attached to each runner."}, - }, + }), } } diff --git a/github/table_github_actions_repository_secret.go b/github/table_github_actions_repository_secret.go index 3710933..a005ca7 100644 --- a/github/table_github_actions_repository_secret.go +++ b/github/table_github_actions_repository_secret.go @@ -24,7 +24,7 @@ func tableGitHubActionsRepositorySecret() *plugin.Table { ShouldIgnoreError: isNotFoundError([]string{"404"}), Hydrate: tableGitHubRepoSecretGet, }, - Columns: []*plugin.Column{ + Columns: commonColumns([]*plugin.Column{ // Top columns {Name: "repository_full_name", Type: proto.ColumnType_STRING, Transform: transform.FromQual("repository_full_name"), Description: "Full name of the repository that contains the secrets."}, {Name: "name", Type: proto.ColumnType_STRING, Description: "The name of the secret."}, @@ -34,7 +34,7 @@ func tableGitHubActionsRepositorySecret() *plugin.Table { // Other columns {Name: "created_at", Type: proto.ColumnType_TIMESTAMP, Transform: transform.FromField("CreatedAt").Transform(convertTimestamp), Description: "Time when the secret was created."}, {Name: "updated_at", Type: proto.ColumnType_TIMESTAMP, Transform: transform.FromField("UpdatedAt").Transform(convertTimestamp), Description: "Time when the secret was updated."}, - }, + }), } } diff --git a/github/table_github_actions_repository_workflow_run.go b/github/table_github_actions_repository_workflow_run.go index b48092a..2695a68 100644 --- a/github/table_github_actions_repository_workflow_run.go +++ b/github/table_github_actions_repository_workflow_run.go @@ -30,7 +30,7 @@ func tableGitHubActionsRepositoryWorkflowRun() *plugin.Table { ShouldIgnoreError: isNotFoundError([]string{"404"}), Hydrate: tableGitHubRepoWorkflowRunGet, }, - Columns: []*plugin.Column{ + Columns: commonColumns([]*plugin.Column{ // Top columns {Name: "repository_full_name", Type: proto.ColumnType_STRING, Transform: transform.FromQual("repository_full_name"), Description: "Full name of the repository that specifies the workflow run."}, {Name: "id", Type: proto.ColumnType_INT, Description: "The unque identifier of the workflow run."}, @@ -64,7 +64,7 @@ func tableGitHubActionsRepositoryWorkflowRun() *plugin.Table { {Name: "actor_login", Type: proto.ColumnType_STRING, Description: "The login of the user whom initiated the first instance of the workflow run.", Transform: transform.FromField("Actor.Login")}, {Name: "triggering_actor", Type: proto.ColumnType_JSON, Description: "The user whom initiated the latest instance of this workflow run."}, {Name: "triggering_actor_login", Type: proto.ColumnType_STRING, Description: "The login of the user whom initiated the latest instance of this workflow run.", Transform: transform.FromField("TriggeringActor.Login")}, - }, + }), } } diff --git a/github/table_github_audit_log.go b/github/table_github_audit_log.go index 6456c6a..c7e3fcf 100644 --- a/github/table_github_audit_log.go +++ b/github/table_github_audit_log.go @@ -25,7 +25,7 @@ func tableGitHubAuditLog() *plugin.Table { }, Hydrate: tableGitHubAuditLogList, }, - Columns: []*plugin.Column{ + Columns: commonColumns([]*plugin.Column{ {Name: "organization", Type: proto.ColumnType_STRING, Transform: transform.FromQual("organization"), Description: "The GitHub organization."}, {Name: "phrase", Type: proto.ColumnType_STRING, Transform: transform.FromQual("phrase"), Description: "The search phrase for your audit events."}, {Name: "include", Type: proto.ColumnType_STRING, Transform: transform.FromQual("include"), Description: "The event types to include: web, git, all."}, @@ -42,7 +42,7 @@ func tableGitHubAuditLog() *plugin.Table { {Name: "user_login", Type: proto.ColumnType_STRING, Description: "The GitHub user, when the action relates to a user.", Transform: transform.FromField("User")}, {Name: "repo", Type: proto.ColumnType_STRING, Description: "The GitHub repository, when the action relates to a repository."}, {Name: "data", Type: proto.ColumnType_JSON, Description: "Additional data relating to the audit event."}, - }, + }), } } diff --git a/github/table_github_branch.go b/github/table_github_branch.go index 2edd507..9e5e065 100644 --- a/github/table_github_branch.go +++ b/github/table_github_branch.go @@ -22,13 +22,13 @@ func tableGitHubBranch() *plugin.Table { ShouldIgnoreError: isNotFoundError([]string{"404"}), Hydrate: tableGitHubBranchList, }, - Columns: []*plugin.Column{ + Columns: commonColumns([]*plugin.Column{ {Name: "repository_full_name", Type: proto.ColumnType_STRING, Transform: transform.FromQual("repository_full_name"), Description: "Full name of the repository that contains the branch."}, {Name: "name", Type: proto.ColumnType_STRING, Description: "Name of the branch."}, {Name: "commit", Type: proto.ColumnType_JSON, Transform: transform.FromField("Target.Commit"), Description: "Latest commit on the branch."}, {Name: "protected", Type: proto.ColumnType_BOOL, Hydrate: branchHydrateProtected, Transform: transform.FromValue().Transform(HasValue), Description: "If true, the branch is protected."}, {Name: "branch_protection_rule", Type: proto.ColumnType_JSON, Hydrate: branchHydrateBranchProtectionRule, Transform: transform.FromValue().NullIfZero(), Description: "Branch protection rule if protected."}, - }, + }), } } diff --git a/github/table_github_branch_protection.go b/github/table_github_branch_protection.go index b41a185..3598dec 100644 --- a/github/table_github_branch_protection.go +++ b/github/table_github_branch_protection.go @@ -22,7 +22,7 @@ func tableGitHubBranchProtection() *plugin.Table { KeyColumns: plugin.SingleColumn("node_id"), Hydrate: tableGitHubRepositoryBranchProtectionGet, }, - Columns: []*plugin.Column{ + Columns: commonColumns([]*plugin.Column{ {Name: "repository_full_name", Type: proto.ColumnType_STRING, Transform: transform.FromQual("repository_full_name"), Description: "The full name of the repository (login/repo-name)."}, {Name: "id", Type: proto.ColumnType_INT, Hydrate: branchProtectionRuleHydrateId, Transform: transform.FromValue(), Description: "The ID of the branch protection rule."}, {Name: "node_id", Type: proto.ColumnType_STRING, Description: "The Node ID of the branch protection rule."}, @@ -59,7 +59,7 @@ func tableGitHubBranchProtection() *plugin.Table { {Name: "bypass_pull_request_allowance_apps", Type: proto.ColumnType_JSON, Description: "Applications can bypass pull requests to the branch only if in this list."}, {Name: "bypass_pull_request_allowance_teams", Type: proto.ColumnType_JSON, Description: "Teams can bypass pull requests to the branch only if in this list."}, {Name: "bypass_pull_request_allowance_users", Type: proto.ColumnType_JSON, Description: "Users can bypass pull requests to the branch only if in this list."}, - }, + }), } } diff --git a/github/table_github_code_owner.go b/github/table_github_code_owner.go index 3f63e69..65d4656 100644 --- a/github/table_github_code_owner.go +++ b/github/table_github_code_owner.go @@ -34,7 +34,7 @@ func tableGitHubCodeOwner() *plugin.Table { ShouldIgnoreError: isNotFoundError([]string{"404"}), KeyColumns: plugin.SingleColumn("repository_full_name"), }, - Columns: gitHubCodeOwnerColumns(), + Columns: commonColumns(gitHubCodeOwnerColumns()), } } diff --git a/github/table_github_commit.go b/github/table_github_commit.go index 97129d0..940a6e2 100644 --- a/github/table_github_commit.go +++ b/github/table_github_commit.go @@ -29,7 +29,7 @@ func tableGitHubCommit() *plugin.Table { ShouldIgnoreError: isNotFoundError([]string{"404"}), Hydrate: tableGitHubCommitGet, }, - Columns: []*plugin.Column{ + Columns: commonColumns([]*plugin.Column{ {Name: "repository_full_name", Type: proto.ColumnType_STRING, Transform: transform.FromQual("repository_full_name"), Description: "Full name of the repository that contains the commit."}, {Name: "sha", Type: proto.ColumnType_STRING, Description: "SHA of the commit."}, {Name: "short_sha", Type: proto.ColumnType_STRING, Hydrate: commitHydrateShortSha, Transform: transform.FromValue(), Description: "Short SHA of the commit."}, @@ -56,7 +56,7 @@ func tableGitHubCommit() *plugin.Table { {Name: "url", Type: proto.ColumnType_STRING, Hydrate: commitHydrateUrl, Transform: transform.FromValue(), Description: "URL of the commit."}, {Name: "node_id", Type: proto.ColumnType_STRING, Hydrate: commitHydrateNodeId, Transform: transform.FromValue(), Description: "The node ID of the commit."}, {Name: "message_headline", Type: proto.ColumnType_STRING, Hydrate: commitHydrateMessageHeadline, Transform: transform.FromValue(), Description: "The Git commit message headline."}, - }, + }), } } diff --git a/github/table_github_community_profile.go b/github/table_github_community_profile.go index c23bf63..19f541b 100644 --- a/github/table_github_community_profile.go +++ b/github/table_github_community_profile.go @@ -19,7 +19,7 @@ func tableGitHubCommunityProfile() *plugin.Table { Hydrate: tableGitHubCommunityProfileList, ShouldIgnoreError: isNotFoundError([]string{"404"}), }, - Columns: []*plugin.Column{ + Columns: commonColumns([]*plugin.Column{ {Name: "repository_full_name", Type: proto.ColumnType_STRING, Transform: transform.FromQual("repository_full_name"), Description: "Full name of the repository that contains the tag."}, {Name: "code_of_conduct", Type: proto.ColumnType_JSON, Transform: transform.FromValue().NullIfZero(), Hydrate: cpHydrateCodeOfConduct, Description: "Code of conduct for the repository."}, {Name: "contributing", Type: proto.ColumnType_JSON, Transform: transform.FromValue().NullIfZero(), Hydrate: cpHydrateContributing, Description: "Contributing guidelines for the repository."}, @@ -28,7 +28,7 @@ func tableGitHubCommunityProfile() *plugin.Table { {Name: "license_info", Type: proto.ColumnType_JSON, Transform: transform.FromValue().NullIfZero(), Hydrate: cpHydrateLicense, Description: "License for the repository."}, {Name: "readme", Type: proto.ColumnType_JSON, Transform: transform.FromValue().NullIfZero(), Hydrate: cpHydrateReadme, Description: "README for the repository."}, {Name: "security", Type: proto.ColumnType_JSON, Transform: transform.FromValue().NullIfZero(), Hydrate: cpHydrateSecurity, Description: "Security for the repository."}, - }, + }), } } diff --git a/github/table_github_gist.go b/github/table_github_gist.go index b419530..736b20e 100644 --- a/github/table_github_gist.go +++ b/github/table_github_gist.go @@ -40,7 +40,7 @@ func tableGitHubGist() *plugin.Table { KeyColumns: plugin.SingleColumn("id"), ShouldIgnoreError: isNotFoundError([]string{"404"}), }, - Columns: gitHubGistColumns(), + Columns: commonColumns(gitHubGistColumns()), } } diff --git a/github/table_github_gitignore.go b/github/table_github_gitignore.go index 3c6a6d8..b5f1e7e 100644 --- a/github/table_github_gitignore.go +++ b/github/table_github_gitignore.go @@ -21,11 +21,11 @@ func tableGitHubGitignore() *plugin.Table { ShouldIgnoreError: isNotFoundError([]string{"404"}), Hydrate: tableGitHubGitignoreGetData, }, - Columns: []*plugin.Column{ + Columns: commonColumns([]*plugin.Column{ // Top columns {Name: "name", Type: proto.ColumnType_STRING, Description: "Name of the gitignore template."}, {Name: "source", Type: proto.ColumnType_STRING, Hydrate: tableGitHubGitignoreGetData, Description: "Source code of the gitignore template."}, - }, + }), } } diff --git a/github/table_github_issue.go b/github/table_github_issue.go index 4ee8b21..221de58 100644 --- a/github/table_github_issue.go +++ b/github/table_github_issue.go @@ -99,7 +99,7 @@ func tableGitHubIssue() *plugin.Table { ShouldIgnoreError: isNotFoundError([]string{"404"}), Hydrate: tableGitHubRepositoryIssueGet, }, - Columns: gitHubIssueColumns(), + Columns: commonColumns(gitHubIssueColumns()), } } diff --git a/github/table_github_issue_comment.go b/github/table_github_issue_comment.go index 6b26682..74ab21b 100644 --- a/github/table_github_issue_comment.go +++ b/github/table_github_issue_comment.go @@ -50,7 +50,7 @@ func tableGitHubIssueComment() *plugin.Table { ShouldIgnoreError: isNotFoundError([]string{"404"}), Hydrate: tableGitHubRepositoryIssueCommentList, }, - Columns: sharedCommentsColumns(), + Columns: commonColumns(sharedCommentsColumns()), } } diff --git a/github/table_github_license.go b/github/table_github_license.go index 478eaea..5777b19 100644 --- a/github/table_github_license.go +++ b/github/table_github_license.go @@ -23,7 +23,7 @@ func tableGitHubLicense() *plugin.Table { ShouldIgnoreError: isNotFoundError([]string{"404"}), Hydrate: tableGitHubLicenseGetData, }, - Columns: []*plugin.Column{ + Columns: commonColumns([]*plugin.Column{ {Name: "spdx_id", Description: "The Software Package Data Exchange (SPDX) id of the license.", Type: proto.ColumnType_STRING, Transform: transform.FromValue(), Hydrate: licenseHydrateSpdxId}, {Name: "name", Description: "The name of the license.", Type: proto.ColumnType_STRING, Transform: transform.FromValue(), Hydrate: licenseHydrateName}, {Name: "url", Description: "The HTML URL of the license.", Type: proto.ColumnType_STRING, Transform: transform.FromValue(), Hydrate: licenseHydrateUrl}, @@ -40,7 +40,7 @@ func tableGitHubLicense() *plugin.Table { {Name: "permissions", Description: "An array of permissions for the license (private-use, commercial-use,modifications, etc).", Type: proto.ColumnType_JSON, Transform: transform.FromValue(), Hydrate: licenseHydratePermissions}, {Name: "nickname", Description: "The customary short name of the license.", Type: proto.ColumnType_STRING, Transform: transform.FromValue(), Hydrate: licenseHydrateNickname}, {Name: "pseudo_license", Description: "Indicates if the license is a pseudo-license placeholder (e.g. other, no-license).", Type: proto.ColumnType_BOOL, Transform: transform.FromValue(), Hydrate: licenseHydratePseudoLicense}, - }, + }), } } diff --git a/github/table_github_my_gist.go b/github/table_github_my_gist.go index 469459b..24f529a 100644 --- a/github/table_github_my_gist.go +++ b/github/table_github_my_gist.go @@ -14,7 +14,7 @@ func tableGitHubMyGist() *plugin.Table { List: &plugin.ListConfig{ Hydrate: tableGitHubMyGistList, }, - Columns: gitHubGistColumns(), + Columns: commonColumns(gitHubGistColumns()), } } diff --git a/github/table_github_my_issue.go b/github/table_github_my_issue.go index 0690b79..b7db896 100644 --- a/github/table_github_my_issue.go +++ b/github/table_github_my_issue.go @@ -31,7 +31,7 @@ func tableGitHubMyIssue() *plugin.Table { {Name: "updated_at", Require: plugin.Optional, Operators: []string{">", ">="}}, }, }, - Columns: gitHubMyIssueColumns(), + Columns: commonColumns(gitHubMyIssueColumns()), } } diff --git a/github/table_github_my_organization.go b/github/table_github_my_organization.go index 92a725d..f9a36b7 100644 --- a/github/table_github_my_organization.go +++ b/github/table_github_my_organization.go @@ -16,7 +16,7 @@ func tableGitHubMyOrganization() *plugin.Table { List: &plugin.ListConfig{ Hydrate: tableGitHubMyOrganizationList, }, - Columns: gitHubOrganizationColumns(), + Columns: commonColumns(gitHubOrganizationColumns()), } } diff --git a/github/table_github_my_repository.go b/github/table_github_my_repository.go index 20e637b..b62d149 100644 --- a/github/table_github_my_repository.go +++ b/github/table_github_my_repository.go @@ -15,7 +15,7 @@ func tableGitHubMyRepository() *plugin.Table { Hydrate: tableGitHubMyRepositoryList, ShouldIgnoreError: isNotFoundError([]string{"404"}), }, - Columns: sharedRepositoryColumns(), + Columns: commonColumns(sharedRepositoryColumns()), } } diff --git a/github/table_github_my_star.go b/github/table_github_my_star.go index 4f24457..7b391df 100644 --- a/github/table_github_my_star.go +++ b/github/table_github_my_star.go @@ -18,11 +18,11 @@ func tableGitHubMyStar() *plugin.Table { Hydrate: tableGitHubMyStarredRepositoryList, ShouldIgnoreError: isNotFoundError([]string{"404"}), }, - Columns: []*plugin.Column{ + Columns: commonColumns([]*plugin.Column{ {Name: "repository_full_name", Type: proto.ColumnType_STRING, Description: "The full name of the repository, including the owner and repo name.", Transform: transform.FromValue(), Hydrate: starHydrateNameWithOwner}, {Name: "starred_at", Type: proto.ColumnType_TIMESTAMP, Transform: transform.FromValue().Transform(convertTimestamp), Hydrate: starHydrateStarredAt, Description: "The timestamp when the repository was starred."}, {Name: "url", Type: proto.ColumnType_STRING, Transform: transform.FromValue(), Hydrate: starHydrateUrl, Description: "URL of the repository."}, - }, + }), } } diff --git a/github/table_github_my_team.go b/github/table_github_my_team.go index 3f954a0..07e5491 100644 --- a/github/table_github_my_team.go +++ b/github/table_github_my_team.go @@ -21,7 +21,7 @@ func tableGitHubMyTeam() *plugin.Table { ShouldIgnoreError: isNotFoundError([]string{"404"}), Hydrate: tableGitHubTeamGet, }, - Columns: gitHubTeamColumns(), + Columns: commonColumns(gitHubTeamColumns()), } } diff --git a/github/table_github_organization.go b/github/table_github_organization.go index ee56cff..020b97f 100644 --- a/github/table_github_organization.go +++ b/github/table_github_organization.go @@ -111,7 +111,7 @@ func tableGitHubOrganization() *plugin.Table { ShouldIgnoreError: isNotFoundError([]string{"404"}), Hydrate: tableGitHubOrganizationList, }, - Columns: gitHubOrganizationColumns(), + Columns: commonColumns(gitHubOrganizationColumns()), } } diff --git a/github/table_github_organization_collaborators.go b/github/table_github_organization_collaborators.go index 3452c45..9d88697 100644 --- a/github/table_github_organization_collaborators.go +++ b/github/table_github_organization_collaborators.go @@ -55,7 +55,7 @@ func tableGitHubOrganizationCollaborator() *plugin.Table { }, Hydrate: listGitHubOrganizationCollaborators, }, - Columns: gitHubOrganizationCollaborators(), + Columns: commonColumns(gitHubOrganizationCollaborators()), } } diff --git a/github/table_github_organization_dependabot_alert.go b/github/table_github_organization_dependabot_alert.go index 316161a..ca9d452 100644 --- a/github/table_github_organization_dependabot_alert.go +++ b/github/table_github_organization_dependabot_alert.go @@ -193,7 +193,7 @@ func tableGitHubOrganizationDependabotAlert() *plugin.Table { ShouldIgnoreError: isNotFoundError([]string{"404", "403"}), Hydrate: tableGitHubOrganizationDependabotAlertList, }, - Columns: append( + Columns: commonColumns(append( gitHubDependabotAlertColumns(), []*plugin.Column{ { @@ -203,7 +203,7 @@ func tableGitHubOrganizationDependabotAlert() *plugin.Table { Transform: transform.FromQual("organization"), }, }..., - ), + )), } } diff --git a/github/table_github_organization_external_identity.go b/github/table_github_organization_external_identity.go index 38a9d52..658eb78 100644 --- a/github/table_github_organization_external_identity.go +++ b/github/table_github_organization_external_identity.go @@ -35,7 +35,7 @@ func tableGitHubOrganizationExternalIdentity() *plugin.Table { }, Hydrate: tableGitHubOrganizationExternalIdentityList, }, - Columns: gitHubOrganizationExternalIdentityColumns(), + Columns: commonColumns(gitHubOrganizationExternalIdentityColumns()), } } diff --git a/github/table_github_organization_member.go b/github/table_github_organization_member.go index 05dc32a..fa1db64 100644 --- a/github/table_github_organization_member.go +++ b/github/table_github_organization_member.go @@ -39,7 +39,7 @@ func tableGitHubOrganizationMember() *plugin.Table { }, Hydrate: tableGitHubOrganizationMemberList, }, - Columns: gitHubOrganizationMemberColumns(), + Columns: commonColumns(gitHubOrganizationMemberColumns()), } } diff --git a/github/table_github_pull_request.go b/github/table_github_pull_request.go index 215f03d..8f0dcfb 100644 --- a/github/table_github_pull_request.go +++ b/github/table_github_pull_request.go @@ -108,7 +108,7 @@ func tableGitHubPullRequest() *plugin.Table { ShouldIgnoreError: isNotFoundError([]string{"404"}), Hydrate: tableGitHubPullRequestGet, }, - Columns: gitHubPullRequestColumns(), + Columns: commonColumns(gitHubPullRequestColumns()), } } diff --git a/github/table_github_pull_request_comment.go b/github/table_github_pull_request_comment.go index c7c71be..6baec52 100644 --- a/github/table_github_pull_request_comment.go +++ b/github/table_github_pull_request_comment.go @@ -17,7 +17,7 @@ func tableGitHubPullRequestComment() *plugin.Table { ShouldIgnoreError: isNotFoundError([]string{"404"}), Hydrate: tableGitHubRepositoryPullRequestCommentList, }, - Columns: sharedCommentsColumns(), + Columns: commonColumns(sharedCommentsColumns()), } } diff --git a/github/table_github_pull_request_review.go b/github/table_github_pull_request_review.go index 1c6ddd0..055f16a 100644 --- a/github/table_github_pull_request_review.go +++ b/github/table_github_pull_request_review.go @@ -36,7 +36,7 @@ func tableGitHubPullRequestReview() *plugin.Table { ShouldIgnoreError: isNotFoundError([]string{"404"}), Hydrate: tableGitHubRepositoryPullRequestReviewList, }, - Columns: pullRequestReviewColumns(), + Columns: commonColumns(pullRequestReviewColumns()), } } diff --git a/github/table_github_rate_limit.go b/github/table_github_rate_limit.go index b919a0f..013e7ca 100644 --- a/github/table_github_rate_limit.go +++ b/github/table_github_rate_limit.go @@ -15,7 +15,7 @@ func tableGitHubRateLimit() *plugin.Table { List: &plugin.ListConfig{ Hydrate: listGitHubRateLimit, }, - Columns: []*plugin.Column{ + Columns: commonColumns([]*plugin.Column{ // Top columns {Name: "core_limit", Type: proto.ColumnType_INT, Transform: transform.FromField("Core.Limit"), Description: "The number of requests per hour the client is currently limited to."}, {Name: "core_remaining", Type: proto.ColumnType_INT, Transform: transform.FromField("Core.Remaining"), Description: "The number of remaining requests the client can make this hour."}, @@ -23,7 +23,7 @@ func tableGitHubRateLimit() *plugin.Table { {Name: "search_limit", Type: proto.ColumnType_INT, Transform: transform.FromField("Search.Limit"), Description: "The number of requests per hour the client is currently limited to."}, {Name: "search_remaining", Type: proto.ColumnType_INT, Transform: transform.FromField("Search.Remaining"), Description: "The number of remaining requests the client can make this hour."}, {Name: "search_reset", Type: proto.ColumnType_TIMESTAMP, Transform: transform.FromField("Search.Reset").Transform(convertTimestamp), Description: "The time at which the current rate limit will reset."}, - }, + }), } } diff --git a/github/table_github_rate_limit_graphql.go b/github/table_github_rate_limit_graphql.go index de034a9..24493b4 100644 --- a/github/table_github_rate_limit_graphql.go +++ b/github/table_github_rate_limit_graphql.go @@ -17,14 +17,14 @@ func tableGitHubRateLimitGraphQL() *plugin.Table { List: &plugin.ListConfig{ Hydrate: listGitHubRateLimitGraphQL, }, - Columns: []*plugin.Column{ + Columns: commonColumns([]*plugin.Column{ {Name: "cost", Type: proto.ColumnType_INT, Description: "Number of points used to return this query.", Transform: transform.FromValue(), Hydrate: rateLimitHydrateCost}, {Name: "used", Type: proto.ColumnType_INT, Description: "Number of points used from current allocation.", Transform: transform.FromValue(), Hydrate: rateLimitHydrateUsed}, {Name: "remaining", Type: proto.ColumnType_INT, Description: "Number of points remaining in current allocation.", Transform: transform.FromValue(), Hydrate: rateLimitHydrateRemaining}, {Name: "limit", Type: proto.ColumnType_INT, Description: "Maximum number of points used that can be used in current allocation.", Transform: transform.FromValue(), Hydrate: rateLimitHydrateLimit}, {Name: "reset_at", Type: proto.ColumnType_TIMESTAMP, Description: "Timestamp when the allocation resets.", Transform: transform.FromValue().NullIfZero(), Hydrate: rateLimitHydrateResetAt}, {Name: "node_count", Type: proto.ColumnType_INT, Description: "Number of nodes returned by this query.", Transform: transform.FromValue(), Hydrate: rateLimitHydrateNodeCount}, - }, + }), } } diff --git a/github/table_github_release.go b/github/table_github_release.go index 2aa570e..4029bca 100644 --- a/github/table_github_release.go +++ b/github/table_github_release.go @@ -24,7 +24,7 @@ func tableGitHubRelease() *plugin.Table { ShouldIgnoreError: isNotFoundError([]string{"404"}), Hydrate: tableGitHubReleaseGet, }, - Columns: []*plugin.Column{ + Columns: commonColumns([]*plugin.Column{ // Top columns {Name: "repository_full_name", Type: proto.ColumnType_STRING, Transform: transform.FromQual("repository_full_name"), Description: "Full name of the repository that contains the release."}, @@ -48,7 +48,7 @@ func tableGitHubRelease() *plugin.Table { {Name: "upload_url", Type: proto.ColumnType_STRING, Description: "Upload URL for the release."}, {Name: "url", Type: proto.ColumnType_STRING, Description: "URL of the release."}, {Name: "zipball_url", Type: proto.ColumnType_STRING, Description: "Zipball URL for the release."}, - }, + }), } } diff --git a/github/table_github_repository.go b/github/table_github_repository.go index d8d46cf..460a58b 100644 --- a/github/table_github_repository.go +++ b/github/table_github_repository.go @@ -112,7 +112,7 @@ func tableGitHubRepository() *plugin.Table { ShouldIgnoreError: isNotFoundError([]string{"404"}), KeyColumns: plugin.SingleColumn("full_name"), }, - Columns: gitHubRepositoryColumns(), + Columns: commonColumns(gitHubRepositoryColumns()), } } diff --git a/github/table_github_repository_collaborator.go b/github/table_github_repository_collaborator.go index 6d5393e..01f529b 100644 --- a/github/table_github_repository_collaborator.go +++ b/github/table_github_repository_collaborator.go @@ -40,7 +40,7 @@ func tableGitHubRepositoryCollaborator() *plugin.Table { }, }, }, - Columns: gitHubRepositoryCollaboratorColumns(), + Columns: commonColumns(gitHubRepositoryCollaboratorColumns()), } } diff --git a/github/table_github_repository_dependabot_alert.go b/github/table_github_repository_dependabot_alert.go index a2501ad..ee557c9 100644 --- a/github/table_github_repository_dependabot_alert.go +++ b/github/table_github_repository_dependabot_alert.go @@ -48,7 +48,7 @@ func tableGitHubRepositoryDependabotAlert() *plugin.Table { ShouldIgnoreError: isNotFoundError([]string{"404", "403"}), Hydrate: tableGitHubRepositoryDependabotAlertGet, }, - Columns: append( + Columns: commonColumns(append( gitHubDependabotAlertColumns(), []*plugin.Column{ { @@ -58,7 +58,7 @@ func tableGitHubRepositoryDependabotAlert() *plugin.Table { Description: "The full name of the repository (login/repo-name).", }, }..., - ), + )), } } diff --git a/github/table_github_repository_deployment.go b/github/table_github_repository_deployment.go index 0b4652d..7c04ce6 100644 --- a/github/table_github_repository_deployment.go +++ b/github/table_github_repository_deployment.go @@ -45,7 +45,7 @@ func tableGitHubRepositoryDeployment() *plugin.Table { ShouldIgnoreError: isNotFoundError([]string{"404"}), Hydrate: tableGitHubRepositoryDeploymentList, }, - Columns: gitHubRepositoryDeploymentColumns(), + Columns: commonColumns(gitHubRepositoryDeploymentColumns()), } } diff --git a/github/table_github_repository_environment.go b/github/table_github_repository_environment.go index e3adb05..6751f54 100644 --- a/github/table_github_repository_environment.go +++ b/github/table_github_repository_environment.go @@ -33,7 +33,7 @@ func tableGitHubRepositoryEnvironment() *plugin.Table { ShouldIgnoreError: isNotFoundError([]string{"404"}), Hydrate: tableGitHubRepositoryEnvironmentList, }, - Columns: gitHubRepositoryEnvironmentColumns(), + Columns: commonColumns(gitHubRepositoryEnvironmentColumns()), } } diff --git a/github/table_github_repository_sbom.go b/github/table_github_repository_sbom.go index 732c3cf..35717a9 100644 --- a/github/table_github_repository_sbom.go +++ b/github/table_github_repository_sbom.go @@ -22,7 +22,7 @@ func tableGitHubRepositorySbom() *plugin.Table { ShouldIgnoreError: isNotFoundError([]string{"404", "403"}), Hydrate: listRepositorySboms, }, - Columns: []*plugin.Column{ + Columns: commonColumns([]*plugin.Column{ { Name: "repository_full_name", Type: proto.ColumnType_STRING, @@ -71,7 +71,7 @@ func tableGitHubRepositorySbom() *plugin.Table { Type: proto.ColumnType_JSON, Description: "Array of packages in SPDX format.", }, - }, + }), } } diff --git a/github/table_github_repository_vulnerability_alert.go b/github/table_github_repository_vulnerability_alert.go index c820dca..41efc84 100644 --- a/github/table_github_repository_vulnerability_alert.go +++ b/github/table_github_repository_vulnerability_alert.go @@ -30,7 +30,7 @@ func tableGitHubRepositoryVulnerabilityAlert() *plugin.Table { }, }, }, - Columns: gitHubRepositoryVulnerabilityAlertColumns(), + Columns: commonColumns(gitHubRepositoryVulnerabilityAlertColumns()), } } diff --git a/github/table_github_search_code.go b/github/table_github_search_code.go index cf8c499..e3ccea5 100644 --- a/github/table_github_search_code.go +++ b/github/table_github_search_code.go @@ -18,7 +18,7 @@ func tableGitHubSearchCode() *plugin.Table { KeyColumns: plugin.SingleColumn("query"), Hydrate: tableGitHubSearchCodeList, }, - Columns: []*plugin.Column{ + Columns: commonColumns([]*plugin.Column{ {Name: "name", Type: proto.ColumnType_STRING, Description: "The name of the file where the match has been found."}, {Name: "query", Type: proto.ColumnType_STRING, Transform: transform.FromQual("query"), Description: "The query used to match the code."}, {Name: "html_url", Type: proto.ColumnType_STRING, Description: "The complete URL of the file where the match has been found."}, @@ -27,7 +27,7 @@ func tableGitHubSearchCode() *plugin.Table { {Name: "repository_full_name", Type: proto.ColumnType_STRING, Transform: transform.From(extractSearchCodeRepositoryFullName), Description: "The full name of the repository (login/repo-name)."}, {Name: "repository", Type: proto.ColumnType_JSON, Description: "The repository details of the file where the match has been found."}, {Name: "text_matches", Type: proto.ColumnType_JSON, Description: "The text match details."}, - }, + }), } } diff --git a/github/table_github_search_commit.go b/github/table_github_search_commit.go index 8621318..a040951 100644 --- a/github/table_github_search_commit.go +++ b/github/table_github_search_commit.go @@ -19,7 +19,7 @@ func tableGitHubSearchCommit() *plugin.Table { KeyColumns: plugin.SingleColumn("query"), Hydrate: tableGitHubSearchCommitList, }, - Columns: []*plugin.Column{ + Columns: commonColumns([]*plugin.Column{ {Name: "sha", Type: proto.ColumnType_STRING, Transform: transform.FromField("SHA"), Description: "The SHA of the commit."}, {Name: "query", Type: proto.ColumnType_STRING, Transform: transform.FromQual("query"), Description: "The query used to match the commit."}, {Name: "comments_url", Type: proto.ColumnType_STRING, Description: "The API URL of the comments made on the commit."}, @@ -32,7 +32,7 @@ func tableGitHubSearchCommit() *plugin.Table { {Name: "committer", Type: proto.ColumnType_JSON, Description: "The committer details."}, {Name: "parents", Type: proto.ColumnType_JSON, Description: "The parent details."}, {Name: "repository", Type: proto.ColumnType_JSON, Description: "The repository details of the commit."}, - }, + }), } } diff --git a/github/table_github_search_issue.go b/github/table_github_search_issue.go index db9b2db..ccf218a 100644 --- a/github/table_github_search_issue.go +++ b/github/table_github_search_issue.go @@ -19,7 +19,7 @@ func tableGitHubSearchIssue() *plugin.Table { KeyColumns: plugin.SingleColumn("query"), Hydrate: tableGitHubSearchIssueList, }, - Columns: gitHubSearchIssueColumns(), + Columns: commonColumns(gitHubSearchIssueColumns()), } } diff --git a/github/table_github_search_label.go b/github/table_github_search_label.go index 0c91e55..27cb532 100644 --- a/github/table_github_search_label.go +++ b/github/table_github_search_label.go @@ -20,7 +20,7 @@ func tableGitHubSearchLabel() *plugin.Table { ShouldIgnoreError: isNotFoundError([]string{"404"}), Hydrate: tableGitHubSearchLabelList, }, - Columns: []*plugin.Column{ + Columns: commonColumns([]*plugin.Column{ {Name: "id", Transform: transform.FromField("ID"), Type: proto.ColumnType_INT, Description: "The ID of the label."}, {Name: "repository_id", Type: proto.ColumnType_INT, Transform: transform.FromQual("repository_id"), Description: "The ID of the repository."}, {Name: "repository_full_name", Type: proto.ColumnType_STRING, Transform: transform.From(extractSearchLabelRepositoryFullName), Description: "The full name of the repository (login/repo-name)."}, @@ -32,7 +32,7 @@ func tableGitHubSearchLabel() *plugin.Table { {Name: "score", Type: proto.ColumnType_DOUBLE, Description: "The score of the label."}, {Name: "url", Type: proto.ColumnType_STRING, Description: "The API URL to get the label details."}, {Name: "text_matches", Type: proto.ColumnType_JSON, Description: "The text match details."}, - }, + }), } } diff --git a/github/table_github_search_pull_request.go b/github/table_github_search_pull_request.go index d00fea2..a255c90 100644 --- a/github/table_github_search_pull_request.go +++ b/github/table_github_search_pull_request.go @@ -19,7 +19,7 @@ func tableGitHubSearchPullRequest() *plugin.Table { KeyColumns: plugin.SingleColumn("query"), Hydrate: tableGitHubSearchPullRequestList, }, - Columns: gitHubSearchPullRequestColumns(), + Columns: commonColumns(gitHubSearchPullRequestColumns()), } } diff --git a/github/table_github_search_repository.go b/github/table_github_search_repository.go index 0127ae3..f0e8b54 100644 --- a/github/table_github_search_repository.go +++ b/github/table_github_search_repository.go @@ -20,7 +20,7 @@ func tableGitHubSearchRepository() *plugin.Table { KeyColumns: plugin.SingleColumn("query"), Hydrate: tableGitHubSearchRepositoryList, }, - Columns: gitHubSearchRepositoryColumns(), + Columns: commonColumns(gitHubSearchRepositoryColumns()), } } diff --git a/github/table_github_search_topic.go b/github/table_github_search_topic.go index e614648..963deb6 100644 --- a/github/table_github_search_topic.go +++ b/github/table_github_search_topic.go @@ -17,7 +17,7 @@ func tableGitHubSearchTopic() *plugin.Table { KeyColumns: plugin.SingleColumn("query"), Hydrate: tableGitHubSearchTopicList, }, - Columns: []*plugin.Column{ + Columns: commonColumns([]*plugin.Column{ {Name: "name", Type: proto.ColumnType_STRING, Description: "The name of the topic."}, {Name: "query", Type: proto.ColumnType_STRING, Transform: transform.FromQual("query"), Description: "The query used to match the topic."}, {Name: "created_at", Type: proto.ColumnType_TIMESTAMP, Transform: transform.FromField("CreatedAt").Transform(convertTimestamp), Description: "The timestamp when the topic was created."}, @@ -29,7 +29,7 @@ func tableGitHubSearchTopic() *plugin.Table { {Name: "score", Type: proto.ColumnType_DOUBLE, Description: "The score of the topic."}, {Name: "short_description", Type: proto.ColumnType_STRING, Description: "The short description of the topic."}, {Name: "updated_at", Type: proto.ColumnType_TIMESTAMP, Description: "The timestamp when the topic was updated."}, - }, + }), } } diff --git a/github/table_github_search_user.go b/github/table_github_search_user.go index dd258a5..246cba7 100644 --- a/github/table_github_search_user.go +++ b/github/table_github_search_user.go @@ -55,7 +55,7 @@ func tableGitHubSearchUser() *plugin.Table { KeyColumns: plugin.SingleColumn("query"), Hydrate: tableGitHubSearchUserList, }, - Columns: gitHubSearchUserColumns(), + Columns: commonColumns(gitHubSearchUserColumns()), } } diff --git a/github/table_github_stargazer.go b/github/table_github_stargazer.go index 084b364..b7a57e3 100644 --- a/github/table_github_stargazer.go +++ b/github/table_github_stargazer.go @@ -20,12 +20,12 @@ func tableGitHubStargazer() *plugin.Table { ShouldIgnoreError: isNotFoundError([]string{"404"}), Hydrate: tableGitHubStargazerList, }, - Columns: []*plugin.Column{ + Columns: commonColumns([]*plugin.Column{ {Name: "repository_full_name", Type: proto.ColumnType_STRING, Transform: transform.FromQual("repository_full_name"), Description: "Full name of the repository that contains the stargazer."}, {Name: "starred_at", Type: proto.ColumnType_TIMESTAMP, Transform: transform.FromValue().Transform(convertTimestamp), Hydrate: strHydrateStarredAt, Description: "Time when the stargazer was created."}, {Name: "user_login", Type: proto.ColumnType_STRING, Transform: transform.FromValue(), Hydrate: strHydrateUserLogin, Description: "The login name of the user who starred the repository."}, {Name: "user_detail", Type: proto.ColumnType_JSON, Transform: transform.FromValue(), Hydrate: strHydrateUser, Description: "Details of the user who starred the repository."}, - }, + }), } } diff --git a/github/table_github_tag.go b/github/table_github_tag.go index 9f063f7..64558fd 100644 --- a/github/table_github_tag.go +++ b/github/table_github_tag.go @@ -21,7 +21,7 @@ func tableGitHubTag() *plugin.Table { ShouldIgnoreError: isNotFoundError([]string{"404"}), Hydrate: tableGitHubTagList, }, - Columns: []*plugin.Column{ + Columns: commonColumns([]*plugin.Column{ {Name: "repository_full_name", Type: proto.ColumnType_STRING, Transform: transform.FromQual("repository_full_name"), Description: "Full name of the repository that contains the tag."}, {Name: "name", Type: proto.ColumnType_STRING, Description: "Name of the tag.", Transform: transform.FromValue(), Hydrate: tagHydrateName}, {Name: "tagger_date", Type: proto.ColumnType_TIMESTAMP, Transform: transform.FromValue().NullIfZero(), Description: "Date the tag was created.", Hydrate: tagHydrateTaggerDate}, @@ -29,7 +29,7 @@ func tableGitHubTag() *plugin.Table { {Name: "tagger_login", Type: proto.ColumnType_STRING, Description: "Login of user whom created the tag.", Transform: transform.FromValue(), Hydrate: tagHydrateTaggerLogin}, {Name: "message", Type: proto.ColumnType_STRING, Description: "Message associated with the tag.", Transform: transform.FromValue(), Hydrate: tagHydrateMessage}, {Name: "commit", Type: proto.ColumnType_JSON, Description: "Commit the tag is associated with.", Transform: transform.FromValue(), Hydrate: tagHydrateCommit}, - }, + }), } } diff --git a/github/table_github_team.go b/github/table_github_team.go index 3ceb9e8..47c79b6 100644 --- a/github/table_github_team.go +++ b/github/table_github_team.go @@ -60,7 +60,7 @@ func tableGitHubTeam() *plugin.Table { ShouldIgnoreError: isNotFoundError([]string{"404"}), Hydrate: tableGitHubTeamGet, }, - Columns: gitHubTeamColumns(), + Columns: commonColumns(gitHubTeamColumns()), } } diff --git a/github/table_github_team_member.go b/github/table_github_team_member.go index 4b90270..7b9b944 100644 --- a/github/table_github_team_member.go +++ b/github/table_github_team_member.go @@ -25,7 +25,7 @@ func tableGitHubTeamMember() *plugin.Table { Hydrate: tableGitHubTeamMemberList, ShouldIgnoreError: isNotFoundError([]string{"404"}), }, - Columns: gitHubTeamMemberColumns(), + Columns: commonColumns(gitHubTeamMemberColumns()), } } diff --git a/github/table_github_team_repository.go b/github/table_github_team_repository.go index 6d6b35a..fc8ceb2 100644 --- a/github/table_github_team_repository.go +++ b/github/table_github_team_repository.go @@ -43,7 +43,7 @@ func tableGitHubTeamRepository() *plugin.Table { Hydrate: tableGitHubTeamRepositoryGet, ShouldIgnoreError: isNotFoundError([]string{"404"}), }, - Columns: gitHubTeamRepositoryColumns(), + Columns: commonColumns(gitHubTeamRepositoryColumns()), } } diff --git a/github/table_github_traffic_view_daily.go b/github/table_github_traffic_view_daily.go index 79ddfae..8f2c18d 100644 --- a/github/table_github_traffic_view_daily.go +++ b/github/table_github_traffic_view_daily.go @@ -19,13 +19,13 @@ func tableGitHubTrafficViewDaily() *plugin.Table { ShouldIgnoreError: isNotFoundError([]string{"404"}), Hydrate: tableGitHubTrafficViewDailyList, }, - Columns: []*plugin.Column{ + Columns: commonColumns([]*plugin.Column{ // Top columns {Name: "repository_full_name", Type: proto.ColumnType_STRING, Transform: transform.FromQual("repository_full_name"), Description: "Full name of the repository that contains the branch."}, {Name: "timestamp", Type: proto.ColumnType_TIMESTAMP, Transform: transform.FromField("Timestamp").Transform(convertTimestamp), Description: "Date for the view data."}, {Name: "count", Type: proto.ColumnType_INT, Description: "View count for the day."}, {Name: "uniques", Type: proto.ColumnType_INT, Description: "Unique viewer count for the day."}, - }, + }), } } diff --git a/github/table_github_traffic_view_weekly.go b/github/table_github_traffic_view_weekly.go index 4cb2af6..7cc100a 100644 --- a/github/table_github_traffic_view_weekly.go +++ b/github/table_github_traffic_view_weekly.go @@ -19,13 +19,13 @@ func tableGitHubTrafficViewWeekly() *plugin.Table { ShouldIgnoreError: isNotFoundError([]string{"404"}), Hydrate: tableGitHubTrafficViewWeeklyList, }, - Columns: []*plugin.Column{ + Columns: commonColumns([]*plugin.Column{ // Top columns {Name: "repository_full_name", Type: proto.ColumnType_STRING, Transform: transform.FromQual("repository_full_name"), Description: "Full name of the repository that contains the branch."}, {Name: "timestamp", Type: proto.ColumnType_TIMESTAMP, Transform: transform.FromField("Timestamp").Transform(convertTimestamp), Description: "Date for the view data."}, {Name: "count", Type: proto.ColumnType_INT, Description: "View count for the week."}, {Name: "uniques", Type: proto.ColumnType_INT, Description: "Unique viewer count for the week."}, - }, + }), } } diff --git a/github/table_github_tree.go b/github/table_github_tree.go index 6a85891..d412ebc 100644 --- a/github/table_github_tree.go +++ b/github/table_github_tree.go @@ -23,7 +23,7 @@ func tableGitHubTree() *plugin.Table { {Name: "recursive", Require: plugin.Optional, CacheMatch: "exact"}, }, }, - Columns: []*plugin.Column{ + Columns: commonColumns([]*plugin.Column{ // Top columns {Name: "repository_full_name", Type: proto.ColumnType_STRING, Transform: transform.FromQual("repository_full_name"), Description: "Full name of the repository that contains the tree."}, {Name: "tree_sha", Type: proto.ColumnType_STRING, Transform: transform.FromQual("tree_sha"), Description: "SHA1 of the tree."}, @@ -36,7 +36,7 @@ func tableGitHubTree() *plugin.Table { {Name: "size", Type: proto.ColumnType_STRING, Transform: transform.FromField("TreeEntry.Size"), Description: "Size of the blob."}, {Name: "type", Type: proto.ColumnType_STRING, Transform: transform.FromField("TreeEntry.Type"), Description: "Either blob, tree, or commit."}, {Name: "url", Type: proto.ColumnType_STRING, Transform: transform.FromField("TreeEntry.URL"), Description: "URL to the file referenced in the tree."}, - }, + }), } } diff --git a/github/table_github_user.go b/github/table_github_user.go index 2d6932f..e04148e 100644 --- a/github/table_github_user.go +++ b/github/table_github_user.go @@ -21,7 +21,7 @@ func tableGitHubUser() *plugin.Table { ShouldIgnoreError: isNotFoundError([]string{"404"}), Hydrate: tableGitHubUserGet, }, - Columns: tableGitHubUserColumns(), + Columns: commonColumns(tableGitHubUserColumns()), } } diff --git a/github/table_github_workflow.go b/github/table_github_workflow.go index de661d5..b2c53e6 100644 --- a/github/table_github_workflow.go +++ b/github/table_github_workflow.go @@ -29,7 +29,7 @@ func tableGitHubWorkflow() *plugin.Table { ShouldIgnoreError: isNotFoundError([]string{"404"}), Hydrate: tableGitHubWorkflowGet, }, - Columns: []*plugin.Column{ + Columns: commonColumns([]*plugin.Column{ // Top columns {Name: "repository_full_name", Type: proto.ColumnType_STRING, Transform: transform.FromQual("repository_full_name"), Description: "Full name of the repository that contains the workflow."}, {Name: "name", Type: proto.ColumnType_STRING, Description: "The name of the workflow."}, @@ -47,7 +47,7 @@ func tableGitHubWorkflow() *plugin.Table { {Name: "workflow_file_content", Type: proto.ColumnType_STRING, Hydrate: GitHubWorkflowFileContent, Transform: transform.FromValue().Transform(decodeFileContentBase64), Description: "Content of github workflow file in text format."}, {Name: "workflow_file_content_json", Type: proto.ColumnType_JSON, Hydrate: GitHubWorkflowFileContent, Transform: transform.FromValue().Transform(decodeFileContentBase64).Transform(unmarshalYAML), Description: "Content of github workflow file in the JSON format."}, {Name: "pipeline", Type: proto.ColumnType_JSON, Hydrate: GitHubWorkflowFileContent, Transform: transform.FromValue().Transform(decodeFileContentBase64).Transform(decodeFileContentToPipeline), Description: "Github workflow in the generic pipeline entity format to be used across CI/CD platforms."}, - }, + }), } } diff --git a/go.mod b/go.mod index f8306d8..33fbc7d 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,8 @@ module github.com/turbot/steampipe-plugin-github -go 1.21 +go 1.21.0 + +toolchain go1.21.1 require ( github.com/bradleyfalzon/ghinstallation v1.1.1 @@ -8,17 +10,17 @@ require ( github.com/ghodss/yaml v1.0.0 github.com/google/go-github/v55 v55.0.0 github.com/shurcooL/githubv4 v0.0.0-20231126234147-1cffa1f02456 - github.com/turbot/go-kit v0.9.0-rc.1 - github.com/turbot/steampipe-plugin-sdk/v5 v5.8.0 - golang.org/x/oauth2 v0.15.0 + github.com/turbot/go-kit v0.10.0-rc.0 + github.com/turbot/steampipe-plugin-sdk/v5 v5.10.1 + golang.org/x/oauth2 v0.17.0 ) require ( - cloud.google.com/go v0.110.7 // indirect - cloud.google.com/go/compute v1.23.0 // indirect + cloud.google.com/go v0.112.0 // indirect + cloud.google.com/go/compute v1.24.0 // indirect cloud.google.com/go/compute/metadata v0.2.3 // indirect - cloud.google.com/go/iam v1.1.1 // indirect - cloud.google.com/go/storage v1.30.1 // indirect + cloud.google.com/go/iam v1.1.6 // indirect + cloud.google.com/go/storage v1.36.0 // indirect github.com/ProtonMail/go-crypto v0.0.0-20230217124315-7d5c6f04bbb8 // indirect github.com/acarl005/stripansi v0.0.0-20180116102854-5a71ef0e047d // indirect github.com/agext/levenshtein v1.2.2 // indirect @@ -29,7 +31,7 @@ require ( github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d // indirect github.com/btubbs/datetime v0.1.1 // indirect github.com/buildkite/interpolate v0.0.0-20200526001904-07f35b4ae251 // indirect - github.com/cenkalti/backoff/v4 v4.2.1 // indirect + github.com/cenkalti/backoff/v4 v4.3.0 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect github.com/cloudflare/circl v1.3.3 // indirect github.com/danwakefield/fnmatch v0.0.0-20160403171240-cbb64ac3d964 // indirect @@ -40,30 +42,31 @@ require ( github.com/eko/gocache/store/bigcache/v4 v4.2.1 // indirect github.com/eko/gocache/store/ristretto/v4 v4.2.1 // indirect github.com/fatih/color v1.15.0 // indirect - github.com/fsnotify/fsnotify v1.6.0 // indirect + github.com/felixge/httpsnoop v1.0.4 // indirect + github.com/fsnotify/fsnotify v1.7.0 // indirect github.com/gertd/go-pluralize v0.2.1 // indirect - github.com/go-logr/logr v1.3.0 // indirect + github.com/go-logr/logr v1.4.1 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/go-test/deep v1.0.8 // indirect - github.com/golang/glog v1.1.2 // indirect + github.com/golang/glog v1.2.0 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/mock v1.6.0 // indirect - github.com/golang/protobuf v1.5.3 // indirect + github.com/golang/protobuf v1.5.4 // indirect github.com/google/go-cmp v0.6.0 // indirect github.com/google/go-github/v29 v29.0.2 // indirect github.com/google/go-querystring v1.1.0 // indirect - github.com/google/s2a-go v0.1.4 // indirect - github.com/google/uuid v1.3.1 // indirect - github.com/googleapis/enterprise-certificate-proxy v0.2.3 // indirect - github.com/googleapis/gax-go/v2 v2.11.0 // indirect - github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 // indirect + github.com/google/s2a-go v0.1.7 // indirect + github.com/google/uuid v1.6.0 // indirect + github.com/googleapis/enterprise-certificate-proxy v0.3.2 // indirect + github.com/googleapis/gax-go/v2 v2.12.0 // indirect + github.com/grpc-ecosystem/grpc-gateway/v2 v2.19.1 // indirect github.com/hashicorp/go-cleanhttp v0.5.2 // indirect - github.com/hashicorp/go-getter v1.7.3 // indirect - github.com/hashicorp/go-hclog v1.6.1 // indirect + github.com/hashicorp/go-getter v1.7.4 // indirect + github.com/hashicorp/go-hclog v1.6.2 // indirect github.com/hashicorp/go-plugin v1.6.0 // indirect github.com/hashicorp/go-safetemp v1.0.0 // indirect github.com/hashicorp/go-version v1.6.0 // indirect - github.com/hashicorp/hcl/v2 v2.19.1 // indirect + github.com/hashicorp/hcl/v2 v2.20.1 // indirect github.com/hashicorp/yamux v0.1.1 // indirect github.com/iancoleman/strcase v0.3.0 // indirect github.com/jmespath/go-jmespath v0.4.0 // indirect @@ -90,32 +93,35 @@ require ( github.com/stevenle/topsort v0.2.0 // indirect github.com/tkrajina/go-reflector v0.5.6 // indirect github.com/ulikunitz/xz v0.5.10 // indirect - github.com/zclconf/go-cty v1.14.1 // indirect + github.com/zclconf/go-cty v1.14.4 // indirect go.opencensus.io v0.24.0 // indirect - go.opentelemetry.io/otel v1.21.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v0.44.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.21.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.21.0 // indirect - go.opentelemetry.io/otel/metric v1.21.0 // indirect - go.opentelemetry.io/otel/sdk v1.21.0 // indirect - go.opentelemetry.io/otel/sdk/metric v1.21.0 // indirect - go.opentelemetry.io/otel/trace v1.21.0 // indirect - go.opentelemetry.io/proto/otlp v1.0.0 // indirect - golang.org/x/crypto v0.16.0 // indirect + go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.47.0 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.47.0 // indirect + go.opentelemetry.io/otel v1.26.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.26.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.24.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.24.0 // indirect + go.opentelemetry.io/otel/metric v1.26.0 // indirect + go.opentelemetry.io/otel/sdk v1.26.0 // indirect + go.opentelemetry.io/otel/sdk/metric v1.26.0 // indirect + go.opentelemetry.io/otel/trace v1.26.0 // indirect + go.opentelemetry.io/proto/otlp v1.2.0 // indirect + golang.org/x/crypto v0.21.0 // indirect golang.org/x/exp v0.0.0-20230522175609-2e198f4a06a1 // indirect - golang.org/x/net v0.19.0 // indirect - golang.org/x/sync v0.5.0 // indirect - golang.org/x/sys v0.15.0 // indirect + golang.org/x/mod v0.8.0 // indirect + golang.org/x/net v0.23.0 // indirect + golang.org/x/sync v0.6.0 // indirect + golang.org/x/sys v0.19.0 // indirect golang.org/x/text v0.14.0 // indirect golang.org/x/time v0.5.0 // indirect - golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect - google.golang.org/api v0.126.0 // indirect - google.golang.org/appengine v1.6.7 // indirect - google.golang.org/genproto v0.0.0-20230822172742-b8732ec3820d // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20230822172742-b8732ec3820d // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d // indirect - google.golang.org/grpc v1.59.0 // indirect - google.golang.org/protobuf v1.31.0 // indirect + golang.org/x/tools v0.6.0 // indirect + google.golang.org/api v0.162.0 // indirect + google.golang.org/appengine v1.6.8 // indirect + google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20240227224415-6ceb2ff114de // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240401170217-c3f982113cda // indirect + google.golang.org/grpc v1.63.2 // indirect + google.golang.org/protobuf v1.33.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/go.sum b/go.sum index 4377db5..4e82824 100644 --- a/go.sum +++ b/go.sum @@ -30,8 +30,8 @@ cloud.google.com/go v0.100.2/go.mod h1:4Xra9TjzAeYHrl5+oeLlzbM2k3mjVhZh4UqTZ//w9 cloud.google.com/go v0.102.0/go.mod h1:oWcCzKlqJ5zgHQt9YsaeTY9KzIvjyy0ArmiBUgpQ+nc= cloud.google.com/go v0.102.1/go.mod h1:XZ77E9qnTEnrgEOvr4xzfdX5TRo7fB4T2F4O6+34hIU= cloud.google.com/go v0.104.0/go.mod h1:OO6xxXdJyvuJPcEPBLN9BJPD+jep5G1+2U5B5gkRYtA= -cloud.google.com/go v0.110.7 h1:rJyC7nWRg2jWGZ4wSJ5nY65GTdYJkg0cd/uXb+ACI6o= -cloud.google.com/go v0.110.7/go.mod h1:+EYjdK8e5RME/VY/qLCAtuyALQ9q67dvuum8i+H5xsI= +cloud.google.com/go v0.112.0 h1:tpFCD7hpHFlQ8yPwT3x+QeXqc2T6+n6T+hmABHfDUSM= +cloud.google.com/go v0.112.0/go.mod h1:3jEEVwZ/MHU4djK5t5RHuKOA/GbLddgTdVubX1qnPD4= cloud.google.com/go/aiplatform v1.22.0/go.mod h1:ig5Nct50bZlzV6NvKaTwmplLLddFx0YReh9WfTO5jKw= cloud.google.com/go/aiplatform v1.24.0/go.mod h1:67UUvRBKG6GTayHKV8DBv2RtR1t93YRu5B1P3x99mYY= cloud.google.com/go/analytics v0.11.0/go.mod h1:DjEWCu41bVbYcKyvlws9Er60YE4a//bK6mnhWvQeFNI= @@ -68,8 +68,8 @@ cloud.google.com/go/compute v1.6.0/go.mod h1:T29tfhtVbq1wvAPo0E3+7vhgmkOYeXjhFvz cloud.google.com/go/compute v1.6.1/go.mod h1:g85FgpzFvNULZ+S8AYq87axRKuf2Kh7deLqV/jJ3thU= cloud.google.com/go/compute v1.7.0/go.mod h1:435lt8av5oL9P3fv1OEzSbSUe+ybHXGMPQHHZWZxy9U= cloud.google.com/go/compute v1.10.0/go.mod h1:ER5CLbMxl90o2jtNbGSbtfOpQKR0t15FOtRsugnLrlU= -cloud.google.com/go/compute v1.23.0 h1:tP41Zoavr8ptEqaW6j+LQOnyBBhO7OkOMAGrgLopTwY= -cloud.google.com/go/compute v1.23.0/go.mod h1:4tCnrn48xsqlwSAiLf1HXMQk8CONslYbdiEZc9FEIbM= +cloud.google.com/go/compute v1.24.0 h1:phWcR2eWzRJaL/kOiJwfFsPs4BaKq1j6vnpZrc1YlVg= +cloud.google.com/go/compute v1.24.0/go.mod h1:kw1/T+h/+tK2LJK0wiPPx1intgdAM3j/g3hFDlscY40= cloud.google.com/go/compute/metadata v0.2.3 h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGBW5aJ7UnBMY= cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA= cloud.google.com/go/containeranalysis v0.5.1/go.mod h1:1D92jd8gRR/c0fGMlymRgxWD3Qw9C1ff6/T7mLgVL8I= @@ -109,8 +109,8 @@ cloud.google.com/go/gkehub v0.10.0/go.mod h1:UIPwxI0DsrpsVoWpLB0stwKCP+WFVG9+y97 cloud.google.com/go/grafeas v0.2.0/go.mod h1:KhxgtF2hb0P191HlY5besjYm6MqTSTj3LSI+M+ByZHc= cloud.google.com/go/iam v0.3.0/go.mod h1:XzJPvDayI+9zsASAFO68Hk07u3z+f+JrT2xXNdp4bnY= cloud.google.com/go/iam v0.5.0/go.mod h1:wPU9Vt0P4UmCux7mqtRu6jcpPAb74cP1fh50J3QpkUc= -cloud.google.com/go/iam v1.1.1 h1:lW7fzj15aVIXYHREOqjRBV9PsH0Z6u8Y46a1YGvQP4Y= -cloud.google.com/go/iam v1.1.1/go.mod h1:A5avdyVL2tCppe4unb0951eI9jreack+RJ0/d+KUZOU= +cloud.google.com/go/iam v1.1.6 h1:bEa06k05IO4f4uJonbB5iAgKTPpABy1ayxaIZV/GHVc= +cloud.google.com/go/iam v1.1.6/go.mod h1:O0zxdPeGBoFdWW3HWmBxJsk0pfvNM/p/qa82rWOGTwI= cloud.google.com/go/language v1.4.0/go.mod h1:F9dRpNFQmJbkaop6g0JhSBXCNlO90e1KWx5iDdxbWic= cloud.google.com/go/language v1.6.0/go.mod h1:6dJ8t3B+lUYfStgls25GusK04NLh3eDLQnWM3mdEbhI= cloud.google.com/go/lifesciences v0.5.0/go.mod h1:3oIKy8ycWGPUyZDR/8RNnTOYevhaMLqh5vLUXs9zvT8= @@ -171,8 +171,8 @@ cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9 cloud.google.com/go/storage v1.22.1/go.mod h1:S8N1cAStu7BOeFfE8KAQzmyyLkK8p/vmRq6kuBTW58Y= cloud.google.com/go/storage v1.23.0/go.mod h1:vOEEDNFnciUMhBeT6hsJIn3ieU5cFRmzeLgDvXzfIXc= cloud.google.com/go/storage v1.27.0/go.mod h1:x9DOL8TK/ygDUMieqwfhdpQryTeEkhGKMi80i/iqR2s= -cloud.google.com/go/storage v1.30.1 h1:uOdMxAs8HExqBlnLtnQyP0YkvbiDpdGShGKtx6U/oNM= -cloud.google.com/go/storage v1.30.1/go.mod h1:NfxhC0UJE1aXSx7CIIbCf7y9HKT7BiccwkR7+P7gN8E= +cloud.google.com/go/storage v1.36.0 h1:P0mOkAcaJxhCTvAkMhxMfrTKiNcub4YmmPBtlhAyTr8= +cloud.google.com/go/storage v1.36.0/go.mod h1:M6M/3V/D3KpzMTJyPOR/HU6n2Si5QdaXYEsng2xgOs8= cloud.google.com/go/talent v1.1.0/go.mod h1:Vl4pt9jiHKvOgF9KoZo6Kob9oV4lwd/ZD5Cto54zDRw= cloud.google.com/go/talent v1.2.0/go.mod h1:MoNF9bhFQbiJ6eFD3uSsg0uBALw4n4gaCaEjBw9zo8g= cloud.google.com/go/videointelligence v1.6.0/go.mod h1:w0DIDlVRKtwPCn/C4iwZIJdvC69yInhW0cfi+p546uU= @@ -202,8 +202,6 @@ github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk5 github.com/allegro/bigcache/v3 v3.1.0 h1:H2Vp8VOvxcrB91o86fUSVJFqeuz8kpyyB02eH3bSzwk= github.com/allegro/bigcache/v3 v3.1.0/go.mod h1:aPyh7jEvrog9zAwx5N7+JUQX5dZTSGpxF1LAR4dr35I= github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= -github.com/apparentlymart/go-dump v0.0.0-20180507223929-23540a00eaa3 h1:ZSTrOEhiM5J5RFxEaFvMZVEAM1KvT1YzbEOwB2EAGjA= -github.com/apparentlymart/go-dump v0.0.0-20180507223929-23540a00eaa3/go.mod h1:oL81AME2rN47vu18xqj1S1jPIPuN7afo62yKTNn3XMM= github.com/apparentlymart/go-textseg/v15 v15.0.0 h1:uYvfpb3DyLSCGWnctWKGj857c6ew1u1fNQOlOtuGxQY= github.com/apparentlymart/go-textseg/v15 v15.0.0/go.mod h1:K8XmNZdhEBkdlyDdvbmmsvpAG721bKi0joRfFdHIWJ4= github.com/aws/aws-sdk-go v1.44.122 h1:p6mw01WBaNpbdP2xrisz5tIkcNwzj/HysobNoaAHjgo= @@ -225,8 +223,8 @@ github.com/buildkite/go-pipeline v0.3.1/go.mod h1:iY5jzs3Afc8yHg6KDUcu3EJVkfaUkd github.com/buildkite/interpolate v0.0.0-20200526001904-07f35b4ae251 h1:k6UDF1uPYOs0iy1HPeotNa155qXRWrzKnqAaGXHLZCE= github.com/buildkite/interpolate v0.0.0-20200526001904-07f35b4ae251/go.mod h1:gbPR1gPu9dB96mucYIR7T3B7p/78hRVSOuzIWLHK2Y4= github.com/bwesterb/go-ristretto v1.2.0/go.mod h1:fUIoIZaG73pV5biE2Blr2xEzDoMj7NFEuV9ekS419A0= -github.com/cenkalti/backoff/v4 v4.2.1 h1:y4OZtCnogmCPw98Zjyt5a6+QwPLGkiQsYW5oUqylYbM= -github.com/cenkalti/backoff/v4 v4.2.1/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= +github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8= +github.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= @@ -250,6 +248,8 @@ github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWH github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20211001041855-01bcc9b48dfe/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20231128003011-0fa0005c9caa h1:jQCWAUqqlij9Pgj2i/PB79y4KOPYVyFYdROxgaCwdTQ= +github.com/cncf/xds/go v0.0.0-20231128003011-0fa0005c9caa/go.mod h1:x/1Gn8zydmfq8dk6e9PdstVsDgu9RuyIIJqAaF//0IM= github.com/danwakefield/fnmatch v0.0.0-20160403171240-cbb64ac3d964 h1:y5HC9v93H5EPKqaS1UYVg1uYah5Xf51mBfIoWehClUQ= github.com/danwakefield/fnmatch v0.0.0-20160403171240-cbb64ac3d964/go.mod h1:Xd9hchkHSWYkEqJwUGisez3G1QY8Ryz0sdWrLPMGjLk= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -280,12 +280,16 @@ github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.m github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go.mod h1:AFq3mo9L8Lqqiid3OhADV3RfLJnjiw63cSpi+fDTRC0= github.com/envoyproxy/go-control-plane v0.10.2-0.20220325020618-49ff273808a1/go.mod h1:KJwIaB5Mv44NWtYuAOFCVOjcI94vtpEz2JU/D2v6IjE= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= +github.com/envoyproxy/protoc-gen-validate v1.0.4 h1:gVPz/FMfvh57HdSJQyvBtF00j8JU4zdyUgIUNhlgg0A= +github.com/envoyproxy/protoc-gen-validate v1.0.4/go.mod h1:qys6tmnRsYrQqIhm2bvKZH4Blx/1gTIZ2UKVY1M+Yew= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= github.com/fatih/color v1.15.0 h1:kOqh6YHBtK8aywxGerMG2Eq3H6Qgoqeo13Bk2Mv/nBs= github.com/fatih/color v1.15.0/go.mod h1:0h5ZqXfHYED7Bhv2ZJamyIOUej9KtShiJESRwBDUSsw= -github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= -github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= +github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= +github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= +github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= +github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= github.com/gertd/go-pluralize v0.2.1 h1:M3uASbVjMnTsPb0PNqg+E/24Vwigyo/tvyMTtAlLgiA= github.com/gertd/go-pluralize v0.2.1/go.mod h1:rbYaKDbsXxmRfr8uygAEKhOWsjyrrqrkHVpZvoOp8zk= github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk= @@ -302,8 +306,8 @@ github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.3.0 h1:2y3SDp0ZXuc6/cjLSZ+Q3ir+QB9T/iG5yYRXqsagWSY= -github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= +github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= @@ -311,8 +315,8 @@ github.com/go-test/deep v1.0.8 h1:TDsG77qcSprGbC6vTN8OuXp5g+J+b5Pcguhf7Zt61VM= github.com/go-test/deep v1.0.8/go.mod h1:5C2ZWiW0ErCdrYzpqxLbTX7MG14M9iiw8DgHncVwcsE= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/glog v1.1.2 h1:DVjP2PbBOzHyzA+dn3WhHIq4NdVu3Q+pvivFICf/7fo= -github.com/golang/glog v1.1.2/go.mod h1:zR+okUeTbrL6EL3xHUDxZuEtGv04p5shwip1+mL/rLQ= +github.com/golang/glog v1.2.0 h1:uCdmnmatrKCgMBlM4rMuJZWOkPDqdbZPnrMXDY4gI68= +github.com/golang/glog v1.2.0/go.mod h1:6AhwSGph0fcJtXVM/PEHPqZlFeoLxhs7/t5UDAwmO+w= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -345,8 +349,8 @@ github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx4u74HPM= github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= -github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= -github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= +github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= @@ -397,17 +401,17 @@ github.com/google/pprof v0.0.0-20210601050228-01bbb1931b22/go.mod h1:kpwsk12EmLe github.com/google/pprof v0.0.0-20210609004039-a478d1d731e9/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/s2a-go v0.1.4 h1:1kZ/sQM3srePvKs3tXAvQzo66XfcReoqFpIpIccE7Oc= -github.com/google/s2a-go v0.1.4/go.mod h1:Ej+mSEMGRnqRzjc7VtF+jdBwYG5fuJfiZ8ELkjEwM0A= +github.com/google/s2a-go v0.1.7 h1:60BLSyTrOV4/haCDW4zb1guZItoSq8foHCXrAnjBo/o= +github.com/google/s2a-go v0.1.7/go.mod h1:50CgR4k1jNlWBu4UfS4AcfhVe1r6pdZPygJ3R8F0Qdw= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.3.1 h1:KjJaJ9iWZ3jOFZIf1Lqf4laDRCasjl0BCmnEGxkdLb4= -github.com/google/uuid v1.3.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/enterprise-certificate-proxy v0.0.0-20220520183353-fd19c99a87aa/go.mod h1:17drOmN3MwGY7t0e+Ei9b45FFGA3fBs3x36SsCg1hq8= github.com/googleapis/enterprise-certificate-proxy v0.1.0/go.mod h1:17drOmN3MwGY7t0e+Ei9b45FFGA3fBs3x36SsCg1hq8= github.com/googleapis/enterprise-certificate-proxy v0.2.0/go.mod h1:8C0jb7/mgJe/9KK8Lm7X9ctZC2t60YyIpYEI16jx0Qg= -github.com/googleapis/enterprise-certificate-proxy v0.2.3 h1:yk9/cqRKtT9wXZSsRH9aurXEpJX+U6FLtpYTdC3R06k= -github.com/googleapis/enterprise-certificate-proxy v0.2.3/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k= +github.com/googleapis/enterprise-certificate-proxy v0.3.2 h1:Vie5ybvEvT75RniqhfFxPRy3Bf7vr3h0cechB90XaQs= +github.com/googleapis/enterprise-certificate-proxy v0.3.2/go.mod h1:VLSiSSBs/ksPL8kq3OBOQ6WRI2QnaFynd1DCjZ62+V0= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= github.com/googleapis/gax-go/v2 v2.1.0/go.mod h1:Q3nei7sK6ybPYH7twZdmQpAd1MKb7pfu6SK+H1/DsU0= @@ -417,18 +421,18 @@ github.com/googleapis/gax-go/v2 v2.3.0/go.mod h1:b8LNqSzNabLiUpXKkY7HAR5jr6bIT99 github.com/googleapis/gax-go/v2 v2.4.0/go.mod h1:XOTVJ59hdnfJLIP/dh8n5CGryZR2LxK9wbMD5+iXC6c= github.com/googleapis/gax-go/v2 v2.5.1/go.mod h1:h6B0KMMFNtI2ddbGJn3T3ZbwkeT6yqEF02fYlzkUCyo= github.com/googleapis/gax-go/v2 v2.6.0/go.mod h1:1mjbznJAPHFpesgE5ucqfYEscaz5kMdcIDwU/6+DDoY= -github.com/googleapis/gax-go/v2 v2.11.0 h1:9V9PWXEsWnPpQhu/PeQIkS4eGzMlTLGgt80cUUI8Ki4= -github.com/googleapis/gax-go/v2 v2.11.0/go.mod h1:DxmR61SGKkGLa2xigwuZIQpkCI2S5iydzRfb3peWZJI= +github.com/googleapis/gax-go/v2 v2.12.0 h1:A+gCJKdRfqXkr+BIRGtZLibNXf0m1f9E4HG56etFpas= +github.com/googleapis/gax-go/v2 v2.12.0/go.mod h1:y+aIqrI5eb1YGMVJfuV3185Ts/D7qKpsEkdD5+I6QGU= github.com/googleapis/go-type-adapters v1.0.0/go.mod h1:zHW75FOG2aur7gAO2B+MLby+cLsWGBF62rFAi7WjWO4= github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 h1:YBftPWNWd4WwGqtY2yeZL2ef8rHAxPBD8KFhJpmcqms= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0/go.mod h1:YN5jB8ie0yfIUg6VvR9Kz84aCaG7AsGZnLjhHbUqwPg= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.19.1 h1:/c3QmbOGMGTOumP2iT/rCwB7b0QDGLKzqOmktBjT+Is= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.19.1/go.mod h1:5SN9VR2LTsRFsrEC6FHgRbTWrTHu6tqPeKxEQv15giM= github.com/hashicorp/go-cleanhttp v0.5.2 h1:035FKYIWjmULyFRBKPs8TBQoi0x6d9G4xc9neXJWAZQ= github.com/hashicorp/go-cleanhttp v0.5.2/go.mod h1:kO/YDlP8L1346E6Sodw+PrpBSV4/SoxCXGY6BqNFT48= -github.com/hashicorp/go-getter v1.7.3 h1:bN2+Fw9XPFvOCjB0UOevFIMICZ7G2XSQHzfvLUyOM5E= -github.com/hashicorp/go-getter v1.7.3/go.mod h1:W7TalhMmbPmsSMdNjD0ZskARur/9GJ17cfHTRtXV744= -github.com/hashicorp/go-hclog v1.6.1 h1:pa92nu9bPoAqI7p+uPDCIWGAibUdlCi6TYWJEQQkLf8= -github.com/hashicorp/go-hclog v1.6.1/go.mod h1:W4Qnvbt70Wk/zYJryRzDRU/4r0kIg0PVHBcfoyhpF5M= +github.com/hashicorp/go-getter v1.7.4 h1:3yQjWuxICvSpYwqSayAdKRFcvBl1y/vogCxczWSmix0= +github.com/hashicorp/go-getter v1.7.4/go.mod h1:W7TalhMmbPmsSMdNjD0ZskARur/9GJ17cfHTRtXV744= +github.com/hashicorp/go-hclog v1.6.2 h1:NOtoftovWkDheyUM/8JW3QMiXyxJK3uHRK7wV04nD2I= +github.com/hashicorp/go-hclog v1.6.2/go.mod h1:W4Qnvbt70Wk/zYJryRzDRU/4r0kIg0PVHBcfoyhpF5M= github.com/hashicorp/go-plugin v1.6.0 h1:wgd4KxHJTVGGqWBq4QPB1i5BZNEx9BR8+OFmHDmTk8A= github.com/hashicorp/go-plugin v1.6.0/go.mod h1:lBS5MtSSBZk0SHc66KACcjjlU6WzEVP/8pwz68aMkCI= github.com/hashicorp/go-safetemp v1.0.0 h1:2HR189eFNrjHQyENnQMMpCiBAsRxzbTMIgBhEyExpmo= @@ -437,8 +441,8 @@ github.com/hashicorp/go-version v1.6.0 h1:feTTfFNnjP967rlCxM/I9g701jU+RN74YKx2mO github.com/hashicorp/go-version v1.6.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/hcl/v2 v2.19.1 h1://i05Jqznmb2EXqa39Nsvyan2o5XyMowW5fnCKW5RPI= -github.com/hashicorp/hcl/v2 v2.19.1/go.mod h1:ThLC89FV4p9MPW804KVbe/cEXoQ8NZEh+JtMeeGErHE= +github.com/hashicorp/hcl/v2 v2.20.1 h1:M6hgdyz7HYt1UN9e61j+qKJBqR3orTWbI1HKBJEdxtc= +github.com/hashicorp/hcl/v2 v2.20.1/go.mod h1:TZDqQ4kNKCbh1iJp99FdPiUaVDDUPivbqxZulxDYqL4= github.com/hashicorp/yamux v0.1.1 h1:yrQxtgseBDrq9Y652vSRDvsKCJKOUD+GzTS4Y0Y8pvE= github.com/hashicorp/yamux v0.1.1/go.mod h1:CtWFDAQgb7dxtzFs4tWbplKIe2jSi3+5vKbgIO0SLnQ= github.com/iancoleman/strcase v0.3.0 h1:nTXanmYxhfFAMjZL34Ov6gkzEsSJZ5DbhxWjvSASxEI= @@ -473,8 +477,6 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/kylelemons/godebug v0.0.0-20170820004349-d65d576e9348 h1:MtvEpTB6LX3vkb4ax0b5D2DHbNAUsen0Gx5wZoq3lV4= -github.com/kylelemons/godebug v0.0.0-20170820004349-d65d576e9348/go.mod h1:B69LEHPfb2qLo0BaaOLcbitczOKLWTsrBG9LczfCD4k= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= @@ -553,8 +555,6 @@ github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6L github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M= github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA= -github.com/sergi/go-diff v1.0.0 h1:Kpca3qRNrduNnOQeazBd0ysaKrUJiIuISHxogkT9RPQ= -github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= github.com/sethvargo/go-retry v0.2.4 h1:T+jHEQy/zKJf5s95UkguisicE0zuF9y7+/vgz08Ocec= github.com/sethvargo/go-retry v0.2.4/go.mod h1:1afjQuvh7s4gflMObvjLPaWgluLLyhA1wmVZ6KLpICw= github.com/shurcooL/githubv4 v0.0.0-20231126234147-1cffa1f02456 h1:6dExqsYngGEiixqa1vmtlUd+zbyISilg0Cf3GWVdeYM= @@ -581,14 +581,14 @@ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= -github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/tkrajina/go-reflector v0.5.6 h1:hKQ0gyocG7vgMD2M3dRlYN6WBBOmdoOzJ6njQSepKdE= github.com/tkrajina/go-reflector v0.5.6/go.mod h1:ECbqLgccecY5kPmPmXg1MrHW585yMcDkVl6IvJe64T4= -github.com/turbot/go-kit v0.9.0-rc.1 h1:6j1IidB4LpTw0TDXY0DSY6UxtrjMr0KIOBk3glO3Xfk= -github.com/turbot/go-kit v0.9.0-rc.1/go.mod h1:BrOy6Xeizj+eBzXOOWuBMSzQosirN+IGw9MksKULvd4= -github.com/turbot/steampipe-plugin-sdk/v5 v5.8.0 h1:e/5EYO7B7UZW6joxO/wqtJGYFu+7NMCqMk/tPVbquFY= -github.com/turbot/steampipe-plugin-sdk/v5 v5.8.0/go.mod h1:tYRC7FDKPTZ3MSty/tGLtH6UnVpU3zs1osF5DuktB5Q= +github.com/turbot/go-kit v0.10.0-rc.0 h1:kd+jp2ibbIV33Hc8SsMAN410Dl9Pz6SJ40axbKUlSoA= +github.com/turbot/go-kit v0.10.0-rc.0/go.mod h1:fFQqR59I5z5JeeBLfK1PjSifn4Oprs3NiQx0CxeSJxs= +github.com/turbot/steampipe-plugin-sdk/v5 v5.10.1 h1:yqiWeswy7geNzRIUJGuA7KQRq6gY5gUOc6ozBgbpNzI= +github.com/turbot/steampipe-plugin-sdk/v5 v5.10.1/go.mod h1:Ji3NU2vyZChu4aodAuSpeAS/JkApFGvsPePjOn8h9as= github.com/ulikunitz/xz v0.5.10 h1:t92gobL9l3HE202wg3rlk19F6X+JOxl9BBrCCMYEYd8= github.com/ulikunitz/xz v0.5.10/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= @@ -597,8 +597,8 @@ github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= -github.com/zclconf/go-cty v1.14.1 h1:t9fyA35fwjjUMcmL5hLER+e/rEPqrbCK1/OSE4SI9KA= -github.com/zclconf/go-cty v1.14.1/go.mod h1:VvMs5i0vgZdhYawQNq5kePSpLAoz8u1xvZgrPIxfnZE= +github.com/zclconf/go-cty v1.14.4 h1:uXXczd9QDGsgu0i/QFR/hzI5NYCHLf6NQw/atrbnhq8= +github.com/zclconf/go-cty v1.14.4/go.mod h1:VvMs5i0vgZdhYawQNq5kePSpLAoz8u1xvZgrPIxfnZE= github.com/zclconf/go-cty-debug v0.0.0-20191215020915-b22d67c1ba0b h1:FosyBZYxY34Wul7O/MSKey3txpPYyCqVO5ZyceuQJEI= github.com/zclconf/go-cty-debug v0.0.0-20191215020915-b22d67c1ba0b/go.mod h1:ZRKQfBXbGkpdV6QMzT3rU1kSTAnfu1dO8dPKjYprgj8= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= @@ -610,25 +610,29 @@ go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= -go.opentelemetry.io/otel v1.21.0 h1:hzLeKBZEL7Okw2mGzZ0cc4k/A7Fta0uoPgaJCr8fsFc= -go.opentelemetry.io/otel v1.21.0/go.mod h1:QZzNPQPm1zLX4gZK4cMi+71eaorMSGT3A4znnUvNNEo= -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v0.44.0 h1:jd0+5t/YynESZqsSyPz+7PAFdEop0dlN0+PkyHYo8oI= -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v0.44.0/go.mod h1:U707O40ee1FpQGyhvqnzmCJm1Wh6OX6GGBVn0E6Uyyk= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.21.0 h1:cl5P5/GIfFh4t6xyruOgJP5QiA1pw4fYYdv6nc6CBWw= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.21.0/go.mod h1:zgBdWWAu7oEEMC06MMKc5NLbA/1YDXV1sMpSqEeLQLg= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.21.0 h1:tIqheXEFWAZ7O8A7m+J0aPTmpJN3YQ7qetUAdkkkKpk= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.21.0/go.mod h1:nUeKExfxAQVbiVFn32YXpXZZHZ61Cc3s3Rn1pDBGAb0= -go.opentelemetry.io/otel/metric v1.21.0 h1:tlYWfeo+Bocx5kLEloTjbcDwBuELRrIFxwdQ36PlJu4= -go.opentelemetry.io/otel/metric v1.21.0/go.mod h1:o1p3CA8nNHW8j5yuQLdc1eeqEaPfzug24uvsyIEJRWM= -go.opentelemetry.io/otel/sdk v1.21.0 h1:FTt8qirL1EysG6sTQRZ5TokkU8d0ugCj8htOgThZXQ8= -go.opentelemetry.io/otel/sdk v1.21.0/go.mod h1:Nna6Yv7PWTdgJHVRD9hIYywQBRx7pbox6nwBnZIxl/E= -go.opentelemetry.io/otel/sdk/metric v1.21.0 h1:smhI5oD714d6jHE6Tie36fPx4WDFIg+Y6RfAY4ICcR0= -go.opentelemetry.io/otel/sdk/metric v1.21.0/go.mod h1:FJ8RAsoPGv/wYMgBdUJXOm+6pzFY3YdljnXtv1SBE8Q= -go.opentelemetry.io/otel/trace v1.21.0 h1:WD9i5gzvoUPuXIXH24ZNBudiarZDKuekPqi/E8fpfLc= -go.opentelemetry.io/otel/trace v1.21.0/go.mod h1:LGbsEB0f9LGjN+OZaQQ26sohbOmiMR+BaslueVtS/qQ= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.47.0 h1:UNQQKPfTDe1J81ViolILjTKPr9WetKW6uei2hFgJmFs= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.47.0/go.mod h1:r9vWsPS/3AQItv3OSlEJ/E4mbrhUbbw18meOjArPtKQ= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.47.0 h1:sv9kVfal0MK0wBMCOGr+HeJm9v803BkJxGrk2au7j08= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.47.0/go.mod h1:SK2UL73Zy1quvRPonmOmRDiWk1KBV3LyIeeIxcEApWw= +go.opentelemetry.io/otel v1.26.0 h1:LQwgL5s/1W7YiiRwxf03QGnWLb2HW4pLiAhaA5cZXBs= +go.opentelemetry.io/otel v1.26.0/go.mod h1:UmLkJHUAidDval2EICqBMbnAd0/m2vmpf/dAM+fvFs4= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.26.0 h1:+hm+I+KigBy3M24/h1p/NHkUx/evbLH0PNcjpMyCHc4= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.26.0/go.mod h1:NjC8142mLvvNT6biDpaMjyz78kyEHIwAJlSX0N9P5KI= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.24.0 h1:t6wl9SPayj+c7lEIFgm4ooDBZVb01IhLB4InpomhRw8= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.24.0/go.mod h1:iSDOcsnSA5INXzZtwaBPrKp/lWu/V14Dd+llD0oI2EA= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.24.0 h1:Mw5xcxMwlqoJd97vwPxA8isEaIoxsta9/Q51+TTJLGE= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.24.0/go.mod h1:CQNu9bj7o7mC6U7+CA/schKEYakYXWr79ucDHTMGhCM= +go.opentelemetry.io/otel/metric v1.26.0 h1:7S39CLuY5Jgg9CrnA9HHiEjGMF/X2VHvoXGgSllRz30= +go.opentelemetry.io/otel/metric v1.26.0/go.mod h1:SY+rHOI4cEawI9a7N1A4nIg/nTQXe1ccCNWYOJUrpX4= +go.opentelemetry.io/otel/sdk v1.26.0 h1:Y7bumHf5tAiDlRYFmGqetNcLaVUZmh4iYfmGxtmz7F8= +go.opentelemetry.io/otel/sdk v1.26.0/go.mod h1:0p8MXpqLeJ0pzcszQQN4F0S5FVjBLgypeGSngLsmirs= +go.opentelemetry.io/otel/sdk/metric v1.26.0 h1:cWSks5tfriHPdWFnl+qpX3P681aAYqlZHcAyHw5aU9Y= +go.opentelemetry.io/otel/sdk/metric v1.26.0/go.mod h1:ClMFFknnThJCksebJwz7KIyEDHO+nTB6gK8obLy8RyE= +go.opentelemetry.io/otel/trace v1.26.0 h1:1ieeAUb4y0TE26jUFrCIXKpTuVK7uJGN9/Z/2LP5sQA= +go.opentelemetry.io/otel/trace v1.26.0/go.mod h1:4iDxvGDQuUkHve82hJJ8UqrwswHYsZuWCBllGV2U2y0= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= -go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I= -go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM= +go.opentelemetry.io/proto/otlp v1.2.0 h1:pVeZGk7nXDC9O2hncA6nHldxEjm6LByfA2aN8IOkz94= +go.opentelemetry.io/proto/otlp v1.2.0/go.mod h1:gGpR8txAl5M03pDhMC79G6SdqNV26naRm/KDsgaHD8A= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= @@ -638,9 +642,8 @@ golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.0.0-20220314234659-1baeb1ce4c0b/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.16.0 h1:mMMrFzRSCF0GvB7Ne27XVtVAaXLrPmgPC7/v0tkwHaY= -golang.org/x/crypto v0.16.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= +golang.org/x/crypto v0.21.0 h1:X31++rzVUdKhX5sWmSOFZxx8UW/ldWx55cbf08iNAMA= +golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -679,6 +682,8 @@ golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= +golang.org/x/mod v0.8.0 h1:LUYupSeNrTNCGzR/hVBk2NHZO4hXcVaW1k4Qx7rjPx8= +golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -717,7 +722,6 @@ golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLd golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= golang.org/x/net v0.0.0-20210503060351-7fd8e65b6420/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220325170049-de3da57026de/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= @@ -730,8 +734,8 @@ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug golang.org/x/net v0.0.0-20220909164309-bea034e7d591/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= golang.org/x/net v0.0.0-20221014081412-f15817d10f9b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= -golang.org/x/net v0.19.0 h1:zTwKpTd2XuCqf8huc7Fo2iSy+4RHPd10s4KzeTnVr1c= -golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U= +golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs= +golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -757,8 +761,8 @@ golang.org/x/oauth2 v0.0.0-20220822191816-0ebed06d0094/go.mod h1:h4gKUeWbJ4rQPri golang.org/x/oauth2 v0.0.0-20220909003341-f21342109be1/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= golang.org/x/oauth2 v0.0.0-20221014153046-6fdb5e3db783/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= golang.org/x/oauth2 v0.1.0/go.mod h1:G9FE4dLTsbXUu90h/Pf85g4w1D+SSAgR+q46nJZ8M4A= -golang.org/x/oauth2 v0.15.0 h1:s8pnnxNVzjWyrvYdFUQq5llS1PX2zhPXmccZv99h7uQ= -golang.org/x/oauth2 v0.15.0/go.mod h1:q48ptWNTY5XWf+JNten23lcvHpLJ0ZSxF5ttTHKVCAM= +golang.org/x/oauth2 v0.17.0 h1:6m3ZPmLEFdVxKKWnKq4VqZ60gutO35zm+zrAHVmHyDQ= +golang.org/x/oauth2 v0.17.0/go.mod h1:OzPDGQiuQMguemayvdylqddI7qcD9lnSDb+1FiwQ5HA= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -773,8 +777,8 @@ golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20220601150217-0de741cfad7f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220929204114-8fcdb60fdcc0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.5.0 h1:60k92dhOjHxJkrqnwsfl8KuaHbn/5dl0lUPUklKo3qE= -golang.org/x/sync v0.5.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ= +golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -850,12 +854,11 @@ golang.org/x/sys v0.0.0-20220624220833-87e55d714810/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc= -golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.19.0 h1:q5f1RH2jigJ1MoAWp2KTp3gm5zAGFUTarQZ5U386+4o= +golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= @@ -929,6 +932,8 @@ golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= +golang.org/x/tools v0.6.0 h1:BOw41kyTf3PuCW1pVQf8+Cyg8pMlkYB1oo9iJ6D/lKM= +golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -986,16 +991,17 @@ google.golang.org/api v0.96.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ google.golang.org/api v0.97.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s= google.golang.org/api v0.98.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s= google.golang.org/api v0.100.0/go.mod h1:ZE3Z2+ZOr87Rx7dqFsdRQkRBk36kDtp/h+QpHbB7a70= -google.golang.org/api v0.126.0 h1:q4GJq+cAdMAC7XP7njvQ4tvohGLiSlytuL4BQxbIZ+o= -google.golang.org/api v0.126.0/go.mod h1:mBwVAtz+87bEN6CbA1GtZPDOqY2R5ONPqJeIlvyo4Aw= +google.golang.org/api v0.162.0 h1:Vhs54HkaEpkMBdgGdOT2P6F0csGG/vxDS0hWHJzmmps= +google.golang.org/api v0.162.0/go.mod h1:6SulDkfoBIg4NFmCuZ39XeeAgSHCPecfSUuDyYlAHs0= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c= google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM= +google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= @@ -1097,12 +1103,12 @@ google.golang.org/genproto v0.0.0-20221010155953-15ba04fc1c0e/go.mod h1:3526vdqw google.golang.org/genproto v0.0.0-20221014173430-6e2ab493f96b/go.mod h1:1vXfmgAz9N9Jx0QA82PqRVauvCz1SGSz739p0f183jM= google.golang.org/genproto v0.0.0-20221014213838-99cd37c6964a/go.mod h1:1vXfmgAz9N9Jx0QA82PqRVauvCz1SGSz739p0f183jM= google.golang.org/genproto v0.0.0-20221025140454-527a21cfbd71/go.mod h1:9qHF0xnpdSfF6knlcsnpzUu5y+rpwgbvsyGAZPBMg4s= -google.golang.org/genproto v0.0.0-20230822172742-b8732ec3820d h1:VBu5YqKPv6XiJ199exd8Br+Aetz+o08F+PLMnwJQHAY= -google.golang.org/genproto v0.0.0-20230822172742-b8732ec3820d/go.mod h1:yZTlhN0tQnXo3h00fuXNCxJdLdIdnVFVBaRJ5LWBbw4= -google.golang.org/genproto/googleapis/api v0.0.0-20230822172742-b8732ec3820d h1:DoPTO70H+bcDXcd39vOqb2viZxgqeBeSGtZ55yZU4/Q= -google.golang.org/genproto/googleapis/api v0.0.0-20230822172742-b8732ec3820d/go.mod h1:KjSP20unUpOx5kyQUFa7k4OJg0qeJ7DEZflGDu2p6Bk= -google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d h1:uvYuEyMHKNt+lT4K3bN6fGswmK8qSvcreM3BwjDh+y4= -google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d/go.mod h1:+Bk1OCOj40wS2hwAMA+aCW9ypzm63QTBBHp6lQ3p+9M= +google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de h1:F6qOa9AZTYJXOUEr4jDysRDLrm4PHePlge4v4TGAlxY= +google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de/go.mod h1:VUhTRKeHn9wwcdrk73nvdC9gF178Tzhmt/qyaFcPLSo= +google.golang.org/genproto/googleapis/api v0.0.0-20240227224415-6ceb2ff114de h1:jFNzHPIeuzhdRwVhbZdiym9q0ory/xY3sA+v2wPg8I0= +google.golang.org/genproto/googleapis/api v0.0.0-20240227224415-6ceb2ff114de/go.mod h1:5iCWqnniDlqZHrd3neWVTOwvh/v6s3232omMecelax8= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240401170217-c3f982113cda h1:LI5DOvAxUPMv/50agcLLoo+AdWc1irS9Rzz4vPuD1V4= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240401170217-c3f982113cda/go.mod h1:WtryC6hu0hhx87FDGxWCDptyssuo68sk10vYjF+T9fY= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= @@ -1138,8 +1144,8 @@ google.golang.org/grpc v1.48.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACu google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/grpc v1.50.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/grpc v1.50.1/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= -google.golang.org/grpc v1.59.0 h1:Z5Iec2pjwb+LEOqzpB2MR12/eKFhDPhuqW91O+4bwUk= -google.golang.org/grpc v1.59.0/go.mod h1:aUPDwccQo6OTjy7Hct4AfBPD1GptF4fyUjIkQ9YtF98= +google.golang.org/grpc v1.63.2 h1:MUeiw1B2maTVZthpU5xvASfTh3LDbxHd6IJ6QQVU+xM= +google.golang.org/grpc v1.63.2/go.mod h1:WAX/8DgncnokcFUldAxq7GeB5DXHDbMF+lLvDomNkRA= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= @@ -1156,8 +1162,8 @@ google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQ google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= +google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=