- Description
- Sub-modules in this library
github.com/RedHatInsights/insights-operator-utils/collections
github.com/RedHatInsights/insights-operator-utils/env
github.com/RedHatInsights/insights-operator-utils/evaluator
github.com/RedHatInsights/insights-operator-utils/generators
github.com/RedHatInsights/insights-operator-utils/formatters
github.com/RedHatInsights/insights-operator-utils/http
github.com/RedHatInsights/insights-operator-utils/logger
github.com/RedHatInsights/insights-operator-utils/metrics
github.com/RedHatInsights/insights-operator-utils/metrics/push
github.com/RedHatInsights/insights-operator-utils/migrations
github.com/RedHatInsights/insights-operator-utils/parsers
github.com/RedHatInsights/insights-operator-utils/responses
github.com/RedHatInsights/insights-operator-utils/s3
github.com/RedHatInsights/insights-operator-utils/tls
github.com/RedHatInsights/insights-operator-utils/tests
github.com/RedHatInsights/insights-operator-utils/types
- How to use this library
- Configuration
- Contribution
- Makefile targets
- Testing
- CI
- Package manifest
- Open Source Insights status
Utility packages (written in Go) that are shared between different Insights Operator, Insights Results Aggregator, and CCX Notification Service repositories.
Helper functions to work with collections.
Functions to work with environment variables.
Expression evaluator with ability to provide named values into expressions.
Value generators - rule FQDNs etc.
Various text formatters utility functions.
HTTP-related utility functions.
Configuration structures needed to configure the access to CloudWatch server to sending the log messages there.
Package metrics contains all metrics that needs to be exposed to Prometheus and indirectly to Grafana.
Package metrics/push contains some helping functions to push metrics to a Prometheus Pushgateway.
An implementation of a simple database migration mechanism that allows semi-automatic transitions between various database versions as well as building the latest version of the database from scratch.
Various text parser utility functions.
Handlers for HTTP response.
Helper functions to work with S3.
Helper function to create TLS configurations.
Contains sub-modules to make unit tests easier to write.
Declaration of various data types (usually structures) used elsewhere in the aggregator code.
Use selected sub-module from this library in your import
statement. For example:
import (
"encoding/json"
"strings"
"github.com/RedHatInsights/insights-operator-utils/types"
"github.com/RedHatInsights/insights-results-aggregator-data/testdata"
)
or:
import (
"context"
"database/sql"
"encoding/json"
"github.com/RedHatInsights/insights-operator-utils/logger"
"github.com/rs/zerolog/log"
"golang.org/x/sync/errgroup"
)
No further configuration is needed at this moment.
Please look into document CONTRIBUTING.md that contains all information about how to contribute to this project.
Please look also at Definition of Done document with further informations.
Available targets are:
fmt Run go fmt -w for all sources
lint Run golint
vet Run go vet. Report likely mistakes in source code
cyclo Run gocyclo
ineffassign Run ineffassign checker
shellcheck Run shellcheck
errcheck Run errcheck
goconst Run goconst checker
gosec Run gosec checker
abcgo Run ABC metrics checker
style Run all the formatting related commands (fmt, vet, lint, cyclo) + check shell scripts
test Run the unit tests
benchmark Run benchmarks
cover Display test coverage on generated HTML pages
coverage Display test coverage onto terminal
before_commit Checks done before commit
license Add license in every file in repository
help Show this help screen
Unit tests can be started by the following command:
./test.sh
It is also possible to specify CLI options for Go test. For example, if you need to disable test results caching, use the following command:
./test -count=1
Travis CI is configured for this repository. Several tests and checks are started for all pull requests:
- Unit tests that use the standard tool
go test
go fmt
tool to check code formatting. That tool is run with-s
flag to perform following transformationsgo vet
to report likely mistakes in source code, for example suspicious constructs, such as Printf calls whose arguments do not align with the format string.golint
as a linter for all Go sources stored in this repositorygocyclo
to report all functions and methods with too high cyclomatic complexity. The cyclomatic complexity of a function is calculated according to the following rules: 1 is the base complexity of a function +1 for each 'if', 'for', 'case', '&&' or '||' Go Report Card warns on functions with cyclomatic complexity > 9goconst
to find repeated strings that could be replaced by a constantgosec
to inspect source code for security problems by scanning the Go ASTineffassign
to detect and print all ineffectual assignments in Go codeerrcheck
for checking for all unchecked errors in go programsshellcheck
to perform static analysis for all shell scripts used in this repositoryabcgo
to measure ABC metrics for Go source code and check if the metrics does not exceed specified threshold
Please note that all checks mentioned above have to pass for the change to be merged into the main branch (look into Settings to check which branch has been set as main one).
History of checks performed by CI is available at RedHatInsights / insights-operator-utils.
Also GolangCI is configured for this repository and is run for all pull requests.
Package manifest is available at docs/manifest.txt.
Open Source Insights status is available at https://deps.dev/go/github.com%2Fredhatinsights%2Finsights-operator-utils/