diff --git a/WORKSPACE b/WORKSPACE index bce8d2647c4c..91a42184a96c 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -298,8 +298,8 @@ go_repository( name = "com_github_aws_aws_sdk_go_v2_service_ssooidc", build_file_proto_mode = "disable_global", importpath = "github.com/aws/aws-sdk-go-v2/service/ssooidc", - sum = "h1:xLPZMyuZ4GuqRCIec/zWuIhRFPXh2UOJdLXBSi64ZWQ=", - version = "v1.14.5", + sum = "h1:Qe0r0lVURDDeBQJ4yP+BOrJkvkiCo/3FH/t+wY11dmw=", + version = "v1.24.0", ) # Overrides the default provided protobuf dep from rules_go by a more diff --git a/deps.bzl b/deps.bzl index 9aa750eab271..60c3f875d1a4 100644 --- a/deps.bzl +++ b/deps.bzl @@ -58,6 +58,13 @@ def go_dependencies(): sum = "h1:yczvlwMsfcVu/JtejqfrLwXuSP0yZFhmcss3caEvHw8=", version = "v0.17.2", ) + go_repository( + name = "com_github_acarl005_stripansi", + build_file_proto_mode = "disable_global", + importpath = "github.com/acarl005/stripansi", + sum = "h1:licZJFw2RwpHMqeKTCYkitsPqHNxTmd4SNR5r94FGM8=", + version = "v0.0.0-20180116102854-5a71ef0e047d", + ) go_repository( name = "com_github_adalogics_go_fuzz_headers", build_file_proto_mode = "disable_global", @@ -331,6 +338,13 @@ def go_dependencies(): sum = "h1:DklsrG3dyBCFEj5IhUbnKptjxatkF07cF2ak3yi77so=", version = "v0.0.0-20230301143203-a9d515a09cc2", ) + go_repository( + name = "com_github_atotto_clipboard", + build_file_proto_mode = "disable_global", + importpath = "github.com/atotto/clipboard", + sum = "h1:EH0zSVneZPSuFR11BlR9YppQTVDbh5+16AmcJi4g1z4=", + version = "v0.1.4", + ) go_repository( name = "com_github_aws_aws_sdk_go", build_file_proto_mode = "disable_global", @@ -342,71 +356,71 @@ def go_dependencies(): name = "com_github_aws_aws_sdk_go_v2", build_file_proto_mode = "disable_global", importpath = "github.com/aws/aws-sdk-go-v2", - sum = "h1:Y773UK7OBqhzi5VDXMi1zVGsoj+CVHs2eaC2bDsLwi0=", - version = "v1.17.6", + sum = "h1:5554eUqIYVWpU0YmeeYZ0wU64H2VLBs8TlhRB2L+EkA=", + version = "v1.26.1", ) go_repository( name = "com_github_aws_aws_sdk_go_v2_aws_protocol_eventstream", build_file_proto_mode = "disable_global", importpath = "github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream", - sum = "h1:dK82zF6kkPeCo8J1e+tGx4JdvDIQzj7ygIoLg8WMuGs=", - version = "v1.4.10", + sum = "h1:x6xsQXGSmW6frevwDA+vi/wqhp1ct18mVXYN08/93to=", + version = "v1.6.2", ) go_repository( name = "com_github_aws_aws_sdk_go_v2_config", build_file_proto_mode = "disable_global", importpath = "github.com/aws/aws-sdk-go-v2/config", - sum = "h1:4r7gsCu8Ekwl5iJGE/GmspA2UifqySCCkyyyPFeWs3w=", - version = "v1.18.16", + sum = "h1:WbKW8hOzrWoOA/+35S5okqO/2Ap8hkkFUzoW8Hzq24A=", + version = "v1.27.13", ) go_repository( name = "com_github_aws_aws_sdk_go_v2_credentials", build_file_proto_mode = "disable_global", importpath = "github.com/aws/aws-sdk-go-v2/credentials", - sum = "h1:GgToSxaENX/1zXIGNFfiVk4hxryYJ5Vt4Mh8XLAL7Lc=", - version = "v1.13.16", + sum = "h1:XDCJDzk/u5cN7Aple7D/MiAhx1Rjo/0nueJ0La8mRuE=", + version = "v1.17.13", ) go_repository( name = "com_github_aws_aws_sdk_go_v2_feature_ec2_imds", build_file_proto_mode = "disable_global", importpath = "github.com/aws/aws-sdk-go-v2/feature/ec2/imds", - sum = "h1:5qyqXASrX2zy5cTnoHHa4N2c3Lc94GH7gjnBP3GwKdU=", - version = "v1.12.24", + sum = "h1:FVJ0r5XTHSmIHJV6KuDmdYhEpvlHpiSd38RQWhut5J4=", + version = "v1.16.1", ) go_repository( name = "com_github_aws_aws_sdk_go_v2_feature_s3_manager", build_file_proto_mode = "disable_global", importpath = "github.com/aws/aws-sdk-go-v2/feature/s3/manager", - sum = "h1:kFDCPqqVvb9vYcW82L7xYfrBGpuxXQ/8A/zYVayRQK4=", - version = "v1.11.56", + sum = "h1:9b1Os1s11mF5qTIKLgSsyPG810di2+ySSLIIt9bwe9I=", + version = "v1.16.17", ) go_repository( name = "com_github_aws_aws_sdk_go_v2_internal_configsources", build_file_proto_mode = "disable_global", importpath = "github.com/aws/aws-sdk-go-v2/internal/configsources", - sum = "h1:y+8n9AGDjikyXoMBTRaHHHSaFEB8267ykmvyPodJfys=", - version = "v1.1.30", + sum = "h1:aw39xVGeRWlWx9EzGVnhOR4yOjQDHPQ6o6NmBlscyQg=", + version = "v1.3.5", ) go_repository( name = "com_github_aws_aws_sdk_go_v2_internal_endpoints_v2", build_file_proto_mode = "disable_global", importpath = "github.com/aws/aws-sdk-go-v2/internal/endpoints/v2", - sum = "h1:r+Kv+SEJquhAZXaJ7G4u44cIwXV3f8K+N482NNAzJZA=", - version = "v2.4.24", + sum = "h1:PG1F3OD1szkuQPzDw3CIQsRIrtTlUC3lP84taWzHlq0=", + version = "v2.6.5", ) go_repository( name = "com_github_aws_aws_sdk_go_v2_internal_ini", build_file_proto_mode = "disable_global", importpath = "github.com/aws/aws-sdk-go-v2/internal/ini", - sum = "h1:hf+Vhp5WtTdcSdE+yEcUz8L73sAzN0R+0jQv+Z51/mI=", - version = "v1.3.31", + sum = "h1:hT8rVHwugYE2lEfdFE0QWVo81lF7jMrYJVDWI+f+VxU=", + version = "v1.8.0", ) go_repository( name = "com_github_aws_aws_sdk_go_v2_internal_v4a", build_file_proto_mode = "disable_global", importpath = "github.com/aws/aws-sdk-go-v2/internal/v4a", - sum = "h1:lTqBRUuy8oLhBsnnVZf14uRbIHPHCrGqg4Plc8gU/1U=", - version = "v1.0.22", + sum = "h1:81KE7vaZzrl7yHBYHVEzYB8sypz11NMOZ40YlWvPxsU=", + version = "v1.3.5", ) go_repository( name = "com_github_aws_aws_sdk_go_v2_service_appconfig", @@ -419,71 +433,92 @@ def go_dependencies(): name = "com_github_aws_aws_sdk_go_v2_service_cloudwatch", build_file_proto_mode = "disable_global", importpath = "github.com/aws/aws-sdk-go-v2/service/cloudwatch", - sum = "h1:5WstmcviZ9X/h5nORkGT4akyLmWjrLxE9s8oKkFhkD4=", - version = "v1.15.0", + sum = "h1:Lrq1Tuj+tA569WQzuESkm/rUfhIQMmNoZW6rRuZVHVI=", + version = "v1.38.1", ) go_repository( name = "com_github_aws_aws_sdk_go_v2_service_codecommit", build_file_proto_mode = "disable_global", importpath = "github.com/aws/aws-sdk-go-v2/service/codecommit", - sum = "h1:iEqboXubLCABYFoClUyX/Bv8DfhmV39hPKdRbs21/kI=", - version = "v1.11.0", + sum = "h1:Vl2fqFRNQUqiObnet19YNjJ11ThR9E91516GbX1VS+I=", + version = "v1.22.5", + ) + go_repository( + name = "com_github_aws_aws_sdk_go_v2_service_ec2", + build_file_proto_mode = "disable_global", + importpath = "github.com/aws/aws-sdk-go-v2/service/ec2", + sum = "h1:NbjXshriDs5bGeqKvrOF70L41X0aCMC60ImN2vkcQAc=", + version = "v1.161.1", + ) + go_repository( + name = "com_github_aws_aws_sdk_go_v2_service_eks", + build_file_proto_mode = "disable_global", + importpath = "github.com/aws/aws-sdk-go-v2/service/eks", + sum = "h1:rjzXOAVgM2gxEg2DBRJCB1qAEbq8MUfdnfvQpiSxMPE=", + version = "v1.42.2", + ) + go_repository( + name = "com_github_aws_aws_sdk_go_v2_service_iam", + build_file_proto_mode = "disable_global", + importpath = "github.com/aws/aws-sdk-go-v2/service/iam", + sum = "h1:4rE8nIQ7HabhytHpGacgyLF4NjsswF4rBe7smA2kxa0=", + version = "v1.32.1", ) go_repository( name = "com_github_aws_aws_sdk_go_v2_service_internal_accept_encoding", build_file_proto_mode = "disable_global", importpath = "github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding", - sum = "h1:y2+VQzC6Zh2ojtV2LoC0MNwHWc6qXv/j2vrQtlftkdA=", - version = "v1.9.11", + sum = "h1:Ji0DY1xUsUr3I8cHps0G+XM3WWU16lP6yG8qu1GAZAs=", + version = "v1.11.2", ) go_repository( name = "com_github_aws_aws_sdk_go_v2_service_internal_checksum", build_file_proto_mode = "disable_global", importpath = "github.com/aws/aws-sdk-go-v2/service/internal/checksum", - sum = "h1:B/hO3jfWRm7hP00UeieNlI5O2xP5WJ27tyJG5lzc7AM=", - version = "v1.1.25", + sum = "h1:ZMeFZ5yk+Ek+jNr1+uwCd2tG89t6oTS5yVWpa6yy2es=", + version = "v1.3.7", ) go_repository( name = "com_github_aws_aws_sdk_go_v2_service_internal_presigned_url", build_file_proto_mode = "disable_global", importpath = "github.com/aws/aws-sdk-go-v2/service/internal/presigned-url", - sum = "h1:c5qGfdbCHav6viBwiyDns3OXqhqAbGjfIB4uVu2ayhk=", - version = "v1.9.24", + sum = "h1:ogRAwT1/gxJBcSWDMZlgyFUM962F51A5CRhDLbxLdmo=", + version = "v1.11.7", ) go_repository( name = "com_github_aws_aws_sdk_go_v2_service_internal_s3shared", build_file_proto_mode = "disable_global", importpath = "github.com/aws/aws-sdk-go-v2/service/internal/s3shared", - sum = "h1:i4RH8DLv/BHY0fCrXYQDr+DGnWzaxB3Ee/esxUaSavk=", - version = "v1.13.24", + sum = "h1:f9RyWNtS8oH7cZlbn+/JNPpjUk5+5fLd5lM9M0i49Ys=", + version = "v1.17.5", ) go_repository( name = "com_github_aws_aws_sdk_go_v2_service_kms", build_file_proto_mode = "disable_global", importpath = "github.com/aws/aws-sdk-go-v2/service/kms", - sum = "h1:A8FMqkP+OlnSiVY+2QakwqW0fAGnE18TqPig/T7aJU0=", - version = "v1.14.0", + sum = "h1:5wtyAwuUiJiM3DHYeGZmP5iMonM7DFBWAEaaVPHYZA0=", + version = "v1.31.1", ) go_repository( name = "com_github_aws_aws_sdk_go_v2_service_s3", build_file_proto_mode = "disable_global", importpath = "github.com/aws/aws-sdk-go-v2/service/s3", - sum = "h1:zzTm99krKsFcF4N7pu2z17yCcAZpQYZ7jnJZPIgEMXE=", - version = "v1.30.6", + sum = "h1:rq2hglTQM3yHZvOPVMtNvLS5x6hijx7JvRDgKiTNDGQ=", + version = "v1.53.2", ) go_repository( name = "com_github_aws_aws_sdk_go_v2_service_sso", build_file_proto_mode = "disable_global", importpath = "github.com/aws/aws-sdk-go-v2/service/sso", - sum = "h1:bdKIX6SVF3nc3xJFw6Nf0igzS6Ff/louGq8Z6VP/3Hs=", - version = "v1.12.5", + sum = "h1:o5cTaeunSpfXiLTIBx5xo2enQmiChtu1IBbzXnfU9Hs=", + version = "v1.20.6", ) go_repository( name = "com_github_aws_aws_sdk_go_v2_service_sts", build_file_proto_mode = "disable_global", importpath = "github.com/aws/aws-sdk-go-v2/service/sts", - sum = "h1:rIFn5J3yDoeuKCE9sESXqM5POTAhOP1du3bv/qTL+tE=", - version = "v1.18.6", + sum = "h1:et3Ta53gotFR4ERLXXHIHl/Uuk1qYpP5uU7cvNql8ns=", + version = "v1.28.7", ) go_repository( name = "com_github_aws_constructs_go_constructs_v10", @@ -503,8 +538,8 @@ def go_dependencies(): name = "com_github_aws_smithy_go", build_file_proto_mode = "disable_global", importpath = "github.com/aws/smithy-go", - sum = "h1:hgz0X/DX0dGqTYpGALqXJoRKRj5oQ7150i5FdTePzO8=", - version = "v1.13.5", + sum = "h1:tbp628ireGtzcHDDmLT/6ADHidqnwgF57XOXZe6tp4Q=", + version = "v1.20.2", ) go_repository( name = "com_github_aybabtme_iocontrol", @@ -972,6 +1007,20 @@ def go_dependencies(): sum = "h1:riuOFg3Ay1Js10GQtCAsCL2Hp2DJweUlYjKaxXteYV8=", version = "v0.0.0-20240130195846-91a06ffe6715", ) + go_repository( + name = "com_github_charmbracelet_bubbles", + build_file_proto_mode = "disable_global", + importpath = "github.com/charmbracelet/bubbles", + sum = "h1:PYv1A036luoBGroX6VWjQIE9Syf2Wby2oOl/39KLfy0=", + version = "v0.18.0", + ) + go_repository( + name = "com_github_charmbracelet_bubbletea", + build_file_proto_mode = "disable_global", + importpath = "github.com/charmbracelet/bubbletea", + sum = "h1:Eeb+n75Om9gQ+I6YpbCXQRKHt5Pn4vMwusQpwLiEgJQ=", + version = "v0.26.2", + ) go_repository( name = "com_github_charmbracelet_glamour", build_file_proto_mode = "disable_global", @@ -979,6 +1028,20 @@ def go_dependencies(): sum = "h1:wu15ykPdB7X6chxugG/NNfDUbyyrCLV9XBalj5wdu3g=", version = "v0.5.0", ) + go_repository( + name = "com_github_charmbracelet_harmonica", + build_file_proto_mode = "disable_global", + importpath = "github.com/charmbracelet/harmonica", + sum = "h1:8NxJWRWg/bzKqqEaaeFNipOu77YR5t8aSwG4pgaUBiQ=", + version = "v0.2.0", + ) + go_repository( + name = "com_github_charmbracelet_lipgloss", + build_file_proto_mode = "disable_global", + importpath = "github.com/charmbracelet/lipgloss", + sum = "h1:KWeXFSexGcfahHX+54URiZGkBFazf70JNMtwg/AFW3s=", + version = "v0.10.0", + ) go_repository( name = "com_github_chromedp_cdproto", build_file_proto_mode = "disable_global", @@ -1136,8 +1199,8 @@ def go_dependencies(): name = "com_github_containerd_console", build_file_proto_mode = "disable_global", importpath = "github.com/containerd/console", - sum = "h1:lIr7SlA5PxZyMV30bDW0MGbiOPXwc63yRuCP0ARubLw=", - version = "v1.0.3", + sum = "h1:q2hJAaP1k2wIvVRd/hEHD7lacgqrCPS+k8g1MndzfWY=", + version = "v1.0.4-0.20230313162750-1ae8d489ac81", ) go_repository( name = "com_github_containerd_containerd", @@ -1297,6 +1360,13 @@ def go_dependencies(): sum = "h1:qMCsGGgs+MAzDFyp9LpAe1Lqy/fY/qCovCm0qnXZOBM=", version = "v2.0.3", ) + go_repository( + name = "com_github_creack_goselect", + build_file_proto_mode = "disable_global", + importpath = "github.com/creack/goselect", + sum = "h1:2DNy14+JPjRBgPzAd1thbQp4BSIihxcBf0IXhQXDRa0=", + version = "v0.1.2", + ) go_repository( name = "com_github_creack_pty", build_file_proto_mode = "disable_global", @@ -1517,6 +1587,13 @@ def go_dependencies(): sum = "h1:vV6w1AhK4VMnhBno/TPVCoK9U/LP0PkLCS9tbxHdi/U=", version = "v1.1.1", ) + go_repository( + name = "com_github_dineshappavoo_basex", + build_file_proto_mode = "disable_global", + importpath = "github.com/dineshappavoo/basex", + sum = "h1:fctNkSsavbXpt8geFWZb8n+noCqS8MrOXRJ/YfdZ2dQ=", + version = "v0.0.0-20170425072625-481a6f6dc663", + ) go_repository( name = "com_github_distribution_distribution_v3", build_file_proto_mode = "disable_global", @@ -1762,6 +1839,13 @@ def go_dependencies(): sum = "h1:BBade+JlV/f7JstZ4pitd4tHhpN+w+6I+LyOS7B4fyU=", version = "v0.0.0-20200331213906-ae555eb2afa4", ) + go_repository( + name = "com_github_erikgeiser_coninput", + build_file_proto_mode = "disable_global", + importpath = "github.com/erikgeiser/coninput", + sum = "h1:Y/CXytFA4m6baUTXGLOoWe4PQhGxaX0KpnayAqC48p4=", + version = "v0.0.0-20211004153227-1c3628e74d0f", + ) go_repository( name = "com_github_evanphx_json_patch", build_file_proto_mode = "disable_global", @@ -1888,6 +1972,13 @@ def go_dependencies(): sum = "h1:xJWosq3BQovQ4QrdPO72OrPiWuGgEsxY8ldYsJbPrqI=", version = "v1.8.7", ) + go_repository( + name = "com_github_fxamacker_cbor_v2", + build_file_proto_mode = "disable_global", + importpath = "github.com/fxamacker/cbor/v2", + sum = "h1:sU6J2usfADwWlYDAFhZBQ6TnLFBHxgesMrQfQgk1tWA=", + version = "v2.6.0", + ) go_repository( name = "com_github_garyburd_redigo", build_file_proto_mode = "disable_global", @@ -3537,6 +3628,13 @@ def go_dependencies(): sum = "h1:2uT3aivO7NVpUPGcQX7RbHijHMyWix/yCnIrCWc+5co=", version = "v0.0.0-20221124155335-4616370d1a84", ) + go_repository( + name = "com_github_jedib0t_go_pretty_v6", + build_file_proto_mode = "disable_global", + importpath = "github.com/jedib0t/go-pretty/v6", + sum = "h1:ACteMBRrrmm1gMsXe9PSTOClQ63IXDUt03H5U+UV8OU=", + version = "v6.5.9", + ) go_repository( name = "com_github_jessevdk_go_flags", build_file_proto_mode = "disable_global", @@ -3572,6 +3670,13 @@ def go_dependencies(): sum = "h1:HUMERORf3I3ZdX05WaQ6MIpd/NJ434hTp5YiKgfCL6c=", version = "v1.15.1", ) + go_repository( + name = "com_github_jig_teereadcloser", + build_file_proto_mode = "disable_global", + importpath = "github.com/jig/teereadcloser", + sum = "h1:dSwwtWuwMyarzsbVWOq4QJ8xVy9wgcNomvWyGtrKe+E=", + version = "v0.0.0-20181016160506-953720c48e05", + ) go_repository( name = "com_github_jinzhu_copier", build_file_proto_mode = "disable_global", @@ -4181,6 +4286,13 @@ def go_dependencies(): sum = "h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=", version = "v0.0.20", ) + go_repository( + name = "com_github_mattn_go_localereader", + build_file_proto_mode = "disable_global", + importpath = "github.com/mattn/go-localereader", + sum = "h1:ygSAOl7ZXTx4RdPYinUpg6W99U8jWvWi9Ye2JC/oIi4=", + version = "v0.0.1", + ) go_repository( name = "com_github_mattn_go_runewidth", build_file_proto_mode = "disable_global", @@ -4503,6 +4615,20 @@ def go_dependencies(): sum = "h1:8imxQsjDm8yFEAVBe7azKmKSgzSkZXDuKkSq9374khM=", version = "v0.2.0", ) + go_repository( + name = "com_github_muesli_ansi", + build_file_proto_mode = "disable_global", + importpath = "github.com/muesli/ansi", + sum = "h1:ZK8zHtRHOkbHy6Mmr5D264iyp3TiX5OmNcI5cIARiQI=", + version = "v0.0.0-20230316100256-276c6243b2f6", + ) + go_repository( + name = "com_github_muesli_cancelreader", + build_file_proto_mode = "disable_global", + importpath = "github.com/muesli/cancelreader", + sum = "h1:3I4Kt4BQjOR54NavqnDogx/MIoWBFa0StPA8ELUXHmA=", + version = "v0.2.2", + ) go_repository( name = "com_github_muesli_reflow", build_file_proto_mode = "disable_global", @@ -4559,6 +4685,13 @@ def go_dependencies(): sum = "h1:D6paGObi5Wud7xg83MaEFyjxQB1W5bz5d0IFppr+ymk=", version = "v0.0.0-20160511093645-99348263ae86", ) + go_repository( + name = "com_github_neelance_parallel", + build_file_proto_mode = "disable_global", + importpath = "github.com/neelance/parallel", + sum = "h1:NZOii9TDGRAfCS5VM16XnF4K7afoLQmIiZX8EkKnxtE=", + version = "v0.0.0-20160708114440-4de9ce63d14c", + ) go_repository( name = "com_github_neelance_sourcemap", build_file_proto_mode = "disable_global", @@ -4654,15 +4787,15 @@ def go_dependencies(): name = "com_github_onsi_ginkgo_v2", build_file_proto_mode = "disable_global", importpath = "github.com/onsi/ginkgo/v2", - sum = "h1:vSmGj2Z5YPb9JwCWT6z6ihcUvDhuXLc3sJiqd3jMKAY=", - version = "v2.14.0", + sum = "h1:79HwNRBAZHOEwrczrgSOPy+eFTTlIGELKy5as+ClttY=", + version = "v2.15.0", ) go_repository( name = "com_github_onsi_gomega", build_file_proto_mode = "disable_global", importpath = "github.com/onsi/gomega", - sum = "h1:hvMK7xYz4D3HapigLTeGdId/NcfQx1VHMJc60ew99+8=", - version = "v1.30.0", + sum = "h1:54UJxxj6cPInHS3a35wm6BK/F9nHYueZ1NVujHDrnXE=", + version = "v1.31.0", ) go_repository( name = "com_github_opencontainers_go_digest", @@ -5131,8 +5264,8 @@ def go_dependencies(): name = "com_github_rivo_uniseg", build_file_proto_mode = "disable_global", importpath = "github.com/rivo/uniseg", - sum = "h1:Sovz9sDSwbOz9tgUy8JpT+KgCkPYJEN/oYzlJiYTNLg=", - version = "v0.4.6", + sum = "h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ=", + version = "v0.4.7", ) go_repository( name = "com_github_rjeczalik_notify", @@ -5240,6 +5373,13 @@ def go_dependencies(): sum = "h1:OkMGxebDjyw0ULyrTYWeN0UNCCkmCWfjPnIA2W6oviI=", version = "v0.0.0-20210923224102-525f6e181f06", ) + go_repository( + name = "com_github_sahilm_fuzzy", + build_file_proto_mode = "disable_global", + importpath = "github.com/sahilm/fuzzy", + sum = "h1:MvTmaQdww/z0Q4wrYjDSCcZ78NoftLQyHBSLW/Cx79Y=", + version = "v0.1.1-0.20230530133925-c48e322e2a8f", + ) go_repository( name = "com_github_satori_go_uuid", build_file_proto_mode = "disable_global", @@ -5696,6 +5836,13 @@ def go_dependencies(): sum = "h1:lOQJ+wDbQ5lSBuAv6GgCuoFKucte5k2bPf1a7navsd0=", version = "v0.0.0-20240426173441-db5b0a145ceb", ) + go_repository( + name = "com_github_sourcegraph_src_cli", + build_file_proto_mode = "disable_global", + importpath = "github.com/sourcegraph/src-cli", + sum = "h1:DzWR75oJG259IYRsBg25hMNLcvuaPtFUD7TrOjfMUdU=", + version = "v0.0.0-20240510130343-b24f883ebc37", + ) go_repository( name = "com_github_sourcegraph_zoekt", build_file_proto_mode = "disable_global", @@ -5763,6 +5910,13 @@ def go_dependencies(): sum = "h1:Kq1fyeebqsBfbjZj4EL7gj2IO0mMaiyjYUWcUsl2O44=", version = "v1.8.1", ) + go_repository( + name = "com_github_ssor_bom", + build_file_proto_mode = "disable_global", + importpath = "github.com/ssor/bom", + sum = "h1:pvbZ0lM0XWPBqUKqFU8cmavspvIl9nulOYwdy6IFRRo=", + version = "v0.0.0-20170718123548-6386211fdfcf", + ) go_repository( name = "com_github_stoewer_go_strcase", build_file_proto_mode = "disable_global", @@ -6109,6 +6263,13 @@ def go_dependencies(): sum = "h1:3UeQBvD0TFrlVjOeLOBz+CPAI8dnbqNSVwUwRrkp7vQ=", version = "v0.0.0-20160513160801-0940f3fc43a0", ) + go_repository( + name = "com_github_x448_float16", + build_file_proto_mode = "disable_global", + importpath = "github.com/x448/float16", + sum = "h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM=", + version = "v0.8.4", + ) go_repository( name = "com_github_xanzy_go_gitlab", build_file_proto_mode = "disable_global", @@ -7152,6 +7313,13 @@ def go_dependencies(): sum = "h1:uHNmUiatTbPQ4H1pabwfzpfEYD4BBnqDHqMm2IesOh4=", version = "v1.12.4", ) + go_repository( + name = "com_jaytaylor_html2text", + build_file_proto_mode = "disable_global", + importpath = "jaytaylor.com/html2text", + sum = "h1:6YFJoB+0fUH6X3xU/G2tQqCYg+PkGtnZ5nMR5rpw72g=", + version = "v0.0.0-20230321000545-74c2419ad056", + ) go_repository( name = "com_layeh_gopher_luar", build_file_proto_mode = "disable_global", @@ -7422,8 +7590,8 @@ def go_dependencies(): name = "io_k8s_api", build_file_proto_mode = "disable_global", importpath = "k8s.io/api", - sum = "h1:hBC7B9+MU+ptchxEqTNW2DkUosJpp1P+Wn6YncZ474A=", - version = "v0.29.2", + sum = "h1:siWhRq7cNjy2iHssOB9SCGNCl2spiF1dO3dABqZ8niA=", + version = "v0.30.0", ) go_repository( name = "io_k8s_apiextensions_apiserver", @@ -7436,8 +7604,8 @@ def go_dependencies(): name = "io_k8s_apimachinery", build_file_proto_mode = "disable_global", importpath = "k8s.io/apimachinery", - sum = "h1:EWGpfJ856oj11C52NRCHuU7rFDwxev48z+6DSlGNsV8=", - version = "v0.29.2", + sum = "h1:qxVPsyDM5XS96NIh9Oj6LavoVFYff/Pon9cZeDIkHHA=", + version = "v0.30.0", ) go_repository( name = "io_k8s_apiserver", @@ -7450,15 +7618,15 @@ def go_dependencies(): name = "io_k8s_client_go", build_file_proto_mode = "disable_global", importpath = "k8s.io/client-go", - sum = "h1:FEg85el1TeZp+/vYJM7hkDlSTFZ+c5nnK44DJ4FyoRg=", - version = "v0.29.2", + sum = "h1:sB1AGGlhY/o7KCyCEQ0bPWzYDL0pwOZO4vAtTSh/gJQ=", + version = "v0.30.0", ) go_repository( name = "io_k8s_code_generator", build_file_proto_mode = "disable_global", importpath = "k8s.io/code-generator", - sum = "h1:c9/iw2KnNpw2IRV+wwuG/Wns2TjPSgjWzbbjTevyiHI=", - version = "v0.29.2", + sum = "h1:3VUVqHvWFSVSm9kqL/G6kD4ZwNdHF6J/jPyo3Jgjy3k=", + version = "v0.30.0", ) go_repository( name = "io_k8s_component_base", @@ -7474,6 +7642,13 @@ def go_dependencies(): sum = "h1:pWEwq4Asjm4vjW7vcsmijwBhOr1/shsbSYiWXmNGlks=", version = "v0.0.0-20230829151522-9cce18d56c01", ) + go_repository( + name = "io_k8s_gengo_v2", + build_file_proto_mode = "disable_global", + importpath = "k8s.io/gengo/v2", + sum = "h1:NGrVE502P0s0/1hudf8zjgwki1X/TByhmAoILTarmzo=", + version = "v2.0.0-20240228010128-51d4e06bde70", + ) go_repository( name = "io_k8s_klog", build_file_proto_mode = "disable_global", @@ -7485,8 +7660,8 @@ def go_dependencies(): name = "io_k8s_klog_v2", build_file_proto_mode = "disable_global", importpath = "k8s.io/klog/v2", - sum = "h1:U/Af64HJf7FcwMcXyKm2RPM22WZzyR7OSpYj5tg3cL0=", - version = "v2.110.1", + sum = "h1:QXU6cPEOIslTGvZaXvFWiP9VKyeet3sawzTOvdXb4Vw=", + version = "v2.120.1", ) go_repository( name = "io_k8s_kms", @@ -7499,8 +7674,15 @@ def go_dependencies(): name = "io_k8s_kube_openapi", build_file_proto_mode = "disable_global", importpath = "k8s.io/kube-openapi", - sum = "h1:aVUu9fTY98ivBPKR9Y5w/AuzbMm96cd3YHRTU83I780=", - version = "v0.0.0-20231010175941-2dd684a91f00", + sum = "h1:BZqlfIlq5YbRMFko6/PM7FjZpUb45WallggurYhKGag=", + version = "v0.0.0-20240228011516-70dd3763d340", + ) + go_repository( + name = "io_k8s_metrics", + build_file_proto_mode = "disable_global", + importpath = "k8s.io/metrics", + sum = "h1:tqB+T0GJY288KahaO3Eb41HaDVeLR18gBmyPo0R417s=", + version = "v0.30.0", ) go_repository( name = "io_k8s_sigs_apiserver_network_proxy_konnectivity_client", @@ -8060,8 +8242,8 @@ def go_dependencies(): name = "org_golang_x_crypto", build_file_proto_mode = "disable_global", importpath = "golang.org/x/crypto", - sum = "h1:g1v0xeRhjcugydODzvb3mEM9SQ0HGp9s/nh3COQ/C30=", - version = "v0.22.0", + sum = "h1:dIJU/v2J8Mdglj/8rJ6UUOM3Zc9zLZxVZwwxMooUSAI=", + version = "v0.23.0", ) go_repository( name = "org_golang_x_exp", @@ -8123,15 +8305,15 @@ def go_dependencies(): name = "org_golang_x_sync", build_file_proto_mode = "disable_global", importpath = "golang.org/x/sync", - sum = "h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ=", - version = "v0.6.0", + sum = "h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M=", + version = "v0.7.0", ) go_repository( name = "org_golang_x_sys", build_file_proto_mode = "disable_global", importpath = "golang.org/x/sys", - sum = "h1:q5f1RH2jigJ1MoAWp2KTp3gm5zAGFUTarQZ5U386+4o=", - version = "v0.19.0", + sum = "h1:Od9JTbYCk261bKm4M/mw7AklTlFYIa0bIp9BgSm1S8Y=", + version = "v0.20.0", ) go_repository( name = "org_golang_x_telemetry", @@ -8144,15 +8326,15 @@ def go_dependencies(): name = "org_golang_x_term", build_file_proto_mode = "disable_global", importpath = "golang.org/x/term", - sum = "h1:+ThwsDv+tYfnJFhF4L8jITxu1tdTWRTZpdsWgEgjL6Q=", - version = "v0.19.0", + sum = "h1:VnkxpohqXaOBYJtBmEppKUG6mXpi+4O6purfc2+sMhw=", + version = "v0.20.0", ) go_repository( name = "org_golang_x_text", build_file_proto_mode = "disable_global", importpath = "golang.org/x/text", - sum = "h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ=", - version = "v0.14.0", + sum = "h1:h1V/4gjBv8v9cjcR6+AR5+/cIYK5N/WAgiv4xlsEtAk=", + version = "v0.15.0", ) go_repository( name = "org_golang_x_time", diff --git a/dev/sg/linters/go_checks.go b/dev/sg/linters/go_checks.go index 44f137990633..6733a64ad98a 100644 --- a/dev/sg/linters/go_checks.go +++ b/dev/sg/linters/go_checks.go @@ -71,6 +71,8 @@ func lintLoggingLibraries() *linter { "cmd/frontend/internal/app/otlpadapter", // Legacy and special case handling of panics in background routines "lib/background/goroutine.go", + // temporarily allow usage of log in src-cli, will be removed soon + "src-cli", }, ErrorFunc: func(bannedImport string) error { return errors.Newf(`banned usage of '%s': use "github.com/sourcegraph/log" instead`, diff --git a/go.mod b/go.mod index 8df7d3813f30..d8861e56191d 100644 --- a/go.mod +++ b/go.mod @@ -73,15 +73,15 @@ require ( github.com/XSAM/otelsql v0.27.0 github.com/agext/levenshtein v1.2.3 // indirect github.com/amit7itz/goset v1.0.1 - github.com/aws/aws-sdk-go-v2 v1.17.6 - github.com/aws/aws-sdk-go-v2/config v1.18.16 - github.com/aws/aws-sdk-go-v2/credentials v1.13.16 - github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.56 - github.com/aws/aws-sdk-go-v2/service/cloudwatch v1.15.0 - github.com/aws/aws-sdk-go-v2/service/codecommit v1.11.0 - github.com/aws/aws-sdk-go-v2/service/kms v1.14.0 - github.com/aws/aws-sdk-go-v2/service/s3 v1.30.6 - github.com/aws/smithy-go v1.13.5 + github.com/aws/aws-sdk-go-v2 v1.26.1 + github.com/aws/aws-sdk-go-v2/config v1.27.13 + github.com/aws/aws-sdk-go-v2/credentials v1.17.13 + github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.17 + github.com/aws/aws-sdk-go-v2/service/cloudwatch v1.38.1 + github.com/aws/aws-sdk-go-v2/service/codecommit v1.22.5 + github.com/aws/aws-sdk-go-v2/service/kms v1.31.1 + github.com/aws/aws-sdk-go-v2/service/s3 v1.53.2 + github.com/aws/smithy-go v1.20.2 github.com/beevik/etree v1.3.0 github.com/buildkite/go-buildkite/v3 v3.0.1 github.com/cespare/xxhash/v2 v2.2.0 @@ -220,11 +220,11 @@ require ( go.uber.org/automaxprocs v1.5.2 go.uber.org/ratelimit v0.2.0 go.uber.org/zap v1.26.0 - golang.org/x/crypto v0.22.0 + golang.org/x/crypto v0.23.0 golang.org/x/net v0.23.0 golang.org/x/oauth2 v0.19.0 - golang.org/x/sync v0.6.0 - golang.org/x/sys v0.19.0 + golang.org/x/sync v0.7.0 + golang.org/x/sys v0.20.0 golang.org/x/time v0.5.0 golang.org/x/tools v0.18.0 gonum.org/v1/gonum v0.14.0 @@ -234,9 +234,9 @@ require ( gopkg.in/natefinch/lumberjack.v2 v2.2.1 gopkg.in/yaml.v2 v2.4.0 gopkg.in/yaml.v3 v3.0.1 - k8s.io/api v0.29.2 - k8s.io/apimachinery v0.29.2 - k8s.io/client-go v0.29.2 + k8s.io/api v0.30.0 + k8s.io/apimachinery v0.30.0 + k8s.io/client-go v0.30.0 k8s.io/utils v0.0.0-20230726121419-3b25d923346b layeh.com/gopher-luar v1.0.10 sigs.k8s.io/kustomize/kyaml v0.13.3 @@ -251,6 +251,10 @@ require ( github.com/Azure/azure-sdk-for-go/sdk/ai/azopenai v0.5.0 github.com/Azure/azure-sdk-for-go/sdk/azcore v1.9.2 github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.4.0 + github.com/atotto/clipboard v0.1.4 + github.com/aws/aws-sdk-go-v2/service/ec2 v1.161.1 + github.com/aws/aws-sdk-go-v2/service/eks v1.42.2 + github.com/aws/aws-sdk-go-v2/service/iam v1.32.1 github.com/aws/constructs-go/constructs/v10 v10.2.69 github.com/aws/jsii-runtime-go v1.84.0 github.com/bazelbuild/bazel-gazelle v0.35.0 @@ -258,8 +262,13 @@ require ( github.com/bevzzz/nb v0.3.0 github.com/bevzzz/nb-synth v0.0.0-20240128164931-35fdda0583a0 github.com/bevzzz/nb/extension/extra/goldmark-jupyter v0.0.0-20240131001330-e69229bd9da4 + github.com/charmbracelet/bubbles v0.18.0 + github.com/charmbracelet/bubbletea v0.26.2 + github.com/charmbracelet/lipgloss v0.10.0 + github.com/creack/goselect v0.1.2 github.com/derision-test/go-mockgen/v2 v2.0.1 github.com/dghubble/gologin/v2 v2.4.0 + github.com/dineshappavoo/basex v0.0.0-20170425072625-481a6f6dc663 github.com/edsrzf/mmap-go v1.1.0 github.com/go-json-experiment/json v0.0.0-20231102232822-2e55bd4e08b0 github.com/go-redis/redis/v8 v8.11.5 @@ -272,13 +281,17 @@ require ( github.com/hashicorp/cronexpr v1.1.1 github.com/hashicorp/go-tfe v1.32.1 github.com/hashicorp/terraform-cdk-go/cdktf v0.17.3 + github.com/hexops/autogold v1.3.1 github.com/invopop/jsonschema v0.12.0 github.com/jackc/pgerrcode v0.0.0-20220416144525-469b46aa5efa github.com/jackc/pgx/v5 v5.5.4 + github.com/jedib0t/go-pretty/v6 v6.5.9 + github.com/jig/teereadcloser v0.0.0-20181016160506-953720c48e05 github.com/jomei/notionapi v1.13.0 github.com/maxbrunsfeld/counterfeiter/v6 v6.8.1 github.com/mitchellh/hashstructure/v2 v2.0.2 github.com/mroth/weightedrand/v2 v2.0.1 + github.com/neelance/parallel v0.0.0-20160708114440-4de9ce63d14c github.com/nxadm/tail v1.4.11 github.com/oschwald/maxminddb-golang v1.12.0 github.com/pkoukk/tiktoken-go v0.1.6 @@ -300,9 +313,10 @@ require ( github.com/sourcegraph/notionreposync v0.0.0-20240510213306-87052870048d github.com/sourcegraph/scip v0.3.3 github.com/sourcegraph/sourcegraph-accounts-sdk-go v0.0.0-20240426173441-db5b0a145ceb - github.com/sourcegraph/sourcegraph/lib v0.0.0-20240422195121-52350cd2e507 + github.com/sourcegraph/sourcegraph/lib v0.0.0-20240510113214-3a8666b99a37 github.com/sourcegraph/sourcegraph/lib/managedservicesplatform v0.0.0-00010101000000-000000000000 github.com/sourcegraph/sourcegraph/monitoring v0.0.0-00010101000000-000000000000 + github.com/sourcegraph/src-cli v0.0.0-20240510130343-b24f883ebc37 github.com/vektah/gqlparser/v2 v2.4.5 github.com/vvakame/gcplogurl v0.2.0 go.opentelemetry.io/collector/config/confighttp v0.92.0 @@ -310,6 +324,8 @@ require ( go.opentelemetry.io/collector/config/configtls v0.92.0 go.opentelemetry.io/otel/exporters/prometheus v0.46.0 google.golang.org/genproto/googleapis/api v0.0.0-20240311132316-a219d84964c2 + jaytaylor.com/html2text v0.0.0-20230321000545-74c2419ad056 + k8s.io/metrics v0.30.0 oss.terrastruct.com/d2 v0.6.5 sigs.k8s.io/controller-runtime v0.17.3 ) @@ -332,9 +348,9 @@ require ( github.com/alexflint/go-scalar v1.0.0 // indirect github.com/andybalholm/cascadia v1.3.2 // indirect github.com/apache/arrow/go/v14 v14.0.2 // indirect - github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.22 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.25 // indirect - github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.5 // indirect + github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.5 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.7 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.24.0 // indirect github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect github.com/bahlo/generic-list-go v0.2.0 // indirect github.com/bazelbuild/buildtools v0.0.0-20231115204819-d4c9dccdfbb1 // indirect @@ -358,6 +374,7 @@ require ( github.com/docker/distribution v2.8.3+incompatible // indirect github.com/dop251/goja v0.0.0-20231027120936-b396bb4c349d // indirect github.com/emicklei/go-restful/v3 v3.11.0 // indirect + github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f // indirect github.com/evanphx/json-patch/v5 v5.8.0 // indirect github.com/fullstorydev/grpcurl v1.8.7 // indirect github.com/go-chi/chi/v5 v5.0.10 // indirect @@ -388,11 +405,15 @@ require ( github.com/knadh/koanf/v2 v2.0.1 // indirect github.com/kylelemons/godebug v1.1.0 // indirect github.com/matryer/is v1.2.0 // indirect + github.com/mattn/go-localereader v0.0.1 // indirect github.com/mazznoer/csscolorparser v0.1.3 // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect + github.com/moby/spdystream v0.2.0 // indirect github.com/moby/sys/mountinfo v0.6.2 // indirect github.com/morikuni/aec v1.0.0 // indirect github.com/mpvl/unique v0.0.0-20150818121801-cbe035fff7de // indirect + github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 // indirect + github.com/muesli/cancelreader v0.2.2 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect github.com/opencontainers/image-spec v1.1.0-rc6 // indirect github.com/pierrec/lz4/v4 v4.1.18 // indirect @@ -405,6 +426,7 @@ require ( github.com/sirupsen/logrus v1.9.3 // indirect github.com/skeema/knownhosts v1.2.1 // indirect github.com/smartystreets/assertions v1.13.0 // indirect + github.com/ssor/bom v0.0.0-20170718123548-6386211fdfcf // indirect github.com/tetratelabs/wazero v1.3.0 // indirect github.com/vbatts/tar-split v0.11.5 // indirect github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 // indirect @@ -457,16 +479,16 @@ require ( github.com/andres-erbsen/clock v0.0.0-20160526145045-9e14626cd129 // indirect github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 // indirect github.com/aws/aws-sdk-go v1.44.128 - github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10 - github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.12.24 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.30 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.24 // indirect - github.com/aws/aws-sdk-go-v2/internal/ini v1.3.31 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.11 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.24 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.13.24 // indirect - github.com/aws/aws-sdk-go-v2/service/sso v1.12.5 // indirect - github.com/aws/aws-sdk-go-v2/service/sts v1.18.6 // indirect + github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2 + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.1 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.5 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.5 // indirect + github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.7 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.20.6 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.28.7 // indirect github.com/aymerick/douceur v0.2.0 // indirect github.com/becheran/wildmatch-go v1.0.0 github.com/beorn7/perks v1.0.1 // indirect @@ -564,7 +586,7 @@ require ( github.com/mailru/easyjson v0.7.7 // indirect github.com/mattermost/xml-roundtrip-validator v0.1.0 // indirect github.com/mattn/go-colorable v0.1.13 // indirect - github.com/mattn/go-isatty v0.0.20 // indirect + github.com/mattn/go-isatty v0.0.20 github.com/mattn/go-runewidth v0.0.15 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect github.com/mitchellh/colorstring v0.0.0-20190213212951-d06e56a500db // indirect @@ -597,7 +619,7 @@ require ( github.com/prometheus/procfs v0.12.0 // indirect github.com/pseudomuto/protoc-gen-doc v1.5.1 github.com/pseudomuto/protokit v0.2.1 // indirect - github.com/rivo/uniseg v0.4.6 // indirect + github.com/rivo/uniseg v0.4.7 // indirect github.com/rogpeppe/go-internal v1.12.0 // indirect github.com/rs/cors v1.10.1 // indirect github.com/rs/xid v1.5.0 // indirect @@ -631,16 +653,16 @@ require ( go.uber.org/multierr v1.11.0 // indirect golang.org/x/exp v0.0.0-20231127185646-65229373498e golang.org/x/mod v0.15.0 - golang.org/x/term v0.19.0 // indirect - golang.org/x/text v0.14.0 + golang.org/x/term v0.20.0 // indirect + golang.org/x/text v0.15.0 golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 // indirect google.golang.org/grpc v1.62.1 gopkg.in/alexcesaro/statsd.v2 v2.0.0 // indirect - gopkg.in/inf.v0 v0.9.1 // indirect + gopkg.in/inf.v0 v0.9.1 gopkg.in/square/go-jose.v2 v2.6.0 // indirect gopkg.in/warnings.v0 v0.1.2 // indirect - k8s.io/klog/v2 v2.110.1 // indirect - k8s.io/kube-openapi v0.0.0-20231010175941-2dd684a91f00 // indirect + k8s.io/klog/v2 v2.120.1 // indirect + k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 // indirect mvdan.cc/gofumpt v0.5.0 // indirect sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect diff --git a/go.sum b/go.sum index 9b0b21b311f4..563a0d8f237c 100644 --- a/go.sum +++ b/go.sum @@ -227,6 +227,8 @@ github.com/asaskevich/govalidator v0.0.0-20200428143746-21a406dcc535/go.mod h1:o github.com/asaskevich/govalidator v0.0.0-20200907205600-7a23bdc65eef/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw= github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 h1:DklsrG3dyBCFEj5IhUbnKptjxatkF07cF2ak3yi77so= github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw= +github.com/atotto/clipboard v0.1.4 h1:EH0zSVneZPSuFR11BlR9YppQTVDbh5+16AmcJi4g1z4= +github.com/atotto/clipboard v0.1.4/go.mod h1:ZY9tmq7sm5xIbd9bOK4onWV4S6X0u6GY7Vn0Yu86PYI= github.com/aws/aws-sdk-go v1.34.28/go.mod h1:H7NKnBqNVzoTJpGfLrQkkD+ytBA93eiDYi/+8rV9s48= github.com/aws/aws-sdk-go v1.38.35/go.mod h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2zKMmprdro= github.com/aws/aws-sdk-go v1.40.11/go.mod h1:585smgzpB/KqRA+K3y/NL/oYRqQvpNJYvLm+LY1U59Q= @@ -234,67 +236,69 @@ github.com/aws/aws-sdk-go v1.42.27/go.mod h1:OGr6lGMAKGlG9CVrYnWYDKIyb829c6EVBRj github.com/aws/aws-sdk-go v1.44.128 h1:X34pX5t0LIZXjBY11yf9JKMP3c1aZgirh+5PjtaZyJ4= github.com/aws/aws-sdk-go v1.44.128/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo= github.com/aws/aws-sdk-go-v2 v1.9.2/go.mod h1:cK/D0BBs0b/oWPIcX/Z/obahJK1TT7IPVjy53i/mX/4= -github.com/aws/aws-sdk-go-v2 v1.13.0/go.mod h1:L6+ZpqHaLbAaxsqV0L4cvxZY7QupWJB4fhkf8LXvC7w= -github.com/aws/aws-sdk-go-v2 v1.17.6 h1:Y773UK7OBqhzi5VDXMi1zVGsoj+CVHs2eaC2bDsLwi0= -github.com/aws/aws-sdk-go-v2 v1.17.6/go.mod h1:uzbQtefpm44goOPmdKyAlXSNcwlRgF3ePWVW6EtJvvw= -github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10 h1:dK82zF6kkPeCo8J1e+tGx4JdvDIQzj7ygIoLg8WMuGs= -github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10/go.mod h1:VeTZetY5KRJLuD/7fkQXMU6Mw7H5m/KP2J5Iy9osMno= +github.com/aws/aws-sdk-go-v2 v1.26.1 h1:5554eUqIYVWpU0YmeeYZ0wU64H2VLBs8TlhRB2L+EkA= +github.com/aws/aws-sdk-go-v2 v1.26.1/go.mod h1:ffIFB97e2yNsv4aTSGkqtHnppsIJzw7G7BReUZ3jCXM= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2 h1:x6xsQXGSmW6frevwDA+vi/wqhp1ct18mVXYN08/93to= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2/go.mod h1:lPprDr1e6cJdyYeGXnRaJoP4Md+cDBvi2eOj00BlGmg= github.com/aws/aws-sdk-go-v2/config v1.8.3/go.mod h1:4AEiLtAb8kLs7vgw2ZV3p2VZ1+hBavOc84hqxVNpCyw= -github.com/aws/aws-sdk-go-v2/config v1.18.16 h1:4r7gsCu8Ekwl5iJGE/GmspA2UifqySCCkyyyPFeWs3w= -github.com/aws/aws-sdk-go-v2/config v1.18.16/go.mod h1:XjM6lVbq7UgELp9NjXBrb1DQY/ownlWsvDhEQksemJc= +github.com/aws/aws-sdk-go-v2/config v1.27.13 h1:WbKW8hOzrWoOA/+35S5okqO/2Ap8hkkFUzoW8Hzq24A= +github.com/aws/aws-sdk-go-v2/config v1.27.13/go.mod h1:XLiyiTMnguytjRER7u5RIkhIqS8Nyz41SwAWb4xEjxs= github.com/aws/aws-sdk-go-v2/credentials v1.4.3/go.mod h1:FNNC6nQZQUuyhq5aE5c7ata8o9e4ECGmS4lAXC7o1mQ= -github.com/aws/aws-sdk-go-v2/credentials v1.13.16 h1:GgToSxaENX/1zXIGNFfiVk4hxryYJ5Vt4Mh8XLAL7Lc= -github.com/aws/aws-sdk-go-v2/credentials v1.13.16/go.mod h1:KP7aFJhfwPFgx9aoVYL2nYHjya5WBD98CWaadpgmnpY= +github.com/aws/aws-sdk-go-v2/credentials v1.17.13 h1:XDCJDzk/u5cN7Aple7D/MiAhx1Rjo/0nueJ0La8mRuE= +github.com/aws/aws-sdk-go-v2/credentials v1.17.13/go.mod h1:FMNcjQrmuBYvOTZDtOLCIu0esmxjF7RuA/89iSXWzQI= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.6.0/go.mod h1:gqlclDEZp4aqJOancXK6TN24aKhT0W0Ae9MHk3wzTMM= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.12.24 h1:5qyqXASrX2zy5cTnoHHa4N2c3Lc94GH7gjnBP3GwKdU= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.12.24/go.mod h1:neYVaeKr5eT7BzwULuG2YbLhzWZ22lpjKdCybR7AXrQ= -github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.56 h1:kFDCPqqVvb9vYcW82L7xYfrBGpuxXQ/8A/zYVayRQK4= -github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.56/go.mod h1:FoSBuessadgy8Cqp9gQF8U5rzi1XVQhiEJ6su2/kBEE= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.4/go.mod h1:XHgQ7Hz2WY2GAn//UXHofLfPXWh+s62MbMOijrg12Lw= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.30 h1:y+8n9AGDjikyXoMBTRaHHHSaFEB8267ykmvyPodJfys= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.30/go.mod h1:LUBAO3zNXQjoONBKn/kR1y0Q4cj/D02Ts0uHYjcCQLM= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.2.0/go.mod h1:BsCSJHx5DnDXIrOcqB8KN1/B+hXLG/bi4Y6Vjcx/x9E= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.24 h1:r+Kv+SEJquhAZXaJ7G4u44cIwXV3f8K+N482NNAzJZA= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.24/go.mod h1:gAuCezX/gob6BSMbItsSlMb6WZGV7K2+fWOvk8xBSto= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.1 h1:FVJ0r5XTHSmIHJV6KuDmdYhEpvlHpiSd38RQWhut5J4= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.1/go.mod h1:zusuAeqezXzAB24LGuzuekqMAEgWkVYukBec3kr3jUg= +github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.17 h1:9b1Os1s11mF5qTIKLgSsyPG810di2+ySSLIIt9bwe9I= +github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.17/go.mod h1:9Wp7tDOMhv0+sb/FTRAkbHNQ7abYDnoJRzm5AAtCnTc= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.5 h1:aw39xVGeRWlWx9EzGVnhOR4yOjQDHPQ6o6NmBlscyQg= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.5/go.mod h1:FSaRudD0dXiMPK2UjknVwwTYyZMRsHv3TtkabsZih5I= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.5 h1:PG1F3OD1szkuQPzDw3CIQsRIrtTlUC3lP84taWzHlq0= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.5/go.mod h1:jU1li6RFryMz+so64PpKtudI+QzbKoIEivqdf6LNpOc= github.com/aws/aws-sdk-go-v2/internal/ini v1.2.4/go.mod h1:ZcBrrI3zBKlhGFNYWvju0I3TR93I7YIgAfy82Fh4lcQ= -github.com/aws/aws-sdk-go-v2/internal/ini v1.3.31 h1:hf+Vhp5WtTdcSdE+yEcUz8L73sAzN0R+0jQv+Z51/mI= -github.com/aws/aws-sdk-go-v2/internal/ini v1.3.31/go.mod h1:5zUjguZfG5qjhG9/wqmuyHRyUftl2B5Cp6NNxNC6kRA= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.22 h1:lTqBRUuy8oLhBsnnVZf14uRbIHPHCrGqg4Plc8gU/1U= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.22/go.mod h1:YsOa3tFriwWNvBPYHXM5ARiU2yqBNWPWeUiq+4i7Na0= +github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 h1:hT8rVHwugYE2lEfdFE0QWVo81lF7jMrYJVDWI+f+VxU= +github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0/go.mod h1:8tu/lYfQfFe6IGnaOdrpVgEL2IrrDOf6/m9RQum4NkY= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.5 h1:81KE7vaZzrl7yHBYHVEzYB8sypz11NMOZ40YlWvPxsU= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.5/go.mod h1:LIt2rg7Mcgn09Ygbdh/RdIm0rQ+3BNkbP1gyVMFtRK0= github.com/aws/aws-sdk-go-v2/service/appconfig v1.4.2/go.mod h1:FZ3HkCe+b10uFZZkFdvf98LHW21k49W8o8J366lqVKY= -github.com/aws/aws-sdk-go-v2/service/cloudwatch v1.15.0 h1:5WstmcviZ9X/h5nORkGT4akyLmWjrLxE9s8oKkFhkD4= -github.com/aws/aws-sdk-go-v2/service/cloudwatch v1.15.0/go.mod h1:bPS4S6vXEGUVMabXYHOJRFvoWrztb38v4i84i8Hd6ZY= -github.com/aws/aws-sdk-go-v2/service/codecommit v1.11.0 h1:iEqboXubLCABYFoClUyX/Bv8DfhmV39hPKdRbs21/kI= -github.com/aws/aws-sdk-go-v2/service/codecommit v1.11.0/go.mod h1:J/4vFItN+XL4L7AnuNgzDwgkUlzoWCf9BsOwPEQ4+o8= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.11 h1:y2+VQzC6Zh2ojtV2LoC0MNwHWc6qXv/j2vrQtlftkdA= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.11/go.mod h1:iV4q2hsqtNECrfmlXyord9u4zyuFEJX9eLgLpSPzWA8= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.25 h1:B/hO3jfWRm7hP00UeieNlI5O2xP5WJ27tyJG5lzc7AM= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.25/go.mod h1:54K1zgxK/lai3a4HosE4IKBwZsP/5YAJ6dzJfwsjJ0U= +github.com/aws/aws-sdk-go-v2/service/cloudwatch v1.38.1 h1:Lrq1Tuj+tA569WQzuESkm/rUfhIQMmNoZW6rRuZVHVI= +github.com/aws/aws-sdk-go-v2/service/cloudwatch v1.38.1/go.mod h1:U12sr6Lt14X96f16t+rR52+2BdqtydwN7DjEEHRMjO0= +github.com/aws/aws-sdk-go-v2/service/codecommit v1.22.5 h1:Vl2fqFRNQUqiObnet19YNjJ11ThR9E91516GbX1VS+I= +github.com/aws/aws-sdk-go-v2/service/codecommit v1.22.5/go.mod h1:JUutuYPf/NGVDjvEM8rdXTnRkxvnTTpWKdRfiZzi2bo= +github.com/aws/aws-sdk-go-v2/service/ec2 v1.161.1 h1:NbjXshriDs5bGeqKvrOF70L41X0aCMC60ImN2vkcQAc= +github.com/aws/aws-sdk-go-v2/service/ec2 v1.161.1/go.mod h1:xejKuuRDjz6z5OqyeLsz01MlOqqW7CqpAB4PabNvpu8= +github.com/aws/aws-sdk-go-v2/service/eks v1.42.2 h1:rjzXOAVgM2gxEg2DBRJCB1qAEbq8MUfdnfvQpiSxMPE= +github.com/aws/aws-sdk-go-v2/service/eks v1.42.2/go.mod h1:UhKBrO0Ezz8iIg02a6u4irGKBKh0gTz3fF8LNdD2vDI= +github.com/aws/aws-sdk-go-v2/service/iam v1.32.1 h1:4rE8nIQ7HabhytHpGacgyLF4NjsswF4rBe7smA2kxa0= +github.com/aws/aws-sdk-go-v2/service/iam v1.32.1/go.mod h1:aXWImQV0uTW35LM0A/T4wEg6R1/ReXUu4SM6/lUHYK0= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2 h1:Ji0DY1xUsUr3I8cHps0G+XM3WWU16lP6yG8qu1GAZAs= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2/go.mod h1:5CsjAbs3NlGQyZNFACh+zztPDI7fU6eW9QsxjfnuBKg= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.7 h1:ZMeFZ5yk+Ek+jNr1+uwCd2tG89t6oTS5yVWpa6yy2es= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.7/go.mod h1:mxV05U+4JiHqIpGqqYXOHLPKUC6bDXC44bsUhNjOEwY= github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.3.2/go.mod h1:72HRZDLMtmVQiLG2tLfQcaWLCssELvGl+Zf2WVxMmR8= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.24 h1:c5qGfdbCHav6viBwiyDns3OXqhqAbGjfIB4uVu2ayhk= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.24/go.mod h1:HMA4FZG6fyib+NDo5bpIxX1EhYjrAOveZJY2YR0xrNE= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.13.24 h1:i4RH8DLv/BHY0fCrXYQDr+DGnWzaxB3Ee/esxUaSavk= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.13.24/go.mod h1:N8X45/o2cngvjCYi2ZnvI0P4mU4ZRJfEYC3maCSsPyw= -github.com/aws/aws-sdk-go-v2/service/kms v1.14.0 h1:A8FMqkP+OlnSiVY+2QakwqW0fAGnE18TqPig/T7aJU0= -github.com/aws/aws-sdk-go-v2/service/kms v1.14.0/go.mod h1:arlReKeYmnfm/LmGiURTuIYIKWJf0FEpajiVX0hlv7M= -github.com/aws/aws-sdk-go-v2/service/s3 v1.30.6 h1:zzTm99krKsFcF4N7pu2z17yCcAZpQYZ7jnJZPIgEMXE= -github.com/aws/aws-sdk-go-v2/service/s3 v1.30.6/go.mod h1:PudwVKUTApfm0nYaPutOXaKdPKTlZYClGBQpVIRdcbs= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.7 h1:ogRAwT1/gxJBcSWDMZlgyFUM962F51A5CRhDLbxLdmo= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.7/go.mod h1:YCsIZhXfRPLFFCl5xxY+1T9RKzOKjCut+28JSX2DnAk= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5 h1:f9RyWNtS8oH7cZlbn+/JNPpjUk5+5fLd5lM9M0i49Ys= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5/go.mod h1:h5CoMZV2VF297/VLhRhO1WF+XYWOzXo+4HsObA4HjBQ= +github.com/aws/aws-sdk-go-v2/service/kms v1.31.1 h1:5wtyAwuUiJiM3DHYeGZmP5iMonM7DFBWAEaaVPHYZA0= +github.com/aws/aws-sdk-go-v2/service/kms v1.31.1/go.mod h1:2snWQJQUKsbN66vAawJuOGX7dr37pfOq9hb0tZDGIqQ= +github.com/aws/aws-sdk-go-v2/service/s3 v1.53.2 h1:rq2hglTQM3yHZvOPVMtNvLS5x6hijx7JvRDgKiTNDGQ= +github.com/aws/aws-sdk-go-v2/service/s3 v1.53.2/go.mod h1:qmdkIIAC+GCLASF7R2whgNrJADz0QZPX+Seiw/i4S3o= github.com/aws/aws-sdk-go-v2/service/sso v1.4.2/go.mod h1:NBvT9R1MEF+Ud6ApJKM0G+IkPchKS7p7c2YPKwHmBOk= -github.com/aws/aws-sdk-go-v2/service/sso v1.12.5 h1:bdKIX6SVF3nc3xJFw6Nf0igzS6Ff/louGq8Z6VP/3Hs= -github.com/aws/aws-sdk-go-v2/service/sso v1.12.5/go.mod h1:vuWiaDB30M/QTC+lI3Wj6S/zb7tpUK2MSYgy3Guh2L0= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.5 h1:xLPZMyuZ4GuqRCIec/zWuIhRFPXh2UOJdLXBSi64ZWQ= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.5/go.mod h1:QjxpHmCwAg0ESGtPQnLIVp7SedTOBMYy+Slr3IfMKeI= +github.com/aws/aws-sdk-go-v2/service/sso v1.20.6 h1:o5cTaeunSpfXiLTIBx5xo2enQmiChtu1IBbzXnfU9Hs= +github.com/aws/aws-sdk-go-v2/service/sso v1.20.6/go.mod h1:qGzynb/msuZIE8I75DVRCUXw3o3ZyBmUvMwQ2t/BrGM= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.24.0 h1:Qe0r0lVURDDeBQJ4yP+BOrJkvkiCo/3FH/t+wY11dmw= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.24.0/go.mod h1:mUYPBhaF2lGiukDEjJX2BLRRKTmoUSitGDUgM4tRxak= github.com/aws/aws-sdk-go-v2/service/sts v1.7.2/go.mod h1:8EzeIqfWt2wWT4rJVu3f21TfrhJ8AEMzVybRNSb/b4g= -github.com/aws/aws-sdk-go-v2/service/sts v1.18.6 h1:rIFn5J3yDoeuKCE9sESXqM5POTAhOP1du3bv/qTL+tE= -github.com/aws/aws-sdk-go-v2/service/sts v1.18.6/go.mod h1:48WJ9l3dwP0GSHWGc5sFGGlCkuA82Mc2xnw+T6Q8aDw= +github.com/aws/aws-sdk-go-v2/service/sts v1.28.7 h1:et3Ta53gotFR4ERLXXHIHl/Uuk1qYpP5uU7cvNql8ns= +github.com/aws/aws-sdk-go-v2/service/sts v1.28.7/go.mod h1:FZf1/nKNEkHdGGJP/cI2MoIMquumuRK6ol3QQJNDxmw= github.com/aws/constructs-go/constructs/v10 v10.2.69 h1:XW89VuKlwwzgU77Nyzj30SPn2SFtDYkzfF+QN84b5bQ= github.com/aws/constructs-go/constructs/v10 v10.2.69/go.mod h1:5WfHPfZkNfuz2sOaSNZPhtKr2bofB0M3/0i8ty3xuW8= github.com/aws/jsii-runtime-go v1.84.0 h1:ZvOKkGKQBZC8qrlM3qi2hXnbnqI64o3WtVw5ZVd/q9s= github.com/aws/jsii-runtime-go v1.84.0/go.mod h1:sZ4/oNiaZBQFkzGWZYvqo/85M0EitkFa8SEEEMECt4w= github.com/aws/smithy-go v1.8.0/go.mod h1:SObp3lf9smib00L/v3U2eAKG8FyQ7iLrJnQiAmR5n+E= -github.com/aws/smithy-go v1.10.0/go.mod h1:SObp3lf9smib00L/v3U2eAKG8FyQ7iLrJnQiAmR5n+E= -github.com/aws/smithy-go v1.13.5 h1:hgz0X/DX0dGqTYpGALqXJoRKRj5oQ7150i5FdTePzO8= -github.com/aws/smithy-go v1.13.5/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA= +github.com/aws/smithy-go v1.20.2 h1:tbp628ireGtzcHDDmLT/6ADHidqnwgF57XOXZe6tp4Q= +github.com/aws/smithy-go v1.20.2/go.mod h1:krry+ya/rV9RDcV/Q16kpu6ypI4K2czasz0NC3qS14E= github.com/aybabtme/iocontrol v0.0.0-20150809002002-ad15bcfc95a0 h1:0NmehRCgyk5rljDQLKUO+cRJCnduDyn11+zGZIc9Z48= github.com/aybabtme/iocontrol v0.0.0-20150809002002-ad15bcfc95a0/go.mod h1:6L7zgvqo0idzI7IO8de6ZC051AfXb5ipkIJ7bIA2tGA= github.com/aymanbagabas/go-osc52/v2 v2.0.1 h1:HwpRHbFMcZLEVr42D4p7XBqjyuxQH5SMiErDT4WkJ2k= @@ -379,8 +383,14 @@ github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XL github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/charmbracelet/bubbles v0.18.0 h1:PYv1A036luoBGroX6VWjQIE9Syf2Wby2oOl/39KLfy0= +github.com/charmbracelet/bubbles v0.18.0/go.mod h1:08qhZhtIwzgrtBjAcJnij1t1H0ZRjwHyGsy6AL11PSw= +github.com/charmbracelet/bubbletea v0.26.2 h1:Eeb+n75Om9gQ+I6YpbCXQRKHt5Pn4vMwusQpwLiEgJQ= +github.com/charmbracelet/bubbletea v0.26.2/go.mod h1:6I0nZ3YHUrQj7YHIHlM8RySX4ZIthTliMY+W8X8b+Gs= github.com/charmbracelet/glamour v0.5.0 h1:wu15ykPdB7X6chxugG/NNfDUbyyrCLV9XBalj5wdu3g= github.com/charmbracelet/glamour v0.5.0/go.mod h1:9ZRtG19AUIzcTm7FGLGbq3D5WKQ5UyZBbQsMQN0XIqc= +github.com/charmbracelet/lipgloss v0.10.0 h1:KWeXFSexGcfahHX+54URiZGkBFazf70JNMtwg/AFW3s= +github.com/charmbracelet/lipgloss v0.10.0/go.mod h1:Wig9DSfvANsxqkRsqj6x87irdy123SR4dOXlKa91ciE= github.com/chromedp/cdproto v0.0.0-20210526005521-9e51b9051fd0/go.mod h1:At5TxYYdxkbQL0TSefRjhLE3Q0lgvqKKMSFUglJ7i1U= github.com/chromedp/cdproto v0.0.0-20210706234513-2bc298e8be7f/go.mod h1:At5TxYYdxkbQL0TSefRjhLE3Q0lgvqKKMSFUglJ7i1U= github.com/chromedp/cdproto v0.0.0-20230802225258-3cf4e6d46a89 h1:aPflPkRFkVwbW6dmcVqfgwp1i+UWGFH6VgR1Jim5Ygc= @@ -443,6 +453,8 @@ github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsr github.com/cpuguy83/go-md2man/v2 v2.0.1/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/cpuguy83/go-md2man/v2 v2.0.3 h1:qMCsGGgs+MAzDFyp9LpAe1Lqy/fY/qCovCm0qnXZOBM= github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/creack/goselect v0.1.2 h1:2DNy14+JPjRBgPzAd1thbQp4BSIihxcBf0IXhQXDRa0= +github.com/creack/goselect v0.1.2/go.mod h1:a/NhLweNvqIYMuxcMOuWY516Cimucms3DglDzQP3hKY= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/creack/pty v1.1.21 h1:1/QdRyBaHHJP61QkWMXlOIBfsgdDeeKfK8SYVUWJKf0= @@ -482,6 +494,8 @@ github.com/di-wu/parser v0.2.2 h1:I9oHJ8spBXOeL7Wps0ffkFFFiXJf/pk7NX9lcAMqRMU= github.com/di-wu/parser v0.2.2/go.mod h1:SLp58pW6WamdmznrVRrw2NTyn4wAvT9rrEFynKX7nYo= github.com/di-wu/xsd-datetime v1.0.0 h1:vZoGNkbzpBNoc+JyfVLEbutNDNydYV8XwHeV7eUJoxI= github.com/di-wu/xsd-datetime v1.0.0/go.mod h1:i3iEhrP3WchwseOBeIdW/zxeoleXTOzx1WyDXgdmOww= +github.com/dineshappavoo/basex v0.0.0-20170425072625-481a6f6dc663 h1:fctNkSsavbXpt8geFWZb8n+noCqS8MrOXRJ/YfdZ2dQ= +github.com/dineshappavoo/basex v0.0.0-20170425072625-481a6f6dc663/go.mod h1:Kad2hux31v/IyD4Rf4wAwIyK48995rs3qAl9IUAhc2k= github.com/distribution/distribution/v3 v3.0.0-20220128175647-b60926597a1b h1:ou+y/Ko923eBli6zJ/TeB2iH38PmytV2UkHJnVdaPtU= github.com/distribution/distribution/v3 v3.0.0-20220128175647-b60926597a1b/go.mod h1:N8Wvr/4EfOTcDc6vF1l5OFe0Mw+rdYh+WtLrS69sjTU= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= @@ -549,6 +563,8 @@ github.com/envoyproxy/go-control-plane v0.10.2-0.20220325020618-49ff273808a1/go. 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/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f h1:Y/CXytFA4m6baUTXGLOoWe4PQhGxaX0KpnayAqC48p4= +github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f/go.mod h1:vw97MGsxSvLiUE2X8qFplwetxpGLQrlU1Q9AUEIzCaM= github.com/evanphx/json-patch v5.6.0+incompatible h1:jBYDEEiFBPxA0v50tFdvOzQQTCvpL6mnFh5mB2/l16U= github.com/evanphx/json-patch v5.6.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= github.com/evanphx/json-patch/v5 v5.8.0 h1:lRj6N9Nci7MvzrXuX6HFzU8XjmhPiXPlsKEy1u0KQro= @@ -644,7 +660,6 @@ github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KE github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -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= @@ -1209,6 +1224,8 @@ github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOl github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo= github.com/jdxcode/netrc v0.0.0-20221124155335-4616370d1a84 h1:2uT3aivO7NVpUPGcQX7RbHijHMyWix/yCnIrCWc+5co= github.com/jdxcode/netrc v0.0.0-20221124155335-4616370d1a84/go.mod h1:Zi/ZFkEqFHTm7qkjyNJjaWH4LQA9LQhGJyF0lTYGpxw= +github.com/jedib0t/go-pretty/v6 v6.5.9 h1:ACteMBRrrmm1gMsXe9PSTOClQ63IXDUt03H5U+UV8OU= +github.com/jedib0t/go-pretty/v6 v6.5.9/go.mod h1:zbn98qrYlh95FIhwwsbIip0LYpwSG8SUOScs+v9/t0E= github.com/jessevdk/go-flags v1.5.0/go.mod h1:Fw0T6WPc1dYxT4mKEZRfG5kJhaTDP9pj1c2EWnYs/m4= github.com/jhump/gopoet v0.0.0-20190322174617-17282ff210b3/go.mod h1:me9yfT6IJSlOL3FCfrg+L6yzUEZ+5jW6WHt4Sk+UPUI= github.com/jhump/gopoet v0.1.0/go.mod h1:me9yfT6IJSlOL3FCfrg+L6yzUEZ+5jW6WHt4Sk+UPUI= @@ -1218,6 +1235,8 @@ github.com/jhump/protoreflect v1.11.0/go.mod h1:U7aMIjN0NWq9swDP7xDdoMfRHb35uiuT github.com/jhump/protoreflect v1.12.0/go.mod h1:JytZfP5d0r8pVNLZvai7U/MCuTWITgrI4tTg7puQFKI= github.com/jhump/protoreflect v1.15.1 h1:HUMERORf3I3ZdX05WaQ6MIpd/NJ434hTp5YiKgfCL6c= github.com/jhump/protoreflect v1.15.1/go.mod h1:jD/2GMKKE6OqX8qTjhADU1e6DShO+gavG9e0Q693nKo= +github.com/jig/teereadcloser v0.0.0-20181016160506-953720c48e05 h1:dSwwtWuwMyarzsbVWOq4QJ8xVy9wgcNomvWyGtrKe+E= +github.com/jig/teereadcloser v0.0.0-20181016160506-953720c48e05/go.mod h1:sRUFlj+HCejvoCRpuhU0EYnNw5FG+YJpz8UFfCf0F2U= github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8= @@ -1360,6 +1379,8 @@ github.com/mattn/go-isatty v0.0.17/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/ github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-localereader v0.0.1 h1:ygSAOl7ZXTx4RdPYinUpg6W99U8jWvWi9Ye2JC/oIi4= +github.com/mattn/go-localereader v0.0.1/go.mod h1:8fBrzywKY7BI3czFoHkuzRoWE9C+EiG4R1k4Cjx5p88= github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/mattn/go-runewidth v0.0.12/go.mod h1:RAqKPSqVFrSLVXbA8x7dzmKdmGzieGRCM46jaSJTDAk= github.com/mattn/go-runewidth v0.0.13/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= @@ -1422,6 +1443,8 @@ github.com/mitchellh/reflectwalk v1.0.2 h1:G2LzWKi524PWgd3mLHV8Y5k7s6XUvT0Gef6zx github.com/mitchellh/reflectwalk v1.0.2/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= github.com/moby/buildkit v0.12.5 h1:RNHH1l3HDhYyZafr5EgstEu8aGNCwyfvMtrQDtjH9T0= github.com/moby/buildkit v0.12.5/go.mod h1:YGwjA2loqyiYfZeEo8FtI7z4x5XponAaIWsWcSjWwso= +github.com/moby/spdystream v0.2.0 h1:cjW1zVyyoiM0T7b6UoySUFqzXMoqRckQtXwGPiBhOM8= +github.com/moby/spdystream v0.2.0/go.mod h1:f7i0iNDQJ059oMTcWxx8MA/zKFIuD/lY+0GqbN2Wy8c= github.com/moby/sys/mountinfo v0.6.2 h1:BzJjoreD5BMFNmD9Rus6gdd1pLuecOFPt8wC+Vygl78= github.com/moby/sys/mountinfo v0.6.2/go.mod h1:IJb6JQeOklcdMU9F5xQ8ZALD+CUr5VlGpwtX+VE0rpI= github.com/moby/term v0.5.0 h1:xt8Q1nalod/v7BqbG21f8mQPqH+xAaC9C3N3wfWbVP0= @@ -1447,6 +1470,10 @@ github.com/mroth/weightedrand/v2 v2.0.1 h1:zrEVDIaau/E4QLOKu02kpg8T8myweFlMGikIg github.com/mroth/weightedrand/v2 v2.0.1/go.mod h1:f2faGsfOGOwc1p94wzHKKZyTpcJUW7OJ/9U4yfiNAOU= github.com/mschoch/smat v0.2.0 h1:8imxQsjDm8yFEAVBe7azKmKSgzSkZXDuKkSq9374khM= github.com/mschoch/smat v0.2.0/go.mod h1:kc9mz7DoBKqDyiRL7VZN8KvXQMWeTaVnttLRXOlotKw= +github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 h1:ZK8zHtRHOkbHy6Mmr5D264iyp3TiX5OmNcI5cIARiQI= +github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6/go.mod h1:CJlz5H+gyd6CUWT45Oy4q24RdLyn7Md9Vj2/ldJBSIo= +github.com/muesli/cancelreader v0.2.2 h1:3I4Kt4BQjOR54NavqnDogx/MIoWBFa0StPA8ELUXHmA= +github.com/muesli/cancelreader v0.2.2/go.mod h1:3XuTXfFS2VjM+HTLZY9Ak0l6eUKfijIfMUZ4EgX0QYo= github.com/muesli/reflow v0.3.0 h1:IFsN6K9NfGtjeggFP+68I4chLZV2yIKsXJFNZ+eWh6s= github.com/muesli/reflow v0.3.0/go.mod h1:pbwTDkVPibjO2kyvBQRBxTWEEGDGq0FlB1BIKtnHY/8= github.com/muesli/termenv v0.9.0/go.mod h1:R/LzAKf+suGs4IsO95y7+7DpFHO0KABgnZqtlyx2mBw= @@ -1462,6 +1489,8 @@ github.com/mwitkow/go-proto-validators v0.3.2/go.mod h1:ej0Qp0qMgHN/KtDyUt+Q1/tA github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f h1:y5//uYreIhSUg3J1GEMiLbxo1LJaP8RfCpH6pymGZus= github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= github.com/ncw/swift v1.0.47/go.mod h1:23YIA4yWVnGwv2dQlN4bB7egfYX6YLn0Yo/S6zZO/ZM= +github.com/neelance/parallel v0.0.0-20160708114440-4de9ce63d14c h1:NZOii9TDGRAfCS5VM16XnF4K7afoLQmIiZX8EkKnxtE= +github.com/neelance/parallel v0.0.0-20160708114440-4de9ce63d14c/go.mod h1:eTBvSIlRgLo+CNFFQRQTwUGTZOEdvXIKeZS/xG+D2yU= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= github.com/nightlyone/lockfile v1.0.0 h1:RHep2cFKK4PonZJDdEl4GmkabuhbsRMgk/k3uAmxBiA= github.com/nightlyone/lockfile v1.0.0/go.mod h1:rywoIealpdNse2r832aiD9jRk8ErCatROs6LzC841CI= @@ -1487,16 +1516,16 @@ github.com/onsi/ginkgo v1.14.2/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9k github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0= github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE= github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU= -github.com/onsi/ginkgo/v2 v2.14.0 h1:vSmGj2Z5YPb9JwCWT6z6ihcUvDhuXLc3sJiqd3jMKAY= -github.com/onsi/ginkgo/v2 v2.14.0/go.mod h1:JkUdW7JkN0V6rFvsHcJ478egV3XH9NxpD27Hal/PhZw= +github.com/onsi/ginkgo/v2 v2.15.0 h1:79HwNRBAZHOEwrczrgSOPy+eFTTlIGELKy5as+ClttY= +github.com/onsi/ginkgo/v2 v2.15.0/go.mod h1:HlxMHtYF57y6Dpf+mc5529KKmSq9h2FpCF+/ZkwUxKM= github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= github.com/onsi/gomega v1.10.3/go.mod h1:V9xEwhxec5O8UDM77eCW8vLymOMltsqPVYWrpDsH8xc= github.com/onsi/gomega v1.16.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY= -github.com/onsi/gomega v1.30.0 h1:hvMK7xYz4D3HapigLTeGdId/NcfQx1VHMJc60ew99+8= -github.com/onsi/gomega v1.30.0/go.mod h1:9sxs+SwGrKI0+PWe4Fxa9tFQQBG5xSsSbMXOI8PPpoQ= +github.com/onsi/gomega v1.31.0 h1:54UJxxj6cPInHS3a35wm6BK/F9nHYueZ1NVujHDrnXE= +github.com/onsi/gomega v1.31.0/go.mod h1:DW9aCi7U6Yi40wNVAvT6kzFnEVEI5n3DloYBiKiT6zk= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= github.com/opencontainers/image-spec v1.0.2/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= @@ -1608,8 +1637,8 @@ github.com/rickb777/plural v1.2.2 h1:4CU5NiUqXSM++2+7JCrX+oguXd2D7RY5O1YisMw1yCI github.com/rickb777/plural v1.2.2/go.mod h1:xyHbelv4YvJE51gjMnHvk+U2e9zIysg6lTnSQK8XUYA= github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= -github.com/rivo/uniseg v0.4.6 h1:Sovz9sDSwbOz9tgUy8JpT+KgCkPYJEN/oYzlJiYTNLg= -github.com/rivo/uniseg v0.4.6/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= +github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= +github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= github.com/rjeczalik/notify v0.9.3 h1:6rJAzHTGKXGj76sbRgDiDcYj/HniypXmSJo1SWakZeY= github.com/rjeczalik/notify v0.9.3/go.mod h1:gF3zSOrafR9DQEWSE8TjfI9NkooDxbyT4UgRGKZA0lc= github.com/robert-nix/ansihtml v1.0.1 h1:VTiyQ6/+AxSJoSSLsMecnkh8i0ZqOEdiRl/odOc64fc= @@ -1749,6 +1778,8 @@ github.com/sourcegraph/scip v0.3.3 h1:3EOkChYOntwHl0pPSAju7rj0oRuujh8owC4vjGDEr0 github.com/sourcegraph/scip v0.3.3/go.mod h1:Q67VaoTpftINIy/CLrkYQOMwlsx67h8ys+ligmdUcqM= github.com/sourcegraph/sourcegraph-accounts-sdk-go v0.0.0-20240426173441-db5b0a145ceb h1:lOQJ+wDbQ5lSBuAv6GgCuoFKucte5k2bPf1a7navsd0= github.com/sourcegraph/sourcegraph-accounts-sdk-go v0.0.0-20240426173441-db5b0a145ceb/go.mod h1:xul4Fiph3Pvdx/1qsmhCUL2GBeYjTcnga0LXZEbKdGo= +github.com/sourcegraph/src-cli v0.0.0-20240510130343-b24f883ebc37 h1:DzWR75oJG259IYRsBg25hMNLcvuaPtFUD7TrOjfMUdU= +github.com/sourcegraph/src-cli v0.0.0-20240510130343-b24f883ebc37/go.mod h1:sapmoxM90oW7VVFvXJFoFluxJfbbv+z+X0kropTO5mA= github.com/sourcegraph/yaml v1.0.1-0.20200714132230-56936252f152 h1:z/MpntplPaW6QW95pzcAR/72Z5TWDyDnSo0EOcyij9o= github.com/sourcegraph/yaml v1.0.1-0.20200714132230-56936252f152/go.mod h1:GIjDIg/heH5DOkXY3YJ/wNhfHsQHoXGjl8G8amsYQ1I= github.com/sourcegraph/zoekt v0.0.0-20240507175742-4e674a49795c h1:eQIFTvf8qZcSLhgu5NrprfwgtJEqU9tvGXG8sf1SSgU= @@ -1776,6 +1807,8 @@ github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An github.com/spf13/viper v1.0.0/go.mod h1:A8kyI5cUJhb8N+3pkfONlcEcZbueH6nhAm0Fq7SrnBM= github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE= github.com/spf13/viper v1.8.1/go.mod h1:o0Pch8wJ9BVSWGQMbra6iw0oQ5oktSIBaujf1rJH9Ns= +github.com/ssor/bom v0.0.0-20170718123548-6386211fdfcf h1:pvbZ0lM0XWPBqUKqFU8cmavspvIl9nulOYwdy6IFRRo= +github.com/ssor/bom v0.0.0-20170718123548-6386211fdfcf/go.mod h1:RJID2RhlZKId02nZ62WenDCkgHFerpIOmW0iT7GKmXM= github.com/stoewer/go-strcase v1.2.0/go.mod h1:IBiWB2sKIp3wVVQ3Y035++gc+knqhUQag1KpM8ahLw8= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= @@ -2088,8 +2121,8 @@ golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0 golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= golang.org/x/crypto v0.12.0/go.mod h1:NF0Gs7EO5K4qLn+Ylc+fih8BSTeIjAP05siRnAh98yw= -golang.org/x/crypto v0.22.0 h1:g1v0xeRhjcugydODzvb3mEM9SQ0HGp9s/nh3COQ/C30= -golang.org/x/crypto v0.22.0/go.mod h1:vr6Su+7cTlO45qkww3VDJlzDn0ctJvRgYbC2NvXHt+M= +golang.org/x/crypto v0.23.0 h1:dIJU/v2J8Mdglj/8rJ6UUOM3Zc9zLZxVZwwxMooUSAI= +golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= 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= @@ -2245,8 +2278,8 @@ golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20220819030929-7fc1605a5dde/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= -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/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M= +golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= 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= @@ -2328,6 +2361,7 @@ golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20210616045830-e2b7044e8c71/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -2349,8 +2383,8 @@ golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= 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/sys v0.20.0 h1:Od9JTbYCk261bKm4M/mw7AklTlFYIa0bIp9BgSm1S8Y= +golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= 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= @@ -2361,8 +2395,8 @@ golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY= golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= golang.org/x/term v0.11.0/go.mod h1:zC9APTIj3jG3FdV/Ons+XE1riIZXG4aZ4GTHiPZJPIU= -golang.org/x/term v0.19.0 h1:+ThwsDv+tYfnJFhF4L8jITxu1tdTWRTZpdsWgEgjL6Q= -golang.org/x/term v0.19.0/go.mod h1:2CuTdWZ7KHSQwUzKva0cbMg6q2DMI3Mmxp+gKJbskEk= +golang.org/x/term v0.20.0 h1:VnkxpohqXaOBYJtBmEppKUG6mXpi+4O6purfc2+sMhw= +golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -2380,8 +2414,8 @@ golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= -golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= -golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/text v0.15.0 h1:h1V/4gjBv8v9cjcR6+AR5+/cIYK5N/WAgiv4xlsEtAk= +golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/time v0.0.0-20170424234030-8be79e1e0910/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -2672,23 +2706,27 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= -k8s.io/api v0.29.2 h1:hBC7B9+MU+ptchxEqTNW2DkUosJpp1P+Wn6YncZ474A= -k8s.io/api v0.29.2/go.mod h1:sdIaaKuU7P44aoyyLlikSLayT6Vb7bvJNCX105xZXY0= +jaytaylor.com/html2text v0.0.0-20230321000545-74c2419ad056 h1:6YFJoB+0fUH6X3xU/G2tQqCYg+PkGtnZ5nMR5rpw72g= +jaytaylor.com/html2text v0.0.0-20230321000545-74c2419ad056/go.mod h1:OxvTsCwKosqQ1q7B+8FwXqg4rKZ/UG9dUW+g/VL2xH4= +k8s.io/api v0.30.0 h1:siWhRq7cNjy2iHssOB9SCGNCl2spiF1dO3dABqZ8niA= +k8s.io/api v0.30.0/go.mod h1:OPlaYhoHs8EQ1ql0R/TsUgaRPhpKNxIMrKQfWUp8QSE= k8s.io/apiextensions-apiserver v0.29.2 h1:UK3xB5lOWSnhaCk0RFZ0LUacPZz9RY4wi/yt2Iu+btg= k8s.io/apiextensions-apiserver v0.29.2/go.mod h1:aLfYjpA5p3OwtqNXQFkhJ56TB+spV8Gc4wfMhUA3/b8= -k8s.io/apimachinery v0.29.2 h1:EWGpfJ856oj11C52NRCHuU7rFDwxev48z+6DSlGNsV8= -k8s.io/apimachinery v0.29.2/go.mod h1:6HVkd1FwxIagpYrHSwJlQqZI3G9LfYWRPAkUvLnXTKU= -k8s.io/client-go v0.29.2 h1:FEg85el1TeZp+/vYJM7hkDlSTFZ+c5nnK44DJ4FyoRg= -k8s.io/client-go v0.29.2/go.mod h1:knlvFZE58VpqbQpJNbCbctTVXcd35mMyAAwBdpt4jrA= +k8s.io/apimachinery v0.30.0 h1:qxVPsyDM5XS96NIh9Oj6LavoVFYff/Pon9cZeDIkHHA= +k8s.io/apimachinery v0.30.0/go.mod h1:iexa2somDaxdnj7bha06bhb43Zpa6eWH8N8dbqVjTUc= +k8s.io/client-go v0.30.0 h1:sB1AGGlhY/o7KCyCEQ0bPWzYDL0pwOZO4vAtTSh/gJQ= +k8s.io/client-go v0.30.0/go.mod h1:g7li5O5256qe6TYdAMyX/otJqMhIiGgTapdLchhmOaY= k8s.io/component-base v0.29.2 h1:lpiLyuvPA9yV1aQwGLENYyK7n/8t6l3nn3zAtFTJYe8= k8s.io/component-base v0.29.2/go.mod h1:BfB3SLrefbZXiBfbM+2H1dlat21Uewg/5qtKOl8degM= k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE= -k8s.io/klog/v2 v2.110.1 h1:U/Af64HJf7FcwMcXyKm2RPM22WZzyR7OSpYj5tg3cL0= -k8s.io/klog/v2 v2.110.1/go.mod h1:YGtd1984u+GgbuZ7e08/yBuAfKLSO0+uR1Fhi6ExXjo= +k8s.io/klog/v2 v2.120.1 h1:QXU6cPEOIslTGvZaXvFWiP9VKyeet3sawzTOvdXb4Vw= +k8s.io/klog/v2 v2.120.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= k8s.io/kube-openapi v0.0.0-20210421082810-95288971da7e/go.mod h1:vHXdDvt9+2spS2Rx9ql3I8tycm3H9FDfdUoIuKCefvw= -k8s.io/kube-openapi v0.0.0-20231010175941-2dd684a91f00 h1:aVUu9fTY98ivBPKR9Y5w/AuzbMm96cd3YHRTU83I780= -k8s.io/kube-openapi v0.0.0-20231010175941-2dd684a91f00/go.mod h1:AsvuZPBlUDVuCdzJ87iajxtXuR9oktsTctW/R9wwouA= +k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 h1:BZqlfIlq5YbRMFko6/PM7FjZpUb45WallggurYhKGag= +k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340/go.mod h1:yD4MZYeKMBwQKVht279WycxKyM84kkAx2DPrTXaeb98= +k8s.io/metrics v0.30.0 h1:tqB+T0GJY288KahaO3Eb41HaDVeLR18gBmyPo0R417s= +k8s.io/metrics v0.30.0/go.mod h1:nSDA8V19WHhCTBhRYuyzJT9yPJBxSpqbyrGCCQ4jPj4= k8s.io/utils v0.0.0-20230726121419-3b25d923346b h1:sgn3ZU783SCgtaSJjpcVVlRqd6GSnlTLKgpAAttJvpI= k8s.io/utils v0.0.0-20230726121419-3b25d923346b/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= layeh.com/gopher-luar v1.0.10 h1:55b0mpBhN9XSshEd2Nz6WsbYXctyBT35azk4POQNSXo= diff --git a/internal/uploadstore/BUILD.bazel b/internal/uploadstore/BUILD.bazel index 270791c4ad79..4b1bf1d83080 100644 --- a/internal/uploadstore/BUILD.bazel +++ b/internal/uploadstore/BUILD.bazel @@ -25,6 +25,7 @@ go_library( "//internal/observation", "//lib/errors", "//lib/iterator", + "//lib/pointers", "@com_github_aws_aws_sdk_go_v2//aws", "@com_github_aws_aws_sdk_go_v2_config//:config", "@com_github_aws_aws_sdk_go_v2_credentials//:credentials", diff --git a/internal/uploadstore/s3_client.go b/internal/uploadstore/s3_client.go index 0afb644979a3..209b13c300ac 100644 --- a/internal/uploadstore/s3_client.go +++ b/internal/uploadstore/s3_client.go @@ -3,6 +3,7 @@ package uploadstore import ( "context" "fmt" + "github.com/sourcegraph/sourcegraph/lib/pointers" "io" "strings" "sync" @@ -14,6 +15,7 @@ import ( "github.com/aws/aws-sdk-go-v2/feature/s3/manager" "github.com/aws/aws-sdk-go-v2/service/s3" s3types "github.com/aws/aws-sdk-go-v2/service/s3/types" + smithyendpoints "github.com/aws/smithy-go/endpoints" "github.com/sourcegraph/log" "go.opentelemetry.io/otel/attribute" @@ -250,7 +252,7 @@ func (s *s3Store) Compose(ctx context.Context, destination string, sources ...st Bucket: multipartUpload.Bucket, Key: multipartUpload.Key, UploadId: multipartUpload.UploadId, - PartNumber: int32(partNumber), + PartNumber: pointers.Ptr(int32(partNumber)), CopySource: aws.String(fmt.Sprintf("%s/%s", s.bucket, source)), }) if err != nil { @@ -272,7 +274,7 @@ func (s *s3Store) Compose(ctx context.Context, destination string, sources ...st parts = append(parts, s3types.CompletedPart{ ETag: etags[partNumber], - PartNumber: int32(partNumber), + PartNumber: pointers.Ptr(int32(partNumber)), }) } @@ -293,7 +295,7 @@ func (s *s3Store) Compose(ctx context.Context, destination string, sources ...st return 0, errors.Wrap(err, "failed to stat composed object") } - return obj.ContentLength, nil + return pointers.Deref(obj.ContentLength, 0), nil } func (s *s3Store) Delete(ctx context.Context, key string) (err error) { @@ -437,10 +439,24 @@ func s3ClientConfig(ctx context.Context, s3config S3Config) (aws.Config, error) return awsconfig.LoadDefaultConfig(ctx, optFns...) } +type resolverV2 struct{} + +var _ s3.EndpointResolverV2 = (*resolverV2)(nil) + +func (*resolverV2) ResolveEndpoint(ctx context.Context, params s3.EndpointParameters) ( + smithyendpoints.Endpoint, error, +) { + // s3.Options.BaseEndpoint is accessible here: + // fallback to default + return s3.NewDefaultEndpointResolverV2().ResolveEndpoint(ctx, params) +} + func s3ClientOptions(config S3Config) func(o *s3.Options) { return func(o *s3.Options) { if config.Endpoint != "" { - o.EndpointResolver = s3.EndpointResolverFromURL(config.Endpoint) + // https://aws.github.io/aws-sdk-go-v2/docs/configuring-sdk/endpoints/ + o.BaseEndpoint = aws.String(config.Endpoint) + o.EndpointResolverV2 = &resolverV2{} } o.UsePathStyle = config.UsePathStyle diff --git a/src-cli/.dockerignore b/src-cli/.dockerignore new file mode 100644 index 000000000000..4ccee25f2cf1 --- /dev/null +++ b/src-cli/.dockerignore @@ -0,0 +1,13 @@ +# Anything Git or VSCode related is definitely irrelevant for a build. +.git* +.vscode + +# The docker directory contains other Docker images. +docker + +# The release directory is created by goreleaser and isn't required here. +release + +# Documentation and examples aren't needed. +*.md +*.{yaml,yml} diff --git a/src-cli/.gitattributes b/src-cli/.gitattributes new file mode 100644 index 000000000000..fa1385d99a31 --- /dev/null +++ b/src-cli/.gitattributes @@ -0,0 +1 @@ +* -text diff --git a/src-cli/.github/PULL_REQUEST_TEMPLATE.md b/src-cli/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 000000000000..a47c1642f4c7 --- /dev/null +++ b/src-cli/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,9 @@ +### Test plan + + diff --git a/src-cli/.github/workflows/docker.yml b/src-cli/.github/workflows/docker.yml new file mode 100644 index 000000000000..f778e526201a --- /dev/null +++ b/src-cli/.github/workflows/docker.yml @@ -0,0 +1,34 @@ +# For more information, refer to the "Dependent Docker images" section of +# DEVELOPMENT.md. +name: Publish Docker image dependencies + +# We only want to build on releases; this condition is 100% stolen from the +# goreleaser action. +on: + push: + tags: + - "*" + - "!latest" + +jobs: + publish: + runs-on: ubuntu-22.04 + steps: + - name: Checkout + uses: actions/checkout@v4 + + # We need buildx to be able to build a multi-architecture image. + - name: Set up Docker buildx + uses: docker/setup-buildx-action@v3 + + # We also need QEMU, since this is running on an AMD64 host and we want to + # build ARM64 images. + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + with: + platforms: arm64 + + - run: ./docker/batch-change-volume-workspace/push.py -d ./docker/batch-change-volume-workspace/Dockerfile -i sourcegraph/src-batch-change-volume-workspace -p linux/amd64,linux/arm64,linux/386 --readme ./docker/batch-change-volume-workspace/README.md + env: + DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} + DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} diff --git a/src-cli/.github/workflows/go-ci.yml b/src-cli/.github/workflows/go-ci.yml new file mode 100644 index 000000000000..dfe8d1b909d4 --- /dev/null +++ b/src-cli/.github/workflows/go-ci.yml @@ -0,0 +1,20 @@ +name: Go CI + +on: + - push + +jobs: + go-test: + strategy: + matrix: + go-version: [1.20.x] + os: [ubuntu-latest, macos-latest, windows-latest] + runs-on: ${{ matrix.os }} + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Set up Go + uses: actions/setup-go@v5 + with: + go-version: ${{ matrix.go-version }} + - run: go test -race -v ./... diff --git a/src-cli/.github/workflows/go-lint.yml b/src-cli/.github/workflows/go-lint.yml new file mode 100644 index 000000000000..312638156522 --- /dev/null +++ b/src-cli/.github/workflows/go-lint.yml @@ -0,0 +1,16 @@ +name: Go Lint + +on: + - push + +jobs: + go-lint: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Set up Go + uses: actions/setup-go@v5 + with: + go-version: 1.20.x + - run: ./dev/go-lint.sh diff --git a/src-cli/.github/workflows/goreleaser-check.yml b/src-cli/.github/workflows/goreleaser-check.yml new file mode 100644 index 000000000000..3bb0aa0191a4 --- /dev/null +++ b/src-cli/.github/workflows/goreleaser-check.yml @@ -0,0 +1,24 @@ +name: GoReleaser check + +on: + push: + workflow_dispatch: + +jobs: + goreleaser: + name: check + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Set up Go + uses: actions/setup-go@v5 + with: + go-version: 1.20.x + - name: Check GoReleaser config + uses: goreleaser/goreleaser-action@v5 + with: + version: latest + args: check diff --git a/src-cli/.github/workflows/goreleaser.yml b/src-cli/.github/workflows/goreleaser.yml new file mode 100644 index 000000000000..4836f1e69f95 --- /dev/null +++ b/src-cli/.github/workflows/goreleaser.yml @@ -0,0 +1,258 @@ +name: Build and Release + +on: + push: + tags: + - '*' + +# There are two cases where this GitHub action will run: +# +# 1. We are releasing a new latest version for src-cli, as a major, minor, or patch +# update, for instance 4.0.2 -> 4.1.0, OR +# 2. We are releasing a new minor/patch version for an older major/minor version of +# src-cli, for instance if the latest version is 4.0.2 and we're releasing 3.43.3 +# +# In both cases, we want to run both goreleaser and npm to publish new versions in all the +# places we care about. For goreleaser publishing to Homebrew, we need to publish to +# different formulas depending on if we're case 1. or case 2, and neither goreleaser nor +# Homebrew has a good way of handling this automatically. In the case of the former (a new +# latest release), we must: +# +# 1. Copy the main formula in our Homebrew tap for the previous latest release to a +# versioned formula +# 2. Build and publish the new release to the main formula +# 3. Update the Homebrew symlink alias for the latest version +# +# In the case of the latter (a patch release for an older version), we only need to: +# +# 1. Build and publish the new release to a versioned Homebrew formula +# +# This action contains 5 jobs to accommodate both cases: +# +# release_type [always] - checks tags, determines if we're case 1. or case 2. +# goreleaser_pre [if case 1.] - copies the main formula to a versioned formula +# goreleaser [always] - runs tests, builds + publishes with goreleaser +# goreleaser_post [if case 1.] - updates symlink to latest version +# npm [always] - publishes to npm +jobs: + # release_type compares the current tag to the highest versioned tag available on the + # repo to determine if this release is for a new latest version or a patch of an older + # version. + release_type: + name: Determine release type + runs-on: ubuntu-latest + outputs: + is_latest_version: ${{ env.is_latest_version }} + latest_tag: ${{ env.latest_tag }} + second_latest_tag: ${{ env.second_latest_tag }} + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Set current tag, latest (highest version) tag, and second latest tag + # For latest and second latest tags, we can't use git tag --sort=version:refname + # because git doesn't have a concept of pre-release versions and thus mis-sorts + # versions like 4.0.0-rc.0 *after* 4.0.0. + run: | + echo "current_tag=${GITHUB_REF_NAME}" >> $GITHUB_ENV + echo "latest_tag=$(git tag | tr - \~ | sort --version-sort | tr \~ - | tail -1)" >> $GITHUB_ENV + echo "second_latest_tag=$(git tag | tr - \~ | sort --version-sort | tr \~ - | tail -2 | sed -n 1p)" >> $GITHUB_ENV + - name: Install semver + run: | + wget -O /usr/local/bin/semver https://raw.githubusercontent.com/fsaintjacques/semver-tool/master/src/semver + chmod +x /usr/local/bin/semver + - name: Compare tags + # If the current tag is also the latest (highest-versioned) tag, semver compare + # returns 0. If the current tag is older (i.e. it's a patch for an older version), + # semver compare will return -1. By definition, it should be impossible for the + # current tag to be newer than the latest tag unless somehow the current tag is + # not a real tag, but if for some reason this happens, it will be treated the same + # as if it were the latest. + run: | + if [ "$(semver compare ${{ env.current_tag }} ${{ env.latest_tag }})" -ge 0 ] + then + echo "is_latest_version=1" >> $GITHUB_ENV + else + echo "is_latest_version=0" >> $GITHUB_ENV + fi + - name: Log variables + run: | + echo "Version for this release: ${{ env.current_tag }}" + echo "Latest version: ${{ env.latest_tag }}" + if [[ ${{ env.is_latest_version }} == 1 ]] + then + echo "Releasing new latest version." + else + echo "Releasing patch of older version." + fi + + # goreleaser_pre copies the main formula in our Homebrew tap for the previous latest + # release (second latest tag) to a versioned formula, so that it is preserved when + # goreleaser runs and overwrites the main formula for the latest build. + goreleaser_pre: + name: Copy previous release + runs-on: ubuntu-latest + needs: release_type + # Only run this step if we're releasing a new latest version. Creating a patch release + # does not touch the main formula. + if: needs.release_type.outputs.is_latest_version == 1 + steps: + - name: Set variables + run: | + echo "latest_tag=${{ needs.release_type.outputs.latest_tag }}" >> $GITHUB_ENV + echo "second_latest_tag=${{ needs.release_type.outputs.second_latest_tag }}" >> $GITHUB_ENV + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Set versioning variables + run: | + echo "versioned_formula_file=Formula/src-cli@${{ env.second_latest_tag }}.rb" >> $GITHUB_ENV + echo "versioned_classname=SrcCliAT$(echo ${{ env.second_latest_tag }} | sed 's/\.//g')" >> $GITHUB_ENV + - name: Log variables + run: | + echo "Second latest tag (previous latest release): ${{ env.second_latest_tag }}" + echo "Versioned formula file: ${{ env.versioned_formula_file }}" + echo "Versioned classname: ${{ env.versioned_classname }}" + - name: Checkout Homebrew tap + uses: actions/checkout@v4 + with: + repository: sourcegraph/homebrew-src-cli + fetch-depth: 0 + token: ${{ secrets.BOT_CROSS_REPO_PAT }} + - name: Copy main release formula file to versioned formula file + run: cp Formula/src-cli.rb ${{ env.versioned_formula_file }} + # Homebrew expects the name of the class in a versioned formula file to be of the + # format {Formula}AT{Major}{Minor}{Patch}, but the main formula classname is just + # {Formula}, so we manually update the name: SrcCli -> SrcCliAT### + - name: Rename formula classname + run: sed -i 's/class SrcCli/class ${{ env.versioned_classname }}/' ${{ env.versioned_formula_file }} + - name: Commit result + run: | + git config user.name sourcegraph-bot + git config user.email sourcegraph-bot-github@sourcegraph.com + git add . + git commit --allow-empty -m "Copy previous release" + git push + + # goreleaser runs tests before building, then uses goreleaser to publish to Homebrew and + # Docker Hub. + goreleaser: + name: Run goreleaser + runs-on: ubuntu-latest + needs: [release_type, goreleaser_pre] + # By default, this job will be skipped if either "needs" job is skipped. This tells + # GitHub actions to always run it, so long as the previous jobs that ran didn't fail. + if: | + always() && + (needs.release_type.result == 'success') && + (needs.goreleaser_pre.result == 'success' || needs.goreleaser_pre.result == 'skipped') + outputs: + # Passthrough from previous jobs so that they're also available in goreleaser_post + second_latest_tag: ${{ needs.release_type.outputs.second_latest_tag }} + latest_tag: ${{ needs.release_type.outputs.latest_tag }} + is_latest_version: ${{ env.is_latest_version }} + steps: + - name: Set variables + run: echo "is_latest_version=${{ needs.release_type.outputs.is_latest_version }}" >> $GITHUB_ENV + - name: Set config file + # These goreleaser config files are identical except for the brews.name template. + # Homebrew expects the main formula to be named one way, and versioned formulas to + # be named another, but goreleaser only allows us to specify a single template. + run: | + if [[ ${{ env.is_latest_version }} == 1 ]] + then + echo "config_file=.goreleaser.yml" >> $GITHUB_ENV + else + echo "config_file=.goreleaser-patch.yml" >> $GITHUB_ENV + fi + - name: Log config file + run: | + echo "Goreleaser config file: ${{ env.config_file }}" + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Set up Go + uses: actions/setup-go@v5 + with: + go-version: 1.20.x + - run: go test ./... + - run: go test -race -v ./... + - run: echo "${DOCKER_PASSWORD}" | docker login -u=$DOCKER_USERNAME --password-stdin + env: + DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} + DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} + - name: Run GoReleaser + uses: goreleaser/goreleaser-action@v5 + with: + version: latest + # We use a different goreleaser config for releasing a new latest version vs. + # releasing a patch on an older version. For releasing the new latest version, + # we want to update the main (unversioned) Homebrew formula. For releasing a + # patch on an older version, we want to publish a new versioned formula and + # leave the main formula untouched. + args: release --clean --config=${{ env.config_file }} + env: + # Use separate access token, because we need a scope:repo token to publish the brew formula. + GITHUB_TOKEN: ${{ secrets.GH_PAT }} + + # goreleaser_post updates the symlink name to refer to the new release version. The + # symlink enables users to install the latest src-cli with the versioned command: + # $ brew install sourcegraph/src-cli/src-cli@X.Y.Z + # alongside the command to install it via the main formula: + # $ brew install sourcegraph/src-cli/src-cli + goreleaser_post: + name: Create new release version symlink + runs-on: ubuntu-latest + needs: goreleaser + # Only run this step if we're releasing a new latest version. Creating a patch release + # does not require updating the symlink. + if: needs.goreleaser.outputs.is_latest_version == 1 + steps: + - name: Set variables + run: | + echo "old_symlink_name=Aliases/src-cli@${{ needs.goreleaser.outputs.second_latest_tag }}" >> $GITHUB_ENV + echo "new_symlink_name=Aliases/src-cli@${{ needs.goreleaser.outputs.latest_tag }}" >> $GITHUB_ENV + - name: Log variables + run: | + echo "Old symlink: ${{ env.old_symlink_name }}" + echo "New symlink: ${{ env.new_symlink_name }}" + - name: Checkout Homebrew tap + uses: actions/checkout@v4 + with: + repository: sourcegraph/homebrew-src-cli + fetch-depth: 0 + token: ${{ secrets.BOT_CROSS_REPO_PAT }} + - name: Replace symlink + run: mv ${{ env.old_symlink_name }} ${{ env.new_symlink_name }} + - name: Commit result + run: | + git config user.name sourcegraph-bot + git config user.email sourcegraph-bot-github@sourcegraph.com + git add . + git commit -m "Update latest release symlink" + git push + + # npm publishes the new version to the npm package registry + npm: + runs-on: ubuntu-latest + needs: goreleaser + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + - uses: actions/setup-node@v4 + with: + node-version: 16 + registry-url: 'https://registry.npmjs.org' + - run: echo "VERSION=${GITHUB_REF/refs\/tags\//}" >> $GITHUB_ENV + - run: echo "Releasing version ${{ env.version }}" + - run: yarn version --no-git-tag-version --new-version "${{ env.VERSION }}" + working-directory: npm-distribution + - run: npm publish --access public + working-directory: npm-distribution + env: + NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}} diff --git a/src-cli/.github/workflows/pr-auditor.yml b/src-cli/.github/workflows/pr-auditor.yml new file mode 100644 index 000000000000..0ca52777577c --- /dev/null +++ b/src-cli/.github/workflows/pr-auditor.yml @@ -0,0 +1,22 @@ +# See https://docs.sourcegraph.com/dev/background-information/ci#pr-auditor +name: pr-auditor +on: + pull_request_target: + types: [ closed, edited, opened, synchronize, ready_for_review ] + workflow_dispatch: + +jobs: + check-pr: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + repository: 'sourcegraph/pr-auditor' + - uses: actions/setup-go@v5 + with: { go-version: '1.21' } + + - run: './check-pr.sh' + env: + GITHUB_EVENT_PATH: ${{ env.GITHUB_EVENT_PATH }} + GITHUB_TOKEN: ${{ secrets.PR_AUDITOR_TOKEN }} + GITHUB_RUN_URL: https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }} diff --git a/src-cli/.github/workflows/scip.yml b/src-cli/.github/workflows/scip.yml new file mode 100644 index 000000000000..fa2a5655de28 --- /dev/null +++ b/src-cli/.github/workflows/scip.yml @@ -0,0 +1,18 @@ +name: SCIP +'on': + - push +jobs: + scip-go: + runs-on: ubuntu-latest + container: sourcegraph/scip-go + steps: + - uses: actions/checkout@v4 + - name: Get src-cli + run: curl -L https://sourcegraph.com/.api/src-cli/src_linux_amd64 -o /usr/local/bin/src; + chmod +x /usr/local/bin/src + - name: Set directory to safe for git + run: git config --global --add safe.directory $GITHUB_WORKSPACE + - name: Generate SCIP data + run: scip-go + - name: Upload SCIP data + run: src code-intel upload -github-token=${{ secrets.GITHUB_TOKEN }} diff --git a/src-cli/.gitignore b/src-cli/.gitignore new file mode 100644 index 000000000000..64b187f296b4 --- /dev/null +++ b/src-cli/.gitignore @@ -0,0 +1,16 @@ +./src +cmd/src/src +*.zip +release +./vendor +.idea +.env +.envrc +src-snapshot/ +bazel-bin +bazel-out +bazel-testlogs +bazel-zoekt +bazel-src-cli +.DS_Store +samples \ No newline at end of file diff --git a/src-cli/.golangci.yml b/src-cli/.golangci.yml new file mode 100644 index 000000000000..961158d5e167 --- /dev/null +++ b/src-cli/.golangci.yml @@ -0,0 +1,59 @@ +# See explanation of linters at https://golangci-lint.run/usage/linters/ +linters: + disable-all: true + enable: + - bodyclose + - depguard + - gocritic + - goimports + - gosimple + - govet + - ineffassign + - nolintlint + - staticcheck + - typecheck + - unconvert + - unused + +linters-settings: + depguard: + rules: + main: + deny: + - pkg: "errors" + desc: "Use github.com/sourcegraph/sourcegraph/lib/errors instead" + - pkg: "github.com/pkg/errors" + desc: "Use github.com/sourcegraph/sourcegraph/lib/errors instead" + - pkg: "github.com/cockroachdb/errors" + desc: "Use github.com/sourcegraph/sourcegraph/lib/errors instead" + - pkg: "github.com/hashicorp/go-multierror" + desc: "Use github.com/sourcegraph/sourcegraph/lib/errors instead" + - pkg: "io/ioutil" + desc: "The ioutil package has been deprecated" + gocritic: + disabled-checks: + - appendAssign # Too many false positives + - assignOp # Maybe worth adding, but likely not worth the noise + - commentFormatting # No strong benefit + - deprecatedComment # Unnecessary + - exitAfterDefer # Only occurs in auxiliary tools + - ifElseChain # Noisy for not much gain + - singleCaseSwitch # Noisy for not much gain + govet: + disable: + - composites + forbidigo: + forbid: + # Use errors.New instead + - 'fmt\.Errorf' + +issues: + exclude-rules: + # Exclude bodyclose lint from tests because leaking connections in tests + # is a non-issue, and checking that adds unnecessary noise + - path: _test\.go + linters: + - bodyclose + +run: + timeout: 5m diff --git a/src-cli/.goreleaser-patch.yml b/src-cli/.goreleaser-patch.yml new file mode 100644 index 000000000000..f7307e54740a --- /dev/null +++ b/src-cli/.goreleaser-patch.yml @@ -0,0 +1,63 @@ +# This is the patch release configuration for goreleaser, which builds and publishes a new +# patch release for an older version of src-cli. It publishes a new versioned formula in +# the Homebrew tap and does not publish a "latest" image to Docker Hub. It should match +# .goreleaser.yml in every way except for the brews.name template and the +# dockers.image_templates list. +dist: release +env: + - GO111MODULE=on + - CGO_ENABLED=0 +before: + hooks: + - go mod download + - go mod tidy + - go generate ./schema +builds: +- + main: ./cmd/src/ + binary: src + ldflags: + - -X github.com/sourcegraph/src-cli/internal/version.BuildTag={{.Version}} + goos: + - linux + - windows + - darwin + goarch: + - amd64 + - arm64 +archives: +- id: tarball + format: tar.gz +- id: bin + format: binary + wrap_in_directory: false + name_template: "src_{{ .Os }}_{{ .Arch }}" +brews: + - + name: src-cli@{{ .Major }}.{{ .Minor }}.{{ .Patch }} + homepage: "https://sourcegraph.com/" + description: "Sourcegraph CLI" + tap: + owner: sourcegraph + name: homebrew-src-cli + # Folder inside the repository to put the formula. + # Default is the root folder. + folder: Formula + # We need to set this so that goreleaser doesn't think the binary is called + # `src-cli` + install: | + bin.install "src" + ids: + - tarball +dockers: + - dockerfile: Dockerfile.release + image_templates: + - "sourcegraph/src-cli:{{ .Tag }}" + - "sourcegraph/src-cli:{{ .Major }}" + - "sourcegraph/src-cli:{{ .Major }}.{{ .Minor }}" +changelog: + sort: asc + filters: + exclude: + - '^docs:' + - '^test:' diff --git a/src-cli/.goreleaser.yml b/src-cli/.goreleaser.yml new file mode 100644 index 000000000000..392fb61cafc6 --- /dev/null +++ b/src-cli/.goreleaser.yml @@ -0,0 +1,63 @@ +# This is the main configuration for goreleaser, which builds and publishes a new latest +# release. It updates the main formula in the Homebrew tap. It should match +# .goreleaser-patch.yml in every way except for the brews.name template and the +# dockers.image_templates list. +dist: release +env: + - GO111MODULE=on + - CGO_ENABLED=0 +before: + hooks: + - go mod download + - go mod tidy + - go generate ./schema +builds: +- + main: ./cmd/src/ + binary: src + ldflags: + - -X github.com/sourcegraph/src-cli/internal/version.BuildTag={{.Version}} + goos: + - linux + - windows + - darwin + goarch: + - amd64 + - arm64 +archives: +- id: tarball + format: tar.gz +- id: bin + format: binary + wrap_in_directory: false + name_template: "src_{{ .Os }}_{{ .Arch }}" +brews: + - + name: src-cli + homepage: "https://sourcegraph.com/" + description: "Sourcegraph CLI" + repository: + owner: sourcegraph + name: homebrew-src-cli + # Folder inside the repository to put the formula. + # Default is the root folder. + directory: Formula + # We need to set this so that goreleaser doesn't think the binary is called + # `src-cli` + install: | + bin.install "src" + ids: + - tarball +dockers: + - dockerfile: Dockerfile.release + image_templates: + - "sourcegraph/src-cli:{{ .Tag }}" + - "sourcegraph/src-cli:{{ .Major }}" + - "sourcegraph/src-cli:{{ .Major }}.{{ .Minor }}" + - "sourcegraph/src-cli:latest" +changelog: + sort: asc + filters: + exclude: + - '^docs:' + - '^test:' diff --git a/src-cli/.tool-versions b/src-cli/.tool-versions new file mode 100644 index 000000000000..2de72235ac0b --- /dev/null +++ b/src-cli/.tool-versions @@ -0,0 +1,3 @@ +golang 1.22.2 +shfmt 3.8.0 +shellcheck 0.10.0 diff --git a/src-cli/.vscode/settings.json b/src-cli/.vscode/settings.json new file mode 100644 index 000000000000..a42afc374a71 --- /dev/null +++ b/src-cli/.vscode/settings.json @@ -0,0 +1,13 @@ +{ + "go.lintTool": "golangci-lint", + "shellformat.flag": "-i 2 -ci", + "editor.formatOnSave": false, + "[go]": { + "editor.formatOnSave": true, + }, + "go.useLanguageServer": true, + "gopls": { + "local": "github.com/sourcegraph/src-cli", + }, + "cody.codebase": "github.com/sourcegraph/src-cli", +} diff --git a/src-cli/AUTH_PROXY.md b/src-cli/AUTH_PROXY.md new file mode 100644 index 000000000000..86143bb3cf87 --- /dev/null +++ b/src-cli/AUTH_PROXY.md @@ -0,0 +1,17 @@ +# Authenticating requests behind a proxy + +If your instance is behind an authenticating proxy that requires additional headers, they can be supplied via environment variables as follows: + +```sh +SRC_HEADER_AUTHORIZATION="Bearer $(curl http://service.internal.corp)" SRC_HEADER_EXTRA=metadata src search 'foobar' +``` + +In this example, the headers `authorization: Bearer my-generated-token` and `extra: metadata` will be threaded to all HTTP requests to your instance. Multiple such headers can be supplied. + +An alternative to the above when passing in multiple headers or headers with dashes is to make use of the `SRC_HEADERS` environment variable as follow: + +```sh +SRC_HEADERS="AUTHORIZATION:Bearer somerandom_string\nClient-ID:client-one\nextra:metadata" +``` + +Note: The different header keys and values need to separated by a new line ("\n"). In the above example, the headers `authorization: Bearer somerandom_string`, `client-id: client-one` and `extra: metadata` will be threaded to all HTTP requests to your instance. diff --git a/src-cli/BUILD.bazel b/src-cli/BUILD.bazel new file mode 100644 index 000000000000..fada8decbf1e --- /dev/null +++ b/src-cli/BUILD.bazel @@ -0,0 +1,16 @@ +# gazelle:prefix github.com/sourcegraph/src-cli +# gazelle:build_file_name BUILD.bazel +load("@bazel_gazelle//:def.bzl", "gazelle") + +gazelle(name = "gazelle") + +gazelle( + name = "gazelle-update-repos", + args = [ + "-from_file=go.mod", + "-to_macro=deps.bzl%go_dependencies", + "-prune", + "-build_file_proto_mode=disable_global", + ], + command = "update-repos", +) diff --git a/src-cli/CHANGELOG.md b/src-cli/CHANGELOG.md new file mode 100644 index 000000000000..951275c41343 --- /dev/null +++ b/src-cli/CHANGELOG.md @@ -0,0 +1,1031 @@ + + +# Changelog + +All notable changes to `src-cli` are documented in this file. + +## Unreleased + +### Added + +### Changed + +### Fixed + +### Removed + +## 5.3.0 + +### Added + +### Changed + +### Fixed + +- Updated dependencies to address CVE-2023-39325 and GHSA-m425-mq94-257g + +### Removed + +## 5.2.1 + +### Fixed + +- The fork attribute in changesetTemplate is now acknowleged when creating a batch change via `src-cli`. [#58156](https://github.com/sourcegraph/sourcegraph/pull/58156) + +## 5.2.0 + +### Added + +- Added flag to configure the concurrency of uploading multipart code-intel indexes, for when limited upload bandwidth causes individual parts to timeout. [#1023](https://github.com/sourcegraph/src-cli/pull/1023) + +## 5.1.2 + +### Changed + +- Replace `x11` clipboard library with `attoto/clipboard` to support more platforms. [#1022](https://github.com/sourcegraph/src-cli/pull/1022) + +### Fixed + +- The temporary docker volume created during workspace preparation is now cleaned up when failure occurs. [#1021](https://github.com/sourcegraph/src-cli/pull/1021). + +## 5.1.1 + +### Fixed + +- Fixed `src snapshot validate`. [#1010](https://github.com/sourcegraph/src-cli/pull/1010) +- Fixed `src code-intel upload` not respecting `-insecure-skip-verify`. [#1012](https://github.com/sourcegraph/src-cli/pull/1012) + +## 5.1.0 + +### Added + +- `src validate install` can check executor connections [#974](https://github.com/sourcegraph/src-cli/pull/974) +- `src validate install` can send test SMTP message [#973](https://github.com/sourcegraph/src-cli/pull/973) +- `src repos {add|update|delete}-metadata -repo-name` flag support [#977](https://github.com/sourcegraph/src-cli/pull/977) + +### Changed + +- Renamed `src repo {add|update|delete}-kvp` to `repo {add|update|delete}-metadata` [#972](https://github.com/sourcegraph/src-cli/pull/972) + +## 5.0.3 + +### Fixed + +- Fixed `src admin create` returning token to stderr instead of stdout. [963](https://github.com/sourcegraph/src-cli/pull/963) +- Fixed `src validate install` failure with Sourcegraph v5.0.0. [964](https://github.com/sourcegraph/src-cli/pull/964) + +## 5.0.2 + +### Added + +- `src admin create` has been added to setup initial admin accounts on new Sourcegraph deployments. [957](https://github.com/sourcegraph/src-cli/pull/957) + +### Fixed + +- Fixed `src validate install` requiring `SRC_GITHUB_TOKEN` in all cases. [958](https://github.com/sourcegraph/src-cli/pull/958) + +## 5.0.1 + +### Fixed + +- Fixed `failed to check version returned by Sourcegraph: Invalid Semantic Version` error in Batch Changes when running against an insiders version of Sourcegraph. + +## 5.0.0 + +### Added + +- `src team` (experimental) has been added to manage teams. [#922](https://github.com/sourcegraph/src-cli/pull/922) +- `src codeowners` (experimental) has been added to manage manually ingested `CODEOWNERS`. [#943](https://github.com/sourcegraph/src-cli/pull/943) + +## 4.5.0 + +No noteworthy changes, mechanical release to match Sourcegraph release. + +## 4.4.2 + +### Fixed + +- `src codeintel upload` will no longer overwrite the entire route supplied via `-upload-route` if SCIP data is detected. [#934](https://github.com/sourcegraph/src-cli/pull/934) + +## 4.4.1 + +### Added + +- `src codeintel upload` will now upload SCIP indexes (over LSIF indexes) when the target instance supports it. [#897](https://github.com/sourcegraph/src-cli/pull/897) + +- `src validate kube` adds support for validating Sourcegraph deployments on Kubernetes. Validations include Pods, Services, PVCs, and network connectivity. [#926](https://github.com/sourcegraph/src-cli/pull/926) + +## 4.4.0 + +### Added + +- `src validate` has an added check to determine if an instance is able to create a basic code insight. [#912](https://github.com/sourcegraph/src-cli/pull/912) +- Add visual feedback to `src validate install` CLI [#921](https://github.com/sourcegraph/src-cli/pull/921) +- Add insight cleanup as per [#912](https://github.com/sourcegraph/src-cli/pull/912#issuecomment-1377084768) + +### Changed + +- Renamed `src users clean` command to `src users prune` [#901](https://github.com/sourcegraph/src-cli/pull/901) +- Failed code-intel uploads now print every error encountered while retrying instead of only the error encountered in the final retry attempt. [#46281](https://github.com/sourcegraph/sourcegraph/pull/46281) +- `src validate` has been changed to `srv validate install` subcommand [#921](https://github.com/sourcegraph/src-cli/pull/921) +- Move GitHub token for `srv validate` to ENV var [#921](https://github.com/sourcegraph/src-cli/pull/921) + +### Fixed + +- Fix network timeout in `src users clean` occuring in instances with many users [#901](https://github.com/sourcegraph/src-cli/pull/901) +- Aligned parsing of spec file parameter of `src batch repos` with other commands. [#919](https://github.com/sourcegraph/src-cli/pull/919) +- Remove empty log outputs during batch spec execution. [#923](https://github.com/sourcegraph/src-cli/pull/923) + +### Removed + +- Removed **create first admin** feature from `src validate` [#921](https://github.com/sourcegraph/src-cli/pull/921) + +## 4.3.0 + +### Added + +- Batch Changes: Watchdog that checks for docker responsiveness while running commands has been added. [#898](https://github.com/sourcegraph/src-cli/pull/898) + +## 4.2.1 + +### Added + +- Batch specs being run locally with `src batch preview` or `src batch apply` can now be run with the `-run-as-root` flag, which will run all step containers as root instead of the default user for the image. This is off by default. [#886](https://github.com/sourcegraph/src-cli/pull/886) +- An **experimental** set of `src snapshot` commands for generating and sharing snapshots of Sourcegraph instances, as well as testing Sourcegraph instances restored from snapshots. [#888](https://github.com/sourcegraph/src-cli/pull/888), [#889](https://github.com/sourcegraph/src-cli/pull/889), [#890](https://github.com/sourcegraph/src-cli/pull/890) + +### Changed + +- Batch specs being run from the server using this version of `src-cli` now run all step containers as root, rather than as the default user for the image. [#886](https://github.com/sourcegraph/src-cli/pull/886) + +### Fixed + +- Batch changes: Git patches are now binary encoded instead of UTF-8 over the wire, fixing support for non-UTF-8 files. [#887](https://github.com/sourcegraph/src-cli/pull/887) + +## 4.2.0 + +No noteworthy changes, mechanical release to match Sourcegraph release. + +## 4.1.1 + +### Added + +- Mounted files are now uploaded to the Sourcegraph instance when running `src batch preview` and `src batch apply`. [#861](https://github.com/sourcegraph/src-cli/pull/861) + +### Changed + +- Improved output for failing docker pulls in batch change execution. [#880](https://github.com/sourcegraph/src-cli/pull/880) + +## 4.1.0 + +### Changed + +- All current and future versions of src-cli from version 3.43.2 and up will now be available for installation via Homebrew in addition to the latest version. A specific version can be installed with the command `brew install sourcegraph/src-cli/src-cli@X.Y.Z`. [#864](https://github.com/sourcegraph/src-cli/pull/864) + +## 4.0.1 + +### Added + +- Mounting files now works when running batch changes server side. [#816](https://github.com/sourcegraph/src-cli/pull/816) + +## 4.0.0 + +### Fixed + +- Fixed a performance issue when serving git repos where it would take an exponentially large amount of time to list the repos. [#810](https://github.com/sourcegraph/src-cli/pull/810) +- Fixed Bare git repo support when serving git repos. [#810](https://github.com/sourcegraph/src-cli/pull/810) + +### Removed + +- Removed git sub-repo support when serving git repos as it introduced a huge performance hit. [#810](https://github.com/sourcegraph/src-cli/pull/810) + +## 3.43.2 + +### Added + +- `src users cleanup` has been added. [#826](https://github.com/sourcegraph/src-cli/pull/826) + +## 3.43.1 + +### Changed + +- `src extensions` subcommands are now deprecated, and will be removed in Sourcegraph 4.0. + +## 3.43.0 + +### Changed + +- `src code-intel upload` now includes an additional header for efficiently tracking the uncompressed size of uploads in the backend. [#39690](https://github.com/sourcegraph/sourcegraph/pull/39690) + +### Fixed + +- The default directory used to mount files into containers will be automatically changed to a temporary directory within `$HOME` if Docker Desktop for Linux is in use. [#754](https://github.com/sourcegraph/src-cli/issues/754) +- src-cli no longer leaves corrupted repo archives behind when interrupted during batch spec execution. [#817](https://github.com/sourcegraph/src-cli/pull/817) + +## 3.42.3 + +### Changed + +- **IMPORTANT:** Searches using the command `src search -stream` is updated to use a **new and better search result schema**, improving highlighting and accurate result counts for multiline matches. Please see the new JSON schema for results if you use the `src search -stream -json` output: [#807](https://github.com/sourcegraph/src-cli/pull/807) + +### Fixed + +- INTERNAL ONLY: Fixed src batch exec not logging errors. + +## 3.42.2 + +### Fixed + +- Fixed an issue where execution would eventually fail with an error when there were unsupported or ignored workspaces found by server-side execution. + +## 3.42.1 + +### Fixed + +- Fixed an issue where no workspaces would be executed on after successful workspace resolution. + +## 3.42.0 + +### Changed + +- Starting with Sourcegraph 3.42, src-cli will be resolving workspaces for Batch Changes server-side which is significantly faster and reduces network utilization. + +## 3.41.1 + +### Added + +- Batch specs that mount paths now cache results. [sourcegraph/sourcegraph#37216](https://github.com/sourcegraph/sourcegraph/issues/37216) +- `SRC_HEADERS="key:value\nkey2:value2"` is now supported for passing multiple headers when authenticating `src` with custom auth proxies. See [auth proxy configuration docs](AUTH_PROXY.md) for more information. [#796](https://github.com/sourcegraph/src-cli/pull/796) + +### Changed + +- Some internal changes to `src batch exec` mode for server-side execution. + +### Fixed + +- Handle SIGINT interrupt when reading from Stdin. [#794](https://github.com/sourcegraph/src-cli/pull/794) + +## 3.41.0 + +### Changed + +- The default parallelism of `src batch preview` and `src batch apply` are now based on the number of CPU cores available to Docker, rather than the host system running `src`. This can be overridden [with the `-j` flag](https://docs.sourcegraph.com/cli/references/batch/preview). [#786](https://github.com/sourcegraph/src-cli/pull/786) + +### Fixed + +- The preview link shown when running `src batch remote` to create a new batch change no longer 404s. [sourcegraph/src-cli](https://github.com/sourcegraph/src-cli/pull/787) + +## 3.40.11 + +### Changed + +- Adjusted internal mechanisms used in server-side execution. This has no user-facing impact. + +## 3.40.10 + +### Added + +- Batch Specs now support mounting a path from the local machine into a Docker container. [sourcegraph/sourcegraph#31790](https://github.com/sourcegraph/sourcegraph/issues/31790) + +### Fixed + +- When a step results in no change, it would fail with exit code 128 when used in caching. [#778](https://github.com/sourcegraph/src-cli/pull/778) +- A bug where `previous_step.stdout` would not be available for partially cached workspaces. [#781](https://github.com/sourcegraph/src-cli/pull/781) + +## 3.40.9 + +### Added + +- A new [templating](https://docs.sourcegraph.com/campaigns/references/batch_spec_templating) variable, `batch_change_link` has been added for more control over where the "Created by Sourcegraph batch change ..." message appears in the published changeset description. [#491](https://github.com/sourcegraph/sourcegraph/pull/35319) + +### Fixed + +- Global git email gets inserted as plain text when running `src batch new -f ` and doesn't result in a schema validation failure. [#773](https://github.com/sourcegraph/src-cli/pull/773) + +## 3.40.8 + +### Fixed + +- Output variables created from batch spec steps will no longer have an extra newline added if the output doesn't end with a newline. [sourcegraph/sourcegraph#36562](https://github.com/sourcegraph/sourcegraph/issues/36562) + +## 3.40.5 to 3.40.7 + +- No substantive changes; these releases were related solely to improving our release machinery. + +## 3.40.4 + +### Added + +- It's now possible to install src-cli via `npm install -g @sourcegraph/src`. [#760](https://github.com/sourcegraph/src-cli/pull/760) + +## 3.40.3 + +- No substantive changes; this release was related solely to improving our release machinery. + +## 3.40.2 + +### Changed + +- Updated to the latest SCIP version, fixing a bug for scip-typescript uploads. [sourcegraph/scip#30](https://github.com/sourcegraph/scip/pull/30) + +## 3.40.1 + +### Added + +- `src code-intel` is a new alias for `src lsif`. [#748](https://github.com/sourcegraph/src-cli/pull/748) + +### Fixed + +- Updated to the latest SCIP version, fixing a bug in the `src code-intel upload` conversion for "Find implementations". [sourcegraph/scip#27](https://github.com/sourcegraph/scip/pull/27) + +## 3.40.0 + +### Added + +- New command `src debug`. [#731](https://github.com/sourcegraph/src-cli/pull/731) +- `src lsif upload` now supports the `-gitlab-token` flag. [#721](https://github.com/sourcegraph/src-cli/pull/721) +- Batch Changes can be applied to Bitbucket Cloud when `src` is used with Sourcegraph 3.40 or later. [#725](https://github.com/sourcegraph/src-cli/pull/725) +- `src lsif upload` accepts indexes in the [SCIP](https://github.com/sourcegraph/scip) format. [#742](https://github.com/sourcegraph/src-cli/pull/742) + +### Changed + +- src CLI is now built using go 1.18. + +## 3.39.0 + +### Added + +- Added `login` text to command text menu and ordered alphabetically [#713](https://github.com/sourcegraph/src-cli/pull/713) + +### Fixed + +- `src extensions copy` now removes the `url` property from extension manifests that points to the sourcegraph.com extension bundle, enabling use for air-gapped instances. + +## 3.38.0 + +### Changed + +- Batch Changes: Step results are now also cached when the overall execution fails. [#709](https://github.com/sourcegraph/src-cli/pull/709) + +## 3.37.0 + +No noteworthy changes, mechanical release to match Sourcegraph release. + +## 3.36.4 + +### Added + +- A new `src batch remote` command has been added to run a batch spec on a Sourcegraph instance that has Server Side Batch Changes enabled. [#671](https://github.com/sourcegraph/src-cli/pull/671) + +### Changed + +- Migrated to [`grafana/regexp`](https://github.com/grafana/regexp) to match our usage in Sourcegraph proper. [#694](https://github.com/sourcegraph/src-cli/pull/694) + +### Fixed + +- A bug in 3.36.3 caused `src batch apply` to no longer accept a file provided with `-f`. This has been fixed. [#695](https://github.com/sourcegraph/src-cli/pull/695) + +## 3.36.3 + +### Changed + +- `src batch` commands no longer require `-f` to read from a file. Additionally, running a `src batch` command that requires a batch spec file without a `-f` option from the terminal will now generate an error instead of waiting indefinitely for a batch spec on standard input; however, piping in a batch spec will still work as expected. [#687](https://github.com/sourcegraph/src-cli/pull/687) +- Pulling container images now occurs in parallel, with the number of concurrent downloads being controlled by the `-j` flag. [#17577](https://github.com/sourcegraph/sourcegraph/issues/17577) + +### Fixed + +- `src batch [preview|apply]` will now check that the target Sourcegraph instance supports batch changes before doing any other work and exit early in the case that it does not. + +## 3.36.2 + +### Changed + +- `src validate` can now execute default validation checks (add external service, clone repo, search repo, search non-indexed branch of that repo, remove external service) for Sourcegraph instance when no validation file is specified as well as continue to support JSON and YAML file validation files. + +### Fixed + +- `src batch preview` and `src batch apply` could erroneously return exit code 0 and no warning when the execution actually failed. + +## 3.36.1 + +### Changed + +- `src exec` now allows the `files:` property. (internal use only) + +## 3.36.0 + +_This version is the same as 3.35.3, just retagged for the upcoming 3.36.0 release of Sourcegraph._ + +## 3.35.3 + +### Fixed + +- Certain Batch Changes features that previously would not work on prerelease versions of Sourcegraph will now work as expected again. + +## 3.35.2 + +### Fixed + +- `src batch validate` and `src batch repos` now accept `-allow-unsupported` and `-force-override-ignore` and don't fail on specs using `files` anymore. + +## 3.35.1 + +### Changed + +- `src validate` has been updated to work with Sourcegraph 3.35's changed CSRF behaviour. [#673](https://github.com/sourcegraph/src-cli/pull/673) + +## 3.35.0 + +### Added + +- Individual batch changes can publish multiple changesets to the same repository by specifying multiple target branches using the [`on.branches`](https://docs.sourcegraph.com/batch_changes/references/batch_spec_yaml_reference#on-repository) attribute. [#25228](https://github.com/sourcegraph/sourcegraph/issues/25228) + +### Changed + +- `src batch [preview|apply]` will now use the faster volume workspace by default for macOS systems using arm64 processors (aka "Apple Silicon") + +### Fixed + +- Excess newlines in between outputs in logfiles written when `--keep-logs` is used have been fixed. [#665](https://github.com/sourcegraph/src-cli/pull/665) +- `src` would sometimes panic when Ctrl-C was pressed while executing batch change steps due to a bug in the library used to render the execution progress bars. This has been fixed. [🤘 #666](https://github.com/sourcegraph/src-cli/pull/666) +- In batch changes, when using `workspaces` src would incorrectly treat `in` not being set as _don't match anything_. This is fixed and it matches everything like `*`. [#664](https://github.com/sourcegraph/src-cli/pull/664) + +## 3.34.1 + +### Added + +- For internal use only: Allow exec mode to read step cache files from the current working directory. + +### Fixed + +- For internal use only: Fix an off-by-one error in the JSON log UI. + +## 3.34.0 + +### Added + +- Bare repositories can now be served with `src serve-git`. Thanks to [Andreas Rammhold](https://github.com/andir) for the contribution! [#639](https://github.com/sourcegraph/src-cli/pull/639) + +## 3.33.8 + +### Fixed + +- For internal use only: Switch to single workspaces only in payload. + +## 3.33.7 + +### Added + +- A `-client-only` flag has been added to `src version`. When set, only the local src-cli's version will be printed and no attempt is made to fetch the recommended version from the configured Sourcegraph server. + +## 3.33.6 + +### Added + +- Requests to Sourcegraph will now include the operating system and architecture `src` is running on by default. To disable this, set the `SRC_DISABLE_USER_AGENT_TELEMETRY` environment variable to any non-empty string, or provide the `-user-agent-telemetry=false` flag on the command line. [#15769](https://github.com/sourcegraph/sourcegraph/issues/15769) + +## 3.33.5 + +### Fixed + +- `src search` will not fail anymore on systems where the pager `less` is not installed. [#644](https://github.com/sourcegraph/src-cli/pull/644) + +## 3.33.4 + +- For internal use only: always log uploading changesets event. + +## 3.33.3 + +### Fixed + +- Removed debug output that could lead to glitches in the `src batch [preview|apply]` TUI. + +## 3.33.2 + +### Changed + +- For internal use only: `src batch exec` does not evaluate `importChangesets` in batch specs anymore, since that's already done server-side. + +## 3.33.1 + +### Fixed + +- Fixes a nil-panic that could be caused when `src batch [preview|apply]` would encounter a repository that was currently being cloned or is empty. + +## 3.33.0 + +### Fixed + +- Importing changesets won't fail validation when uploading to Sourcegraph 3.33. + +## 3.32.1 + +### Fixed + +- Fixes an issue where src-cli would panic when importing existing changesets. + +## 3.32.0 + +### Added + +- For internal use only: the `src batch exec` command executes the provided batch spec in the given workspaces. + +### Changed + +- For internal use only: when `src batch [preview|apply|exec]` are executed in `-text-only` mode, command output on stdout/stderr will be logged in the same message, with each line prefixed accordingly. [#619](https://github.com/sourcegraph/src-cli/pull/619) + +### Fixed + +- `src batch repos` failed with a template error in src-cli 3.31.1 and 3.32.0. This has been fixed. [#625](https://github.com/sourcegraph/src-cli/pull/625) +- The `src campaign` and `src campaigns` commands have been removed in favor of `src batch`. [#626](https://github.com/sourcegraph/src-cli/pull/626) + +## 3.31.1 + +### Changed + +- For internal use only: JSON log UI has been extended. + +### Fixed + +- `src search -stream` displayed the number of lines that contain matches instead of the number of matches. +- For internal use only: the `EXECUTING_TASKS` JSON log line now always contains an array of `tasks` instead of possibly having `null` as the `tasks` value. +- src-cli is now built using Go version 1.17. + +## 3.31.0 + +### Changed + +- `src batch new` now omits the publish flag, if the Sourcegraph instance supports publish from GUI. + +## 3.30.5 + +### Added + +- `src batch validate` now accepts the standard flags used to control communication with Sourcegraph: `-dump-requests`, `-get-curl`, `-insecure-skip-verify`, and `-trace`. [#577](https://github.com/sourcegraph/src-cli/pull/577) + +### Fixed + +- `src batch validate` would fail to validate batch specs that use features that depend on specific versions of Sourcegraph, such as workspaces. This has been fixed. [#576](https://github.com/sourcegraph/src-cli/issues/576) + +## 3.30.4 + +### Added + +- Releases are now built for `arm64` architectures too. + +## 3.30.3 + +### Fixed + +- For internal use only: `-text-only` silently ignored an error when trying to print log messages and did not print a `EXECUTING_TASKS` message. + +## 3.30.2 + +### Changed + +- For internal use only: `-text-only` now contains detailed information about task execution. [#571](https://github.com/sourcegraph/src-cli/pull/571) +- As part of the above: the TUI of `src batch [preview|apply]` has been reworked and should now feel snappier. + +## 3.30.1 + +### Fixed + +- The per-step caching of batch spec execution results was broken when re-execution could use the cached results of a step and that step was the only one left to execute. That resulted in empty diffs being uploaded. This is now fixed. [#567](https://github.com/sourcegraph/src-cli/pull/567) + +## 3.30.0 + +Re-release of 3.29.3 for Sourcegraph 3.30. + +## 3.29.3 + +### Fixed + +- `count:all` was not supported in repository search queries for batch changes. This is now fixed. [#566](https://github.com/sourcegraph/src-cli/pull/566) +- For internal use only: `-text-only` received a few tiny fixes for pluralisation and missing log messages. [#565](https://github.com/sourcegraph/src-cli/pull/565) + +## 3.29.2 + +### Added + +- Starting with Sourcegraph 3.30.0, the `published` field is optional in batch specs. If omitted, the publication state will be controlled through the Batch Changes UI. [#538](https://github.com/sourcegraph/src-cli/pull/538) +- For internal use only: `-text-only` flag added to `src batch [apply|preview]`. [#562](https://github.com/sourcegraph/src-cli/pull/562) + +## 3.29.1 + +### Added + +- LSIF uploads now respect the `-insecure-skip-verify` flag to insecurely (surprise!) skip TLS certificate validation when communicating with Sourcegraph. [#559](https://github.com/sourcegraph/src-cli/pull/559) + +### Fixed + +- Various terminal handling fixes, especially for Batch Changes users with regards to resizing terminals and Windows support. [#560](https://github.com/sourcegraph/src-cli/pull/560) + +## 3.29.0 + +### Removed + +- The `src repos enable|disable` commands were removed as they are no longer supported. + +## 3.28.3 + +### Fixed + +- Cached step results produced by `src batch [apply|preview]` are now properly cleared when using the `-clear-cache` command line flag. + +## 3.28.2 + +### Fixed + +- The step-wise caching for `src batch [apply|preview]` introduced in 3.28.1 could break if a cached diff contained quoted. This fixes the application by disabling any unquoting/expansion. +- A regression was introduced in 3.28.1 that broke the UI for `src batch [apply|preview]` and lead to the execution of steps looking like it got stuck in the first repository. + +## 3.28.1 + +### Changed + +- `src batch [apply|preview]` now cache the results of each step when executing a batch spec. That can make re-execution a lot faster when only a subset of the steps has been changed. [#540](https://github.com/sourcegraph/src-cli/pull/540) + +### Fixed + +- `src serve-git` can now handle gzip-encoded requests. [#547](https://github.com/sourcegraph/src-cli/pull/547) + +## 3.28.0 + +- This release is identical to 3.27.1, and is simply a version number bump to correspond with the forthcoming release of Sourcegraph 3.28. + +## 3.27.1 + +### Added + +- Starting with Sourcegraph 3.28.0 batch spec `steps` can contain an `if: