Clean Architecture template for Golang services

Go Clean Template

Go Clean template

Clean Architecture template for Golang services

Go Report Card License Release codecov

Overview

The purpose of the template is to show:

  • how to organize a project and prevent it from turning into spaghetti code
  • where to store business logic so that it remains independent, clean, and extensible
  • how not to lose control when a microservice grows

Using the principles of Robert Martin (aka Uncle Bob).

Go-clean-template is created & supported by Evrone.

Content

Quick start

Local development:

# Postgres, RabbitMQ
$ make compose-up
# Run app with migrations
$ make run

Integration tests (can be run in CI):

# DB, app + migrations, integration tests
$ make compose-up-integration-test

Project structure

cmd/app/main.go

Configuration and logger initialization. Then the main function "continues" in internal/app/app.go.

config

Configuration. First, config.yml is read, then environment variables overwrite the yaml config if they match. The config structure is in the config.go. The env-required: true tag obliges you to specify a value (either in yaml, or in environment variables).

For configuration, we chose the cleanenv library. It does not have many stars on GitHub, but is simple and meets all the requirements.

Reading the config from yaml contradicts the ideology of 12 factors, but in practice, it is more convenient than reading the entire config from ENV. It is assumed that default values are in yaml, and security-sensitive variables are defined in ENV.

docs

Swagger documentation. Auto-generated by swag library. You don't need to correct anything by yourself.

integration-test

Integration tests. They are launched as a separate container, next to the application container. It is convenient to test the Rest API using go-hit.

internal/app

There is always one Run function in the app.go file, which "continues" the main function.

This is where all the main objects are created. Dependency injection occurs through the "New ..." constructors (see Dependency Injection). This technique allows us to layer the application using the Dependency Injection principle. This makes the business logic independent from other layers.

Next, we start the server and wait for signals in select for graceful completion. If app.go starts to grow, you can split it into multiple files.

For a large number of injections, wire can be used.

The migrate.go file is used for database auto migrations. It is included if an argument with the migrate tag is specified. For example:

$ go run -tags migrate ./cmd/app

internal/controller

Server handler layer (MVC controllers). The template shows 2 servers:

  • RPC (RabbitMQ as transport)
  • REST http (Gin framework)

Server routers are written in the same style:

  • Handlers are grouped by area of application (by a common basis)
  • For each group, its own router structure is created, the methods of which process paths
  • The structure of the business logic is injected into the router structure, which will be called by the handlers

internal/controller/http

Simple REST versioning. For v2, we will need to add the http/v2 folder with the same content. And in the file internal/app add the line:

handler := gin.New()
v1.NewRouter(handler, t)
v2.NewRouter(handler, t)

Instead of Gin, you can use any other http framework or even the standard net/http library.

In v1/router.go and above the handler methods, there are comments for generating swagger documentation using swag.

internal/entity

Entities of business logic (models) can be used in any layer. There can also be methods, for example, for validation.

internal/usecase

Business logic.

  • Methods are grouped by area of application (on a common basis)
  • Each group has its own structure
  • One file - one structure

Repositories, webapi, rpc, and other business logic structures are injected into business logic structures (see Dependency Injection).

internal/usecase/repo

A repository is an abstract storage (database) that business logic works with.

internal/usecase/webapi

It is an abstract web API that business logic works with. For example, it could be another microservice that business logic accesses via the REST API. The package name changes depending on the purpose.

pkg/rabbitmq

RabbitMQ RPC pattern:

  • There is no routing inside RabbitMQ
  • Exchange fanout is used, to which 1 exclusive queue is bound, this is the most productive config
  • Reconnect on the loss of connection

Dependency Injection

In order to remove the dependence of business logic on external packages, dependency injection is used.

For example, through the New constructor, we inject the dependency into the structure of the business logic. This makes the business logic independent (and portable). We can override the implementation of the interface without making changes to the usecase package.

package usecase

import (
    // Nothing!
)

type Repository interface {
    Get()
}

type UseCase struct {
    repo Repository
}

func New(r Repository) *UseCase{
    return &UseCase{
        repo: r,
    }
}

func (uc *UseCase) Do()  {
    uc.repo.Get()
}

It will also allow us to do auto-generation of mocks (for example with mockery) and easily write unit tests.

We are not tied to specific implementations in order to always be able to change one component to another. If the new component implements the interface, nothing needs to be changed in the business logic.

Clean Architecture

Key idea

Programmers realize the optimal architecture for an application after most of the code has been written.

A good architecture allows decisions to be delayed to as late as possible.

The main principle

Dependency Inversion (the same one from SOLID) is the principle of dependency inversion. The direction of dependencies goes from the outer layer to the inner layer. Due to this, business logic and entities remain independent from other parts of the system.

So, the application is divided into 2 layers, internal and external:

  1. Business logic (Go standard library).
  2. Tools (databases, servers, message brokers, any other packages and frameworks).

Clean Architecture

The inner layer with business logic should be clean. It should:

  • Not have package imports from the outer layer.
  • Use only the capabilities of the standard library.
  • Make calls to the outer layer through the interface (!).

The business logic doesn't know anything about Postgres or a specific web API. Business logic has an interface for working with an abstract database or abstract web API.

The outer layer has other limitations:

  • All components of this layer are unaware of each other's existence. How to call another from one tool? Not directly, only through the inner layer of business logic.
  • All calls to the inner layer are made through the interface (!).
  • Data is transferred in a format that is convenient for business logic (internal/entity).

For example, you need to access the database from HTTP (controller). Both HTTP and database are in the outer layer, which means they know nothing about each other. The communication between them is carried out through usecase (business logic):

    HTTP > usecase
           usecase > repository (Postgres)
           usecase < repository (Postgres)
    HTTP < usecase

The symbols > and < show the intersection of layer boundaries through Interfaces. The same is shown in the picture:

Example

Or more complex business logic:

    HTTP > usecase
           usecase > repository
           usecase < repository
           usecase > webapi
           usecase < webapi
           usecase > RPC
           usecase < RPC
           usecase > repository
           usecase < repository
    HTTP < usecase

Layers

Example

Clean Architecture Terminology

  • Entities are structures that business logic operates on. They are located in the internal/entity folder. In MVC terms, entities are models.

  • Use Cases is business logic located in internal/usecase.

The layer with which business logic directly interacts is usually called the infrastructure layer. These can be repositories internal/usecase/repo, external webapi internal/usecase/webapi, any pkg, and other microservices. In the template, the infrastructure packages are located inside internal/usecase.

You can choose how to call the entry points as you wish. The options are:

  • controller (in our case)
  • delivery
  • transport
  • gateways
  • entrypoints
  • primary
  • input

Additional layers

The classic version of Clean Architecture was designed for building large monolithic applications and has 4 layers.

In the original version, the outer layer is divided into two more, which also have an inversion of dependencies to each other (directed inward) and communicate through interfaces.

The inner layer is also divided into two (with separation of interfaces), in the case of complex logic.


Complex tools can be divided into additional layers. However, you should add layers only if really necessary.

Alternative approaches

In addition to Clean architecture, Onion architecture and Hexagonal (Ports and adapters) are similar to it. Both are based on the principle of Dependency Inversion. Ports and adapters are very close to Clean Architecture, the differences are mainly in terminology.

Similar projects

Useful links

Comments
  • Bump github.com/swaggo/swag from 1.7.4 to 1.8.8

    Bump github.com/swaggo/swag from 1.7.4 to 1.8.8

    Bumps github.com/swaggo/swag from 1.7.4 to 1.8.8.

    Release notes

    Sourced from github.com/swaggo/swag's releases.

    v1.8.8

    Changelog

    07690e9 Add check for nil otherTypeDef (#1372) eaed517 Enhancements: search imports sequencely, till find the type. (#1374) 0da94ff Fix generics with package alias (#1360) 29d3d30 add properties to $ref (#1391) 362d05b chore: increment version.go (#1395) da6d718 chore: update GitHub actions (#1362) e5d507d enhancement for PR #1387: evaluate const across packages (#1388) e6723fe feat: add flag to generate documentation only for specific tags (#1379) 38b5f15 feat: make swagger comments more readable for go doc (#1366) 8117f4c fix: wrongly shared schema by fields (#1389) 829fbe1 fmt cmd: use a tab instead of two spaces to format comments (#1386) bdfec2b parse global enums (#1387)

    v1.8.7

    Changelog

    f8d59d6 Bump golang.org/x/tools dependency version (#1338) 7f90377 Fix generics issue #1345 (#1349) e4f0129 chore: drop go1.15 support (#1331) 277a278 chore: increment version (#1350) 74e96c9 feat. add support formData []file (#1332) 04c699c fix issue #1346 about generics (#1348) 075c176 refactor: move from io/ioutil to io and os packages (#1334)

    v1.8.6

    Changelog

    bc895ed Fix formatting crosstalk (#1317) c9385a8 build a docker image and push to ghcr.io (#1329) 5fbb18f chore: update version (#1330) cf1c4a7 fix: Generic Fields does not handle Arrays (#1311) b8f53da fix: Generic Fields does not handle Arrays in the .swaggo file (#1322) 2cd7ab5 fix: Generics not detected if name does not contain a pkg path (#1328) 007219f fix: funcDeclaration body check (#1310) e7ccdf4 refactor func splitStructName (#1313)

    v1.8.5

    Changelog

    2f148dd Extended generics support (#1277) 23661ef chore: set CGO_ENABLED=0 for goreleaser to avoid dynamic linking (#1293) 732c087 doc: add function scoped struct declaration example (#1296) 45f01a1 feat: add function scoped struct parse (#1283) cf03796 feat: get swagger instance from register (#1298) af1c525 fix: Go generics cannot find common package object type definition (#1281) 9d34a76 fix: Nested generic fields not fully working, if generic type is from… (#1305)

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • Bump github.com/ilyakaznacheev/cleanenv from 1.2.5 to 1.4.1

    Bump github.com/ilyakaznacheev/cleanenv from 1.2.5 to 1.4.1

    Bumps github.com/ilyakaznacheev/cleanenv from 1.2.5 to 1.4.1.

    Release notes

    Sourced from github.com/ilyakaznacheev/cleanenv's releases.

    Skip unexpected fields

    What's Changed

    New Contributors

    Full Changelog: https://github.com/ilyakaznacheev/cleanenv/compare/v1.4.0...v1.4.1

    Add time.Location support

    What's Changed

    New Contributors

    Full Changelog: https://github.com/ilyakaznacheev/cleanenv/compare/v1.3.1...v1.4.0

    Replace deprecated TOML parsing function call

    What's Changed

    New Contributors

    Full Changelog: https://github.com/ilyakaznacheev/cleanenv/compare/v1.3.0...v1.3.1

    Bump versions, minor fixes

    • bump dependency versions
    • url support in variables
    • security patch

    YAML parser upgraded

    • gopkg.in/yaml v2 -> v3
    Commits
    • 7878a2c Skip no exported field on readStructMetadata (#107)
    • cae814f fix: refactor test-case
    • 0258d9d feat: skip unexported field on readStructMetadata
    • 3bb055c Add time.Location support
    • badbae6 Merge remote-tracking branch 'origin/feature/time.Location' into feature/time...
    • c823841 remove tags between struct tags
    • 130ef83 Replace toml deprecated method
    • c05f293 Merge branch 'ilyakaznacheev:master' into feature/time.Location
    • 7886bec compability changes for go 1.13+ versions
    • 33351de Fix: toml deprecate method.
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • Bump github.com/swaggo/swag from 1.7.4 to 1.8.7

    Bump github.com/swaggo/swag from 1.7.4 to 1.8.7

    Bumps github.com/swaggo/swag from 1.7.4 to 1.8.7.

    Release notes

    Sourced from github.com/swaggo/swag's releases.

    v1.8.7

    Changelog

    f8d59d6 Bump golang.org/x/tools dependency version (#1338) 7f90377 Fix generics issue #1345 (#1349) e4f0129 chore: drop go1.15 support (#1331) 277a278 chore: increment version (#1350) 74e96c9 feat. add support formData []file (#1332) 04c699c fix issue #1346 about generics (#1348) 075c176 refactor: move from io/ioutil to io and os packages (#1334)

    v1.8.6

    Changelog

    bc895ed Fix formatting crosstalk (#1317) c9385a8 build a docker image and push to ghcr.io (#1329) 5fbb18f chore: update version (#1330) cf1c4a7 fix: Generic Fields does not handle Arrays (#1311) b8f53da fix: Generic Fields does not handle Arrays in the .swaggo file (#1322) 2cd7ab5 fix: Generics not detected if name does not contain a pkg path (#1328) 007219f fix: funcDeclaration body check (#1310) e7ccdf4 refactor func splitStructName (#1313)

    v1.8.5

    Changelog

    2f148dd Extended generics support (#1277) 23661ef chore: set CGO_ENABLED=0 for goreleaser to avoid dynamic linking (#1293) 732c087 doc: add function scoped struct declaration example (#1296) 45f01a1 feat: add function scoped struct parse (#1283) cf03796 feat: get swagger instance from register (#1298) af1c525 fix: Go generics cannot find common package object type definition (#1281) 9d34a76 fix: Nested generic fields not fully working, if generic type is from… (#1305)

    v1.8.4

    Changelog

    bd21bb0 Fix issue swaggo/swag#1150 (#1248) 401e414 doc: add missing web frameworks (#1263) a566490 feat: add default description to code if none is provided (#1239) a780e45 feat: default required option for struct fields (#1181) 213f6b8 feat: permit error (and any) interface definition (#1212) 89c61d4 feat: suppress debug logs when using -q (#1254) 0e2ec6c feat: use early overrides to allow converting unsupported types. (#1209) 1cd0b53 fix: don't skip ".." directory (#1238) 8de9952 fix: generic arrays generate successfully (#1247) 796a346 fix: temp dir to be the same as SerchDir to avoid invalid cross-device link (#1203) (#1241)

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • Bump github.com/ilyakaznacheev/cleanenv from 1.2.5 to 1.4.0

    Bump github.com/ilyakaznacheev/cleanenv from 1.2.5 to 1.4.0

    Bumps github.com/ilyakaznacheev/cleanenv from 1.2.5 to 1.4.0.

    Release notes

    Sourced from github.com/ilyakaznacheev/cleanenv's releases.

    Add time.Location support

    What's Changed

    New Contributors

    Full Changelog: https://github.com/ilyakaznacheev/cleanenv/compare/v1.3.1...v1.4.0

    Replace deprecated TOML parsing function call

    What's Changed

    New Contributors

    Full Changelog: https://github.com/ilyakaznacheev/cleanenv/compare/v1.3.0...v1.3.1

    Bump versions, minor fixes

    • bump dependency versions
    • url support in variables
    • security patch

    YAML parser upgraded

    • gopkg.in/yaml v2 -> v3
    Commits
    • 3bb055c Add time.Location support
    • badbae6 Merge remote-tracking branch 'origin/feature/time.Location' into feature/time...
    • c823841 remove tags between struct tags
    • 130ef83 Replace toml deprecated method
    • c05f293 Merge branch 'ilyakaznacheev:master' into feature/time.Location
    • 7886bec compability changes for go 1.13+ versions
    • 33351de Fix: toml deprecate method.
    • f3c3c20 Add version support policy (#102)
    • abaa96d Upgrade codecov action
    • 64fdf0d Separate pipelines
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • Bump github.com/ilyakaznacheev/cleanenv from 1.2.5 to 1.3.1

    Bump github.com/ilyakaznacheev/cleanenv from 1.2.5 to 1.3.1

    Bumps github.com/ilyakaznacheev/cleanenv from 1.2.5 to 1.3.1.

    Release notes

    Sourced from github.com/ilyakaznacheev/cleanenv's releases.

    Replace deprecated TOML parsing function call

    What's Changed

    New Contributors

    Full Changelog: https://github.com/ilyakaznacheev/cleanenv/compare/v1.3.0...v1.3.1

    Bump versions, minor fixes

    • bump dependency versions
    • url support in variables
    • security patch

    YAML parser upgraded

    • gopkg.in/yaml v2 -> v3
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • Bump github.com/swaggo/swag from 1.7.4 to 1.8.6

    Bump github.com/swaggo/swag from 1.7.4 to 1.8.6

    Bumps github.com/swaggo/swag from 1.7.4 to 1.8.6.

    Release notes

    Sourced from github.com/swaggo/swag's releases.

    v1.8.6

    Changelog

    bc895ed Fix formatting crosstalk (#1317) c9385a8 build a docker image and push to ghcr.io (#1329) 5fbb18f chore: update version (#1330) cf1c4a7 fix: Generic Fields does not handle Arrays (#1311) b8f53da fix: Generic Fields does not handle Arrays in the .swaggo file (#1322) 2cd7ab5 fix: Generics not detected if name does not contain a pkg path (#1328) 007219f fix: funcDeclaration body check (#1310) e7ccdf4 refactor func splitStructName (#1313)

    v1.8.5

    Changelog

    2f148dd Extended generics support (#1277) 23661ef chore: set CGO_ENABLED=0 for goreleaser to avoid dynamic linking (#1293) 732c087 doc: add function scoped struct declaration example (#1296) 45f01a1 feat: add function scoped struct parse (#1283) cf03796 feat: get swagger instance from register (#1298) af1c525 fix: Go generics cannot find common package object type definition (#1281) 9d34a76 fix: Nested generic fields not fully working, if generic type is from… (#1305)

    v1.8.4

    Changelog

    bd21bb0 Fix issue swaggo/swag#1150 (#1248) 401e414 doc: add missing web frameworks (#1263) a566490 feat: add default description to code if none is provided (#1239) a780e45 feat: default required option for struct fields (#1181) 213f6b8 feat: permit error (and any) interface definition (#1212) 89c61d4 feat: suppress debug logs when using -q (#1254) 0e2ec6c feat: use early overrides to allow converting unsupported types. (#1209) 1cd0b53 fix: don't skip ".." directory (#1238) 8de9952 fix: generic arrays generate successfully (#1247) 796a346 fix: temp dir to be the same as SerchDir to avoid invalid cross-device link (#1203) (#1241)

    v1.8.3

    Changelog

    f09eaa1 chore: cleanup generics_test.go (#1231) b736c5f chore: increment version (#1230) e767abb chore: refactor parser (#1191) 5f6b402 feat: Improve performance when generating spec with external dependencies (#1108) 3b580a0 feat: add --quiet=true for swag init, make the debug logger quiet. (#1206) ff41d9c feat: add basic generics support (#1225) 3cedab9 fix: README_zh-CN.md translate bug (#1202) 67cb768 fix: array enum varnames in arrays (#1187)

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • Bump github.com/jackc/pgx/v4 from 4.13.0 to 4.17.1

    Bump github.com/jackc/pgx/v4 from 4.13.0 to 4.17.1

    Bumps github.com/jackc/pgx/v4 from 4.13.0 to 4.17.1.

    Changelog

    Sourced from github.com/jackc/pgx/v4's changelog.

    4.17.1 (August 27, 2022)

    • Upgrade puddle to v1.3.0 - fixes context failing to cancel Acquire when acquire is creating resource which was introduced in v4.17.0 (James Hartig)
    • Fix atomic alignment on 32-bit platforms

    4.17.0 (August 6, 2022)

    • Upgrade pgconn to v1.13.0
    • Upgrade pgproto3 to v2.3.1
    • Upgrade pgtype to v1.12.0
    • Allow background pool connections to continue even if cause is canceled (James Hartig)
    • Add LoggerFunc (Gabor Szabad)
    • pgxpool: health check should avoid going below minConns (James Hartig)
    • Add pgxpool.Conn.Hijack()
    • Logging improvements (Stepan Rabotkin)

    4.16.1 (May 7, 2022)

    • Upgrade pgconn to v1.12.1
    • Fix explicitly prepared statements with describe statement cache mode

    4.16.0 (April 21, 2022)

    • Upgrade pgconn to v1.12.0
    • Upgrade pgproto3 to v2.3.0
    • Upgrade pgtype to v1.11.0
    • Fix: Do not panic when context cancelled while getting statement from cache.
    • Fix: Less memory pinning from old Rows.
    • Fix: Support '\r' line ending when sanitizing SQL comment.
    • Add pluggable GSSAPI support (Oliver Tan)

    4.15.0 (February 7, 2022)

    • Upgrade to pgconn v1.11.0
    • Upgrade to pgtype v1.10.0
    • Upgrade puddle to v1.2.1
    • Make BatchResults.Close safe to be called multiple times

    4.14.1 (November 28, 2021)

    • Upgrade pgtype to v1.9.1 (fixes unintentional change to timestamp binary decoding)
    • Start pgxpool background health check after initial connections

    4.14.0 (November 20, 2021)

    • Upgrade pgconn to v1.10.1
    • Upgrade pgproto3 to v2.2.0
    • Upgrade pgtype to v1.9.0
    • Upgrade puddle to v1.2.0
    • Add QueryFunc to BatchResults

    ... (truncated)

    Commits
    • f5cdf0d Update changelog
    • 72fe594 Upgrade to puddle v1.3.0
    • bce26b8 Fix atomic alignment on 32-bit platforms
    • 1d748d9 Failsafe timeout for background pool connections
    • 6871a0c Add v5 testing note to readme
    • 5768a0c Update changelog
    • 7ce634d Ensure there is a timeout for background pool connections
    • f3e04b2 Go 1.19 go fmt
    • 7ad36f3 Upgrade dependencies
    • 3cb9953 pgxpool: Make BeginTx success case clearer
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • Bump github.com/swaggo/swag from 1.7.4 to 1.8.5

    Bump github.com/swaggo/swag from 1.7.4 to 1.8.5

    Bumps github.com/swaggo/swag from 1.7.4 to 1.8.5.

    Release notes

    Sourced from github.com/swaggo/swag's releases.

    v1.8.5

    Changelog

    2f148dd Extended generics support (#1277) 23661ef chore: set CGO_ENABLED=0 for goreleaser to avoid dynamic linking (#1293) 732c087 doc: add function scoped struct declaration example (#1296) 45f01a1 feat: add function scoped struct parse (#1283) cf03796 feat: get swagger instance from register (#1298) af1c525 fix: Go generics cannot find common package object type definition (#1281) 9d34a76 fix: Nested generic fields not fully working, if generic type is from… (#1305)

    v1.8.4

    Changelog

    bd21bb0 Fix issue swaggo/swag#1150 (#1248) 401e414 doc: add missing web frameworks (#1263) a566490 feat: add default description to code if none is provided (#1239) a780e45 feat: default required option for struct fields (#1181) 213f6b8 feat: permit error (and any) interface definition (#1212) 89c61d4 feat: suppress debug logs when using -q (#1254) 0e2ec6c feat: use early overrides to allow converting unsupported types. (#1209) 1cd0b53 fix: don't skip ".." directory (#1238) 8de9952 fix: generic arrays generate successfully (#1247) 796a346 fix: temp dir to be the same as SerchDir to avoid invalid cross-device link (#1203) (#1241)

    v1.8.3

    Changelog

    f09eaa1 chore: cleanup generics_test.go (#1231) b736c5f chore: increment version (#1230) e767abb chore: refactor parser (#1191) 5f6b402 feat: Improve performance when generating spec with external dependencies (#1108) 3b580a0 feat: add --quiet=true for swag init, make the debug logger quiet. (#1206) ff41d9c feat: add basic generics support (#1225) 3cedab9 fix: README_zh-CN.md translate bug (#1202) 67cb768 fix: array enum varnames in arrays (#1187)

    v1.8.2

    Changelog

    c7cb3fd chore: update @​Produce comments (#1196) 36ae7af chore: remove gomonkey dependency from formatter (#1192) 47d5a76 chore: updating dependencies (#1190) 5f6c5f8 impr: add param example to readme (#1189) 636f456 chore: improve code quality (#1184) 90170b9 chore(deps): bump github.com/swaggo/http-swagger in /example/markdown (#1185) d209f71 added security definition description (#1174)

    ... (truncated)

    Commits
    • a3935c5 chore: increment version (#1308)
    • 9d34a76 fix: Nested generic fields not fully working, if generic type is from… (#1305)
    • 732c087 doc: add function scoped struct declaration example (#1296)
    • cf03796 feat: get swagger instance from register (#1298)
    • 23661ef chore: set CGO_ENABLED=0 for goreleaser to avoid dynamic linking (#1293)
    • 45f01a1 feat: add function scoped struct parse (#1283)
    • af1c525 fix: Go generics cannot find common package object type definition (#1281)
    • 2f148dd Extended generics support (#1277)
    • cc25410 chore: increment version to 1.8.4 (#1268)
    • 89c61d4 feat: suppress debug logs when using -q (#1254)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • Bump github.com/jackc/pgx/v4 from 4.13.0 to 4.17.0

    Bump github.com/jackc/pgx/v4 from 4.13.0 to 4.17.0

    Bumps github.com/jackc/pgx/v4 from 4.13.0 to 4.17.0.

    Changelog

    Sourced from github.com/jackc/pgx/v4's changelog.

    4.17.0 (August 6, 2022)

    • Upgrade pgconn to v1.13.0
    • Upgrade pgproto3 to v2.3.1
    • Upgrade pgtype to v1.12.0
    • Allow background pool connections to continue even if cause is canceled (James Hartig)
    • Add LoggerFunc (Gabor Szabad)
    • pgxpool: health check should avoid going below minConns (James Hartig)
    • Add pgxpool.Conn.Hijack()
    • Logging improvements (Stepan Rabotkin)

    4.16.1 (May 7, 2022)

    • Upgrade pgconn to v1.12.1
    • Fix explicitly prepared statements with describe statement cache mode

    4.16.0 (April 21, 2022)

    • Upgrade pgconn to v1.12.0
    • Upgrade pgproto3 to v2.3.0
    • Upgrade pgtype to v1.11.0
    • Fix: Do not panic when context cancelled while getting statement from cache.
    • Fix: Less memory pinning from old Rows.
    • Fix: Support '\r' line ending when sanitizing SQL comment.
    • Add pluggable GSSAPI support (Oliver Tan)

    4.15.0 (February 7, 2022)

    • Upgrade to pgconn v1.11.0
    • Upgrade to pgtype v1.10.0
    • Upgrade puddle to v1.2.1
    • Make BatchResults.Close safe to be called multiple times

    4.14.1 (November 28, 2021)

    • Upgrade pgtype to v1.9.1 (fixes unintentional change to timestamp binary decoding)
    • Start pgxpool background health check after initial connections

    4.14.0 (November 20, 2021)

    • Upgrade pgconn to v1.10.1
    • Upgrade pgproto3 to v2.2.0
    • Upgrade pgtype to v1.9.0
    • Upgrade puddle to v1.2.0
    • Add QueryFunc to BatchResults
    • Add context options to zerologadapter (Thomas Frössman)
    • Add zerologadapter.NewContextLogger (urso)
    • Eager initialize minpoolsize on connect (Daniel)
    • Unpin memory used by large queries immediately after use
    Commits
    • 5768a0c Update changelog
    • 7ce634d Ensure there is a timeout for background pool connections
    • f3e04b2 Go 1.19 go fmt
    • 7ad36f3 Upgrade dependencies
    • 3cb9953 pgxpool: Make BeginTx success case clearer
    • 91c9e84 Ignore cancellation in puddle constructor
    • 88079de Update issue templates
    • cb5ddcd Update issue templates
    • 3961954 Add logger func wrapper
    • a814153 pgxpool: health check should avoid going below minConns
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • Bump github.com/swaggo/swag from 1.7.4 to 1.8.4

    Bump github.com/swaggo/swag from 1.7.4 to 1.8.4

    Bumps github.com/swaggo/swag from 1.7.4 to 1.8.4.

    Release notes

    Sourced from github.com/swaggo/swag's releases.

    v1.8.4

    Changelog

    bd21bb0 Fix issue swaggo/swag#1150 (#1248) 401e414 doc: add missing web frameworks (#1263) a566490 feat: add default description to code if none is provided (#1239) a780e45 feat: default required option for struct fields (#1181) 213f6b8 feat: permit error (and any) interface definition (#1212) 89c61d4 feat: suppress debug logs when using -q (#1254) 0e2ec6c feat: use early overrides to allow converting unsupported types. (#1209) 1cd0b53 fix: don't skip ".." directory (#1238) 8de9952 fix: generic arrays generate successfully (#1247) 796a346 fix: temp dir to be the same as SerchDir to avoid invalid cross-device link (#1203) (#1241)

    v1.8.3

    Changelog

    f09eaa1 chore: cleanup generics_test.go (#1231) b736c5f chore: increment version (#1230) e767abb chore: refactor parser (#1191) 5f6b402 feat: Improve performance when generating spec with external dependencies (#1108) 3b580a0 feat: add --quiet=true for swag init, make the debug logger quiet. (#1206) ff41d9c feat: add basic generics support (#1225) 3cedab9 fix: README_zh-CN.md translate bug (#1202) 67cb768 fix: array enum varnames in arrays (#1187)

    v1.8.2

    Changelog

    c7cb3fd chore: update @​Produce comments (#1196) 36ae7af chore: remove gomonkey dependency from formatter (#1192) 47d5a76 chore: updating dependencies (#1190) 5f6c5f8 impr: add param example to readme (#1189) 636f456 chore: improve code quality (#1184) 90170b9 chore(deps): bump github.com/swaggo/http-swagger in /example/markdown (#1185) d209f71 added security definition description (#1174)

    v1.8.1

    Changelog

    69245e5 chore: update description.markdown description (#1167) 050b0aa chore: update version.go (#1169) add313f doc: security or documentation (#1158) 32b2467 feat: Example/SchemaExample: allow \r \n \t (#1156) 7dc2340 feat: Feature security or documentation (#1157) 6686f54 feat: [security] feature add or-option (#1151) 334111b feat: add option to set the example to schema #1140 (#1148) 957b087 feat: fix go 1.18 errors caused by any type (#1168) 2b64f78 fix swaggo/swag#1154 (#1161)

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • Bump github.com/swaggo/swag from 1.7.4 to 1.8.3

    Bump github.com/swaggo/swag from 1.7.4 to 1.8.3

    Bumps github.com/swaggo/swag from 1.7.4 to 1.8.3.

    Release notes

    Sourced from github.com/swaggo/swag's releases.

    v1.8.3

    Changelog

    f09eaa1 chore: cleanup generics_test.go (#1231) b736c5f chore: increment version (#1230) e767abb chore: refactor parser (#1191) 5f6b402 feat: Improve performance when generating spec with external dependencies (#1108) 3b580a0 feat: add --quiet=true for swag init, make the debug logger quiet. (#1206) ff41d9c feat: add basic generics support (#1225) 3cedab9 fix: README_zh-CN.md translate bug (#1202) 67cb768 fix: array enum varnames in arrays (#1187)

    v1.8.2

    Changelog

    c7cb3fd chore: update @​Produce comments (#1196) 36ae7af chore: remove gomonkey dependency from formatter (#1192) 47d5a76 chore: updating dependencies (#1190) 5f6c5f8 impr: add param example to readme (#1189) 636f456 chore: improve code quality (#1184) 90170b9 chore(deps): bump github.com/swaggo/http-swagger in /example/markdown (#1185) d209f71 added security definition description (#1174)

    v1.8.1

    Changelog

    69245e5 chore: update description.markdown description (#1167) 050b0aa chore: update version.go (#1169) add313f doc: security or documentation (#1158) 32b2467 feat: Example/SchemaExample: allow \r \n \t (#1156) 7dc2340 feat: Feature security or documentation (#1157) 6686f54 feat: [security] feature add or-option (#1151) 334111b feat: add option to set the example to schema #1140 (#1148) 957b087 feat: fix go 1.18 errors caused by any type (#1168) 2b64f78 fix swaggo/swag#1154 (#1161) 9205937 fix: README_zh-CN.md broken link (#1153)

    v1.8.0

    Changelog

    cd97e7f fix: Linter fails (#1136) (#1137) 3a778dc fix: split extensions param respecting open/close brackets (#1107) 1a0a57a fix: swaggerinfo template for instanceNames (#1133) (#1134)

    v1.7.9-p1

    Changelog

    24209aa fix: breaking change introduced by generation of 2 documents in the same package (#1127)

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • Bump github.com/gin-gonic/gin from 1.7.4 to 1.8.2

    Bump github.com/gin-gonic/gin from 1.7.4 to 1.8.2

    Bumps github.com/gin-gonic/gin from 1.7.4 to 1.8.2.

    Release notes

    Sourced from github.com/gin-gonic/gin's releases.

    v1.8.2

    Changelog

    Bug fixes

    • 0c2a691 fix(engine): missing route params for CreateTestContext (#2778) (#2803)
    • e305e21 fix(route): redirectSlash bug (#3227)

    Others

    • 6a2a260 Fix the GO-2022-1144 vulnerability (#3432)

    v1.8.1

    Changelog

    Features

    • f197a8b feat(context): add ContextWithFallback feature flag (#3166) (#3172)

    v1.8.0

    Changelog

    Break Changes

    • TrustedProxies: Add default IPv6 support and refactor #2967. Please replace RemoteIP() (net.IP, bool) with RemoteIP() net.IP
    • gin.Context with fallback value from gin.Context.Request.Context() #2751

    BUGFIXES

    • Fixed SetOutput() panics on go 1.17 #2861
    • Fix: wrong when wildcard follows named param #2983
    • Fix: missing sameSite when do context.reset() #3123

    ENHANCEMENTS

    • Use Header() instead of deprecated HeaderMap #2694
    • RouterGroup.Handle regular match optimization of http method #2685
    • Add support go-json, another drop-in json replacement #2680
    • Use errors.New to replace fmt.Errorf will much better #2707
    • Use Duration.Truncate for truncating precision #2711
    • Get client IP when using Cloudflare #2723
    • Optimize code adjust #2700
    • Optimize code and reduce code cyclomatic complexity #2737
    • gin.Context with fallback value from gin.Context.Request.Context() #2751
    • Improve sliceValidateError.Error performance #2765
    • Support custom struct tag #2720
    • Improve router group tests #2787
    • Fallback Context.Deadline() Context.Done() Context.Err() to Context.Request.Context() #2769
    • Some codes optimize #2830 #2834 #2838 #2837 #2788 #2848 #2851 #2701
    • Test(route): expose performRequest func #3012
    • Support h2c with prior knowledge #1398

    ... (truncated)

    Changelog

    Sourced from github.com/gin-gonic/gin's changelog.

    Gin v1.8.2

    Bugs

    • fix(route): redirectSlash bug (#3227)
    • fix(engine): missing route params for CreateTestContext (#2778) (#2803)

    Security

    • Fix the GO-2022-1144 vulnerability (#3432)

    Gin v1.8.1

    ENHANCEMENTS

    • feat(context): add ContextWithFallback feature flag #3172

    Gin v1.8.0

    Break Changes

    • TrustedProxies: Add default IPv6 support and refactor #2967. Please replace RemoteIP() (net.IP, bool) with RemoteIP() net.IP
    • gin.Context with fallback value from gin.Context.Request.Context() #2751

    BUGFIXES

    • Fixed SetOutput() panics on go 1.17 #2861
    • Fix: wrong when wildcard follows named param #2983
    • Fix: missing sameSite when do context.reset() #3123

    ENHANCEMENTS

    • Use Header() instead of deprecated HeaderMap #2694
    • RouterGroup.Handle regular match optimization of http method #2685
    • Add support go-json, another drop-in json replacement #2680
    • Use errors.New to replace fmt.Errorf will much better #2707
    • Use Duration.Truncate for truncating precision #2711
    • Get client IP when using Cloudflare #2723
    • Optimize code adjust #2700
    • Optimize code and reduce code cyclomatic complexity #2737
    • Improve sliceValidateError.Error performance #2765
    • Support custom struct tag #2720
    • Improve router group tests #2787
    • Fallback Context.Deadline() Context.Done() Context.Err() to Context.Request.Context() #2769
    • Some codes optimize #2830 #2834 #2838 #2837 #2788 #2848 #2851 #2701
    • TrustedProxies: Add default IPv6 support and refactor #2967
    • Test(route): expose performRequest func #3012
    • Support h2c with prior knowledge #1398
    • Feat attachment filename support utf8 #3071
    • Feat: add StaticFileFS #2749

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • Bump github.com/swaggo/swag from 1.7.4 to 1.8.9

    Bump github.com/swaggo/swag from 1.7.4 to 1.8.9

    Bumps github.com/swaggo/swag from 1.7.4 to 1.8.9.

    Release notes

    Sourced from github.com/swaggo/swag's releases.

    v1.8.9

    Changelog

    a10fb9a Just optimize code about parsing extensions (#1399) 4ccbeaf chore: increment version (#1423) 8139731 chore: parse escaped double colon (\:) example struct tag (#1402) 2c530ea chore: release candidate (#1403) e3151c1 chore: release candidate (#1404) e50db3e enhancement for enums (#1400) 7c20f30 feat: parse only specific extension tag (#1219) 80d5221 feat: support json tags in embedded structs (#1396) 4519064 feat: use enums in request (#1417) 9a4fa5d fix issue 1414 (#1419) 30684a2 fix parsing bug affected by fmt (#1398) 7867c24 fix: don't error on empty comment line (#1415) dfce6c8 parse self-nested generic struct (#1420) ba5df82 record token.FileSet for every file so that the position of parsing error can be acquired (#1393) 3fe9ca2 revert docker login-action (#1405)

    v1.8.9-rc3

    Changelog

    97634c6 chore: v1.8.9-rc3 7c20f30 feat: parse only specific extension tag (#1219) 4519064 feat: use enums in request (#1417) 9a4fa5d fix issue 1414 (#1419) 7867c24 fix: don't error on empty comment line (#1415) dfce6c8 parse self-nested generic struct (#1420) 3fe9ca2 revert docker login-action (#1405)

    v1.8.9-rc2

    Changelog

    a10fb9a Just optimize code about parsing extensions (#1399) 8139731 chore: parse escaped double colon (\:) example struct tag (#1402) 2c530ea chore: release candidate (#1403) e3151c1 chore: release candidate (#1404) e50db3e enhancement for enums (#1400) 80d5221 feat: support json tags in embedded structs (#1396) 30684a2 fix parsing bug affected by fmt (#1398) ba5df82 record token.FileSet for every file so that the position of parsing error can be acquired (#1393)

    v1.8.8

    Changelog

    07690e9 Add check for nil otherTypeDef (#1372) eaed517 Enhancements: search imports sequencely, till find the type. (#1374) 0da94ff Fix generics with package alias (#1360) 29d3d30 add properties to $ref (#1391)

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • Bump github.com/ilyakaznacheev/cleanenv from 1.2.5 to 1.4.2

    Bump github.com/ilyakaznacheev/cleanenv from 1.2.5 to 1.4.2

    Bumps github.com/ilyakaznacheev/cleanenv from 1.2.5 to 1.4.2.

    Release notes

    Sourced from github.com/ilyakaznacheev/cleanenv's releases.

    Add more info about env parsing errors

    What's Changed

    New Contributors

    Full Changelog: https://github.com/ilyakaznacheev/cleanenv/compare/v1.4.1...v1.4.2

    Skip unexpected fields

    What's Changed

    New Contributors

    Full Changelog: https://github.com/ilyakaznacheev/cleanenv/compare/v1.4.0...v1.4.1

    Add time.Location support

    What's Changed

    New Contributors

    Full Changelog: https://github.com/ilyakaznacheev/cleanenv/compare/v1.3.1...v1.4.0

    Replace deprecated TOML parsing function call

    What's Changed

    New Contributors

    Full Changelog: https://github.com/ilyakaznacheev/cleanenv/compare/v1.3.0...v1.3.1

    Bump versions, minor fixes

    • bump dependency versions
    • url support in variables
    • security patch

    YAML parser upgraded

    • gopkg.in/yaml v2 -> v3
    Commits
    • 6c23856 Added basic context to the error message on what went wrong (#104)
    • 9fb0cbd Change error message a bit
    • 7878a2c Skip no exported field on readStructMetadata (#107)
    • cae814f fix: refactor test-case
    • 0258d9d feat: skip unexported field on readStructMetadata
    • 2419d7b added basic context to the error message on what went wrong
    • 3bb055c Add time.Location support
    • badbae6 Merge remote-tracking branch 'origin/feature/time.Location' into feature/time...
    • c823841 remove tags between struct tags
    • 130ef83 Replace toml deprecated method
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • Bump github.com/jackc/pgx/v4 from 4.13.0 to 4.17.2

    Bump github.com/jackc/pgx/v4 from 4.13.0 to 4.17.2

    Bumps github.com/jackc/pgx/v4 from 4.13.0 to 4.17.2.

    Changelog

    Sourced from github.com/jackc/pgx/v4's changelog.

    4.17.2 (September 3, 2022)

    • Fix panic when logging batch error (Tom Möller)

    4.17.1 (August 27, 2022)

    • Upgrade puddle to v1.3.0 - fixes context failing to cancel Acquire when acquire is creating resource which was introduced in v4.17.0 (James Hartig)
    • Fix atomic alignment on 32-bit platforms

    4.17.0 (August 6, 2022)

    • Upgrade pgconn to v1.13.0
    • Upgrade pgproto3 to v2.3.1
    • Upgrade pgtype to v1.12.0
    • Allow background pool connections to continue even if cause is canceled (James Hartig)
    • Add LoggerFunc (Gabor Szabad)
    • pgxpool: health check should avoid going below minConns (James Hartig)
    • Add pgxpool.Conn.Hijack()
    • Logging improvements (Stepan Rabotkin)

    4.16.1 (May 7, 2022)

    • Upgrade pgconn to v1.12.1
    • Fix explicitly prepared statements with describe statement cache mode

    4.16.0 (April 21, 2022)

    • Upgrade pgconn to v1.12.0
    • Upgrade pgproto3 to v2.3.0
    • Upgrade pgtype to v1.11.0
    • Fix: Do not panic when context cancelled while getting statement from cache.
    • Fix: Less memory pinning from old Rows.
    • Fix: Support '\r' line ending when sanitizing SQL comment.
    • Add pluggable GSSAPI support (Oliver Tan)

    4.15.0 (February 7, 2022)

    • Upgrade to pgconn v1.11.0
    • Upgrade to pgtype v1.10.0
    • Upgrade puddle to v1.2.1
    • Make BatchResults.Close safe to be called multiple times

    4.14.1 (November 28, 2021)

    • Upgrade pgtype to v1.9.1 (fixes unintentional change to timestamp binary decoding)
    • Start pgxpool background health check after initial connections

    4.14.0 (November 20, 2021)

    • Upgrade pgconn to v1.10.1

    ... (truncated)

    Commits
    • d42b399 Update changelog
    • dfce986 Fix panic when logging batch error
    • f5cdf0d Update changelog
    • 72fe594 Upgrade to puddle v1.3.0
    • bce26b8 Fix atomic alignment on 32-bit platforms
    • 1d748d9 Failsafe timeout for background pool connections
    • 6871a0c Add v5 testing note to readme
    • 5768a0c Update changelog
    • 7ce634d Ensure there is a timeout for background pool connections
    • f3e04b2 Go 1.19 go fmt
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • Bump github.com/Masterminds/squirrel from 1.5.1 to 1.5.3

    Bump github.com/Masterminds/squirrel from 1.5.1 to 1.5.3

    Bumps github.com/Masterminds/squirrel from 1.5.1 to 1.5.3.

    Release notes

    Sourced from github.com/Masterminds/squirrel's releases.

    v1.5.3

    No release notes provided.

    v1.5.2 Fix placeholder generation for And/Or

    What's Changed

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Clean Architecture using Golang.
Clean Architecture using Golang.

Golang Template Description This is an example of implementation of Clean Architecture in Go (Golang) projects. Rule of Clean Architecture by Uncle Bo

Nov 1, 2022
An example of implementation of Clean Architecture in Golang

Golang Template Description This is an example of implementation of Clean Archit

Dec 29, 2021
Clean arch Golang template project

Template No previous versions, still working on this one to reach v1. API Service for pssword app mobilde based on : https://github.com/bxcodec/go-cle

Sep 15, 2021
Goview is a lightweight, minimalist and idiomatic template library based on golang html/template for building Go web application.

goview Goview is a lightweight, minimalist and idiomatic template library based on golang html/template for building Go web application. Contents Inst

Dec 25, 2022
Go-project-template - Template for a golang project

This is a template repository for golang project Usage Go to github: https://git

Oct 25, 2022
A simple template using Fiber for me to bootstrap API services quickly.

Fiber Template A simple template using Fiber for me to bootstrap API services quickly. Features Fiber GORM air for hot reloading ... and possibly more

Dec 16, 2021
Wrapper package for Go's template/html to allow for easy file-based template inheritance.

Extemplate Extemplate is a small wrapper package around html/template to allow for easy file-based template inheritance. File: templates/parent.tmpl <

Dec 6, 2022
Fast, powerful, yet easy to use template engine for Go. Optimized for speed, zero memory allocations in hot paths. Up to 20x faster than html/template

quicktemplate A fast, powerful, yet easy to use template engine for Go. Inspired by the Mako templates philosophy. Features Extremely fast. Templates

Dec 26, 2022
Simple system for writing HTML/XML as Go code. Better-performing replacement for html/template and text/template

Simple system for writing HTML as Go code. Use normal Go conditionals, loops and functions. Benefit from typing and code analysis. Better performance than templating. Tiny and dependency-free.

Dec 5, 2022
A template to build dynamic web apps quickly using Go, html/template and javascript
A template to build dynamic web apps quickly using Go, html/template and javascript

gomodest-template A modest template to build dynamic web apps in Go, HTML and sprinkles and spots of javascript. Why ? Build dynamic websites using th

Dec 29, 2022
Made from template temporalio/money-transfer-project-template-go
Made from template temporalio/money-transfer-project-template-go

Temporal Go Project Template This is a simple project for demonstrating Temporal with the Go SDK. The full 20 minute guide is here: https://docs.tempo

Jan 6, 2022
Go-api-template - A rough template to give you a starting point for your API

Golang API Template This is only a rough template to give you a starting point f

Jan 14, 2022
Api-go-template - A simple Go API template that uses a controller-service based model to build its routes

api-go-template This is a simple Go API template that uses a controller-service

Feb 18, 2022
A general purpose golang CLI template for Github and Gitlab

golang-cli-template A general purpose project template for golang CLI applications This template serves as a starting point for golang commandline app

Dec 2, 2022
Template for Golang rest API using Fiber

Rest API Setup DB sudo -S docker-compose -f db.yml up -d Build container sudo -S docker build -t rest-api-image . Run container from image sudo -S doc

Dec 5, 2021
A Go Template Library. A bunch of utils and collections that are not part of the Golang standard library.

gotl A Go Template Library. A bunch of utils and collections that are not part of the Golang standard library. Prerequisites This library is using ext

Dec 15, 2021
Competitive Programming Template for Golang

Go Competitive Programming Template How to use this repo? Check the commit histo

Dec 19, 2021
Template user CRUD operations with golang, JWT, postgres

user-api-golang A CRUD API template for perform operations on users. Written in golang. Components Server: Golang with go-chi as mux and zap for loggi

Dec 26, 2021
Template for depency injection in golang (no libraries)

Go Dependency Injection (No libraries) Project template based on the most common layered architecture style, made to explain how to do dependency inje

Mar 30, 2022