Skip to content
This repository has been archived by the owner on Aug 7, 2023. It is now read-only.
/ four-key Public archive

four-key is a measurement tool written with golang for your repositories. This project inspired from Accelerate book.

License

Notifications You must be signed in to change notification settings

Trendyol/four-key

Repository files navigation

4-key-metrics

four-key Metrics

four-key is a measure tool written with golang for your repositories. This project inspired from Accelerate book.

Thoughtworks Technology Radar

Documentation on Gitbook 🔗

This package provides cli-tool for your commits. You can measure lead time, deployment frequency, mean time to restore (MTTR) and change fail percentage of your repositories. If you want to contribute this package, please fork and create a pull request.

Dependencies

  • git

Prerequisites


  • All releases must be tagged with a specific prefix and version number [prefix][versionNumber] like release-v15 or v-[commitSha] or rel12
  • Must be provided with -p yourTagPattern while adding repository OR add to config.json
  • All fixes must be specific like fix - hotfix - hot-fix
  • Must be provided with -c yourFixCommitPattern -c yourOtherCommitFixPattern -c yourOtherCommitFixPattern while adding repository OR add to config.json

Installation

Executables

Source Code Build
$ git clone https://github.com/Trendyol/four-key.git && cd four-key
$ go build

Preparation

// Add repository with CLI
// OR Add repository with configuration file - Sample config.json
{
    "repositories":[
        {
            "teamName":"cs",
            "cloneAddress": "https://github.com/Trendyol/reponame",
            "releaseTagPattern": "v-",
            "fixCommitPatterns": ["fix","hot-fix","hotfix"]
        }
    ]
}

asciicast

add command usage

$ four-key add [flags]

Flags:
  -c, --cloneAddress string             Set your clone address
  -f, --fixCommitPatterns stringArray   Set your fix commit patterns of repository
  -h, --help                            help for add
  -r, --releaseTagPattern string        Set your release tag pattern of repository
  -t, --team string                     Set your team of repository

list command usage

$ four-key list [flags]

Flags:
  -h, --help                help for remove

remove command usage

$ four-key remove [flags]

Flags:
  -h, --help                help for remove
  -r, --repository string   Set your repository name to remove from config

asciicast

set command usage

Usage:
  four-key set [flags]

Flags:
  -h, --help            help for set
  -o, --output string   Set output source of 4Key metric results

Generate

$ four-key run --startDate 2018-01-13 --endDate 2020-01-30

Usage:
  four-key run [flags]

Flags:
  -e, --endDate string      Set a end date of range
  -h, --help                help for run
  -r, --repository string   Set a name of the specific repository
  -s, --startDate string    Set a start date of range

asciicast

TODO

  • Add brew & scoop as installation options (TODO)
  • Complete tests (In Progress)
  • Add CI
  • Add calculation descriptions to wiki (In Progress)
  • Add suggestions for metrics results

License

The MIT License (MIT) - see LICENSE.md for more details

About

four-key is a measurement tool written with golang for your repositories. This project inspired from Accelerate book.

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages