All Projects → tarek360 → koshry

tarek360 / koshry

Licence: other
Run on CI, Apply Rules on the Build and Get the Result back to the Pull Request.

Programming Languages

kotlin
9241 projects

Projects that are alternatives of or similar to koshry

Ci Detector
Detect continuous integration environment and get information of current build
Stars: ✭ 138 (+133.9%)
Mutual labels:  circleci, travis-ci, continuous-integration
scikit-ci
Simpler and centralized CI configuration for Python extensions.
Stars: ✭ 15 (-74.58%)
Mutual labels:  circleci, travis-ci, continuous-integration
Nevergreen
🐤 A build monitor with attitude
Stars: ✭ 170 (+188.14%)
Mutual labels:  circleci, travis-ci, continuous-integration
drupal9ci
One-line installers for implementing Continuous Integration in Drupal 9
Stars: ✭ 137 (+132.2%)
Mutual labels:  circleci, travis-ci, continuous-integration
developer-ci-benefits
Talk docs—includes CI (Continuous Integration) benefits, description, and setup tips 💡💪
Stars: ✭ 29 (-50.85%)
Mutual labels:  circleci, travis-ci, continuous-integration
cibuildwheel
🎡 Build Python wheels for all the platforms on CI with minimal configuration.
Stars: ✭ 1,350 (+2188.14%)
Mutual labels:  circleci, travis-ci
arduino-ci-script
Bash script for continuous integration of Arduino projects
Stars: ✭ 25 (-57.63%)
Mutual labels:  travis-ci, continuous-integration
travis-ci-latex-pdf
Overview of different methods to build LaTeX with GitHub Actions or Travis-CI (idea by @jackolney but completely rewritten by @PHPirates and contributors).
Stars: ✭ 113 (+91.53%)
Mutual labels:  travis-ci, continuous-integration
plugin.video.sendtokodi
📺 plays various stream sites on kodi using youtube-dl
Stars: ✭ 86 (+45.76%)
Mutual labels:  travis-ci, continuous-integration
tiller-circleci
Deploy Trellis, Bedrock and Sage via CircleCI
Stars: ✭ 14 (-76.27%)
Mutual labels:  circleci, continuous-integration
travis-ci-tutorial-java
Just to learn how to use travis-ci in a java project!
Stars: ✭ 38 (-35.59%)
Mutual labels:  travis-ci, continuous-integration
TeamCityApp
TeamCity in your pocket (Android application)
Stars: ✭ 48 (-18.64%)
Mutual labels:  circleci, teamcity
HaxeCI
An example of using CI for Haxe projects.
Stars: ✭ 45 (-23.73%)
Mutual labels:  travis-ci, continuous-integration
noise-php
A starter-kit for your PHP project.
Stars: ✭ 52 (-11.86%)
Mutual labels:  travis-ci, continuous-integration
ci-npm-update
(no longer used by @bitjourney)
Stars: ✭ 41 (-30.51%)
Mutual labels:  circleci, pull-request
continuous-integration-with-python
How to test your python code. How to automatically run your tests for your Python code. How to get reports of the tests coverage
Stars: ✭ 25 (-57.63%)
Mutual labels:  travis-ci, continuous-integration
ci-minikube
run minikube on ci
Stars: ✭ 28 (-52.54%)
Mutual labels:  circleci, travis-ci
nightly-docker-rebuild
Use nightli.es 🌔 to rebuild N docker 🐋 images 📦 on hub.docker.com
Stars: ✭ 13 (-77.97%)
Mutual labels:  travis-ci, continuous-integration
docker-fastpath
Only Build Your Docker Images Once
Stars: ✭ 52 (-11.86%)
Mutual labels:  travis-ci, continuous-integration
git-diff-lint
Lint only the files your branch touches
Stars: ✭ 36 (-38.98%)
Mutual labels:  continuous-integration, codereview

Koshry

What's Koshry?

Koshry:

  • is a dev tool, runs during your CI Build or on your Local Machine Build.
  • gives your team the ability to monitor pull requests and take automatic actions depend on your rules result.
  • create a report of the result of applying your rules on the pull request and post it back as a comment on the pull request.
  • is written in Kotlin and runs on JVM.
  • has some of the ready rules for common use cases.
  • is customizable, you can write your own Custom Rule, everything is a Rule in Koshry.
  • works on any project whatever the programming language you use in your project

Run Koshry in 3 steps:

1- Add Koshry to your build process:

Gradle:

implementation "io.github.tarek360.koshry:koshry:0.0.4"

2- Invoke Koshry with one rule at least.

val koshryConfig = koshry {
    rules {
        rule = rule1
        rule = rule2
    }
}

Koshry.run(koshryConfig)

3- Add one environment variable to your CI.

Add your git host (Github for example) token as an environment variable to allow Koshry post a comment and update the commit status. Use KOSHRY_GIT_HOST_TOKEN as a key of the environment variable.

Koshry Rules:

Each Koshry Rule does some work then returns a Report (or not) as a result of that work.

While you can create your own custom rule, Koshry has some of the ready rules, you can make use of them directly. These rules are applied to the git diff of the pull request.

  • LineRule: Apply a condition to all of the added and modified lines in the pull request.
  • FileRule: Apply a condition to all of the added and modified files in the pull request.
  • ProtectedFilesRule: Protect a list of files to be changed by someone hasn't permission to make a change.

Check the Wiki to know How to write Koshry Rules

Koshry works automatically with:

Contribution

  • Feel free to fork and open a pull request.
  • Open an issue if you found a bug or you need help.

How does Kosrhy work?

In a brief, when you call Koshry.run(koshryConfig), Koshry applies all the rules you have set and it aggregates all of the reports returned from the rules to one report, then it posts that report as a comment on the pull request.

Note: Kosrhy applies all of the rules sequentially.

I use Koshry in Koshry

I use Koshry here in this repository to apply some rules like JaCoCo Test Coverage rule to set the minimum percentage of test coverage of PRs, check Koshry report on one of my PRs here

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].