codeclient

package module
v1.4.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 10, 2024 License: MIT Imports: 10 Imported by: 2

README

code-client-go

A library that exposes scanning capabilities for Snyk Code that can be used in the Snyk CLI as well as Snyk IDE plugins using the Snyk Language Server.

Installation

$ go get github.com/snyk/code-client-go

Usage

HTTP Client

Use the HTTP client to make HTTP requests with configured retriable codes and authorisation headers for Snyk Rest APIs.

Implement the github.com/snyk/code-client-go/http.Config interface to configure the Snyk Code API client from applications.

Provide a net/http.Client factory to customize the underlying HTTP protocol behavior (timeouts, etc).

import (
    "net/http"

    "github.com/rs/zerolog"
    codehttp "github.com/snyk/code-client-go/http"
)

logger := zerlog.NewLogger(...)
config := newConfigForMyApp()
httpClient := codehttp.NewHTTPClient(logger, config, func() *http.Client { return http.DefaultClient }, codeInstrumentor, codeErrorReporter)

The HTTP client exposes a DoCall function.

Configuration

Implement the http.Config interface to configure the Snyk Code API client from applications.

Code Scanner

Use the Code Scanner to trigger a scan for a Snyk Code workspace using the Bundle Manager created above. The Code Scanner exposes a UploadAndAnalyze function, which can be used like this:

import (
    "net/http"
    
    "github.com/rs/zerolog"
    code "github.com/snyk/code-client-go"
)

logger := zerlog.NewLogger(...)
config := newConfigForMyApp()

codeScanner := code.NewCodeScanner(
    httpClient,
	config,
    codeInstrumentor, 
	codeErrorReporter,
    logger,
)
code.UploadAndAnalyze(context.Background(), requestId, "path/to/workspace", channelForWalkingFiles, changedFiles)
Observability

Under ./observability we have defined some observability interfaces which allows consumers of the library to inject their own observability implementations as long as they follow the defined interfaces.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewCodeScanner added in v0.4.0

func NewCodeScanner(
	httpClient codeClientHTTP.HTTPClient,
	config config.Config,
	instrumentor observability.Instrumentor,
	errorReporter observability.ErrorReporter,
	logger *zerolog.Logger,
) *codeScanner

NewCodeScanner creates a Code Scanner which can be used to trigger Snyk Code on a folder.

Types

type CodeScanner added in v0.4.0

type CodeScanner interface {
	UploadAndAnalyze(
		ctx context.Context,
		requestId string,
		path string,
		files <-chan string,
		changedFiles map[string]bool,
	) (*sarif.SarifResponse, string, error)
}

Directories

Path Synopsis
mocks
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
Package http defines the HTTP client used to interact with the Snyk Code API.
Package http defines the HTTP client used to interact with the Snyk Code API.
mocks
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
internal
analysis/mocks
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
bundle/mocks
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
deepcode
* © 2024 Snyk Limited All rights reserved.
* © 2024 Snyk Limited All rights reserved.
deepcode/mocks
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
orchestration/2024-02-16
Package v20240216 provides primitives to interact with the openapi HTTP API.
Package v20240216 provides primitives to interact with the openapi HTTP API.
orchestration/2024-02-16/common
Package v20240216 provides primitives to interact with the openapi HTTP API.
Package v20240216 provides primitives to interact with the openapi HTTP API.
orchestration/2024-02-16/parameters
Package v20240216 provides primitives to interact with the openapi HTTP API.
Package v20240216 provides primitives to interact with the openapi HTTP API.
orchestration/2024-02-16/scans
Package v20240216 provides primitives to interact with the openapi HTTP API.
Package v20240216 provides primitives to interact with the openapi HTTP API.
util/testutil
* © 2024 Snyk Limited All rights reserved.
* © 2024 Snyk Limited All rights reserved.
workspace/2024-03-12
Package v20240312 provides primitives to interact with the openapi HTTP API.
Package v20240312 provides primitives to interact with the openapi HTTP API.
workspace/2024-03-12/common
Package v20240312 provides primitives to interact with the openapi HTTP API.
Package v20240312 provides primitives to interact with the openapi HTTP API.
workspace/2024-03-12/links
Package v20240312 provides primitives to interact with the openapi HTTP API.
Package v20240312 provides primitives to interact with the openapi HTTP API.
workspace/2024-03-12/mocks
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
workspace/2024-03-12/parameters
Package v20240312 provides primitives to interact with the openapi HTTP API.
Package v20240312 provides primitives to interact with the openapi HTTP API.
workspace/2024-03-12/workspaces
Package v20240312 provides primitives to interact with the openapi HTTP API.
Package v20240312 provides primitives to interact with the openapi HTTP API.
mocks
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL