Prototype to show how to transform an existing (SOAP) API into a modern streaming API

vSphere Event Streaming

Latest Release go.mod Go version

Prototype to show how to transform an existing (SOAP) API into a modern HTTP/REST streaming API.

Details

The vSphere Event Streaming server connects to the vCenter event stream, transforms each event into a standarized CloudEvent and exposes these as JSON objects via a (streaming) HTTP/REST API.

The benefits of this approach are:

  • Simplified consumption via a modern HTTP/REST API instead of directly using vCenter SOAP APIs
  • Kubernetes inspired watch style to stream events from a specific position (or "now")
  • Decoupling from vCenter by proxying multiple clients onto the (cached) event stream of this streaming server
  • Apache Kafka inspired behavior, using Offsets to traverse and replay the event stream
  • Lightweight and stateless: events are stored (cached) in memory. If the server crashes it resumes from the configurable VCENTER_STREAM_BEGIN (default: last 10 minutes)

The unique event ID of each vSphere event is mapped to the position (Offset) in the internal (immutable) event Log (journal). Clients use these event IDs (Offsets) to read/stream/replay events as JSON objects.

Example

This example uses curl and jq to query against a locally running vSphere Event Streaming server.

💡 If the server is running in Kubernetes (see below), use the kubectl port-forward command to forward CLI commands to streaming server running in a Kubernetes cluster.

# get current available event range
$ curl -N -s localhost:8080/api/v1/range | jq .
{
  "earliest": 44,
  "latest": 46
}

# read first available event
$ curl -N -s localhost:8080/api/v1/events/44 | jq .
{
  "specversion": "1.0",
  "id": "44",
  "source": "https://localhost:8989/sdk",
  "type": "vmware.vsphere.UserLoginSessionEvent.v0",
  "datacontenttype": "application/json",
  "time": "2022-01-14T13:26:22.0854137Z",
  "data": {
    "Key": 44,
    "ChainId": 44,
    "CreatedTime": "2022-01-14T13:26:22.0854137Z",
    "UserName": "user\n",
    "Datacenter": null,
    "ComputeResource": null,
    "Host": null,
    "Vm": null,
    "Ds": null,
    "Net": null,
    "Dvs": null,
    "FullFormattedMessage": "User user\[email protected] logged in as Go-http-client/1.1",
    "ChangeTag": "",
    "IpAddress": "172.17.0.1",
    "UserAgent": "Go-http-client/1.1",
    "Locale": "en_US",
    "SessionId": "56c95aca-aed7-471d-b69f-be73468a89aa"
  },
  "eventclass": "event"
}

# watch for new events and use a jq field selector
$ curl -N -s localhost:8080/api/v1/events\?watch=true | jq '.eventclass+":"+.id+" "+.type'
"event:47 vmware.vsphere.VmStartingEvent.v0"
"event:48 vmware.vsphere.VmPoweredOnEvent.v0"

# start watch from specific id (offset)
curl -N -s localhost:8080/api/v1/events\?watch=true\&offset=44 | jq '.eventclass+":"+.id+" "+.type'
"event:44 vmware.vsphere.UserLoginSessionEvent.v0"
"event:45 vmware.vsphere.VmStoppingEvent.v0"
"event:46 vmware.vsphere.VmPoweredOffEvent.v0"
"event:47 vmware.vsphere.VmStartingEvent.v0"
"event:48 vmware.vsphere.VmPoweredOnEvent.v0"

💡 To retrieve the last 50 events use curl -N -s localhost:8080/api/v1/events. The current hardcoded page size is 50 and a pagination API is on my TODO list 🤓

Deployment

The vSphere Event Streaming server is packaged as a Kubernetes Deployment and configured via environment variables and a Kubernetes Secret holding the vCenter Server credentials.

Requirements:

  • Service account/role to read vCenter events
  • Kubernetes cluster to deploy the vSphere Event Stream server
  • Kubernetes CLI kubectl installed
  • Network access to vCenter from within the Kubernetes cluster

💡 The vCenter Simulator vcsim can be used to deploy a mock vCenter in Kubernetes for testing and experimenting.

Create Credentials

# create namespace
kubectl create namespace vcenter-stream

# create Kubernetes secret holding the vSphere credentials
# replace with your values
kubectl --namespace vcenter-stream create secret generic vsphere-credentials --from-literal=username=user --from-literal=password=pass

Optional if you want to use vcsim:

# deploy container
kubectl --namespace vcenter-stream create -f https://raw.githubusercontent.com/vmware-samples/vcenter-event-broker-appliance/development/vmware-event-router/deploy/vcsim.yaml

# in a separate terminal start port-forwarding
kubectl --namespace vcenter-stream port-forward deploy/vcsim 8989:8989

Change Deployment Manifest

Download the latest deployment manifest (release.yaml) file from the Github release page and update the environment variables in release.yaml to match your setup. Then save the file under the same name (to follow along with the commands).

💡 The environment variables are explained below.

Example Download with curl:

curl -L -O https://github.com/embano1/vsphere-event-streaming/releases/latest/download/release.yaml

vSphere Settings

These settings are required to set up the connection between the event streaming server and VMware vCenter Server.

💡 If you are not making any modifications to the application leave the default value for VCENTER_SECRET_PATH.

