CONTRIBUTING.md 2.3 KB
Newer Older
1 2
Welcome! Any kinds of contributions are very welcome. Please go through our contribution
guide before you create a Pull Request for `jcli`.
LinuxSuRen's avatar
LinuxSuRen 已提交
3 4 5 6 7 8

## CLI

`jcli` is a command line interface. So a CLI framework is super important for us. Thanks to 
[cobra](https://github.com/spf13/cobra). It powers us to do a better job.

9
## Jenkins REST API
LinuxSuRen's avatar
LinuxSuRen 已提交
10

11 12 13 14 15 16 17 18 19 20
API is another important part of this project. `jcli` manages Jenkins by the REST API.
There is no full specification for this API at the moment, Jenkins core and plugins provide documentation independently.
You can figure it by yourself, or just join our
[gitter room](https://gitter.im/jenkinsci/jenkins-cli) to ask about specific APIs if needed.

Useful links:

* [Jenkins Remote Access API](https://wiki.jenkins.io/display/JENKINS/Remote+access+API)
* [Jenkins REST API overview](https://www.youtube.com/watch?v=D93t1jElt4Q) by [Cliffano Subagio](https://github.com/cliffano)
* 
LinuxSuRen's avatar
LinuxSuRen 已提交
21 22 23

## Testing

24
We use a BDD Testing Framework to test our project. Please make sure you're familiar
LinuxSuRen's avatar
LinuxSuRen 已提交
25 26 27 28
with [ginkgo](https://github.com/onsi/ginkgo) before you get start to contribute.

## Pull Requests

29
Before you get started, please fork this project into your GitHub account. Then
LinuxSuRen's avatar
LinuxSuRen 已提交
30
create a git branch base on what you want to improve. Please consider **never** using
31 32
the master branch as your development branch. And the behaviour of the git **force push** is not
encouraged when submitting pull requests.
LinuxSuRen's avatar
LinuxSuRen 已提交
33

34
Please **do not** create another Pull Request if you messed up your git commit records.
LinuxSuRen's avatar
LinuxSuRen 已提交
35

36
In order to generate nice [release notes](https://github.com/jenkins-zh/jenkins-cli/releases),
LinuxSuRen's avatar
LinuxSuRen 已提交
37 38 39
please consider writing a proper Pull Request title.
[release-draft](https://github.com/toolmantim/release-drafter) will generate the notes base your title.

40
## Quality
LinuxSuRen's avatar
LinuxSuRen 已提交
41

42 43
Quality is the heart of a project. So please make sure your Pull Request could pass the
[Sonar Quality Gate](https://sonarcloud.io/dashboard?id=jenkins-zh_jenkins-cli).
LinuxSuRen's avatar
LinuxSuRen 已提交
44 45 46 47 48 49 50 51 52 53 54 55 56 57 58

|Metric|Operator|Value|
|---|---|---|
|Coverage|is less than|90.0%|
|Duplicated Lines(%)|is greater than|3.0%|
|Maintainablity Rating|is worse than|A|
|Blocker Issues|is greater than|1|
|Code Smells|is greater than|1|
|Reliablity Rating|is worse than|A|
|Security Rating|is worse than|A|

## Good Start

The [newbie](https://github.com/jenkins-zh/jenkins-cli/issues?q=is%3Aissue+is%3Aopen+label%3Anewbie) issues
are the good start.