Build powerful pipelines in any programming language.

Build Status Go Report Card GoDoc Apache licensed Slack codecov

Gaia is an open source automation platform which makes it easy and fun to build powerful pipelines in any programming language. Based on HashiCorp's go-plugin and gRPC, gaia is efficient, fast, lightweight, and developer friendly. Gaia is currently alpha! Do not use it for mission critical jobs yet!

Develop powerful pipelines with the help of SDKs and simply check-in your code into a git repository. Gaia automatically clones your code repository, compiles your code to a binary, and executes it on-demand. All results are streamed back and formatted as a user-friendly graphical output.

Check out gaia-pipeline.io to learn more.

Motivation

Automation Engineer, DevOps, SRE, Cloud Engineer, Platform Engineer - they all have one in common: The majority of tech people are not motivated to take up this work and they are hard to recruit.

One of the main reasons for this is the abstraction and poor execution of many automation tools. They come with their own configuration (YAML syntax) specification or limit the user to one specific programming language. Testing is nearly impossible because most automation tools lack the ability to mock services and subsystems. Even tiny things, for example parsing a JSON file, are sometimes really painful because external, outdated libraries were used and not included in the standard framework.

We believe it's time to remove all those abstractions and come back to our roots. Are you tired of writing endless lines of YAML-code? Are you sick of spending days forced to write in a language that does not suit you and is not fun at all? Do you enjoy programming in a language you like? Then Gaia is for you.

How does it work?

Gaia is based on HashiCorp's go-plugin. It's a plugin system that uses gRPC to communicate over HTTP/2. Initially, HashiCorp developed this tool for Packer but now it's heavily used by Terraform, Nomad, and Vault too.

Plugins, which we named pipelines, are applications which can be written in any programming language, as long as gRPC is supported. All functions, which we call jobs, are exposed to Gaia and can form up a dependency graph which describes the order of execution.

Pipelines can be compiled locally or simply over the build system. Gaia clones the git repository and automatically builds the included pipeline. If a change (git push) happened, Gaia will automatically rebuild the pipeline for you*.

After a pipeline has been started, all log output is returned back to Gaia and displayed in a detailed overview with their final result status.

Gaia uses boltDB for storage. This makes the installation step super easy. No external database is currently required.

* This requires polling or webhook to be activated.

Screenshots

gaia login screenshot gaia overview screenshot gaia create pipeline screenshot gaia pipeline detailed screenshot gaia pipeline logs screenshot gaia Vault screenshot gaia settings screenshot

Getting Started

Installation

The installation of gaia is simple and often takes a few minutes.

Using docker

The following command starts gaia as a daemon process and mounts all data to the current folder. Afterwards, gaia will be available on the host system on port 8080. Use the standard user admin and password admin as initial login. It is recommended to change the password afterwards.

docker run -d -p 8080:8080 -v $PWD:/data gaiapipeline/gaia:latest

This uses the image with the latest tag which includes all required libraries and compilers for all supported languages. If you prefer a smaller image suited for your preferred language, have a look at the available docker image tags.

Manually

It is possible to install Gaia directly on the host system. This can be achieved by downloading the binary from the releases page.

Gaia will automatically detect the folder of the binary and will place all data next to it. You can change the data directory with the startup parameter -home-path if you want.

Using helm

If you haven't got an ingress controller pod yet, make sure that you have kube-dns or coredns enabled, run this command to set it up.

make kube-ingress

To init helm:

helm init

To deploy gaia:

make deploy-kube

Usage

Go

package main

import (
    "log"

    sdk "github.com/gaia-pipeline/gosdk"
)

// This is one job. Add more if you want.
func DoSomethingAwesome(args sdk.Arguments) error {
    log.Println("This output will be streamed back to gaia and will be displayed in the pipeline logs.")

    // An error occurred? Return it back so gaia knows that this job failed.
    return nil
}

func main() {
    jobs := sdk.Jobs{
        sdk.Job{
            Handler:     DoSomethingAwesome,
            Title:       "DoSomethingAwesome",
            Description: "This job does something awesome.",
        },
    }

    // Serve
    if err := sdk.Serve(jobs); err != nil {
        panic(err)
    }

}

Python

from gaiasdk import sdk
import logging

def MyAwesomeJob(args):
    logging.info("This output will be streamed back to gaia and will be displayed in the pipeline logs.")
    # Just raise an exception to tell Gaia if a job failed.
    # raise Exception("Oh no, this job failed!")

def main():
    logging.basicConfig(level=logging.INFO)
    myjob = sdk.Job("MyAwesomeJob", "Do something awesome", MyAwesomeJob)
    sdk.serve([myjob])

Java

package io.gaiapipeline;

import io.gaiapipeline.javasdk.*;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.logging.Logger;

public class Pipeline
{
    private static final Logger LOGGER = Logger.getLogger(Pipeline.class.getName());

    private static Handler MyAwesomeJob = (gaiaArgs) -> {
        LOGGER.info("This output will be streamed back to gaia and will be displayed in the pipeline logs.");
        // Just raise an exception to tell Gaia if a job failed.
        // throw new IllegalArgumentException("Oh no, this job failed!");
    };

    public static void main( String[] args )
    {
        PipelineJob myjob = new PipelineJob();
        myjob.setTitle("MyAwesomeJob");
        myjob.setDescription("Do something awesome.");
        myjob.setHandler(MyAwesomeJob);

        Javasdk sdk = new Javasdk();
        try {
            sdk.Serve(new ArrayList<>(Arrays.asList(myjob)));
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }
}

C++

#include "cppsdk/sdk.h"
#include <list>
#include <iostream>

void DoSomethingAwesome(std::list<gaia::argument> args) throw(std::string) {
   std::cerr << "This output will be streamed back to gaia and will be displayed in the pipeline logs." << std::endl;

   // An error occurred? Return it back so gaia knows that this job failed.
   // throw "Uhh something badly happened!"
}

int main() {
   std::list<gaia::job> jobs;
   gaia::job awesomejob;
   awesomejob.handler = &DoSomethingAwesome;
   awesomejob.title = "DoSomethingAwesome";
   awesomejob.description = "This job does something awesome.";
   jobs.push_back(awesomejob);

   try {
      gaia::Serve(jobs);
   } catch (string e) {
      std::cerr << "Error: " << e << std::endl;
   }
}

Ruby

require 'rubysdk'

class Main
    AwesomeJob = lambda do |args|
        STDERR.puts "This output will be streamed back to gaia and will be displayed in the pipeline logs."

        # An error occurred? Raise an exception and gaia will fail the pipeline.
        # raise "Oh gosh! Something went wrong!"
    end

    def self.main
        awesomejob = Interface::Job.new(title: "Awesome Job",
                                        handler: AwesomeJob,
                                        desc: "This job does something awesome.")

        begin
            RubySDK.Serve([awesomejob])
        rescue => e
            puts "Error occured: #{e}"
            exit(false)
        end
    end
end

Node.JS

const nodesdk = require('@gaia-pipeline/nodesdk');

function DoSomethingAwesome(args) {
    console.error('This output will be streamed back to gaia and will be displayed in the pipeline logs.');

    // An error occurred? Throw it back so gaia knows that this job failed.
    // throw new Error('My error message');
}

// Serve
try {
    nodesdk.Serve([{
        handler: DoSomethingAwesome,
        title: 'DoSomethingAwesome',
        description: 'This job does something awesome.'
    }]);
} catch (err) {
    console.error(err);
}

Pipelines are defined by jobs and a function usually represents a job. You can define as many jobs in your pipeline as you want.

Every function accepts arguments. Those arguments can be requested from the pipeline itself and the values passed back in from the UI.

Some pipeline jobs need a specific order of execution. DependsOn allows you to declare dependencies for every job.

You can find real examples and more information on how to develop a pipeline in the docs.

Security

See the Documentation located here: security-docs.

Documentation and more

Please find the docs at https://docs.gaia-pipeline.io. We also have a tutorials section over there with examples and real use-case scenarios. For example, Kubernetes deployment with vault integration.

Questions and Answers (Q&A)

What problem solves Gaia?

Literally every tool which were designed for automation, continuous integration (CI), and continuous deployment (CD) like Spinnaker, Jenkins, Gitlab CI/CD, TravisCI, CircleCI, Codeship, Bamboo and many more, introduced their own configuration format. Some of them don't even support configuration/automation as code. This works well for simple tasks like running a go install or mvn clean install but in the real world there is more to do.

Gaia is the first platform which does not limit the user and provides full support for almost all common programming languages without losing the features offered by todays CI/CD tools.

What is a pipeline?

A pipeline is a real application with at least one function (we call it a Job). Every programming language can be used as long as gRPC is supported. We offer SDKs to support the development.

What is a job?

A job is a function, usually globally exposed to Gaia. Dependent on the dependency graph, Gaia will execute this function in a specific order.

Why do I need an SDK?

The SDK implements the Gaia plugin gRPC interface and offers helper functions like serving the gRPC-Server. This helps you to focus on the real problem instead of doing the boring stuff.

Which programming languages are supported?

We currently fully support Go, Java, Python, C++, Ruby and Node.JS.

When do you support programming language XYZ?

We are working hard to support as much programming languages as possible but our resources are limited and we are also mostly no experts in all programming languages. If you are willing to contribute, feel free to open an issue and start working.

Roadmap

Gaia is currently available as alpha version. We extremely recommend to not use it for mission critical jobs and for production yet. Things will change in the future and essential features may break.

One of the main issues currently is the lack of unit- and integration tests. This is on our to-do list and we are working on this topic with high priority.

It is planned that other programming languages should be supported in the next few months. It is up to the community which languages will be supported next.

Contributing

Gaia can only evolve and become a great product with the help of contributors. If you like to contribute, please have a look at our issues section. We do our best to mark issues for new contributors with the label good first issue.

If you think you found a good first issue, please consider this list as a short guide:

  • If the issue is clear and you have no questions, please leave a short comment that you started working on this. The issue will be usually blocked for two weeks for you to solve it.
  • If something is not clear or you are unsure what to do, please leave a comment so we can add more detailed description.
  • Make sure your development environment is configured and set up. You need Go installed on your machine and also nodeJS for the frontend. Clone this repository and run the make command inside the cloned folder. This will start the backend. To start the frontend you have to open a new terminal window and go into the frontend folder. There you run npm install and then npm run serve. This should automatically open a new browser window.
  • Before you start your work, you should fork this repository and push changes to your fork. Afterwards, send a merge request back to upstream.

Contact

If you have any questions feel free to contact us on slack.

Owner
Gaia
Build powerful automation pipelines in any programming language.
Gaia
Comments
  • Automatically update pipelines webhook

    Automatically update pipelines webhook

    This currently a working end-point for accepting and parsing the webhooks. I'm opening a PR for conversation purposes. I'm debating whether to make the user create a webhook or have that authentication process in Gaia complete with callback.

    I'm all for making it as easy as possible for a user and probably a user would say the same thing. Which means Gaia will have to redirect and ask for access to the repository in order to send a create webhook request to Github.

    Thoughts?

  • Creating github webhook secrets per pipeline

    Creating github webhook secrets per pipeline

    TODO

    • [x] Test with all pipeline types
      • Done
        • [x] Ruby
        • [x] Go
        • [x] NodeJS
        • [x] Java
        • [x] Python
        • [x] Cpp
    • [x] Polling, Pull new pipeline and webhook should now update the pipeline data
  • Distributed execution via worker

    Distributed execution via worker

    Fixes #107 and #46

    Related docs PR: https://github.com/gaia-pipeline/docs/pull/11

    TODO:

    • [x] Add tags to worker UI
    • [x] Fix tab panel order in UI
    • [x] Add option to prevent primary instance to accept work
    • [x] Write more tests
    • [x] Write documentation
  • Automatically update pipelines every minute.

    Automatically update pipelines every minute.

    I'm also thinking of using some ref magic, but comparing pulls seem to be the easiest for now.

    https://github.com/src-d/go-git/blob/master/_examples/revision/main.go for ref magic.

    Deals with #31 .

  • fix: rbac fixes and some refactoring

    fix: rbac fixes and some refactoring

    • Call GetAllSubjects() instead for listing RBAC roles. GetAllRoles() only gets roles that have actually been assigned to a user. This is because 'p' policy lines are defined for the roles. 'g' policy lines are for assignment of a role to a user. GetAllRoles() calls the 'g' line at index 2 to list roles.

    • Fixed a bug with role:readonly looking for wildcard 'get' action which no longer exists because our actions became more specific - e.g. 'pipelines:runs, get-run' rather than 'pipelines:runs, get'