Variable Description Required Example Default
VCENTER_URL vCenter Server URL yes https://myvc-01.prod.corp.local (empty)
VCENTER_INSECURE Ignore vCenter Server certificate warnings no "true" "false"
VCENTER_SECRET_PATH Directory where username and password files are located to retrieve credentials yes "./" "/var/bindings/vsphere"

Streaming Settings

These settings are used to customize the event streaming server. The event streaming server internally uses memlog as an append-only Log. See the project for details.

If you want to account for longer downtime you might want to increase the default value of 5m used to replay vCenter events after starting the server.

The defaults for LOG_MAX_RECORD_SIZE_BYTES and LOG_MAX_SEGMENT_SIZE are usually fine. The total number of records in the internal event Log is twice the LOG_MAX_SEGMENT_SIZE (active and history segment). If the active segment is full and there is already a history segment, this history segment will be purged, i.e. events deleted from the internal Log (but not within vCenter Server!).

Trying to read a purged event throws an invalid offset error.

💡 If you are seeing the server crashing with out of memory errors (OOM), try increasin the specified memory limit in the release.yaml manifest.

Variable Description Required Example Default
VCENTER_STREAM_BEGIN Stream vCenter events starting at "now" minus specified duration (requires suffix, e.g. s/m/h for seconds/minutes/hours) yes "1h" "5m" (stream starts with events from last 5 minutes)
LOG_MAX_RECORD_SIZE_BYTES Maximum size of each record in the log yes "1024" (1Kb) "524288" (512Kb)
LOG_MAX_SEGMENT_SIZE Maximum number of records per segment yes "10000" "1000" (1000 entries in active, 1000 in history segment)

Deploy the Server

kubectl -n vcenter-stream create -f release.yaml

Verify that the server is correctly starting:

kubectl -n vcenter-stream logs deploy/vsphere-event-stream
2022-01-14T14:31:43.798Z        INFO    eventstream     server/main.go:166      starting http listener  {"port": 8080}
2022-01-14T14:31:43.874Z        INFO    eventstream     server/main.go:104      starting vsphere event collector        {"begin": "5m0s", "pollInterval": "1s"}
2022-01-14T14:31:44.877Z        DEBUG   eventstream     server/main.go:122      initializing new log    {"startOffset": 27, "maxSegmentSize": 1000, "maxRecordSize": 524288}
2022-01-14T14:31:44.878Z        DEBUG   eventstream     server/main.go:155      wrote cloudevent to log {"offset": 27, "event": "Context Attributes,\n  specversion: 1.0\n  type: vmware.vsphere.UserLoginSessionEvent.v0\n  source: https://vcsim.vcenter-stream.svc.cluster.local/sdk\n  id: 27\n  time: 2022-01-14T14:31:43.7884757Z\n  datacontenttype: application/json\nExtensions,\n  eventclass: event\nData,\n  {\n    \"Key\": 27,\n    \"ChainId\": 27,\n    \"CreatedTime\": \"2022-01-14T14:31:43.7884757Z\",\n    \"UserName\": \"user\",\n    \"Datacenter\": null,\n    \"ComputeResource\": null,\n    \"Host\": null,\n    \"Vm\": null,\n    \"Ds\": null,\n    \"Net\": null,\n    \"Dvs\": null,\n    \"FullFormattedMessage\": \"User [email protected] logged in as Go-http-client/1.1\",\n    \"ChangeTag\": \"\",\n    \"IpAddress\": \"10.244.0.6\",\n    \"UserAgent\": \"Go-http-client/1.1\",\n    \"Locale\": \"en_US\",\n    \"SessionId\": \"72096903-7acb-476f-bb76-29941a91fa1b\"\n  }\n", "bytes": 646}

💡 If you delete (kill) the Kubernetes Pod of the vSphere Event Stream server to simulate an outage, Kubernetes will automatically restart the server. You will then be able to query the events starting off of the specified interval defined via VCENTER_STREAM_BEGIN. Events within this timeframe will not be lost and clients can restart their watch from the earliest event retrieved via the /api/v1/range endpoint.

Set up Port-Forwarding

Inside Kubernetes the server is configured with a Kubernetes Service and accessible over the Service port 80 within the cluster.

To query the server from a local (remote) machine it is the easiest to create a port-forwarding.

# forward local port 8080 to service port 80
kubectl -n vcenter-stream port-forward service/vsphere-event-stream 8080:80

Then in a separate terminal run curl as usual.

curl -s -N localhost:8080/api/v1/range
{"earliest":27,"latest":27}

Uninstall

To uninstall the vSphere Event Stream server and all its dependencies, run:

kubectl delete namespace vcenter-stream

Build Custom Image

Note: This step is only required if you made code changes to the Go code.

This example uses ko to build and push container artifacts.

# only when using kind: 
# export KIND_CLUSTER_NAME=kind
# export KO_DOCKER_REPO=kind.local

export KO_DOCKER_REPO=my-docker-username
export KO_COMMIT=$(git rev-parse --short=8 HEAD)
export KO_TAG=$(git describe --abbrev=0 --tags)

# build, push and run the worker in the configured Kubernetes context 
# and vmware-preemption Kubernetes namespace
ko resolve -BRf config | kubectl -n vcenter-stream apply -f -

To delete the deployment:

ko -n vcenter-stream delete -f config
Owner
Michael Gasch
Staff Engineer at VMware interested in all things distributed|streaming|event-driven systems
Michael Gasch
Comments
  • chore(deps): Bump go.uber.org/zap from 1.21.0 to 1.22.0

    chore(deps): Bump go.uber.org/zap from 1.21.0 to 1.22.0

    Bumps go.uber.org/zap from 1.21.0 to 1.22.0.

    Release notes

    Sourced from go.uber.org/zap's releases.

    v1.22.0

    Enhancements:

    • #1071[]: Add zap.Objects and zap.ObjectValues field constructors to log arrays of objects. With these two constructors, you don't need to implement zapcore.ArrayMarshaler for use with zap.Array if those objects implement zapcore.ObjectMarshaler.
    • #1079[]: Add SugaredLogger.WithOptions to build a copy of an existing SugaredLogger with the provided options applied.
    • #1080[]: Add *ln variants to SugaredLogger for each log level. These functions provide a string joining behavior similar to fmt.Println.
    • #1088[]: Add zap.WithFatalHook option to control the behavior of the logger for Fatal-level log entries. This defaults to exiting the program.
    • #1108[]: Add a zap.Must function that you can use with NewProduction or NewDevelopment to panic if the system was unable to build the logger.
    • #1118[]: Add a Logger.Log method that allows specifying the log level for a statement dynamically.

    Thanks to @​cardil, @​craigpastro, @​sashamelentyev, @​shota3506, and @​zhupeijun for their contributions to this release.

    #1071: uber-go/zap#1071 #1079: uber-go/zap#1079 #1080: uber-go/zap#1080 #1088: uber-go/zap#1088 #1108: uber-go/zap#1108 #1118: uber-go/zap#1118

    Changelog

    Sourced from go.uber.org/zap's changelog.

    1.22.0 (8 Aug 2022)

    Enhancements:

    • #1071[]: Add zap.Objects and zap.ObjectValues field constructors to log arrays of objects. With these two constructors, you don't need to implement zapcore.ArrayMarshaler for use with zap.Array if those objects implement zapcore.ObjectMarshaler.
    • #1079[]: Add SugaredLogger.WithOptions to build a copy of an existing SugaredLogger with the provided options applied.
    • #1080[]: Add *ln variants to SugaredLogger for each log level. These functions provide a string joining behavior similar to fmt.Println.
    • #1088[]: Add zap.WithFatalHook option to control the behavior of the logger for Fatal-level log entries. This defaults to exiting the program.
    • #1108[]: Add a zap.Must function that you can use with NewProduction or NewDevelopment to panic if the system was unable to build the logger.
    • #1118[]: Add a Logger.Log method that allows specifying the log level for a statement dynamically.

    Thanks to @​cardil, @​craigpastro, @​sashamelentyev, @​shota3506, and @​zhupeijun for their contributions to this release.

    #1071: uber-go/zap#1071 #1079: uber-go/zap#1079 #1080: uber-go/zap#1080 #1088: uber-go/zap#1088 #1108: uber-go/zap#1108 #1118: uber-go/zap#1118

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • chore(deps): Bump github.com/embano1/vsphere from 0.2.3 to 0.2.4

    chore(deps): Bump github.com/embano1/vsphere from 0.2.3 to 0.2.4

    Bumps github.com/embano1/vsphere from 0.2.3 to 0.2.4.

    Release notes

    Sourced from github.com/embano1/vsphere's releases.

    v0.2.4

    What's Changed

    Full Changelog: https://github.com/embano1/vsphere/compare/v0.2.3...v0.2.4

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • Bump github.com/embano1/vsphere from 0.2.0 to 0.2.3

    Bump github.com/embano1/vsphere from 0.2.0 to 0.2.3

    Bumps github.com/embano1/vsphere from 0.2.0 to 0.2.3.

    Release notes

    Sourced from github.com/embano1/vsphere's releases.

    v0.2.3

    What's Changed

    New Contributors

    Full Changelog: https://github.com/embano1/vsphere/compare/v0.2.2...v0.2.3

    v0.2.2

    What's Changed

    Full Changelog: https://github.com/embano1/vsphere/compare/v0.2.1...v0.2.2

    v0.2.1

    What's Changed

    Full Changelog: https://github.com/embano1/vsphere/compare/v0.2.0...v0.2.1

    Commits
    • e73ffec Merge pull request #29 from embano1/issue-26
    • 2ae2976 bug: Fix broken E2E tests
    • 51d963a Merge pull request #28 from embano1/issue-27
    • e2da1a4 chore: Use tparse in CI
    • 534f640 Merge pull request #21 from embano1/dependabot/go_modules/gotest.tools/v3-3.3.0
    • a8d6569 Merge pull request #19 from embano1/dependabot/github_actions/actions/setup-go-3
    • 75b790c Merge pull request #20 from embano1/dependabot/github_actions/actions/stale-5
    • e256a68 Merge pull request #18 from embano1/dependabot/github_actions/codecov/codecov...
    • 1f7f306 Merge pull request #17 from embano1/dependabot/github_actions/actions/checkout-3
    • 8f5b766 Merge pull request #16 from embano1/dependabot/github_actions/github/codeql-a...
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • Bump github.com/cloudevents/sdk-go/v2 from 2.8.0 to 2.10.1

    Bump github.com/cloudevents/sdk-go/v2 from 2.8.0 to 2.10.1

    Bumps github.com/cloudevents/sdk-go/v2 from 2.8.0 to 2.10.1.

    Release notes

    Sourced from github.com/cloudevents/sdk-go/v2's releases.

    Release v2.10.1

    What's Changed

    Full Changelog: https://github.com/cloudevents/sdk-go/compare/v2.10.0...v2.10.1

    Release v2.10.0

    What's Changed

    New Contributors

    Full Changelog: https://github.com/cloudevents/sdk-go/compare/v2.9.0...v2.10.0

    Release v2.9.0

    What's Changed

    New Contributors

    Full Changelog: https://github.com/cloudevents/sdk-go/compare/v2.8.0...v2.9.0

    Commits
    • 11daec8 fix: Reset request body on retry (#774) (#776)
    • 448331c Repoint examples, post release v2.10.0.
    • ca9a380 Repoint modules for release v2.10.0.
    • 66eacad feat(client): Add option to make receive callback blocking (#771)
    • 5decd2e add owners (#769)
    • decd017 feat(gochan): implement SendCloser on SendReceiver protocol (#768)
    • 9380b70 fix http result errors by wrapping the upstream error, allowing for isNack (#...
    • 7b7049a fix(doc): the DataAs doc indicates that arg should be a pointer (#765)
    • 9f80fd3 Make SdkToProto and ProtoToSDK public (#758)
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • Bump github.com/vmware/govmomi from 0.27.2 to 0.29.0

    Bump github.com/vmware/govmomi from 0.27.2 to 0.29.0

    Bumps github.com/vmware/govmomi from 0.27.2 to 0.29.0.

    Release notes

    Sourced from github.com/vmware/govmomi's releases.

    v0.29.0

    Release v0.29.0

    Release Date: 2022-07-06

    🐞 Fix

    • [d6dd8fb3] Typos in vim25/soap/client CA tests (#2876)
    • [e086dfe4] generate negative device key in AssignController (#2881)
    • [371a24a4] Interface conversion panic in pkg simulator
    • [a982c033] use correct controlflag for vslm SetControlFlags API test
    • [37b3b24c] avoid possible panic in govc metric commands (#2835)
    • [310516e2] govc: disambiguate vm/host search flags in vm.migrate (#2850) (#2849)
    • [6af2cdc3] govc-tests in Go v1.18 (#2865)
    • [142cdca4] Security update golangci-lint (#2861)
    • [971079ba] use correct vcenter.DeploymentSpec.VmConfigSpec json tag (#2843)

    💫 API Changes

    • [e6b5974a] Add versioned user-agent header (#2693)
    • [ca7ee510] add VmConfigSpec field to content library DeploymentSpec (#2843)
    • [7d3b2b39] Update generated types (#2891)

    💫 govc (CLI)

    • [515ca29f] Use unique searchFlagKey when calling NewSearchFlag (#2849)
    • [9d4ca658] add library.deploy '-config' flag
    • [fc17df08] add 'device.clock.add' command (#2834)
    • [11f2d453] Edit disk storage IO (#2806)

    💫 vcsim (Simulator)

    • [a1a36c9a] Fix disk capacity fields in ReconfigVM_Task (#2889)
    • [361c90ca] Remove VM Guest.Net entry when removing Ethernet card
    • [578b95e5] Fix createVM to encode VM name (#2873)
    • [3325da0c] add content library VmConfigSpec support
    • [8928a489] Update Dockerfile (#2841)

    📃 Documentation

    • [5f5fb51e] Fix broken link in PR template (#2884)

    🧹 Chore

    • [69ac8494] Update version.go for v0.29.0
    • [80489cb5] Update release automation (#2875)
    • [e1f76e37] Add missing copyright header
    • [6ed812fe] Add Go boilerplate check (#2749) (#2713)

    ... (truncated)

    Changelog

    Sourced from github.com/vmware/govmomi's changelog.

    Release v0.29.0

    Release Date: 2022-07-06

    🐞 Fix

    • [d6dd8fb3] Typos in vim25/soap/client CA tests
    • [e086dfe4] generate negative device key in AssignController
    • [371a24a4] Interface conversion panic in pkg simulator
    • [a982c033] use correct controlflag for vslm SetControlFlags API test
    • [37b3b24c] avoid possible panic in govc metric commands
    • [310516e2] govc: disambiguate vm/host search flags in vm.migrate
    • [6af2cdc3] govc-tests in Go v1.18
    • [142cdca4] Security update golangci-lint
    • [971079ba] use correct vcenter.DeploymentSpec.VmConfigSpec json tag

    💫 API Changes

    • [e6b5974a] Add versioned user-agent header
    • [ca7ee510] add VmConfigSpec field to content library DeploymentSpec

    💫 govc (CLI)

    • [515ca29f] Use unique searchFlagKey when calling NewSearchFlag
    • [9d4ca658] add library.deploy '-config' flag
    • [fc17df08] add 'device.clock.add' command
    • [11f2d453] Edit disk storage IO

    💫 vcsim (Simulator)

    • [a1a36c9a] Fix disk capacity fields in ReconfigVM_Task
    • [361c90ca] Remove VM Guest.Net entry when removing Ethernet card
    • [578b95e5] Fix createVM to encode VM name
    • [3325da0c] add content library VmConfigSpec support
    • [8928a489] Update Dockerfile

    📃 Documentation

    • [5f5fb51e] Fix broken link in PR template

    🧹 Chore

    • [69ac8494] Update version.go for v0.29.0
    • [80489cb5] Update release automation
    • [e1f76e37] Add missing copyright header
    • [6ed812fe] Add Go boilerplate check

    ⚠️ BREAKING

    📖 Commits

    ... (truncated)

    Commits
    • 69ac849 chore: Update version.go for v0.29.0
    • 109a93b Merge pull request #2890 from Syuparn/issue-2889
    • 1f67efe Merge pull request #2891 from akutz/feature/vc-types-update
    • 7d3b2b3 Update generated types
    • 106441a Merge pull request #2888 from embano1/issue-2884
    • a1a36c9 vcsim: Fix disk capacity fields in ReconfigVM_Task
    • 5f5fb51 docs: Fix broken link in PR template
    • 06eb50d Merge pull request #2882 from Syuparn/issue-2881
    • 5aac4f6 Merge pull request #2885 from atc0005/issue-2876-fix-typo-in-test-fatalf-mess...
    • d6dd8fb fix: Typos in vim25/soap/client CA tests
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • Bump github.com/embano1/memlog from 0.2.0 to 0.4.3

    Bump github.com/embano1/memlog from 0.2.0 to 0.4.3

    Bumps github.com/embano1/memlog from 0.2.0 to 0.4.3.

    Release notes

    Sourced from github.com/embano1/memlog's releases.

    v0.4.3

    What's Changed

    New Contributors

    Full Changelog: https://github.com/embano1/memlog/compare/v0.4.2...v0.4.3

    v0.4.2

    What's Changed

    New Contributors

    Full Changelog: https://github.com/embano1/memlog/compare/v0.4.1...v0.4.2

    v0.4.1

    What's Changed

    Full Changelog: https://github.com/embano1/memlog/compare/v0.4.0...v0.4.1

    v0.4.0

    💫 Highlights

    New sharded.Log implementation for key-based sharding (partitioning).

    What's Changed

    Full Changelog: https://github.com/embano1/memlog/compare/v0.3.1...v0.4.0

    v0.3.1

    ... (truncated)

    Commits
    • a79cb94 Merge pull request #44 from embano1/dependabot/go_modules/github.com/benbjohn...
    • 96aa7b8 Merge pull request #48 from embano1/dependabot/github_actions/golangci/golang...
    • 0938359 Merge pull request #51 from embano1/issue-50
    • 2717988 chore(deps): Bump github.com/benbjohnson/clock from 1.1.0 to 1.3.0
    • c0bcc11 Merge pull request #49 from embano1/dependabot/github_actions/codecov/codecov...
    • 56cf4a0 Merge pull request #47 from embano1/dependabot/github_actions/github/codeql-a...
    • 88fff1c chore(deps): Bump golangci/golangci-lint-action from 2 to 3
    • 2ea8f8d Merge pull request #46 from embano1/dependabot/go_modules/gotest.tools/v3-3.3.0
    • 9e60926 Merge pull request #45 from embano1/dependabot/github_actions/actions/checkout-3
    • 6cf6e11 Merge pull request #43 from embano1/dependabot/github_actions/actions/stale-5
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • chore(deps): Bump golangci/golangci-lint-action from 3.2.0 to 3.3.0

    chore(deps): Bump golangci/golangci-lint-action from 3.2.0 to 3.3.0

    Bumps golangci/golangci-lint-action from 3.2.0 to 3.3.0.

    Commits
    • 07db538 build(deps): bump @​actions/cache from 3.0.4 to 3.0.5 (#586)
    • 328c000 build(deps-dev): bump @​typescript-eslint/eslint-plugin from 5.39.0 to 5.40.0 ...
    • 3a79f8d build(deps-dev): bump @​typescript-eslint/parser from 5.39.0 to 5.40.0 (#584)
    • 43c645b build(deps-dev): bump eslint from 8.24.0 to 8.25.0 (#582)
    • 88e5fc6 build(deps-dev): bump @​typescript-eslint/eslint-plugin from 5.38.1 to 5.39.0 ...
    • 6191de5 build(deps-dev): bump @​typescript-eslint/parser from 5.38.1 to 5.39.0 (#580)
    • 5423639 build(deps): bump @​actions/core from 1.9.1 to 1.10.0 (#578)
    • c225631 build(deps): bump @​actions/github from 5.1.0 to 5.1.1 (#576)
    • b81d829 build(deps-dev): bump typescript from 4.8.3 to 4.8.4 (#577)
    • 5b682fd build(deps-dev): bump @​typescript-eslint/parser from 5.38.0 to 5.38.1 (#575)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • chore(deps): Bump gotest.tools/v3 from 3.3.0 to 3.4.0

    chore(deps): Bump gotest.tools/v3 from 3.3.0 to 3.4.0

    Bumps gotest.tools/v3 from 3.3.0 to 3.4.0.

    Release notes

    Sourced from gotest.tools/v3's releases.

    v3.4.0

    What's Changed

    New Contributors

    Full Changelog: https://github.com/gotestyourself/gotest.tools/compare/v3.3.0...v3.4.0

    Commits
    • f086d27 Merge pull request #245 from thaJeztah/replace_ioutil
    • 5b51cec update golangci-lint to v1.49.0
    • 77e24c3 Add package GoDoc for some internal packages (revive)
    • b881b33 replace uses of deprecated io/ioutil
    • f0f4764 fix formatting of nolint tags
    • b9a752f remove go1.16 from test matrix
    • 36dd5d1 Merge pull request #244 from motemen/update-expected-inside-func
    • 4c65207 Rename function for new return value
    • ddad04c allow updating expected vars/consts inside functions
    • 97735af Merge pull request #242 from gotestyourself/remove-dep
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • chore(deps): Bump github.com/cloudevents/sdk-go/v2 from 2.11.0 to 2.12.0

    chore(deps): Bump github.com/cloudevents/sdk-go/v2 from 2.11.0 to 2.12.0

    Bumps github.com/cloudevents/sdk-go/v2 from 2.11.0 to 2.12.0.

    Release notes

    Sourced from github.com/cloudevents/sdk-go/v2's releases.

    Release v2.12.0

    What's Changed

    New Contributors

    Full Changelog: https://github.com/cloudevents/sdk-go/compare/v2.11.0...v2.12.0

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • chore(deps): Bump github.com/google/go-cmp from 0.5.8 to 0.5.9

    chore(deps): Bump github.com/google/go-cmp from 0.5.8 to 0.5.9

    Bumps github.com/google/go-cmp from 0.5.8 to 0.5.9.

    Release notes

    Sourced from github.com/google/go-cmp's releases.

    v0.5.9

    Reporter changes:

    • (#299) Adjust heuristic for line-based versus byte-based diffing
    • (#306) Use value.TypeString in PathStep.String

    Code cleanup changes:

    • (#297) Use reflect.Value.IsZero
    • (#304) Format with Go 1.19 formatter
    • (#300 )Fix typo in Result documentation
    • (#302) Pre-declare global type variables
    • (#309) Run tests on Go 1.19
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • chore(deps): Bump imjasonh/setup-ko from 0.5 to 0.6

    chore(deps): Bump imjasonh/setup-ko from 0.5 to 0.6

    Bumps imjasonh/setup-ko from 0.5 to 0.6.

    Release notes

    Sourced from imjasonh/setup-ko's releases.

    v0.6

    https://github.com/imjasonh/setup-ko/compare/v0.5...9a31684920a610d5dbe8012888714d64706f9787

    Fixes issue related to ko moving to a new GitHub org, where API calls to determine the latest ko release would fail due to not following GitHub's redirect.

    Users who specify version (including tip) are unaffected.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • chore(deps): Bump github.com/vmware/govmomi from 0.29.0 to 0.30.0

    chore(deps): Bump github.com/vmware/govmomi from 0.29.0 to 0.30.0

    Bumps github.com/vmware/govmomi from 0.29.0 to 0.30.0.

    Release notes

    Sourced from github.com/vmware/govmomi's releases.

    v0.30.0

    Release v0.30.0

    Release Date: 2022-12-12

    🐞 Fix

    • [1ad33d48] Heal the broken Namespace API
    • [22c48147] Update $mktemp to support macOS
    • [05b0b08c] DialTLSContext / Go 1.18+ CertificateVerify support

    💫 API Changes

    • [58f4112b] Update types to vSphere 8.0 GA
    • [ba206c5b] add Content Library security compliance support (#2980)
    • [4c24f821] Add SRIOV device names (#2956)
    • [642156dd] Adds vSphere 7.0u1-u3 support to namespace-management (Tanzu) (#2860)

    💫 govc (CLI)

    • [60a18c56] about.cert was not respecting -k
    • [15d1181d] bash completion improvements
    • [0dbf717b] Add sso.lpp.info and sso.lpp.update commands (#2975)
    • [fe87cff9] host.info: use writer instead of os.stdout (#2995)
    • [a7196e41] host.info: use writer instead of os.stdout (#2995)
    • [3d6de9da] fix host.esxcli runtime error occurred when no arguments specified (#2960)
    • [8c7ba5ef] Add feature in sso.group.ls to list groups using FindGroupsInGroup method (#2945)
    • [dc3e1d79] Add feature sso.group.lsgroups using FindGroupsInGroup method (#2945)
    • [bf991e6e] add event key for json and plain text output
    • [2017e846] Support creating content libraries with security policies (#2641)

    💫 vcsim (Simulator)

    • [86f9d42a] Update test keys to be RSA 2048
    • [cedf695b] Fix duplicated name check in CloneVM_Task (#2983)
    • [8f4da558] add QueryNetworkHint support for LLDP and CDP details
    • [1cab3254] Fix RetrieveProperties path validation to avoid panic (#2953)
    • [7f42a1d2] use node id for ServiceContent.InstanceUuid
    • [03319493] Fix snapshot tasks to update rootSnapshot (#2912)
    • [b6ebcb6b] Fix disk capacity validation in ConfigureDevices (#2910)
    • [61032a23] Fix StorageIOAllocationInfo of VirtualDisk (#2904)
    • [cbfe0c93] support disconnect/reconnect host (#2899)
    • [b44828a4] Fix datastore freespace changed by ReconfigVM_Task (#2894)

    📃 Documentation

    • [813a5d88] update README.md

    ... (truncated)

    Changelog

    Sourced from github.com/vmware/govmomi's changelog.

    Release v0.30.0

    Release Date: 2022-12-12

    🐞 Fix

    • [1ad33d48] Heal the broken Namespace API
    • [22c48147] Update $mktemp to support macOS
    • [05b0b08c] DialTLSContext / Go 1.18+ CertificateVerify support

    💫 API Changes

    • [58f4112b] Update types to vSphere 8.0 GA
    • [ba206c5b] add Content Library security compliance support
    • [4c24f821] Add SRIOV device names
    • [642156dd] Adds vSphere 7.0u1-u3 support to namespace-management (Tanzu)

    💫 govc (CLI)

    • [60a18c56] about.cert was not respecting -k
    • [15d1181d] bash completion improvements
    • [0dbf717b] Add sso.lpp.info and sso.lpp.update commands
    • [fe87cff9] host.info: use writer instead of os.stdout
    • [a7196e41] host.info: use writer instead of os.stdout
    • [3d6de9da] fix host.esxcli runtime error occurred when no arguments specified
    • [8c7ba5ef] Add feature in sso.group.ls to list groups using FindGroupsInGroup method
    • [dc3e1d79] Add feature sso.group.lsgroups using FindGroupsInGroup method
    • [bf991e6e] add event key for json and plain text output
    • [2017e846] Support creating content libraries with security policies

    💫 vcsim (Simulator)

    • [86f9d42a] Update test keys to be RSA 2048
    • [cedf695b] Fix duplicated name check in CloneVM_Task
    • [8f4da558] add QueryNetworkHint support for LLDP and CDP details
    • [1cab3254] Fix RetrieveProperties path validation to avoid panic
    • [7f42a1d2] use node id for ServiceContent.InstanceUuid
    • [03319493] Fix snapshot tasks to update rootSnapshot
    • [b6ebcb6b] Fix disk capacity validation in ConfigureDevices
    • [61032a23] Fix StorageIOAllocationInfo of VirtualDisk
    • [cbfe0c93] support disconnect/reconnect host
    • [b44828a4] Fix datastore freespace changed by ReconfigVM_Task

    📃 Documentation

    • [813a5d88] update README.md

    🧹 Chore

    • [eabc29ba] Update version.go for v0.30.0

    ... (truncated)

    Commits
    • eabc29b chore: Update version.go for v0.30.0
    • 1c91982 Update CONTRIBUTORS for release
    • 9a92fef Merge pull request #3006 from akutz/feature/vsphere-8.0-ga-types
    • 1ad33d4 fix: Heal the broken Namespace API
    • 22c4814 fix: Update $mktemp to support macOS
    • 05b0b08 fix: DialTLSContext / Go 1.18+ CertificateVerify support
    • 86f9d42 vcsim: Update test keys to be RSA 2048
    • 60a18c5 govc: about.cert was not respecting -k
    • 58f4112 api: Update types to vSphere 8.0 GA
    • b505edb Merge pull request #2999 from kbrock/perms
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • chore(deps): Bump go.uber.org/zap from 1.23.0 to 1.24.0

    chore(deps): Bump go.uber.org/zap from 1.23.0 to 1.24.0

    Bumps go.uber.org/zap from 1.23.0 to 1.24.0.

    Release notes

    Sourced from go.uber.org/zap's releases.

    v1.24.0

    Enhancements:

    • #1148[]: Add Level to both Logger and SugaredLogger that reports the current minimum enabled log level.
    • #1185[]: SugaredLogger turns errors to zap.Error automatically.

    Thanks to @​Abirdcfly, @​craigpastro, @​nnnkkk7, and @​sashamelentyev for their contributions to this release.

    #1148: uber-go/zap#1148 #1185: uber-go/zap#1185

    Changelog

    Sourced from go.uber.org/zap's changelog.

    1.24.0 (30 Nov 2022)

    Enhancements:

    • #1148[]: Add Level to both Logger and SugaredLogger that reports the current minimum enabled log level.
    • #1185[]: SugaredLogger turns errors to zap.Error automatically.

    Thanks to @​Abirdcfly, @​craigpastro, @​nnnkkk7, and @​sashamelentyev for their contributions to this release.

    #1148: https://github.coml/uber-go/zap/pull/1148 #1185: https://github.coml/uber-go/zap/pull/1185

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • chore(deps): Bump golangci/golangci-lint-action from 3.3.0 to 3.3.1

    chore(deps): Bump golangci/golangci-lint-action from 3.3.0 to 3.3.1

    Bumps golangci/golangci-lint-action from 3.3.0 to 3.3.1.

    Release notes

    Sourced from golangci/golangci-lint-action's releases.

    v3.3.1

    What's Changed

    Full Changelog: https://github.com/golangci/golangci-lint-action/compare/v3...v3.3.1

    Commits
    • 0ad9a09 build(deps-dev): bump @​typescript-eslint/parser from 5.41.0 to 5.42.0 (#599)
    • 235ea57 build(deps-dev): bump eslint from 8.26.0 to 8.27.0 (#598)
    • a6ed001 build(deps-dev): bump @​typescript-eslint/eslint-plugin from 5.41.0 to 5.42.0 ...
    • 3a7156a build(deps-dev): bump @​typescript-eslint/parser from 5.40.1 to 5.41.0 (#596)
    • 481f8ba build(deps): bump @​types/semver from 7.3.12 to 7.3.13 (#595)
    • 06edb37 build(deps-dev): bump @​typescript-eslint/eslint-plugin from 5.40.1 to 5.41.0 ...
    • c2f79a7 build(deps): bump @​actions/cache from 3.0.5 to 3.0.6 (#593)
    • d6eac69 build(deps-dev): bump @​typescript-eslint/eslint-plugin from 5.40.0 to 5.40.1 ...
    • 7268434 build(deps-dev): bump eslint from 8.25.0 to 8.26.0 (#591)
    • a926e2b build(deps-dev): bump @​typescript-eslint/parser from 5.40.0 to 5.40.1 (#590)
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • chore(deps): Bump andstor/file-existence-action from 1 to 2

    chore(deps): Bump andstor/file-existence-action from 1 to 2

    Bumps andstor/file-existence-action from 1 to 2.

    Release notes

    Sourced from andstor/file-existence-action's releases.

    v2.0.0

    Changed

    • Updated to the node16 runtime by default
    • Deprecates the allow_failure variable in favor of fail

    Fixed

    v1.1.0

    Added

    • Support for glob patterns.

    v1.0.1

    Added

    • Checks for existence of files and directories specified in input variables.
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
fastcache is an HTTP response caching package that plugs into fastglue that simplifies

fastcache fastcache is a simple response caching package that plugs into fastglue. The Cached() middleware can be wrapped around fastglue GET handlers

Apr 5, 2022
Weather api - A Simple Weather API Example With Golang

Example import: import "github.com/mr-joshcrane/weather_api" Example of Library

Jan 5, 2022
A Go HTTP client library for creating and sending API requests
A Go HTTP client library for creating and sending API requests

Sling Sling is a Go HTTP client library for creating and sending API requests. Slings store HTTP Request properties to simplify sending requests and d

Jan 7, 2023
Http client call for golang http api calls

httpclient-call-go This library is used to make http calls to different API services Install Package go get

Oct 7, 2022
Gotcha is an high level HTTP client with a got-like API
Gotcha is an high level HTTP client with a got-like API

Gotcha is an alternative to Go's http client, with an API inspired by got. It can interface with other HTTP packages through an adapter.

Dec 7, 2022
Basic repository with HTTP ping api and db setup

Simple API Simple REST API with database (postgres) integration HighLevel Agenda Integrating with postgres (few concepts) Live code walkthrough Detail

Jan 27, 2022
go http api to handle phishing resources requests

go http api to handle phishing resources requests (auth check, prometheus metrics, pushing to rabbit, logging to elasticsearch)

Oct 8, 2021
Fibonacci RESTful API - HTTP server that listens on a given port

Fibonacci RESTful API - HTTP server that listens on a given port

Jan 19, 2022
🦉SOAP package for Go

Go Soap package to help with SOAP integrations (client)

Dec 28, 2022
omniparser: a native Golang ETL streaming parser and transform library for CSV, JSON, XML, EDI, text, etc.
omniparser: a native Golang ETL streaming parser and transform library for CSV, JSON, XML, EDI, text, etc.

omniparser Omniparser is a native Golang ETL parser that ingests input data of various formats (CSV, txt, fixed length/width, XML, EDI/X12/EDIFACT, JS

Jan 4, 2023
Yubigo is a Yubikey client API library that provides an easy way to integrate the Yubico Yubikey into your existing Go-based user authentication infrastructure.

yubigo Yubigo is a Yubikey client API library that provides an easy way to integrate the Yubikey into any Go application. Installation Installation is

Oct 27, 2022
Server and client implementation of the grpc go libraries to perform unary, client streaming, server streaming and full duplex RPCs from gRPC go introduction

Description This is an implementation of a gRPC client and server that provides route guidance from gRPC Basics: Go tutorial. It demonstrates how to u

Nov 24, 2021
Helper library to transform TMX tile maps into a simpler format for Ebiten

Ebitmx Ebitmx is a super simple parser to help render TMX maps when using Ebiten for your games. Right now is super limited to XML and CSV data struct

Nov 16, 2022
Transform Go code into it's AST

Welcome to go2ast ?? Transform Go code into it's AST Usage echo "a := 1" | go run main.go Example output []ast.Stmt { &ast.AssignStmt {

Dec 13, 2022
A proxy to transform goods inventory/merchandising info to feed into DAG.
A proxy to transform goods inventory/merchandising info to feed into DAG.

Goods GDAG - POC in Go A proxy to transform goods inventory/merchandising info to feed into DAG. Requirements Go 1.4 Godeps Setup go get github.com/to

Oct 24, 2021
Transmo - Transform Model into another model based on struct for Go (Golang).

Transmo Transmo is a Go library for transform model into another model base on struct. This library detect your field name to copy that into another m

Jan 7, 2022
Flowlogs2metrics - Transform flow logs into metrics
Flowlogs2metrics - Transform flow logs into metrics

Overview Flow-Logs to Metrics (a.k.a. FL2M) is an observability tool that consum

Jan 3, 2023
ThoughtLoom: Transform Data into Insights with OpenAI LLMs
ThoughtLoom: Transform Data into Insights with OpenAI LLMs

ThoughtLoom: Transform Data into Insights with OpenAI LLMs ThoughtLoom is a powerful tool designed to foster creativity and enhance productivity throu

May 4, 2023
A helm v3 plugin to adopt existing k8s resources into a new generated helm chart

helm-adopt Overview helm-adopt is a helm plugin to adopt existing k8s resources into a new generated helm chart, the idea behind the plugin was inspir

Dec 15, 2022