go-utils

module
v0.6.2 Latest Latest
Warning

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

Go to latest
Published: May 4, 2020 License: Apache-2.0

README

Keptn go-utils

Build Status GitHub release (latest by date) Go Report Card

This repo serves as a util package for common functionalities such as logging of the Keptn Project.

Please post any issues with this package to the keptn/keptn repository and label them with area:go-utils.

Installation

Get the latest version using

go get github.com/keptn/go-utils

Also consider browsing our Releases Page to find out about all releases.

Contributing

If you want to contribute, just create a PR on the master branch.

Please also see CONTRIBUTING.md instructions on how to contribute.

Usage

Below we have listed some basic examples. You can find more information about the usage within the docs/ folder.

Utils

If you need to access several utility functions:

import {
  "github.com/keptn/go-utils/pkg/lib"
}

This module provides you with a convenient Keptn helper struct that allows you to access several resources that are relevant within the context of a Keptn event. The helper struct can be initialized by passing a CloudEvent to the NewKeptn function. Example:

func HandleEvent(event cloudevents.Event) error {
	keptnHandler, err := keptn.NewKeptn(&event, keptn.KeptnOpts{})
	if err != nil {
		return nil, err
	}
	
    // get the shipyard file of the project
    shipyard, _ := keptnHandler.GetShipyard()
    
    // get a resource within the current context (i.e., project, stage, service) of the event
    resourceContent, _ := keptnHandler.GetKeptnResource("resource.yaml")

    // send a cloud event
    _ = keptnHandler.SendCloudEvent(event)
    // ...
}
CloudEvent Data

If you need to access data within CloudEvents:

import {
	"github.com/keptn/go-utils/pkg/lib"
)

Example:

func parseCloudEvent(event cloudevents.Event) (keptnevents.TestFinishedEventData, error) {
	eventData := &keptn.TestsFinishedEventData{}
	err := event.DataAs(eventData)
    
    return eventData, err
}
Models

If you need to access Models for YAML files:

import {
	"github.com/keptn/go-utils/pkg/lib"
)

Updating model definitions

After updating the model definitions in the swagger.yaml file, execute the command

swagger generate model --spec=swagger.yaml -t=./pkg/api/

to update the models located in ./pkg/api/models

Automation

Within .travis.yml we have included an automation that creates a Pull Request to github.com/keptn/keptn to update go.mod files with an updated version of this package (based on the commit hash). To make this work, a GITHUB_TOKEN (personal access token) needs to be added within the travis-ci settings page.

Directories

Path Synopsis
examples
cp-connector Module
go-sdk Module
pkg
lib

Jump to

Keyboard shortcuts

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