/gogl-ci

A cli tool for getting insight into your gitlab pipelines

Primary LanguageGoGNU General Public License v3.0GPL-3.0

GoGl-ci - Getting insight into your GitLab pipelines

GoGl is a tool for parsing and testing CI/CD pipelines. It can (almost) fully parse a GitLab CI pipeline with includes support.

What usecase it solves

Writing pipelines is often paired with high uncertainty and countless commits. In some cases you can only really test if your pipeline works correctly when it has been actually merged into the default branch.

With GoGl you can write TestPlans that define the things you want to be certain of before merging into a default branch. You can test when jobs will run and if these jobs have dependencies on others. This will make sure pipelines always execute correctly.

Project Status

Parsing Status

Implemented keywords:

  • Default
    • See Job Keywords for real status
  • Include
    • Local
    • Project
    • Remote
    • Component
    • Template
    • Inputs
  • Stages
  • Workflows
  • Header Keywords
    • Spec
      • Inputs
  • Job Keywords
    • allow_failure
      • exit_codes
    • artifacts
      • paths
      • exclude
      • expire_in
      • expose_as
      • name
      • public
      • access
      • reports
      • untracked
      • when
    • cache
      • paths
      • key
      • key:files
      • key:prefix
      • untracked
      • unprotect
      • when
      • policy
      • fallback_keys
    • coverage
    • dast_configuration
    • dependencies
    • environment
      • name
      • url
      • on_stop
      • action
      • auto_stop_in
      • kubernetes
      • deployment_tier
      • Dynamic environments
    • extends
    • hooks
      • pre_get_sources_script
    • identity
    • id_tokens
    • image
      • name
      • entrypoint
      • docker
      • pull_policy
    • inherit
      • default
      • variables
    • interruptible
    • needs
      • artifacts
      • project
      • optional
      • pipeline
      • pipeline:job
      • parallel:matrix
    • pages
      • publish
      • pages.path_prefix
    • parallel
      • parallel:matrix
    • release
      • tag_name
      • tag_message
      • name
      • description
      • ref
      • milestones
      • released_at
      • assets:links
    • resource_group
    • retry
      • when
      • exit_codes
    • rules
      • if
      • changes
      • changes:paths
      • changes:compare_to
      • exists
      • exists:paths
      • exists:project
      • when
      • allow_failure
      • needs
      • variables
      • interruptible
    • script, before_script, after_script
      • Reference Tags
    • secrets
      • vault
      • gcp_secret_manager
      • azure_key_vault
      • file
      • token
    • services
      • docker
      • pull_policy
    • stage
    • tags
    • timeout
    • trigger
      • include
      • project
      • strategy
      • forward
    • variables
      • description
      • value
      • options
      • expand
    • when
  • Deprecated keywords, these won't be supported
    • Globally-defined image, services, cache, before_script, after_script
    • only / except
      • only:refs / except:refs
      • only:variables / except:variables

Rules Interpreter Status

  • Variables
  • Strings
  • null
  • Equality Operators
    • Regex
  • Logical Operators
  • String Null Check