github.com/Azure/azure-sdk-for-go/sdk/azcore
go
pkg:golang/github.com/Azure/azure-sdk-for-go/sdk/azcore
1,121 Dependabot PRs
5 days ago
237 repositories
22 repositories
Recent PRs (filtered by: Closed )
deps(deps): bump github.com/Azure/azure-sdk-for-go/sdk/azcore from 1.19.0 to 1.19.1 in /exporter/azureloganalyticsexporter
observIQ/bindplane-otel-collector #2726
Bump the non-gardener-dependencies group across 1 directory with 20 updates
gardener/gardener-extension-provider-azure #1329
chore(deps)(deps): bump the azure-sdk group with 2 updates
hutstep/entra-id-api-tester #10
chore(deps)(deps): bump github.com/Azure/azure-sdk-for-go/sdk/azcore from 1.17.1 to 1.19.1
IlmanNafi11/invento-service #9
chore(deps): bump the common group across 1 directory with 35 updates
goodtab/cptrivy #22
Bump the dev-dependencies group across 1 directory with 43 updates
Bump the go group with 102 updates
soitun/teleport #710
Bump the go group across 1 directory with 119 updates
jtagcat/teleport #117
build(deps): bump github.com/Azure/azure-sdk-for-go/sdk/azcore from 1.18.0 to 1.19.1
aknuds1/prometheus #732
Bump the go-dependencies group across 1 directory with 58 updates
radius-project/radius #10559
chore(deps): bump the common group across 1 directory with 26 updates
tnir/trivy #274
Bump the go-dependencies group across 1 directory with 58 updates
Bump the third-party group with 17 updates
openziti/ziti #3292
chore(deps): bump the common group across 1 directory with 32 updates
goodtab/cptrivy #17
chore(deps): bump the common group across 1 directory with 48 updates
suryatmodulus/trivy #339
chore(deps): bump the common group across 1 directory with 54 updates
k-hal/trivy #395
chore(deps): bump the common group across 1 directory with 43 updates
Bump the go-dependencies group across 1 directory with 57 updates
radius-project/radius #10539
chore(deps): bump the common group across 1 directory with 24 updates
chore(deps): bump the common group across 1 directory with 24 updates
tnir/trivy #271
build(deps): bump the build group across 1 directory with 12 updates
coreos/coreos-assembler #4331
build(deps): bump the go group across 1 directory with 26 updates
chore(deps): Bump github.com/Azure/azure-sdk-for-go/sdk/azcore from 1.19.0 to 1.19.1
kokizzu/telegraf #1288
chore(deps): bump the common group across 1 directory with 52 updates
k-hal/trivy #394
chore(deps): bump the common group across 1 directory with 30 updates
goodtab/cptrivy #16
chore(deps): bump the common group across 1 directory with 46 updates
suryatmodulus/trivy #337
Bump the all-go-mod-patch-and-minor group across 1 directory with 4 updates
chore: bump the backend-golang-dependencies group in /backend with 16 updates
mendersoftware/mender-server #982
build(deps): Bump the go group across 1 directory with 21 updates
getsops/sops #1956
chore(deps): Bump github.com/Azure/azure-sdk-for-go/sdk/azcore from 1.19.0 to 1.19.1
code-watch/telegraf #1664
build(deps): Bump the gomod group across 5 directories with 5 updates
bobcallaway/sigstore #1235
chore(deps): bump the dev-dependencies group across 1 directory with 36 updates
kubernetes-sigs/external-dns #5857
build(deps): bump the all group across 1 directory with 25 updates
jackfrancis/cloud-provider-azure #566
build(deps): Bump the gomod group across 6 directories with 5 updates
bobcallaway/sigstore #1233
chore(deps): bump the dev-dependencies group across 1 directory with 32 updates
chore(deps): Bump github.com/Azure/azure-sdk-for-go/sdk/azcore from 1.19.0 to 1.19.1
pianomanx/telegraf #518
deps(deps): bump github.com/Azure/azure-sdk-for-go/sdk/azcore from 1.19.0 to 1.19.1 in /receiver/azureblobrehydrationreceiver
observIQ/bindplane-otel-collector #2657
build(deps): bump the cloud-sdks group in /go with 9 updates
chore(deps): bump github.com/Azure/azure-sdk-for-go/sdk/azcore from 1.19.0 to 1.19.1 in /Backend
NLstn/clubs #360
chore(deps): bump github.com/Azure/azure-sdk-for-go/sdk/azcore from 1.19.0 to 1.19.1
fgrzl/streamkit #77
chore(deps): bump the common group across 1 directory with 54 updates
build(deps): Bump the go group across 1 directory with 19 updates
getsops/sops #1950
build(deps): bump the build group across 1 directory with 12 updates
HuijingHei/coreos-assembler #27
chore(deps): bump the common group with 22 updates
aiflash/trivy #353
chore(deps): bump the common group across 1 directory with 54 updates
riddopic/trivy #163
chore(deps): bump the common group across 1 directory with 41 updates
chore(deps): bump the common group across 1 directory with 41 updates
xycloops123/trivy #363
build(deps): bump the all group across 1 directory with 24 updates
jackfrancis/cloud-provider-azure #561
build(deps): bump the all group across 1 directory with 13 updates
kubernetes-sigs/cloud-provider-azure #9458
build(deps): bump the all group with 14 updates
kubernetes-sigs/cloud-provider-azure #9456
Package Details
| Name: | github.com/Azure/azure-sdk-for-go/sdk/azcore |
| Ecosystem: | go |
| PURL Type: | golang |
| Package URL: | pkg:golang/github.com/Azure/azure-sdk-for-go/sdk/azcore |
| JSON API: | View JSON |
Package Information
Package azcore implements an HTTP request/response middleware pipeline used by Azure SDK clients. The middleware consists of three components. A Policy can be implemented in two ways; as a first-class function for a stateless Policy, or as a method on a type for a stateful Policy. Note that HTTP requests made via the same pipeline share the same Policy instances, so if a Policy mutates its state it MUST be properly synchronized to avoid race conditions. A Policy's Do method is called when an HTTP request wants to be sent over the network. The Do method can perform any operation(s) it desires. For example, it can log the outgoing request, mutate the URL, headers, and/or query parameters, inject a failure, etc. Once the Policy has successfully completed its request work, it must call the Next() method on the *policy.Request instance in order to pass the request to the next Policy in the chain. When an HTTP response comes back, the Policy then gets a chance to process the response/error. The Policy instance can log the response, retry the operation if it failed due to a transient error or timeout, unmarshal the response body, etc. Once the Policy has successfully completed its response work, it must return the *http.Response and error instances to its caller. Template for implementing a stateless Policy: Template for implementing a stateful Policy: The Transporter interface is responsible for sending the HTTP request and returning the corresponding HTTP response or error. The Transporter is invoked by the last Policy in the chain. The default Transporter implementation uses a shared http.Client from the standard library. The same stateful/stateless rules for Policy implementations apply to Transporter implementations. To use the Policy and Transporter instances, an application passes them to the runtime.NewPipeline function. The specified Policy instances form a chain and are invoked in the order provided to NewPipeline followed by the Transporter. Once the Pipeline has been created, create a runtime.Request instance and pass it to Pipeline's Do method. The Pipeline.Do method sends the specified Request through the chain of Policy and Transporter instances. The response/error is then sent through the same chain of Policy instances in reverse order. For example, assuming there are Policy types PolicyA, PolicyB, and PolicyC along with TransportA. The flow of Request and Response looks like the following: The Request instance passed to Pipeline's Do method is a wrapper around an *http.Request. It also contains some internal state and provides various convenience methods. You create a Request instance by calling the runtime.NewRequest function: If the Request should contain a body, call the SetBody method. A seekable stream is required so that upon retry, the retry Policy instance can seek the stream back to the beginning before retrying the network request and re-uploading the body. Operations like JSON-MERGE-PATCH send a JSON null to indicate a value should be deleted. This requirement conflicts with the SDK's default marshalling that specifies "omitempty" as a means to resolve the ambiguity between a field to be excluded and its zero-value. In the above example, Name and Count are defined as pointer-to-type to disambiguate between a missing value (nil) and a zero-value (0) which might have semantic differences. In a PATCH operation, any fields left as nil are to have their values preserved. When updating a Widget's count, one simply specifies the new value for Count, leaving Name nil. To fulfill the requirement for sending a JSON null, the NullValue() function can be used. This sends an explict "null" for Count, indicating that any current value for Count should be deleted. When the HTTP response is received, the *http.Response is returned directly. Each Policy instance can inspect/mutate the *http.Response. To enable logging, set environment variable AZURE_SDK_GO_LOGGING to "all" before executing your program. By default the logger writes to stderr. This can be customized by calling log.SetListener, providing a callback that writes to the desired location. Any custom logging implementation MUST provide its own synchronization to handle concurrent invocations. See the docs for the log package for further details. Pageable operations return potentially large data sets spread over multiple GET requests. The result of each GET is a "page" of data consisting of a slice of items. Pageable operations can be identified by their New*Pager naming convention and return type of *runtime.Pager[T]. The call to WidgetClient.NewListWidgetsPager() returns an instance of *runtime.Pager[T] for fetching pages and determining if there are more pages to fetch. No IO calls are made until the NextPage() method is invoked. Long-running operations (LROs) are operations consisting of an initial request to start the operation followed by polling to determine when the operation has reached a terminal state. An LRO's terminal state is one of the following values. LROs can be identified by their Begin* prefix and their return type of *runtime.Poller[T]. When a call to WidgetClient.BeginCreateOrUpdate() returns a nil error, it means that the LRO has started. It does _not_ mean that the widget has been created or updated (or failed to be created/updated). The *runtime.Poller[T] provides APIs for determining the state of the LRO. To wait for the LRO to complete, call the PollUntilDone() method. The call to PollUntilDone() will block the current goroutine until the LRO has reached a terminal state or the context is canceled/timed out. Note that LROs can take anywhere from several seconds to several minutes. The duration is operation-dependent. Due to this variant behavior, pollers do _not_ have a preconfigured time-out. Use a context with the appropriate cancellation mechanism as required. Pollers provide the ability to serialize their state into a "resume token" which can be used by another process to recreate the poller. This is achieved via the runtime.Poller[T].ResumeToken() method. Note that a token can only be obtained for a poller that's in a non-terminal state. Also note that any subsequent calls to poller.Poll() might change the poller's state. In this case, a new token should be created. After the token has been obtained, it can be used to recreate an instance of the originating poller. When resuming a poller, no IO is performed, and zero-value arguments can be used for everything but the Options.ResumeToken. Resume tokens are unique per service client and operation. Attempting to resume a poller for LRO BeginB() with a token from LRO BeginA() will result in an error. The fake package contains types used for constructing in-memory fake servers used in unit tests. This allows writing tests to cover various success/error conditions without the need for connecting to a live service. Please see https://github.com/Azure/azure-sdk-for-go/tree/main/sdk/samples/fakes for details and examples on how to use fakes.
| Repository: | https://github.com/Azure/azure-sdk-for-go |
| Homepage: | https://github.com/Azure/azure-sdk-for-go |
| Latest Release: |
v1.18.0
7 months ago |
| Dependent Repos: | 5,959 |
| Dependent Packages: | 4,200 |
| Ranking: | Top 0.1058% by dependent repos Top 0.0776% by dependent pkgs |