Skip to content

checkelmann/go-utils

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

Keptn util library for golang

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 100.0%