Skip to content

Commit

Permalink
delta (#473)
Browse files Browse the repository at this point in the history
  • Loading branch information
Reuven Harrison authored Jan 26, 2024
1 parent a8392c1 commit 64535de
Show file tree
Hide file tree
Showing 35 changed files with 794 additions and 54 deletions.
16 changes: 6 additions & 10 deletions .github/workflows/go.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,11 @@ name: go
on:
pull_request:
push:
branches:
- 'master'
permissions:
contents: read

jobs:
build-and-test:
env:
Expand All @@ -11,7 +16,7 @@ jobs:
strategy:
fail-fast: true
matrix:
go: ['1.21.5']
go: ['1.21.6']
os:
- ubuntu-latest
- windows-latest
Expand Down Expand Up @@ -67,15 +72,6 @@ jobs:
- run: go fmt ./...
- run: git --no-pager diff --exit-code

- if: runner.os == 'Linux'
name: golangci-lint
uses: golangci/golangci-lint-action@v3
with:
version: v1.55

- id: govulncheck
uses: golang/govulncheck-action@v1

- run: go test ./... -coverprofile=coverage.txt -covermode=atomic
env:
CGO_ENABLED: '1'
Expand Down
50 changes: 50 additions & 0 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
name: golangci-lint
on:
push:
pull_request:

permissions:
contents: read

jobs:
golangci:
name: lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-go@v4
with:
go-version: '1.21'
cache: false
- name: Run golangci-lint
uses: golangci/golangci-lint-action@v3
with:
# Require: The version of golangci-lint to use.
# When `install-mode` is `binary` (default) the value can be v1.2 or v1.2.3 or `latest` to use the latest version.
# When `install-mode` is `goinstall` the value can be v1.2.3, `latest`, or the hash of a commit.
version: latest

# Optional: working directory, useful for monorepos
# working-directory: somedir

# Optional: golangci-lint command line arguments.
#
# Note: By default, the `.golangci.yml` file should be at the root of the repository.
# The location of the configuration file can be changed by using `--config=`
# args: --timeout=30m --config=/my/path/.golangci.yml --issues-exit-code=0

# Optional: show only new issues if it's a pull request. The default value is `false`.
# only-new-issues: true

# Optional: if set to true, then all caching functionality will be completely disabled,
# takes precedence over all other caching options.
# skip-cache: true

# Optional: if set to true, then the action won't cache or restore ~/go/pkg.
# skip-pkg-cache: true

# Optional: if set to true, then the action won't cache or restore ~/.cache/go-build.
# skip-build-cache: true

# Optional: The mode to install golangci-lint. It can be 'binary' or 'goinstall'.
# install-mode: "goinstall"
19 changes: 19 additions & 0 deletions .github/workflows/vuln.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
name: govulncheck
on:
push:
pull_request:

permissions:
contents: read
# Optional: allow read access to pull request. Use with `only-new-issues` option.
# pull-requests: read

jobs:
govulncheck_job:
runs-on: ubuntu-latest
name: Run govulncheck
steps:
- id: govulncheck
uses: golang/govulncheck-action@v1
with:
go-version-input: 1.21.6
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
### Go get dependecies and build ###
FROM golang:1.21.5 as builder
FROM golang:1.21.6 as builder
ENV PLATFORM docker
WORKDIR /go/src/app
COPY go.mod go.sum ./
Expand Down
5 changes: 5 additions & 0 deletions data/empty.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
openapi: 3.0.1
info:
title: Test API
version: v1
paths:
14 changes: 14 additions & 0 deletions data/simple3.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
info:
title: Tufin
version: 1.0.0
openapi: 3.0.3
paths:
/api/test:
get:
responses:
200:
description: OK
post:
responses:
201:
description: OK
19 changes: 19 additions & 0 deletions data/simple4.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
info:
title: Tufin
version: 1.0.0
openapi: 3.0.3
paths:
/api/test:
get:
parameters:
- name: a
in: query
schema:
type: integer
responses:
200:
description: OK
post:
responses:
201:
description: OK
19 changes: 19 additions & 0 deletions data/simple5.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
info:
title: Tufin
version: 1.0.0
openapi: 3.0.3
paths:
/api/test:
get:
parameters:
- name: a
in: query
schema:
type: string
responses:
200:
description: OK
post:
responses:
201:
description: OK
38 changes: 38 additions & 0 deletions delta/delta.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
package delta

import (
"github.com/tufin/oasdiff/diff"
)

const coefficient = 0.5

func Get(asymmetric bool, diffReport *diff.Diff) float64 {
if diffReport.Empty() {
return 0
}

return getEndpointsDelta(asymmetric, diffReport.EndpointsDiff)
}

func ratio(asymmetric bool, added int, deleted int, modifiedDelta float64, all int) float64 {
if asymmetric {
added = 0
}

return (float64(added+deleted) + modifiedDelta) / float64(all)
}

func modifiedLeafDelta(asymmetric bool, modified float64) float64 {
if asymmetric {
return modified / 2
}

return modified
}

func boolToFloat64(b bool) float64 {
if b {
return 1.0
}
return 0.0
}
Loading

0 comments on commit 64535de

Please sign in to comment.