    • Added a check to make sure all newly created roles have a prefix of 'role:x'

    • Made the instantiation of the rbac more testable by using DI instead of instantiating concrete resources within the constructor

    • Add missing service.go unit tests

  • gaia compile

    gaia compile

    I couldn't compile frontend. Where can I find steps to compile ?

    At root

    go build
    
    go: downloading github.com/hashicorp/go-hclog v0.0.0-20180709165350-ff2cf002a8dd
    go: downloading github.com/dgrijalva/jwt-go v3.2.0+incompatible
    go: downloading github.com/robfig/cron v0.0.0-20180505203441-b41be1df6967
    

    cd frontend yarn install yarn serve

     frontend % yarn serve
    yarn run v1.22.4
    $ vue-cli-service serve
     INFO  Starting development server...
    98% after emitting CopyPlugin
    
     ERROR  Failed to compile with 1 errors                                                                         5:59:35 PM
    
     error  in ./src/store/modules/menu/lazyLoading.js
    
    Module build failed (from ./node_modules/@vue/cli-plugin-eslint/node_modules/eslint-loader/index.js):
    TypeError: Cannot read property 'range' of null
    Occurred while linting /Volumes/data01/projects/projects_go/gaia/frontend/src/store/modules/menu/lazyLoading.js:3
        at SourceCode.getTokenBefore (/Volumes/data01/projects/projects_go/gaia/frontend/node_modules/eslint/lib/token-store/index.js:303:18)
        at checkSpacingBefore (/Volumes/data01/projects/projects_go/gaia/frontend/node_modules/eslint/lib/rules/template-curly-spacing.js:60:42)
        at TemplateElement (/Volumes/data01/projects/projects_go/gaia/frontend/node_modules/eslint/lib/rules/template-curly-spacing.js:119:17)
        at /Volumes/data01/projects/projects_go/gaia/frontend/node_modules/eslint/lib/util/safe-emitter.js:45:58
        at Array.forEach (<anonymous>)
        at Object.emit (/Volumes/data01/projects/projects_go/gaia/frontend/node_modules/eslint/lib/util/safe-emitter.js:45:38)
        at NodeEventGenerator.applySelector (/Volumes/data01/projects/projects_go/gaia/frontend/node_modules/eslint/lib/util/node-event-generator.js:251:26)
        at NodeEventGenerator.applySelectors (/Volumes/data01/projects/projects_go/gaia/frontend/node_modules/eslint/lib/util/node-event-generator.js:280:22)
        at NodeEventGenerator.enterNode (/Volumes/data01/projects/projects_go/gaia/frontend/node_modules/eslint/lib/util/node-event-generator.js:294:14)
        at CodePathAnalyzer.enterNode (/Volumes/data01/projects/projects_go/gaia/frontend/node_modules/eslint/lib/code-path-analysis/code-path-analyzer.js:632:23)
        at /Volumes/data01/projects/projects_go/gaia/frontend/node_modules/eslint/lib/linter.js:752:32
        at Array.forEach (<anonymous>)
        at runRules (/Volumes/data01/projects/projects_go/gaia/frontend/node_modules/eslint/lib/linter.js:747:15)
        at Linter._verifyWithoutProcessors (/Volumes/data01/projects/projects_go/gaia/frontend/node_modules/eslint/lib/linter.js:899:31)
        at /Volumes/data01/projects/projects_go/gaia/frontend/node_modules/eslint/lib/linter.js:955:35
        at Array.map (<anonymous>)
    
     @ ./src/router/index.js 5:0-60 22:15-26 26:15-26 30:15-26
     @ ./src/main.js
     @ multi (webpack)-dev-server/client?http://192.168.0.199:8081/sockjs-node (webpack)/hot/dev-server.js ./src/main.js
    
    
  • Initial Commit with Static baseURL in vue project

    Initial Commit with Static baseURL in vue project

    Re Issue #124 I have done the initial changes for this configuration, However what is still outstanding is the dynamic injection of the baseUrl into the frontend at build and axios (I have currently hard coded this for my purposes). Do you have a design you would like followed for config injection into Vue?

  • Worker builds binary in case the binary doesn't match the worker arch

    Worker builds binary in case the binary doesn't match the worker arch

    @michelvocks Alright! This works, but, as you can see I had to export two of the none exported functions, NewBuild and GitPull. I can't use the Create one directly because that tries to store things in the db to which the worker doesn't have access to.

    I'll try to refactor this, I just wanted to share with you the current progress.

  • A secret vault storage with AES encryption using a certificate

    A secret vault storage with AES encryption using a certificate

    Deals with #51.

    TODO

    • [x] The certificate needs to be obtained and used
    • [x] Front-end work
      • [x] Create a view under settings which let's the admin add key/value pairs and then save it
    • [x] Write Test for vault handler
    • [x] Write documentation for the Vault
  • [WIP] Remote triggering a pipeline

    [WIP] Remote triggering a pipeline

    So for now a couple of things:

    • [x] The auto user needs to be undeletable like the admin user. Still needs to be modifiable because the token might need to be updated
    • [x] View/Edit the token for a pipeline
    • [x] Write Tests!!
    • [x] Make the end-point more secure. Right now I'm not checking if the trigger was by the auto user with the correct auto token
    • [x] Deal with Pipeline parameters

    Manual:

    ~/goprojects/gaia
    ❯ curl -X POST http://127.0.0.1:8080/api/v1/pipeline/1/4565632f-a77b-551b-b0cb-67e74dc9b15a/trigger
    Trigger successful for pipeline: 1
    
  • Unix sockets to port communication

    Unix sockets to port communication

    Fixes #53. This will be a breaking change. Once this is merged we have to update the SDK immediately otherwise create pipeline will fail. For now implemented first version of CA generation and key pair generation which will be signed for mutual Auth.

  • Bump json5, @vue/cli-plugin-babel, @vue/cli-plugin-eslint, @vue/cli-service and sass-loader in /frontend

    Bump json5, @vue/cli-plugin-babel, @vue/cli-plugin-eslint, @vue/cli-service and sass-loader in /frontend

    Bumps json5 to 2.2.3 and updates ancestor dependencies json5, @vue/cli-plugin-babel, @vue/cli-plugin-eslint, @vue/cli-service and sass-loader. These dependencies need to be updated together.

    Updates json5 from 0.5.1 to 2.2.3

    Release notes

    Sourced from json5's releases.

    v2.2.3

    v2.2.2

    • Fix: Properties with the name __proto__ are added to objects and arrays. (#199) This also fixes a prototype pollution vulnerability reported by Jonathan Gregson! (#295).

    v2.2.1

    • Fix: Removed dependence on minimist to patch CVE-2021-44906. (#266)

    v2.2.0

    • New: Accurate and documented TypeScript declarations are now included. There is no need to install @types/json5. (#236, #244)

    v2.1.3 [code, diff]

    • Fix: An out of memory bug when parsing numbers has been fixed. (#228, #229)

    v2.1.2

    • Fix: Bump minimist to v1.2.5. (#222)

    v2.1.1

    • New: package.json and package.json5 include a module property so bundlers like webpack, rollup and parcel can take advantage of the ES Module build. (#208)
    • Fix: stringify outputs \0 as \\x00 when followed by a digit. (#210)
    • Fix: Spelling mistakes have been fixed. (#196)

    v2.1.0

    • New: The index.mjs and index.min.mjs browser builds in the dist directory support ES6 modules. (#187)

    v2.0.1

    • Fix: The browser builds in the dist directory support ES5. (#182)

    v2.0.0

    • Major: JSON5 officially supports Node.js v6 and later. Support for Node.js v4 has been dropped. Since Node.js v6 supports ES5 features, the code has been rewritten in native ES5, and the dependence on Babel has been eliminated.

    • New: Support for Unicode 10 has been added.

    • New: The test framework has been migrated from Mocha to Tap.

    • New: The browser build at dist/index.js is no longer minified by default. A minified version is available at dist/index.min.js. (#181)

    • Fix: The warning has been made clearer when line and paragraph separators are

    ... (truncated)

    Changelog

    Sourced from json5's changelog.

    v2.2.3 [code, diff]

    v2.2.2 [code, diff]

    • Fix: Properties with the name __proto__ are added to objects and arrays. (#199) This also fixes a prototype pollution vulnerability reported by Jonathan Gregson! (#295).

    v2.2.1 [code, diff]

    • Fix: Removed dependence on minimist to patch CVE-2021-44906. (#266)

    v2.2.0 [code, diff]

    • New: Accurate and documented TypeScript declarations are now included. There is no need to install @types/json5. (#236, #244)

    v2.1.3 [code, diff]

    • Fix: An out of memory bug when parsing numbers has been fixed. (#228, #229)

    v2.1.2 [code, diff]

    • Fix: Bump minimist to v1.2.5. (#222)

    v2.1.1 [code, [diff][d2.1.1]]

    ... (truncated)

    Commits
    • c3a7524 2.2.3
    • 94fd06d docs: update CHANGELOG for v2.2.3
    • 3b8cebf docs(security): use GitHub security advisories
    • f0fd9e1 docs: publish a security policy
    • 6a91a05 docs(template): bug -> bug report
    • 14f8cb1 2.2.2
    • 10cc7ca docs: update CHANGELOG for v2.2.2
    • 7774c10 fix: add proto to objects and arrays
    • edde30a Readme: slight tweak to intro
    • 97286f8 Improve example in readme
    • Additional commits viewable in compare view

    Updates @vue/cli-plugin-babel from 3.9.2 to 5.0.8

    Release notes

    Sourced from @​vue/cli-plugin-babel's releases.

    v5.0.8

    :bug: Bug Fix

    v5.0.7

    • @vue/cli-service
    • @vue/cli-ui
      • #7210 chore: upgrade to apollo-server-express 3.x

    Committers: 2

    v5.0.6

    Fix compatibility with the upcoming Vue 2.7 (currently in alpha) and Vue Loader 15.10 (currently in beta).

    In Vue 2.7, vue-template-compiler is no longer a required peer dependency. Rather, there's a new export under the main package as vue/compiler-sfc.

    v5.0.5

    :bug: Bug Fix

    • @vue/cli
      • #7167 fix(upgrade): prevent changing the structure of package.json file during upgrade (@​blzsaa)
    • @vue/cli-service
    • @vue/cli-plugin-e2e-cypress
      • [697bb44] fix: should correctly resolve cypress bin path for Cypress 10 (Note that the project is still created with Cypress 9 by default, but you can upgrade to Cypress 10 on your own now)

    Committers: 3

    v5.0.4

    :bug: Bug Fix

    • @vue/cli-service
    • @vue/cli-shared-utils, @vue/cli-ui
      • 75826d6 fix: replace node-ipc with @achrinza/node-ipc to further secure the dependency chain

    Committers: 1

    v5.0.3

    ... (truncated)

    Changelog

    Sourced from @​vue/cli-plugin-babel's changelog.

    5.0.7 (2022-07-05)

    • @vue/cli-service
    • @vue/cli-ui
      • #7210 chore: upgrade to apollo-server-express 3.x

    Committers: 2

    5.0.6 (2022-06-16)

    Fix compatibility with the upcoming Vue 2.7 (currently in alpha) and Vue Loader 15.10 (currently in beta).

    In Vue 2.7, vue-template-compiler is no longer a required peer dependency. Rather, there's a new export under the main package as vue/compiler-sfc.

    5.0.5 (2022-06-16)

    :bug: Bug Fix

    • @vue/cli
      • #7167 feat(upgrade): prevent changing the structure of package.json file during upgrade (@​blzsaa)
    • @vue/cli-service

    Committers: 3

    5.0.4 (2022-03-22)

    :bug: Bug Fix

    • @vue/cli-service
    • @vue/cli-shared-utils, @vue/cli-ui
      • 75826d6 fix: replace node-ipc with @achrinza/node-ipc to further secure the dependency chain

    Committers: 1

    ... (truncated)

    Commits

    Updates @vue/cli-plugin-eslint from 3.9.2 to 5.0.8

    Release notes

    Sourced from @​vue/cli-plugin-eslint's releases.

    v5.0.8

    :bug: Bug Fix

    v5.0.7

    • @vue/cli-service
    • @vue/cli-ui
      • #7210 chore: upgrade to apollo-server-express 3.x

    Committers: 2

    v5.0.6

    Fix compatibility with the upcoming Vue 2.7 (currently in alpha) and Vue Loader 15.10 (currently in beta).

    In Vue 2.7, vue-template-compiler is no longer a required peer dependency. Rather, there's a new export under the main package as vue/compiler-sfc.

    v5.0.5

    :bug: Bug Fix

    • @vue/cli
      • #7167 fix(upgrade): prevent changing the structure of package.json file during upgrade (@​blzsaa)
    • @vue/cli-service
    • @vue/cli-plugin-e2e-cypress
      • [697bb44] fix: should correctly resolve cypress bin path for Cypress 10 (Note that the project is still created with Cypress 9 by default, but you can upgrade to Cypress 10 on your own now)

    Committers: 3

    v5.0.4

    :bug: Bug Fix

    • @vue/cli-service
    • @vue/cli-shared-utils, @vue/cli-ui
      • 75826d6 fix: replace node-ipc with @achrinza/node-ipc to further secure the dependency chain

    Committers: 1

    v5.0.3

    ... (truncated)

    Changelog

    Sourced from @​vue/cli-plugin-eslint's changelog.

    5.0.7 (2022-07-05)

    • @vue/cli-service
    • @vue/cli-ui
      • #7210 chore: upgrade to apollo-server-express 3.x

    Committers: 2

    5.0.6 (2022-06-16)

    Fix compatibility with the upcoming Vue 2.7 (currently in alpha) and Vue Loader 15.10 (currently in beta).

    In Vue 2.7, vue-template-compiler is no longer a required peer dependency. Rather, there's a new export under the main package as vue/compiler-sfc.

    5.0.5 (2022-06-16)

    :bug: Bug Fix

    • @vue/cli
      • #7167 feat(upgrade): prevent changing the structure of package.json file during upgrade (@​blzsaa)
    • @vue/cli-service

    Committers: 3

    5.0.4 (2022-03-22)

    :bug: Bug Fix

    • @vue/cli-service
    • @vue/cli-shared-utils, @vue/cli-ui
      • 75826d6 fix: replace node-ipc with @achrinza/node-ipc to further secure the dependency chain

    Committers: 1

    ... (truncated)

    Commits

    Updates @vue/cli-service from 3.9.2 to 5.0.8

    Release notes

    Sourced from @​vue/cli-service's releases.

    v5.0.8

    :bug: Bug Fix

    v5.0.7

    • @vue/cli-service
    • @vue/cli-ui
      • #7210 chore: upgrade to apollo-server-express 3.x

    Committers: 2

    v5.0.6

    Fix compatibility with the upcoming Vue 2.7 (currently in alpha) and Vue Loader 15.10 (currently in beta).

    In Vue 2.7, vue-template-compiler is no longer a required peer dependency. Rather, there's a new export under the main package as vue/compiler-sfc.

    v5.0.5

    :bug: Bug Fix

    • @vue/cli
      • #7167 fix(upgrade): prevent changing the structure of package.json file during upgrade (@​blzsaa)
    • @vue/cli-service
    • @vue/cli-plugin-e2e-cypress
      • [697bb44] fix: should correctly resolve cypress bin path for Cypress 10 (Note that the project is still created with Cypress 9 by default, but you can upgrade to Cypress 10 on your own now)

    Committers: 3

    v5.0.4

    :bug: Bug Fix

    • @vue/cli-service
    • @vue/cli-shared-utils, @vue/cli-ui
      • 75826d6 fix: replace node-ipc with @achrinza/node-ipc to further secure the dependency chain

    Committers: 1

    v5.0.3

    ... (truncated)

    Changelog

    Sourced from @​vue/cli-service's changelog.

    5.0.7 (2022-07-05)

    • @vue/cli-service
    • @vue/cli-ui
      • #7210 chore: upgrade to apollo-server-express 3.x

    Committers: 2

    5.0.6 (2022-06-16)

    Fix compatibility with the upcoming Vue 2.7 (currently in alpha) and Vue Loader 15.10 (currently in beta).

    In Vue 2.7, vue-template-compiler is no longer a required peer dependency. Rather, there's a new export under the main package as vue/compiler-sfc.

    5.0.5 (2022-06-16)

    :bug: Bug Fix

    • @vue/cli
      • #7167 feat(upgrade): prevent changing the structure of package.json file during upgrade (@​blzsaa)
    • @vue/cli-service

    Committers: 3

    5.0.4 (2022-03-22)

    :bug: Bug Fix

    • @vue/cli-service
    • @vue/cli-shared-utils, @vue/cli-ui
      • 75826d6 fix: replace node-ipc with @achrinza/node-ipc to further secure the dependency chain

    Committers: 1

    ... (truncated)

    Commits
    • b154dbd v5.0.8
    • 0260e4d fix: add devServer.server.type to useHttps judgement (#7222)
    • 4a0655f v5.0.7
    • beffe8a fix: allow disabling progress plugin via devServer.client.progress
    • 558dea2 fix: support devServer.server option, avoid deprecation warning
    • bddd64d fix: optimize the judgment on whether HTTPS has been set in options (#7202)
    • ef08a08 v5.0.6
    • fcf27e3 fixup! fix: compatibility with Vue 2.7
    • a648958 fix: compatibility with Vue 2.7
    • 98c66c9 v5.0.5
    • Additional commits viewable in compare view

    Updates sass-loader from 7.1.0 to 13.2.0

    Release notes

    Sourced from sass-loader's releases.

    v13.2.0

    13.2.0 (2022-11-09)

    Features

    v13.1.0

    13.1.0 (2022-10-06)

    Features

    v13.0.2

    13.0.2 (2022-06-27)

    Bug Fixes

    v13.0.1

    13.0.1 (2022-06-24)

    Bug Fixes

    v13.0.0

    13.0.0 (2022-05-18)

    ⚠ BREAKING CHANGES

    • minimum supported Node.js version is 14.15.0 (#1048)
    • emit @warn at-rules as webpack warnings by default, if you want to revert behavior please use the warnRuleAsWarning option (#1054) (58ffb68)

    Bug Fixes

    • do not crash on importers for modern API (#1052) (095814e)
    • do not store original sass error in webpack error(#1053) (06d7533)

    v12.6.0

    12.6.0 (2022-02-15)

    ... (truncated)

    Changelog

    Sourced from sass-loader's changelog.

    13.2.0 (2022-11-09)

    Features

    13.1.0 (2022-10-06)

    Features

    13.0.2 (2022-06-27)

    Bug Fixes

    13.0.1 (2022-06-24)

    Bug Fixes

    13.0.0 (2022-05-18)

    ⚠ BREAKING CHANGES

    • minimum supported Node.js version is 14.15.0 (#1048)
    • emit @warn at-rules as webpack warnings by default, if you want to revert behavior please use the warnRuleAsWarning option (#1054) (58ffb68)

    Bug Fixes

    • do not crash on importers for modern API (#1052) (095814e)
    • do not store original sass error in webpack error(#1053) (06d7533)

    12.6.0 (2022-02-15)

    Features

    • added support for automatic loading of sass-embedded (#1025) (c8dae87)

    12.5.0 (2022-02-14)

    ... (truncated)

    Commits
    Maintainer changes

    This version was pushed to npm by evilebottnawi, a new releaser for sass-loader since your current version.


    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)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

  • Bump express from 4.17.1 to 4.18.2 in /frontend

    Bump express from 4.17.1 to 4.18.2 in /frontend

    Bumps express from 4.17.1 to 4.18.2.

    Release notes

    Sourced from express's releases.

    4.18.2

    4.18.1

    • Fix hanging on large stack of sync routes

    4.18.0

    ... (truncated)

    Changelog

    Sourced from express's changelog.

    4.18.2 / 2022-10-08

    4.18.1 / 2022-04-29

    • Fix hanging on large stack of sync routes

    4.18.0 / 2022-04-25

    ... (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)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

  • Bump decode-uri-component from 0.2.0 to 0.2.2 in /frontend

    Bump decode-uri-component from 0.2.0 to 0.2.2 in /frontend

    Bumps decode-uri-component from 0.2.0 to 0.2.2.

    Release notes

    Sourced from decode-uri-component's releases.

    v0.2.2

    • Prevent overwriting previously decoded tokens 980e0bf

    https://github.com/SamVerschueren/decode-uri-component/compare/v0.2.1...v0.2.2

    v0.2.1

    • Switch to GitHub workflows 76abc93
    • Fix issue where decode throws - fixes #6 746ca5d
    • Update license (#1) 486d7e2
    • Tidelift tasks a650457
    • Meta tweaks 66e1c28

    https://github.com/SamVerschueren/decode-uri-component/compare/v0.2.0...v0.2.1

    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)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

  • Bump qs and express in /frontend

    Bump qs and express in /frontend

    Bumps qs and express. These dependencies needed to be updated together. Updates qs from 6.5.2 to 6.5.3

    Changelog

    Sourced from qs's changelog.

    6.5.3

    • [Fix] parse: ignore __proto__ keys (#428)
    • [Fix] utils.merge`: avoid a crash with a null target and a truthy non-array source
    • [Fix] correctly parse nested arrays
    • [Fix] stringify: fix a crash with strictNullHandling and a custom filter/serializeDate (#279)
    • [Fix] utils: merge: fix crash when source is a truthy primitive & no options are provided
    • [Fix] when parseArrays is false, properly handle keys ending in []
    • [Fix] fix for an impossible situation: when the formatter is called with a non-string value
    • [Fix] utils.merge: avoid a crash with a null target and an array source
    • [Refactor] utils: reduce observable [[Get]]s
    • [Refactor] use cached Array.isArray
    • [Refactor] stringify: Avoid arr = arr.concat(...), push to the existing instance (#269)
    • [Refactor] parse: only need to reassign the var once
    • [Robustness] stringify: avoid relying on a global undefined (#427)
    • [readme] remove travis badge; add github actions/codecov badges; update URLs
    • [Docs] Clean up license text so it’s properly detected as BSD-3-Clause
    • [Docs] Clarify the need for "arrayLimit" option
    • [meta] fix README.md (#399)
    • [meta] add FUNDING.yml
    • [actions] backport actions from main
    • [Tests] always use String(x) over x.toString()
    • [Tests] remove nonexistent tape option
    • [Dev Deps] backport from main
    Commits
    • 298bfa5 v6.5.3
    • ed0f5dc [Fix] parse: ignore __proto__ keys (#428)
    • 691e739 [Robustness] stringify: avoid relying on a global undefined (#427)
    • 1072d57 [readme] remove travis badge; add github actions/codecov badges; update URLs
    • 12ac1c4 [meta] fix README.md (#399)
    • 0338716 [actions] backport actions from main
    • 5639c20 Clean up license text so it’s properly detected as BSD-3-Clause
    • 51b8a0b add FUNDING.yml
    • 45f6759 [Fix] fix for an impossible situation: when the formatter is called with a no...
    • f814a7f [Dev Deps] backport from main
    • Additional commits viewable in compare view

    Updates express from 4.17.1 to 4.18.2

    Release notes

    Sourced from express's releases.

    4.18.2

    4.18.1

    • Fix hanging on large stack of sync routes

    4.18.0

    ... (truncated)

    Changelog

    Sourced from express's changelog.

    4.18.2 / 2022-10-08

    4.18.1 / 2022-04-29

    • Fix hanging on large stack of sync routes

    4.18.0 / 2022-04-25

    ... (truncated)

    Commits

    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)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

  • Bump loader-utils and @vue/cli-service in /frontend

    Bump loader-utils and @vue/cli-service in /frontend

    Bumps loader-utils to 1.4.2 and updates ancestor dependency @vue/cli-service. These dependencies need to be updated together.

    Updates loader-utils from 1.2.3 to 1.4.2

    Release notes

    Sourced from loader-utils's releases.

    v1.4.2

    1.4.2 (2022-11-11)

    Bug Fixes

    v1.4.1

    1.4.1 (2022-11-07)

    Bug Fixes

    v1.4.0

    1.4.0 (2020-02-19)

    Features

    • the resourceQuery is passed to the interpolateName method (#163) (cd0e428)

    v1.3.0

    1.3.0 (2020-02-19)

    Features

    • support the [query] template for the interpolatedName method (#162) (469eeba)
    Changelog

    Sourced from loader-utils's changelog.

    1.4.2 (2022-11-11)

    Bug Fixes

    1.4.1 (2022-11-07)

    Bug Fixes

    1.4.0 (2020-02-19)

    Features

    • the resourceQuery is passed to the interpolateName method (#163) (cd0e428)

    1.3.0 (2020-02-19)

    Features

    • support the [query] template for the interpolatedName method (#162) (469eeba)

    Commits

    Updates @vue/cli-service from 3.9.2 to 5.0.8

    Release notes

    Sourced from @​vue/cli-service's releases.

    v5.0.8

    :bug: Bug Fix

    v5.0.7

    • @vue/cli-service
    • @vue/cli-ui
      • #7210 chore: upgrade to apollo-server-express 3.x

    Committers: 2

    v5.0.6

    Fix compatibility with the upcoming Vue 2.7 (currently in alpha) and Vue Loader 15.10 (currently in beta).

    In Vue 2.7, vue-template-compiler is no longer a required peer dependency. Rather, there's a new export under the main package as vue/compiler-sfc.

    v5.0.5

    :bug: Bug Fix

    • @vue/cli
      • #7167 fix(upgrade): prevent changing the structure of package.json file during upgrade (@​blzsaa)
    • @vue/cli-service
    • @vue/cli-plugin-e2e-cypress
      • [697bb44] fix: should correctly resolve cypress bin path for Cypress 10 (Note that the project is still created with Cypress 9 by default, but you can upgrade to Cypress 10 on your own now)

    Committers: 3

    v5.0.4

    :bug: Bug Fix

    • @vue/cli-service
    • @vue/cli-shared-utils, @vue/cli-ui
      • 75826d6 fix: replace node-ipc with @achrinza/node-ipc to further secure the dependency chain

    Committers: 1

    v5.0.3

    ... (truncated)

    Changelog

    Sourced from @​vue/cli-service's changelog.

    5.0.7 (2022-07-05)

    • @vue/cli-service
    • @vue/cli-ui
      • #7210 chore: upgrade to apollo-server-express 3.x

    Committers: 2

    5.0.6 (2022-06-16)

    Fix compatibility with the upcoming Vue 2.7 (currently in alpha) and Vue Loader 15.10 (currently in beta).

    In Vue 2.7, vue-template-compiler is no longer a required peer dependency. Rather, there's a new export under the main package as vue/compiler-sfc.

    5.0.5 (2022-06-16)

    :bug: Bug Fix

    • @vue/cli
      • #7167 feat(upgrade): prevent changing the structure of package.json file during upgrade (@​blzsaa)
    • @vue/cli-service

    Committers: 3

    5.0.4 (2022-03-22)

    :bug: Bug Fix

    • @vue/cli-service
    • @vue/cli-shared-utils, @vue/cli-ui
      • 75826d6 fix: replace node-ipc with @achrinza/node-ipc to further secure the dependency chain

    Committers: 1

    ... (truncated)

    Commits
    • b154dbd v5.0.8
    • 0260e4d fix: add devServer.server.type to useHttps judgement (#7222)
    • 4a0655f v5.0.7
    • beffe8a fix: allow disabling progress plugin via devServer.client.progress
    • 558dea2 fix: support devServer.server option, avoid deprecation warning
    • bddd64d fix: optimize the judgment on whether HTTPS has been set in options (#7202)
    • ef08a08 v5.0.6
    • fcf27e3 fixup! fix: compatibility with Vue 2.7
    • a648958 fix: compatibility with Vue 2.7
    • 98c66c9 v5.0.5
    • Additional commits viewable in compare view

    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)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

  • Bump github.com/labstack/echo/v4 from 4.5.0 to 4.9.0

    Bump github.com/labstack/echo/v4 from 4.5.0 to 4.9.0

    Bumps github.com/labstack/echo/v4 from 4.5.0 to 4.9.0.

    Release notes

    Sourced from github.com/labstack/echo/v4's releases.

    v4.9.0

    Security

    • Fix open redirect vulnerability in handlers serving static directories (e.Static, e.StaticFs, echo.StaticDirectoryHandler) #2260

    Enhancements

    • Allow configuring ErrorHandler in CSRF middleware #2257
    • Replace HTTP method constants in tests with stdlib constants #2247

    v4.8.0

    Most notable things

    You can now add any arbitrary HTTP method type as a route #2237

    e.Add("COPY", "/*", func(c echo.Context) error 
      return c.String(http.StatusOK, "OK COPY")
    })
    

    You can add custom 404 handler for specific paths #2217

    e.RouteNotFound("/*", func(c echo.Context) error { return c.NoContent(http.StatusNotFound) })
    

    g := e.Group("/images") g.RouteNotFound("/*", func(c echo.Context) error { return c.NoContent(http.StatusNotFound) })

    Enhancements

    • Add new value binding methods (UnixTimeMilli,TextUnmarshaler,JSONUnmarshaler) to Valuebinder #2127
    • Refactor: body_limit middleware unit test #2145
    • Refactor: Timeout mw: rework how test waits for timeout. #2187
    • BasicAuth middleware returns 500 InternalServerError on invalid base64 strings but should return 400 #2191
    • Refactor: duplicated findStaticChild process at findChildWithLabel #2176
    • Allow different param names in different methods with same path scheme #2209
    • Add support for registering handlers for different 404 routes #2217
    • Middlewares should use errors.As() instead of type assertion on HTTPError #2227
    • Allow arbitrary HTTP method types to be added as routes #2237

    v4.7.2

    Fixes

    • Fix nil pointer exception when calling Start again after address binding error #2131
    • Fix CSRF middleware not being able to extract token from multipart/form-data form #2136
    • Fix Timeout middleware write race #2126

    Enhancements

    ... (truncated)

    Changelog

    Sourced from github.com/labstack/echo/v4's changelog.

    v4.9.0 - 2022-09-04

    Security

    • Fix open redirect vulnerability in handlers serving static directories (e.Static, e.StaticFs, echo.StaticDirectoryHandler) #2260

    Enhancements

    • Allow configuring ErrorHandler in CSRF middleware #2257
    • Replace HTTP method constants in tests with stdlib constants #2247

    v4.8.0 - 2022-08-10

    Most notable things

    You can now add any arbitrary HTTP method type as a route #2237

    e.Add("COPY", "/*", func(c echo.Context) error 
      return c.String(http.StatusOK, "OK COPY")
    })
    

    You can add custom 404 handler for specific paths #2217

    e.RouteNotFound("/*", func(c echo.Context) error { return c.NoContent(http.StatusNotFound) })
    

    g := e.Group("/images") g.RouteNotFound("/*", func(c echo.Context) error { return c.NoContent(http.StatusNotFound) })

    Enhancements

    • Add new value binding methods (UnixTimeMilli,TextUnmarshaler,JSONUnmarshaler) to Valuebinder #2127
    • Refactor: body_limit middleware unit test #2145
    • Refactor: Timeout mw: rework how test waits for timeout. #2187
    • BasicAuth middleware returns 500 InternalServerError on invalid base64 strings but should return 400 #2191
    • Refactor: duplicated findStaticChild process at findChildWithLabel #2176
    • Allow different param names in different methods with same path scheme #2209
    • Add support for registering handlers for different 404 routes #2217
    • Middlewares should use errors.As() instead of type assertion on HTTPError #2227
    • Allow arbitrary HTTP method types to be added as routes #2237

    v4.7.2 - 2022-03-16

    Fixes

    • Fix nil pointer exception when calling Start again after address binding error #2131
    • Fix CSRF middleware not being able to extract token from multipart/form-data form #2136
    • Fix Timeout middleware write race #2126

    ... (truncated)

    Commits
    • 16d3b65 Changelog for 4.9.0
    • 0ac4d74 Fix #2259 open redirect vulnerability in echo.StaticDirectoryHandler (used by...
    • d77e8c0 Added ErrorHandler and ErrorHandlerWithContext in CSRF middleware (#2257)
    • 534bbb8 replace POST constance with stdlib constance
    • fb57d96 replace GET constance with stdlib constance
    • d48197d Changelog for 4.8.0
    • cba12a5 Allow arbitrary HTTP method types to be added as routes
    • a327884 add:README.md-Third-party middlewares-github.com/go-woo/protoc-gen-echo
    • 61422dd Update CI-flow (Go 1.19 +deps)
    • a9879ff Middlewares should use errors.As() instead of type assertion on HTTPError
    • 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)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

A tool to build, deploy, and release any environment using System Containers.
A tool to build, deploy, and release any environment using System Containers.

Bravetools Bravetools is an end-to-end System Container management utility. Bravetools makes it easy to configure, build, and deploy reproducible envi

Dec 14, 2022
🏯 Monitor your (gitlab/github) CI/CD pipelines via command line interface with fortress
🏯 Monitor your (gitlab/github) CI/CD pipelines via command line interface with fortress

__ _ / _| | | | |_ ___ _ __| |_ _ __ ___ ___ ___ | _/ _ \| '__| __| '__/ _ \/ __/ _

Mar 31, 2022
GitOops is a tool to help attackers and defenders identify lateral movement and privilege escalation paths in GitHub organizations by abusing CI/CD pipelines and GitHub access controls.
GitOops is a tool to help attackers and defenders identify lateral movement and privilege escalation paths in GitHub organizations by abusing CI/CD pipelines and GitHub access controls.

GitOops is a tool to help attackers and defenders identify lateral movement and privilege escalation paths in GitHub organizations by abusing CI/CD pipelines and GitHub access controls.

Jan 2, 2023
Drone plugin to skip pipelines based on changed files

drone-skip-pipeline Drone plugin to skip pipelines based on changed files. Build Build the binary with the following command: export GOOS=linux export

Aug 7, 2022
tfa is a 2fa cli tool that aims to help you to generate 2fa code on CI/CD pipelines.

tfa tfa is 2fa cli tool that aim to help you to generate 2fa code on CI/CD pipelines. You can provide secret with stdin or flag. Install brew install

Nov 27, 2022
🤖 DroneCI plugin to skip pipelines based on files changes

DroneCI Skip Pipeline ?? DroneCI plugin to skip pipelines based on files changes Motivations This DroneCI plugin enables you skip (or short-circuit) a

Dec 14, 2022
Just a playground with some interesting concepts like pipelines aka middleware, handleFuncs, request validations etc. Check it out.

Pipeline a.k.a middleware in Go Just a playground with some interesting concepts like pipelines aka middleware, handleFuncs, request validations etc.

Dec 9, 2021
A sample for okteto pipelines with terraform

Okteto Pipeline with Terraform (PubSub) This sample covers a producer/consumer a

Dec 23, 2021
Tool for generating Spinnaker application/pipelines and k8s manifests

jarvis Just A Rather Very Intelligent System Get git clone [email protected]:ealebe

Jan 6, 2022
Substation is a cloud native toolkit for building modular ingest, transform, and load (ITL) data pipelines

Substation Substation is a cloud native data pipeline toolkit. What is Substation? Substation is a modular ingest, transform, load (ITL) application f

Dec 30, 2022
A serverless cluster computing system for the Go programming language

Bigslice Bigslice is a serverless cluster data processing system for Go. Bigslice exposes composable API that lets the user express data processing ta

Dec 14, 2022
A simple and powerful SSH keys manager
A simple and powerful SSH keys manager

SKM is a simple and powerful SSH Keys Manager. It helps you to manage your multiple SSH keys easily! Features Create, List, Delete your SSH key(s) Man

Dec 17, 2022
Gohalt 👮‍♀🛑: Fast; Simple; Powerful; Go Throttler library
Gohalt 👮‍♀🛑: Fast; Simple; Powerful; Go Throttler library

Gohalt ??‍♀ ?? : Fast; Simple; Powerful; Go Throttler library go get -u github.com/1pkg/gohalt Introduction Gohalt is simple and convenient yet powerf

Nov 27, 2022
kubectl-fzf provides a fast and powerful fzf autocompletion for kubectl
kubectl-fzf provides a fast and powerful fzf autocompletion for kubectl

Kubectl-fzf kubectl-fzf provides a fast and powerful fzf autocompletion for kubectl. Table of Contents Kubectl-fzf Table of Contents Features Requirem

Nov 3, 2021
Automatically capture all potentially useful information about each executed command (as well as its output) and get powerful querying mechanism
Automatically capture all potentially useful information about each executed command (as well as its output) and get powerful querying mechanism

nhi is a revolutionary tool which automatically captures all potentially useful information about each executed command and everything around, and delivers powerful querying mechanism.

Nov 29, 2022
Cloversim - Simple and powerful tool for Clover simulation
Cloversim - Simple and powerful tool for Clover simulation

Clover sim Simple and powerful tool for Clover simulation How to setup mkdir clo

Jul 23, 2022
Becca - A simple dynamic language for exploring language design

Becca A simple dynamic language for exploring language design What is Becca Becc

Aug 15, 2022
Run VS Code on any server over SSH.
Run VS Code on any server over SSH.

sshcode This project has been deprecated in favour of the code-server install script See the discussion in #185 sshcode is a CLI to automatically inst

Dec 25, 2022