Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature: Set nonzero exit code with --critical #42

Open
mingalsuo opened this issue Jun 8, 2018 · 4 comments
Open

Feature: Set nonzero exit code with --critical #42

mingalsuo opened this issue Jun 8, 2018 · 4 comments

Comments

@mingalsuo
Copy link

For automation purposes, it would be a great feature to be able to analyze repositories and get a machine readable exit code that states that critical issues were found.

One way is to directly have --critical set the exit code or add another flag that does that if critical issues were found.

Thanks for creating this great tool.

@mhagger
Copy link
Member

mhagger commented Jun 12, 2018

That's a good idea. We'd definitely want a way to distinguish between runtime errors (e.g., repository was corrupt) vs. size "errors"; for example, by returning different exit codes.

@sspaink
Copy link

sspaink commented Oct 2, 2018

I like this idea and I have some time to work on it.
@mhagger did you maybe have some recommended exit codes in mind? I'm not aware of any standard command line error codes we could reuse.

Following @mingalsuo description updating the tool to support custom user defined exit codes could be an approach. Have the user provide a config file with them listed.

@ls-jad-elkik
Copy link

A "nice" workaround is to use JSON output and jq.

To just display the results:

git-sizer --json --json-version=2 2>/dev/null | jq -r '. | values[] | select (.levelOfConcern >= 1) | [.description, ((.value | tostring) + .unit), (.levelOfConcern * 100 | floor / 100)] | @tsv' | column -t -s $'\t'

To set the exit code to 1 when all is good (there is no match >= threshold):

git-sizer --json --json-version=2 2>/dev/null | jq -e -r '. | values[] | select (.levelOfConcern >= 1) | [.description, ((.value | tostring) + .unit), (.levelOfConcern * 100 | floor / 100)]'

Then you can "reverse" the exit code.

You can tweak the threshold in select (.levelOfConcern >= 1), or a bit fancier with an env var:

export THRESHOLD=0.5
git-sizer --json --json-version=2 2>/dev/null | jq -e -r '. | values[] | select (.levelOfConcern >= (env.THRESHOLD | tonumber)) | [.description, ((.value | tostring) + .unit), (.levelOfConcern * 100 | floor / 100)]'

This can be further cleaned up in a nice zsh/bash wrapper file and/or a nice jq script file.

@murayamajpeg
Copy link

git cat-file -p :

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants