Code Monkey home page Code Monkey logo

kotlin's Introduction

Current Version Maven Central - SDK Awesome Kotlin Badge


⚠️ Stop saying "you forgot to …" in code review in Kotlin

Project status

The project is now on a stable version. Is possible to generate a working danger-kotlin instance from the code that is currently on this repo, or use it via GitHub actions or brew.

What it looks like today

You can make a Dangerfile.df.kts in your root project that looks through PR metadata, it's fully typed.

import systems.danger.kotlin.*

danger(args) {

    val allSourceFiles = git.modifiedFiles + git.createdFiles
    val changelogChanged = allSourceFiles.contains("CHANGELOG.md")
    val sourceChanges = allSourceFiles.firstOrNull { it.contains("src") }

    onGitHub {
        val isTrivial = pullRequest.title.contains("#trivial")

        // Changelog
        if (!isTrivial && !changelogChanged && sourceChanges != null) {
            warn(WordUtils.capitalize("any changes to library code should be reflected in the Changelog.\n\nPlease consider adding a note there and adhere to the [Changelog Guidelines](https://github.com/Moya/contributors/blob/master/Changelog%20Guidelines.md)."))
        }

        // Big PR Check
        if ((pullRequest.additions ?: 0) - (pullRequest.deletions ?: 0) > 300) {
            warn("Big PR, try to keep changes smaller if you can")
        }

        // Work in progress check
        if (pullRequest.title.contains("WIP", false)) {
            warn("PR is classed as Work in Progress")
        }
    }
}

Setup

macOS (ARM)

brew install danger/tap/danger-kotlin

macOS (Intel)

brew install danger/tap/danger-kotlin-intel

You need to have Xcode installed and not relying on command line tools. If you're seeing this error when running xcodebuild:

$ xcodebuild -version
xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance

You can fix it with:

sudo xcode-select -s /Applications/Xcode.app/Contents/Developer

Linux

bash <(curl -s https://raw.githubusercontent.com/danger/kotlin/master/scripts/install.sh)
source ~/.bash_profile

GitHub Actions

You can add danger/kotlin to your actions

Parameters:

  • dangerfile: Path to danger file, required: false, default: Dangerfile.df.kts
  • run-mode: Run mode: ci, local, pr, required: false default: ci
  • job-id: Reported CI job ID, required: false, default: danger/kotlin
  • args: Extra custom arguments like "--failOnErrors --no-publish-check" and etc, required: false
jobs:
  build:
    runs-on: ubuntu-latest
    name: "Run Danger"
    steps:
      - uses: actions/checkout@v1
      - name: Danger
        uses: danger/[email protected]
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

Danger a pre built images that you can use with your action:

https://github.com/orgs/danger/packages/container/package/danger-kotlin In order to import one of those use the docker:// prefix

jobs:
  build:
    runs-on: ubuntu-latest
    name: "Run Danger"
    steps:
      - uses: actions/checkout@v1
      - name: Danger
        uses: docker://ghcr.io/danger/danger-kotlin:1.3.1
        run: danger-kotlin ci --failOnErrors --no-publish-check
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

Autocomplete and Syntax highlighting in IntelliJ IDEA or Android Studio

You can activate the autocomplete following this additional steps:

  • Install danger on your local machine
  • Go to Preferences -> Build, Execution, Deployment -> Compiler -> Kotlin Compiler (Preferences -> Kotlin Compiler in Android Studio, Recent Android Studio versions will show this option when you close all project and open the Settings from the initial screen)
  • At the bottom you will find a section Kotlin Scripting
  • Complete the field Script template classes with systems.danger.kts.DangerFileScript
  • Complete the field Script templates classpath with /usr/local/lib/danger/danger-kotlin.jar
  • Go to Preferences -> Language & Frameworks -> Kotlin -> Kotlin Scripting
  • Make sure the script template DangerFileScript is active and above the default Kotlin Script
  • Apply changes
  • If opening the Dangerfile.df.kts the autocomplete and syntax highlighting doesn't work, try to reboot your IDE or open the Dangerfile from your IDE as a single file.

Using external maven dependencies into your Dangerfile

You can use any external dependency by adding the following lines at the top of your Dangerfile.df.kts

@file:Repository("https://repo.maven.apache.org")
@file:DependsOn("groupId:artifactId:version")

Commands

  • danger-kotlin ci - Use this on CI
  • danger-kotlin pr https://github.com/Moya/Harvey/pull/23 - Use this to build your Dangerfile
  • danger-kotlin local - Use this to run danger against your local changes from master

Authors

danger-kotlin was developed by @gianluz and @f-meloni

kotlin's People

Contributors

417-72ki avatar anton46 avatar brentwatson avatar davidbilik avatar dcampogiani avatar dependabot[bot] avatar egiataganas avatar eygraber avatar f-meloni avatar gianluz avatar mariusgreve avatar msarelo avatar orta avatar peril-staging[bot] avatar pgreze avatar pinguinjkeke avatar rdil avatar rogerluan avatar sonulen avatar tegorov avatar uzzu avatar vacxe avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

kotlin's Issues

NullPointerException bitBucketServer

I'm getting this error:

java.lang.NullPointerException

        at systems.danger.kotlin.models.danger.DangerDSL.getBitBucketServer(DangerDSL.kt:27)
        at Dangerfile_df.<init>(Dangerfile.df.kts:9)

This is my danger file:

@file:Repository("https://repo.maven.apache.org")
@file:DependsOn("org.apache.commons:commons-text:1.6")

import org.apache.commons.text.WordUtils
import systems.danger.kotlin.*
import systems.danger.kotlin.models.danger.DangerDSL

danger(args) {
    if (bitBucketServer.pullRequest.title.contains("WIP", false)) {
        warn("PR is classed as Work in Progress")
    }
}

Any ideas why it could happen?

Bitbucket cloud

Hi,

We would like to use Danger kotlin and we use bitbucket cloud. Should we follow the same instructions for bitbucket server for bitbucket cloud ?

If not what is the best way to support danger with bitbucket cloud?

How to install specific version in Linux with Script !

For example if you want to install a beta, or previous version, the install script allow it, like the following :

  bash <(curl -s https://raw.githubusercontent.com/danger/kotlin/master/scripts/install.sh) "1.0.0-beta4"
  source ~/.bash_profile

Issue Setting Up Danger on Github Actions

I'm having problems with setting up Danger kotlin on Github actions, I have no idea on what could be wrong but I think I may be missing a step in the setup process. Here's what I've done:

I have a workflow on_pr_changed.yml that is as follows:

name: Validate code

on:
  push: ## to be deleted
  pull_request:
    types: [ opened, reopened, edited, synchronize ]
    paths:
      - .github/workflows/android-lint.yml
      - '*/src/**'
      - gradle/**
      - '**.gradle'
      - gradle.properties
      - gradlew*

jobs:

  lint:
    runs-on: [ ubuntu-latest ]
    steps:
      - uses: actions/checkout@v2

      - name: Setup up JDK 11
        uses: actions/setup-java@v2
        with:
          java-version: 11
          distribution: 'temurin'

      - name: Run Danger
        uses: docker://ghcr.io/danger/danger-kotlin:1.0.0
        with:
          args: --failOnErrors --no-publish-check
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

In the root directory of my project, I have a Dangerfile.df.kts:

@file:Repository("https://repo.maven.apache.org")
@file:DependsOn("org.apache.commons:commons-text:1.6")

import systems.danger.kotlin.*

danger(args) {

    val allSourceFiles = git.modifiedFiles + git.createdFiles
    val changelogChanged = allSourceFiles.contains("CHANGELOG.md")
    val sourceChanges = allSourceFiles.firstOrNull { it.contains("src") }

    onGitHub {
        val isTrivial = pullRequest.title.contains("#trivial")

        // Changelog
        if (!isTrivial && !changelogChanged && sourceChanges != null) {
            warn("Any changes to library code should be reflected in the Changelog.\n\nPlease consider adding a note there and adhere to the [Changelog Guidelines](https://github.com/Moya/contributors/blob/master/Changelog%20Guidelines.md).")
        }

        // Big PR Check
        if ((pullRequest.additions ?: 0) - (pullRequest.deletions ?: 0) > 300) {
            warn("Big PR, try to keep changes smaller if you can")
        }

        // Work in progress check
        if (pullRequest.title.contains("WIP", false)) {
            warn("PR is classed as Work in Progress")
        }
    }
}

When I run my actions with this setup, the following error comes up in my logs:

Run docker://ghcr.io/danger/danger-kotlin:1.0.0
/usr/bin/docker run --name ghcriodangerdangerkotlin100_396447 --label e28490 --workdir /github/workspace --rm -e JAVA_HOME -e GITHUB_TOKEN -e INPUT_ARGS -e HOME -e GITHUB_JOB -e GITHUB_REF -e GITHUB_SHA -e GITHUB_REPOSITORY -e GITHUB_REPOSITORY_OWNER -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RETENTION_DAYS -e GITHUB_RUN_ATTEMPT -e GITHUB_ACTOR -e GITHUB_WORKFLOW -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GITHUB_EVENT_NAME -e GITHUB_SERVER_URL -e GITHUB_API_URL -e GITHUB_GRAPHQL_URL -e GITHUB_REF_NAME -e GITHUB_REF_PROTECTED -e GITHUB_REF_TYPE -e GITHUB_WORKSPACE -e GITHUB_ACTION -e GITHUB_EVENT_PATH -e GITHUB_ACTION_REPOSITORY -e GITHUB_ACTION_REF -e GITHUB_PATH -e GITHUB_ENV -e RUNNER_OS -e RUNNER_ARCH -e RUNNER_NAME -e RUNNER_TOOL_CACHE -e RUNNER_TEMP -e RUNNER_WORKSPACE -e ACTIONS_RUNTIME_URL -e ACTIONS_RUNTIME_TOKEN -e ACTIONS_CACHE_URL -e GITHUB_ACTIONS=true -e CI=true -v "/var/run/docker.sock":"/var/run/docker.sock" -v "/home/runner/work/_temp/_github_home":"/github/home" -v "/home/runner/work/_temp/_github_workflow":"/github/workflow" -v "/home/runner/work/_temp/_runner_file_commands":"/github/file_commands" -v "/home/runner/work/inflow-android/inflow-android":"/github/workspace" ghcr.io/danger/danger-kotlin:1.0.0 --failOnErrors --no-publish-check
Executing $(which danger) ci --process danger-kotlin --passURLForDSL --failOnErrors --no-publish-check - pid 1
Executing kotlinc -script-templates systems.danger.kts.DangerFileScript -cp /usr/local/lib/danger/danger-kotlin.jar -script Dangerfile.df.kts /tmp/danger-dsl.json danger_out.json - pid 24


kotlinx.serialization.MissingFieldException: Fields [issue, pr, commits, reviews, requested_reviewers] are required for type with serial name 'systems.danger.kotlin.models.github.GitHub', but they were missing

	at kotlinx.serialization.internal.PluginExceptionsKt.throwMissingFieldException(PluginExceptions.kt:20)
	at systems.danger.kotlin.models.github.GitHub.<init>(GitHub.kt:13)
	at systems.danger.kotlin.models.github.GitHub$$serializer.deserialize(GitHub.kt:13)
	at systems.danger.kotlin.models.github.GitHub$$serializer.deserialize(GitHub.kt:13)
	at kotlinx.serialization.json.internal.PolymorphicKt.decodeSerializableValuePolymorphic(Polymorphic.kt:63)
	at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:32)
	at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableValue(AbstractDecoder.kt:43)
	at kotlinx.serialization.encoding.AbstractDecoder.decodeNullableSerializableElement(AbstractDecoder.kt:79)
	at systems.danger.kotlin.models.danger.DangerDSL$$serializer.deserialize(DangerDSL.kt:14)
	at systems.danger.kotlin.models.danger.DangerDSL$$serializer.deserialize(DangerDSL.kt:14)
	at kotlinx.serialization.json.internal.PolymorphicKt.decodeSerializableValuePolymorphic(Polymorphic.kt:63)
	at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:32)
	at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableValue(AbstractDecoder.kt:43)
	at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableElement(AbstractDecoder.kt:70)
	at systems.danger.kotlin.models.danger.DSL$$serializer.deserialize(DangerDSL.kt:9)
	at systems.danger.kotlin.models.danger.DSL$$serializer.deserialize(DangerDSL.kt:9)
	at kotlinx.serialization.json.internal.PolymorphicKt.decodeSerializableValuePolymorphic(Polymorphic.kt:63)
	at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:32)
	at kotlinx.serialization.json.Json.decodeFromString(Json.kt:95)
	at systems.danger.kotlin.MainDangerRunner.<init>(MainDangerRunner.kt:131)
	at systems.danger.kotlin.MainScriptKt.Danger(MainScript.kt:49)
	at Dangerfile_df.<init>(Dangerfile.df.kts:32)

warning: some JAR files in the classpath have the Kotlin Runtime library bundled into them. This may cause difficult to debug problems if there's a different version of the Kotlin Runtime library in the classpath. Consider removing these libraries from the classpath
/usr/local/lib/danger/danger-kotlin.jar: warning: library has Kotlin runtime bundled into it

Uncaught Kotlin exception: kotlin.Exception: Command kotlinc -script-templates systems.danger.kts.DangerFileScript -cp /usr/local/lib/danger/danger-kotlin.jar -script Dangerfile.df.kts /tmp/danger-dsl.json danger_out.json exited with code 768

    at kfun:systems.danger.cmd.Cmd.exec#internal (0x41d751)
    at kfun:systems.danger.cmd.dangerfile.DangerFile#execute(kotlin.String;kotlin.String){} (0x41e271)
    at kfun:systems.danger.DangerKotlin#run(){} (0x41c68f)
    at kfun:#main(kotlin.Array<kotlin.String>){} (0x41b6f7)
    at Init_and_run_start (0x44c656)
    at __libc_start_main (0x7f86460f5b97)
    at  (0x405031)
    at  ((nil))

Danger: ⅹ Failing the build, there is 1 fail.
## Failures
`danger-kotlin` failed.
## Markdowns
### Log


Executing kotlinc -script-templates systems.danger.kts.DangerFileScript -cp /usr/local/lib/danger/danger-kotlin.jar -script Dangerfile.df.kts /tmp/danger-dsl.json danger_out.json - pid 24
Uncaught Kotlin exception: kotlin.Exception: Command kotlinc -script-templates systems.danger.kts.DangerFileScript -cp /usr/local/lib/danger/danger-kotlin.jar -script Dangerfile.df.kts /tmp/danger-dsl.json danger_out.json exited with code 768
    at kfun:systems.danger.cmd.Cmd.exec#internal (0x41d751)
    at kfun:systems.danger.cmd.dangerfile.DangerFile#execute(kotlin.String;kotlin.String){} (0x41e271)
    at kfun:systems.danger.DangerKotlin#run(){} (0x41c68f)
    at kfun:#main(kotlin.Array<kotlin.String>){} (0x41b6f7)
    at Init_and_run_start (0x44c656)
    at __libc_start_main (0x7f86460f5b97)
    at  (0x405031)
    at  ((nil))

Uncaught Kotlin exception: kotlin.Exception: Command $(which danger) ci --process danger-kotlin --passURLForDSL --failOnErrors --no-publish-check exited with code 256
    at kfun:systems.danger.cmd.Cmd.exec#internal (0x41d751)
    at kfun:systems.danger.cmd.dangerjs.DangerJS#process(systems.danger.cmd.Command;kotlin.String;kotlin.collections.List<kotlin.String>){} (0x41f2bb)
    at kfun:#main(kotlin.Array<kotlin.String>){} (0x41b95b)
    at Init_and_run_start (0x44c656)
    at __libc_start_main (0x7fc88debcb97)
    at  (0x405031)
    at  ((nil))

Any help with fixing this would be appreciated.

Linux init script fails on Ubuntu 20.04

Hello, I've recently updated to Ubuntu 20.04 and whereas the installation script worked before on 18.04 it now fails with
e: Unable to compile C bridges

command

bash <(curl -s https://raw.githubusercontent.com/danger/kotlin/master/scripts/install.sh)

logs

Downloading dependency: https://download.jetbrains.com/kotlin/native/libffi-3.2.1-2-linux-x86-64.tar.gz (0 bytes/55.1 kiB).
Downloading dependency: https://download.jetbrains.com/kotlin/native/libffi-3.2.1-2-linux-x86-64.tar.gz (55.1 kiB/55.1 kiB). Done.
Extracting dependency: /root/.konan/cache/libffi-3.2.1-2-linux-x86-64.tar.gz into /root/.konan/dependencies
  
Downloading dependency: https://download.jetbrains.com/kotlin/native/lldb-2-linux.tar.gz (0 bytes/30.5 MiB).
Downloading dependency: https://download.jetbrains.com/kotlin/native/lldb-2-linux.tar.gz (30.5 MiB/30.5 MiB). Done.
Extracting dependency: /root/.konan/cache/lldb-2-linux.tar.gz into /root/.konan/dependencies
e: Unable to compile C bridges
  
FAILURE: Build failed with an exception.
 
* What went wrong:
Execution failed for task ':danger-kotlin:linkDebugExecutableRunner'.
> Compilation finished with errors
  
> Task :danger-kotlin:linkDebugExecutableRunner FAILED
  
BUILD FAILED in 41s
2 actionable tasks: 2 executed
make: *** [Makefile:17: build] Error 1
Process exited with code 0

Any idea how to fix that or what the problem is?
Thanks

Cannot install Kotlin Danger neither from git clone or ssh

Hi,

I tried to install Kotlin Danger from git clone and through SSH script.
Everytime I try to install it I get this error:

FAILURE: Build failed with an exception.

* Where:

Settings file '/Users/XXX/Desktop/danger-kotlin/kotlin/scripts/_danger-kotlin/settings.gradle'

* What went wrong:

Could not compile settings file '/Users/XXX/Desktop/danger-kotlin/kotlin/scripts/_danger-kotlin/settings.gradle'.

> startup failed:

  General error during semantic analysis: Unsupported class file major version 62

I'm working from an Macbook Pro 2019 Big Sur (11.6.6).

Have you ever had this error?
How can We fix it?

Here is the full log:

java.lang.IllegalArgumentException: Unsupported class file major version 62 at groovyjarjarasm.asm.ClassReader.<init>(ClassReader.java:196) at groovyjarjarasm.asm.ClassReader.<init>(ClassReader.java:177) at groovyjarjarasm.asm.ClassReader.<init>(ClassReader.java:163) at groovyjarjarasm.asm.ClassReader.<init>(ClassReader.java:284) at org.codehaus.groovy.ast.decompiled.AsmDecompiler.parseClass(AsmDecompiler.java:81) at org.codehaus.groovy.control.ClassNodeResolver.findDecompiled(ClassNodeResolver.java:251) at org.codehaus.groovy.control.ClassNodeResolver.tryAsLoaderClassOrScript(ClassNodeResolver.java:189) at org.codehaus.groovy.control.ClassNodeResolver.findClassNode(ClassNodeResolver.java:169) at org.codehaus.groovy.control.ClassNodeResolver.resolveName(ClassNodeResolver.java:125) at org.codehaus.groovy.ast.decompiled.AsmReferenceResolver.resolveClassNullable(AsmReferenceResolver.java:57) at org.codehaus.groovy.ast.decompiled.AsmReferenceResolver.resolveClass(AsmReferenceResolver.java:44) at org.codehaus.groovy.ast.decompiled.AsmReferenceResolver.resolveNonArrayType(AsmReferenceResolver.java:79) at org.codehaus.groovy.ast.decompiled.AsmReferenceResolver.resolveType(AsmReferenceResolver.java:70) at org.codehaus.groovy.ast.decompiled.MemberSignatureParser.createMethodNode(MemberSignatureParser.java:57) at org.codehaus.groovy.ast.decompiled.DecompiledClassNode$2.get(DecompiledClassNode.java:234) at org.codehaus.groovy.ast.decompiled.DecompiledClassNode$2.get(DecompiledClassNode.java:231) at org.codehaus.groovy.ast.decompiled.DecompiledClassNode.createMethodNode(DecompiledClassNode.java:242) at org.codehaus.groovy.ast.decompiled.DecompiledClassNode.lazyInitMembers(DecompiledClassNode.java:199) at org.codehaus.groovy.ast.decompiled.DecompiledClassNode.getDeclaredMethods(DecompiledClassNode.java:122) at org.codehaus.groovy.ast.ClassNode.getMethods(ClassNode.java:912) at org.codehaus.groovy.ast.ClassNode.tryFindPossibleMethod(ClassNode.java:1280) at org.codehaus.groovy.control.StaticImportVisitor.transformMethodCallExpression(StaticImportVisitor.java:252) at org.codehaus.groovy.control.StaticImportVisitor.transform(StaticImportVisitor.java:113) at org.codehaus.groovy.ast.ClassCodeExpressionTransformer.visitExpressionStatement(ClassCodeExpressionTransformer.java:142) at org.codehaus.groovy.ast.stmt.ExpressionStatement.visit(ExpressionStatement.java:40) at org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitClassCodeContainer(ClassCodeVisitorSupport.java:110) at org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitConstructorOrMethod(ClassCodeVisitorSupport.java:121) at org.codehaus.groovy.ast.ClassCodeExpressionTransformer.visitConstructorOrMethod(ClassCodeExpressionTransformer.java:53) at org.codehaus.groovy.control.StaticImportVisitor.visitConstructorOrMethod(StaticImportVisitor.java:89) at org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitConstructor(ClassCodeVisitorSupport.java:128) at org.codehaus.groovy.ast.ClassNode.visitContents(ClassNode.java:1099) at org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitClass(ClassCodeVisitorSupport.java:54) at org.codehaus.groovy.control.StaticImportVisitor.visitClass(StaticImportVisitor.java:83) at org.codehaus.groovy.control.CompilationUnit$14.call(CompilationUnit.java:708) at org.codehaus.groovy.control.CompilationUnit.applyToPrimaryClassNodes(CompilationUnit.java:1084) at org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:640) at org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:618) at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:595) at groovy.lang.GroovyClassLoader.doParseClass(GroovyClassLoader.java:401) at groovy.lang.GroovyClassLoader.access$300(GroovyClassLoader.java:89) at groovy.lang.GroovyClassLoader$5.provide(GroovyClassLoader.java:341) at groovy.lang.GroovyClassLoader$5.provide(GroovyClassLoader.java:338) at org.codehaus.groovy.runtime.memoize.ConcurrentCommonCache.getAndPut(ConcurrentCommonCache.java:147) at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:336) at org.gradle.groovy.scripts.internal.DefaultScriptCompilationHandler.compileScript(DefaultScriptCompilationHandler.java:142) at org.gradle.groovy.scripts.internal.DefaultScriptCompilationHandler.compileToDir(DefaultScriptCompilationHandler.java:98) at org.gradle.groovy.scripts.internal.BuildOperationBackedScriptCompilationHandler$2.run(BuildOperationBackedScriptCompilationHandler.java:54) at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:402) at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:394) at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165) at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250) at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158) at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:92) at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31) at org.gradle.groovy.scripts.internal.BuildOperationBackedScriptCompilationHandler.compileToDir(BuildOperationBackedScriptCompilationHandler.java:51) at org.gradle.groovy.scripts.internal.FileCacheBackedScriptClassCompiler$CompileToCrossBuildCacheAction.execute(FileCacheBackedScriptClassCompiler.java:152) at org.gradle.groovy.scripts.internal.FileCacheBackedScriptClassCompiler$CompileToCrossBuildCacheAction.execute(FileCacheBackedScriptClassCompiler.java:132) at org.gradle.groovy.scripts.internal.FileCacheBackedScriptClassCompiler$ProgressReportingInitializer.execute(FileCacheBackedScriptClassCompiler.java:177) at org.gradle.groovy.scripts.internal.FileCacheBackedScriptClassCompiler$ProgressReportingInitializer.execute(FileCacheBackedScriptClassCompiler.java:156) at org.gradle.cache.internal.DefaultPersistentDirectoryCache$Initializer.initialize(DefaultPersistentDirectoryCache.java:100) at org.gradle.cache.internal.FixedSharedModeCrossProcessCacheAccess$1.run(FixedSharedModeCrossProcessCacheAccess.java:86) at org.gradle.cache.internal.DefaultFileLockManager$DefaultFileLock.doWriteAction(DefaultFileLockManager.java:215) at org.gradle.cache.internal.DefaultFileLockManager$DefaultFileLock.writeFile(DefaultFileLockManager.java:205) at org.gradle.cache.internal.FixedSharedModeCrossProcessCacheAccess.open(FixedSharedModeCrossProcessCacheAccess.java:83) at org.gradle.cache.internal.DefaultCacheAccess.open(DefaultCacheAccess.java:139) at org.gradle.cache.internal.DefaultPersistentDirectoryStore.open(DefaultPersistentDirectoryStore.java:78) at org.gradle.cache.internal.DefaultPersistentDirectoryStore.open(DefaultPersistentDirectoryStore.java:42) at org.gradle.cache.internal.DefaultCacheFactory.doOpen(DefaultCacheFactory.java:95) at org.gradle.cache.internal.DefaultCacheFactory.open(DefaultCacheFactory.java:68) at org.gradle.cache.internal.DefaultCacheRepository$PersistentCacheBuilder.open(DefaultCacheRepository.java:126) at org.gradle.groovy.scripts.internal.FileCacheBackedScriptClassCompiler$RemapBuildScriptsAction.execute(FileCacheBackedScriptClassCompiler.java:435) at org.gradle.groovy.scripts.internal.FileCacheBackedScriptClassCompiler$RemapBuildScriptsAction.execute(FileCacheBackedScriptClassCompiler.java:403) at org.gradle.groovy.scripts.internal.FileCacheBackedScriptClassCompiler$ProgressReportingInitializer.execute(FileCacheBackedScriptClassCompiler.java:177) at org.gradle.groovy.scripts.internal.FileCacheBackedScriptClassCompiler$ProgressReportingInitializer.execute(FileCacheBackedScriptClassCompiler.java:156) at org.gradle.cache.internal.DefaultPersistentDirectoryCache$Initializer.initialize(DefaultPersistentDirectoryCache.java:100) at org.gradle.cache.internal.FixedSharedModeCrossProcessCacheAccess$1.run(FixedSharedModeCrossProcessCacheAccess.java:86) at org.gradle.cache.internal.DefaultFileLockManager$DefaultFileLock.doWriteAction(DefaultFileLockManager.java:215) at org.gradle.cache.internal.DefaultFileLockManager$DefaultFileLock.writeFile(DefaultFileLockManager.java:205) at org.gradle.cache.internal.FixedSharedModeCrossProcessCacheAccess.open(FixedSharedModeCrossProcessCacheAccess.java:83) at org.gradle.cache.internal.DefaultCacheAccess.open(DefaultCacheAccess.java:139) at org.gradle.cache.internal.DefaultPersistentDirectoryStore.open(DefaultPersistentDirectoryStore.java:78) at org.gradle.cache.internal.DefaultPersistentDirectoryStore.open(DefaultPersistentDirectoryStore.java:42) at org.gradle.cache.internal.DefaultCacheFactory.doOpen(DefaultCacheFactory.java:95) at org.gradle.cache.internal.DefaultCacheFactory.open(DefaultCacheFactory.java:68) at org.gradle.cache.internal.DefaultCacheRepository$PersistentCacheBuilder.open(DefaultCacheRepository.java:126) at org.gradle.groovy.scripts.internal.FileCacheBackedScriptClassCompiler.compile(FileCacheBackedScriptClassCompiler.java:105) at org.gradle.groovy.scripts.internal.CrossBuildInMemoryCachingScriptClassCache.getOrCompile(CrossBuildInMemoryCachingScriptClassCache.java:50) at org.gradle.groovy.scripts.internal.BuildScopeInMemoryCachingScriptClassCompiler.compile(BuildScopeInMemoryCachingScriptClassCompiler.java:50) at org.gradle.groovy.scripts.DefaultScriptCompilerFactory$ScriptCompilerImpl.compile(DefaultScriptCompilerFactory.java:49) at org.gradle.configuration.DefaultScriptPluginFactory$ScriptPluginImpl.apply(DefaultScriptPluginFactory.java:209) at org.gradle.configuration.BuildOperationScriptPlugin$1$1.run(BuildOperationScriptPlugin.java:69) at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:402) at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:394) at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165) at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250) at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158) at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:92) at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31) at org.gradle.configuration.BuildOperationScriptPlugin$1.execute(BuildOperationScriptPlugin.java:66) at org.gradle.configuration.BuildOperationScriptPlugin$1.execute(BuildOperationScriptPlugin.java:63) at org.gradle.configuration.internal.DefaultUserCodeApplicationContext.apply(DefaultUserCodeApplicationContext.java:49) at org.gradle.configuration.BuildOperationScriptPlugin.apply(BuildOperationScriptPlugin.java:63) at org.gradle.initialization.ScriptEvaluatingSettingsProcessor.applySettingsScript(ScriptEvaluatingSettingsProcessor.java:74) at org.gradle.initialization.ScriptEvaluatingSettingsProcessor.process(ScriptEvaluatingSettingsProcessor.java:67) at org.gradle.initialization.SettingsEvaluatedCallbackFiringSettingsProcessor.process(SettingsEvaluatedCallbackFiringSettingsProcessor.java:34) at org.gradle.initialization.RootBuildCacheControllerSettingsProcessor.process(RootBuildCacheControllerSettingsProcessor.java:36) at org.gradle.initialization.BuildOperationSettingsProcessor$2.call(BuildOperationSettingsProcessor.java:50) at org.gradle.initialization.BuildOperationSettingsProcessor$2.call(BuildOperationSettingsProcessor.java:47) at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:416) at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:406) at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165) at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250) at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158) at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:102) at org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36) at org.gradle.initialization.BuildOperationSettingsProcessor.process(BuildOperationSettingsProcessor.java:47) at org.gradle.initialization.DefaultSettingsLoader.findSettingsAndLoadIfAppropriate(DefaultSettingsLoader.java:120) at org.gradle.initialization.DefaultSettingsLoader.findAndLoadSettings(DefaultSettingsLoader.java:58) at org.gradle.initialization.SettingsAttachingSettingsLoader.findAndLoadSettings(SettingsAttachingSettingsLoader.java:35) at org.gradle.internal.composite.CommandLineIncludedBuildSettingsLoader.findAndLoadSettings(CommandLineIncludedBuildSettingsLoader.java:34) at org.gradle.internal.composite.ChildBuildRegisteringSettingsLoader.findAndLoadSettings(ChildBuildRegisteringSettingsLoader.java:52) at org.gradle.internal.composite.CompositeBuildSettingsLoader.findAndLoadSettings(CompositeBuildSettingsLoader.java:35) at org.gradle.initialization.DefaultSettingsPreparer.prepareSettings(DefaultSettingsPreparer.java:36) at org.gradle.initialization.BuildOperatingFiringSettingsPreparer$LoadBuild.doLoadBuild(BuildOperatingFiringSettingsPreparer.java:59) at org.gradle.initialization.BuildOperatingFiringSettingsPreparer$LoadBuild.run(BuildOperatingFiringSettingsPreparer.java:54) at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:402) at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:394) at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165) at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250) at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158) at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:92) at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31) at org.gradle.initialization.BuildOperatingFiringSettingsPreparer.prepareSettings(BuildOperatingFiringSettingsPreparer.java:42) at org.gradle.initialization.DefaultGradleLauncher.prepareSettings(DefaultGradleLauncher.java:208) at org.gradle.initialization.DefaultGradleLauncher.doClassicBuildStages(DefaultGradleLauncher.java:151) at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:140) at org.gradle.initialization.DefaultGradleLauncher.executeTasks(DefaultGradleLauncher.java:120) at org.gradle.internal.invocation.GradleBuildController$1.create(GradleBuildController.java:74) at org.gradle.internal.invocation.GradleBuildController$1.create(GradleBuildController.java:67) at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:189) at org.gradle.internal.work.StopShieldingWorkerLeaseService.withLocks(StopShieldingWorkerLeaseService.java:40) at org.gradle.internal.invocation.GradleBuildController.doBuild(GradleBuildController.java:67) at org.gradle.internal.invocation.GradleBuildController.run(GradleBuildController.java:56) at org.gradle.tooling.internal.provider.ExecuteBuildActionRunner.run(ExecuteBuildActionRunner.java:31) at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35) at org.gradle.launcher.exec.BuildOutcomeReportingBuildActionRunner.run(BuildOutcomeReportingBuildActionRunner.java:63) at org.gradle.tooling.internal.provider.ValidatingBuildActionRunner.run(ValidatingBuildActionRunner.java:32) at org.gradle.launcher.exec.BuildCompletionNotifyingBuildActionRunner.run(BuildCompletionNotifyingBuildActionRunner.java:39) at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner$3.call(RunAsBuildOperationBuildActionRunner.java:51) at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner$3.call(RunAsBuildOperationBuildActionRunner.java:45) at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:416) at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:406) at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165) at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250) at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158) at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:102) at org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36) at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner.run(RunAsBuildOperationBuildActionRunner.java:45) at org.gradle.launcher.exec.InProcessBuildActionExecuter$1.transform(InProcessBuildActionExecuter.java:50) at org.gradle.launcher.exec.InProcessBuildActionExecuter$1.transform(InProcessBuildActionExecuter.java:47) at org.gradle.composite.internal.DefaultRootBuildState.run(DefaultRootBuildState.java:80) at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:47) at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:31) at org.gradle.launcher.exec.BuildTreeScopeBuildActionExecuter.execute(BuildTreeScopeBuildActionExecuter.java:42) at org.gradle.launcher.exec.BuildTreeScopeBuildActionExecuter.execute(BuildTreeScopeBuildActionExecuter.java:28) at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:78) at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:52) at org.gradle.tooling.internal.provider.SubscribableBuildActionExecuter.execute(SubscribableBuildActionExecuter.java:60) at org.gradle.tooling.internal.provider.SubscribableBuildActionExecuter.execute(SubscribableBuildActionExecuter.java:38) at org.gradle.tooling.internal.provider.SessionScopeBuildActionExecuter.execute(SessionScopeBuildActionExecuter.java:68) at org.gradle.tooling.internal.provider.SessionScopeBuildActionExecuter.execute(SessionScopeBuildActionExecuter.java:38) at org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:37) at org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:26) at org.gradle.tooling.internal.provider.ParallelismConfigurationBuildActionExecuter.execute(ParallelismConfigurationBuildActionExecuter.java:43) at org.gradle.tooling.internal.provider.ParallelismConfigurationBuildActionExecuter.execute(ParallelismConfigurationBuildActionExecuter.java:29) at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:60) at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:32) at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:55) at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:41) at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:48) at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:32) at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:68) at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:37) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104) at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:39) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104) at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:29) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104) at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:35) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104) at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.create(ForwardClientInput.java:78) at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.create(ForwardClientInput.java:75) at org.gradle.util.Swapper.swap(Swapper.java:38) at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:75) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104) at org.gradle.launcher.daemon.server.exec.LogAndCheckHealth.execute(LogAndCheckHealth.java:55) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104) at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:63) at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:37) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104) at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:82) at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:37) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104) at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:52) at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:297) at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64) at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56) at java.base/java.lang.Thread.run(Thread.java:833) 1 error

Danger Plugin Api surface

I'm try to build my first plugin, and I wonder why the DangerPlugin doesn't provide access to git Api ?

I mean I know I can use the git api at the Danger file level, but in my case I have many things to do with it, I would like to encapsulate into a plugin ?

Is there a way to handle my need ? Or maybe this is not yet done ? Or not intended ?

Thanks again for your time

GitHub Action and make install fails with: Could not resolve org.jetbrains.kotlinx:kotlinx-datetime:0.1.0

When trying to use GitHub Action or trigger make install, the project fails with:

FAILURE: Build failed with an exception.

* What went wrong:
Could not determine the dependencies of task ':danger-kotlin-library:shadowJar'.
> Could not resolve all dependencies for configuration ':danger-kotlin-library:includeRecursiveJar'.
   > Could not resolve org.jetbrains.kotlinx:kotlinx-datetime:0.1.0.
     Required by:
         project :danger-kotlin-library
      > Could not resolve org.jetbrains.kotlinx:kotlinx-datetime:0.1.0.
         > Could not get resource 'https://kotlin.bintray.com/kotlinx/org/jetbrains/kotlinx/kotlinx-datetime/0.1.0/kotlinx-datetime-0.1.0.pom'.
            > Could not HEAD 'https://kotlin.bintray.com/kotlinx/org/jetbrains/kotlinx/kotlinx-datetime/0.1.0/kotlinx-datetime-0.1.0.pom'. Received status code 403 from server: Forbidden

Changing to Kotlin DataTime 0.1.1 seems to fix the issue

Failed to install 1.0.0 and run it !

I was not able to install previous version, but here is the log of the script that install and run danger-kt on my ci

I'm running Danger on Bitrise with a Linux stack

The script that run Danger is:

sudo apt-get install -y libncurses5
bash <(curl -s https://raw.githubusercontent.com/danger/kotlin/master/scripts/install.sh)
source ~/.bash_profile
danger-kotlin ci

My DangerFile is:

import systems.danger.kotlin.*

danger(args) {
    warn("PR is classed as Work in Progress")
}

The log:

+ sudo apt-get install -y libncurses5
Reading package lists...
Building dependency tree...
Reading state information...
The following additional packages will be installed:
  libgpm2 libtinfo5
Suggested packages:
  gpm
The following NEW packages will be installed:
  libgpm2 libncurses5 libtinfo5
0 upgraded, 3 newly installed, 0 to remove and 1 not upgraded.
Need to get 195 kB of archives.
After this operation, 925 kB of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu focal/main amd64 libgpm2 amd64 1.20.7-5 [15.1 kB]
Get:2 http://archive.ubuntu.com/ubuntu focal/universe amd64 libtinfo5 amd64 6.2-0ubuntu2 [83.0 kB]
Get:3 http://archive.ubuntu.com/ubuntu focal/universe amd64 libncurses5 amd64 6.2-0ubuntu2 [96.9 kB]
debconf: delaying package configuration, since apt-utils is not installed
Fetched 195 kB in 1s (220 kB/s)
Selecting previously unselected package libgpm2:amd64.
(Reading database ... 
(Reading database ... 5%
(Reading database ... 10%
(Reading database ... 15%
(Reading database ... 20%
(Reading database ... 25%
(Reading database ... 30%
(Reading database ... 35%
(Reading database ... 40%
(Reading database ... 45%
(Reading database ... 50%
(Reading database ... 55%
(Reading database ... 60%
(Reading database ... 65%
(Reading database ... 70%
(Reading database ... 75%
(Reading database ... 80%
(Reading database ... 85%
(Reading database ... 90%
(Reading database ... 95%
(Reading database ... 100%
(Reading database ... 87871 files and directories currently installed.)
Preparing to unpack .../libgpm2_1.20.7-5_amd64.deb ...
Unpacking libgpm2:amd64 (1.20.7-5) ...
Selecting previously unselected package libtinfo5:amd64.
Preparing to unpack .../libtinfo5_6.2-0ubuntu2_amd64.deb ...
Unpacking libtinfo5:amd64 (6.2-0ubuntu2) ...
Selecting previously unselected package libncurses5:amd64.
Preparing to unpack .../libncurses5_6.2-0ubuntu2_amd64.deb ...
Unpacking libncurses5:amd64 (6.2-0ubuntu2) ...
Setting up libgpm2:amd64 (1.20.7-5) ...
Setting up libtinfo5:amd64 (6.2-0ubuntu2) ...
Setting up libncurses5:amd64 (6.2-0ubuntu2) ...
Processing triggers for libc-bin (2.31-0ubuntu9.2) ...
+ bash /dev/fd/63
++ curl -s https://raw.githubusercontent.com/danger/kotlin/master/scripts/install.sh
Installing danger
npm WARN deprecated @babel/[email protected]: 🚨 This package has been deprecated in favor of separate inclusion of a polyfill and regenerator-runtime (when needed). See the @babel/polyfill docs (https://babeljs.io/docs/en/babel-polyfill) for more information.
npm WARN deprecated [email protected]: The gitlab package has found a new home in the @gitbeaker organization. For the latest gitlab node library, check out @gitbeaker/node. A full list of the features can be found here: https://github.com/jdalrymple/gitbeaker#readme
npm WARN deprecated [email protected]: core-js@<3.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Please, upgrade your dependencies to the actual version of core-js.
added 159 packages, and audited 160 packages in 6s
6 packages are looking for funding
  run `npm fund` for details
found 0 vulnerabilities
npm notice 
npm notice New major version of npm available! 7.24.2 -> 8.1.2
npm notice Changelog: <https://github.com/npm/cli/releases/tag/v8.1.2>
npm notice Run `npm install -g [email protected]` to update!
npm notice 
Installing kotlin compiler 1.4.31
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100   630  100   630    0     0   3333      0 --:--:-- --:--:-- --:--:--  3315

100 59.9M  100 59.9M    0     0  67.2M      0 --:--:-- --:--:-- --:--:-- 67.2M
Archive:  kotlin-compiler.zip
   creating: /usr/local/kotlinc/
  inflating: /usr/local/kotlinc/build.txt  
   creating: /usr/local/kotlinc/bin/
  inflating: /usr/local/kotlinc/bin/kapt  
  inflating: /usr/local/kotlinc/bin/kapt.bat  
  inflating: /usr/local/kotlinc/bin/kotlin  
  inflating: /usr/local/kotlinc/bin/kotlin-dce-js  
  inflating: /usr/local/kotlinc/bin/kotlin-dce-js.bat  
  inflating: /usr/local/kotlinc/bin/kotlin.bat  
  inflating: /usr/local/kotlinc/bin/kotlinc  
  inflating: /usr/local/kotlinc/bin/kotlinc-js  
  inflating: /usr/local/kotlinc/bin/kotlinc-js.bat  
  inflating: /usr/local/kotlinc/bin/kotlinc-jvm  
  inflating: /usr/local/kotlinc/bin/kotlinc-jvm.bat  
  inflating: /usr/local/kotlinc/bin/kotlinc.bat  
   creating: /usr/local/kotlinc/lib/
  inflating: /usr/local/kotlinc/lib/allopen-compiler-plugin.jar  
  inflating: /usr/local/kotlinc/lib/android-extensions-compiler.jar  
  inflating: /usr/local/kotlinc/lib/android-extensions-runtime.jar  
  inflating: /usr/local/kotlinc/lib/annotations-13.0.jar  
  inflating: /usr/local/kotlinc/lib/js.engines.jar  
  inflating: /usr/local/kotlinc/lib/jvm-abi-gen.jar  
  inflating: /usr/local/kotlinc/lib/kotlin-annotation-processing-cli.jar  
  inflating: /usr/local/kotlinc/lib/kotlin-annotation-processing-runtime.jar  
  inflating: /usr/local/kotlinc/lib/kotlin-annotation-processing.jar  
  inflating: /usr/local/kotlinc/lib/kotlin-annotations-android.jar  
  inflating: /usr/local/kotlinc/lib/kotlin-annotations-jvm-sources.jar  
  inflating: /usr/local/kotlinc/lib/kotlin-annotations-jvm.jar  
  inflating: /usr/local/kotlinc/lib/kotlin-ant.jar  
  inflating: /usr/local/kotlinc/lib/kotlin-compiler.jar  
  inflating: /usr/local/kotlinc/lib/kotlin-coroutines-experimental-compat-sources.jar  
  inflating: /usr/local/kotlinc/lib/kotlin-coroutines-experimental-compat.jar  
  inflating: /usr/local/kotlinc/lib/kotlin-daemon-client.jar  
  inflating: /usr/local/kotlinc/lib/kotlin-daemon.jar  
  inflating: /usr/local/kotlinc/lib/kotlin-imports-dumper-compiler-plugin.jar  
  inflating: /usr/local/kotlinc/lib/kotlin-main-kts.jar  
  inflating: /usr/local/kotlinc/lib/kotlin-preloader.jar  
  inflating: /usr/local/kotlinc/lib/kotlin-reflect-sources.jar  
  inflating: /usr/local/kotlinc/lib/kotlin-reflect.jar  
  inflating: /usr/local/kotlinc/lib/kotlin-runner.jar  
  inflating: /usr/local/kotlinc/lib/kotlin-script-runtime-sources.jar  
  inflating: /usr/local/kotlinc/lib/kotlin-script-runtime.jar  
  inflating: /usr/local/kotlinc/lib/kotlin-scripting-common.jar  
  inflating: /usr/local/kotlinc/lib/kotlin-scripting-compiler-impl.jar  
  inflating: /usr/local/kotlinc/lib/kotlin-scripting-compiler.jar  
  inflating: /usr/local/kotlinc/lib/kotlin-scripting-js.jar  
  inflating: /usr/local/kotlinc/lib/kotlin-scripting-jvm.jar  
  inflating: /usr/local/kotlinc/lib/kotlin-stdlib-jdk7-sources.jar  
  inflating: /usr/local/kotlinc/lib/kotlin-stdlib-jdk7.jar  
  inflating: /usr/local/kotlinc/lib/kotlin-stdlib-jdk8-sources.jar  
  inflating: /usr/local/kotlinc/lib/kotlin-stdlib-jdk8.jar  
  inflating: /usr/local/kotlinc/lib/kotlin-stdlib-js-sources.jar  
  inflating: /usr/local/kotlinc/lib/kotlin-stdlib-js.jar  
  inflating: /usr/local/kotlinc/lib/kotlin-stdlib-sources.jar  
  inflating: /usr/local/kotlinc/lib/kotlin-stdlib.jar  
  inflating: /usr/local/kotlinc/lib/kotlin-test-js-sources.jar  
  inflating: /usr/local/kotlinc/lib/kotlin-test-js.jar  
  inflating: /usr/local/kotlinc/lib/kotlin-test-junit-sources.jar  
  inflating: /usr/local/kotlinc/lib/kotlin-test-junit.jar  
  inflating: /usr/local/kotlinc/lib/kotlin-test-junit5-sources.jar  
  inflating: /usr/local/kotlinc/lib/kotlin-test-junit5.jar  
  inflating: /usr/local/kotlinc/lib/kotlin-test-sources.jar  
  inflating: /usr/local/kotlinc/lib/kotlin-test-testng-sources.jar  
  inflating: /usr/local/kotlinc/lib/kotlin-test-testng.jar  
  inflating: /usr/local/kotlinc/lib/kotlin-test.jar  
  inflating: /usr/local/kotlinc/lib/kotlinx-coroutines-core.jar  
  inflating: /usr/local/kotlinc/lib/kotlinx-serialization-compiler-plugin.jar  
  inflating: /usr/local/kotlinc/lib/mutability-annotations-compat.jar  
  inflating: /usr/local/kotlinc/lib/noarg-compiler-plugin.jar  
  inflating: /usr/local/kotlinc/lib/parcelize-compiler.jar  
  inflating: /usr/local/kotlinc/lib/parcelize-runtime.jar  
  inflating: /usr/local/kotlinc/lib/sam-with-receiver-compiler-plugin.jar  
  inflating: /usr/local/kotlinc/lib/trove4j.jar  
   creating: /usr/local/kotlinc/license/
  inflating: /usr/local/kotlinc/license/COPYRIGHT.txt  
  inflating: /usr/local/kotlinc/license/LICENSE.txt  
  inflating: /usr/local/kotlinc/license/NOTICE.txt  
  inflating: /usr/local/kotlinc/license/README.md  
   creating: /usr/local/kotlinc/license/third_party/
  inflating: /usr/local/kotlinc/license/third_party/aosp_license.txt  
  inflating: /usr/local/kotlinc/license/third_party/args4j_LICENSE.txt  
  inflating: /usr/local/kotlinc/license/third_party/asm_license.txt  
  inflating: /usr/local/kotlinc/license/third_party/asmble_license.txt  
  inflating: /usr/local/kotlinc/license/third_party/boost_LICENSE.txt  
  inflating: /usr/local/kotlinc/license/third_party/closure-compiler_LICENSE.txt  
  inflating: /usr/local/kotlinc/license/third_party/dart_LICENSE.txt  
  inflating: /usr/local/kotlinc/license/third_party/fastutil_licence  
  inflating: /usr/local/kotlinc/license/third_party/gradle_license.txt  
  inflating: /usr/local/kotlinc/license/third_party/guava_license.txt  
  inflating: /usr/local/kotlinc/license/third_party/gwt_license.txt  
  inflating: /usr/local/kotlinc/license/third_party/jquery_license.txt  
  inflating: /usr/local/kotlinc/license/third_party/jshashtable_license.txt  
  inflating: /usr/local/kotlinc/license/third_party/karma-teamcity-reporter_LICENSE.txt  
  inflating: /usr/local/kotlinc/license/third_party/karma_LICENSE.txt  
  inflating: /usr/local/kotlinc/license/third_party/lodash_LICENSE.txt  
  inflating: /usr/local/kotlinc/license/third_party/maven_LICENSE.txt  
  inflating: /usr/local/kotlinc/license/third_party/mocha-teamcity-reporter_LICENSE.txt  
  inflating: /usr/local/kotlinc/license/third_party/pcollections_LICENSE.txt  
  inflating: /usr/local/kotlinc/license/third_party/prototype_license.txt  
  inflating: /usr/local/kotlinc/license/third_party/qunit_license.txt  
  inflating: /usr/local/kotlinc/license/third_party/rhino_LICENSE.txt  
  inflating: /usr/local/kotlinc/license/third_party/scala_license.txt  
  inflating: /usr/local/kotlinc/license/third_party/teamcity-service-messages_LICENSE.txt  
  inflating: /usr/local/kotlinc/license/third_party/trove_license.txt  
  inflating: /usr/local/kotlinc/license/third_party/trove_readme_license.txt  
   creating: /usr/local/kotlinc/license/third_party/testdata/
  inflating: /usr/local/kotlinc/license/third_party/testdata/dagger_license.txt  
  inflating: /usr/local/kotlinc/license/third_party/testdata/eclipse_distribution_license.txt  
  inflating: /usr/local/kotlinc/license/third_party/testdata/eclipse_license.txt  
  inflating: /usr/local/kotlinc/license/third_party/testdata/findbugs_license.txt  
  inflating: /usr/local/kotlinc/license/third_party/testdata/lombok_license.txt  
  inflating: /usr/local/kotlinc/license/third_party/testdata/rxjava_license.txt  
  inflating: /usr/local/kotlinc/license/third_party/testdata/spring_license.txt  
Cloning into '_danger-kotlin'...
Note: switching to '7b22c8beac4dc8ef45df622b2940c36e2c394d99'.
You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:
  git switch -c <new-branch-name>
Or undo this operation with:
  git switch -
Turn off this advice by setting config variable advice.detachedHead to false
./gradlew build -p danger-plugin-installer
Downloading https://services.gradle.org/distributions/gradle-6.3-bin.zip
.........10%..........20%..........30%.........40%..........50%..........60%.........70%..........80%..........90%..........100%
Starting a Gradle Daemon (subsequent builds will be faster)
> Configure project :
Secret key SONATYPE_USER not found. Falling back to default
Secret key SONATYPE_PASS not found. Falling back to default
> Configure project :danger-kotlin
Kotlin Multiplatform Projects are an Alpha feature. See: https://kotlinlang.org/docs/reference/evolution/components-stability.html. To hide this message, add 'kotlin.mpp.stability.nowarn=true' to the Gradle properties.
Please wait while Kotlin/Native compiler 1.5.10 is being installed.
Download https://download.jetbrains.com/kotlin/native/builds/releases/1.5.10/linux/kotlin-native-prebuilt-linux-1.5.10.tar.gz (88.01 MB)
Download https://download.jetbrains.com/kotlin/native/builds/releases/1.5.10/linux/kotlin-native-prebuilt-linux-1.5.10.tar.gz finished, took 4 s 506 ms
Unpack Kotlin/Native compiler to /root/.konan/kotlin-native-prebuilt-linux-1.5.10
Unpack Kotlin/Native compiler to /root/.konan/kotlin-native-prebuilt-linux-1.5.10 finished, took 2 s 523 ms
> Configure project :danger-kotlin-sdk
Secret key SONATYPE_USER not found. Falling back to default
Secret key SONATYPE_PASS not found. Falling back to default
> Task :danger-plugin-installer:compileKotlin
w: Runtime JAR files in the classpath should have the same version. These files were found in the classpath:
    /root/.gradle/wrapper/dists/gradle-6.3-bin/8tpu6egwsccjzp10c1jckl0rx/gradle-6.3/lib/kotlin-stdlib-1.3.70.jar (version 1.3)
    /root/.gradle/wrapper/dists/gradle-6.3-bin/8tpu6egwsccjzp10c1jckl0rx/gradle-6.3/lib/kotlin-stdlib-common-1.3.70.jar (version 1.3)
    /root/.gradle/wrapper/dists/gradle-6.3-bin/8tpu6egwsccjzp10c1jckl0rx/gradle-6.3/lib/kotlin-stdlib-jdk8-1.3.70.jar (version 1.3)
    /root/.gradle/wrapper/dists/gradle-6.3-bin/8tpu6egwsccjzp10c1jckl0rx/gradle-6.3/lib/kotlin-stdlib-jdk7-1.3.70.jar (version 1.3)
    /root/.gradle/wrapper/dists/gradle-6.3-bin/8tpu6egwsccjzp10c1jckl0rx/gradle-6.3/lib/kotlin-reflect-1.3.70.jar (version 1.3)
    /root/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-jdk8/1.5.10/3f4af7aff21c4ec46e3cdd645639d0a63a68d3d0/kotlin-stdlib-jdk8-1.5.10.jar (version 1.5)
    /root/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-jdk7/1.5.10/c49d0703d16c6cb1526cc07b9b46486da1dd8a60/kotlin-stdlib-jdk7-1.5.10.jar (version 1.5)
    /root/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib/1.5.10/da6a904b132f0402fa4d79169a3c1770598d4702/kotlin-stdlib-1.5.10.jar (version 1.5)
    /root/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-common/1.5.10/6b84d926e28493be69daf673e40076f89492ef7/kotlin-stdlib-common-1.5.10.jar (version 1.5)
w: Consider providing an explicit dependency on kotlin-reflect 1.5 to prevent strange errors
w: Some runtime JAR files in the classpath have an incompatible version. Consider removing them from the classpath
> Task :danger-plugin-installer:compileJava NO-SOURCE
> Task :danger-plugin-installer:pluginDescriptors
> Task :danger-plugin-installer:processResources
> Task :danger-plugin-installer:classes
> Task :danger-plugin-installer:inspectClassesForKotlinIC
> Task :danger-plugin-installer:jar
> Task :danger-plugin-installer:assemble
> Task :danger-plugin-installer:compileTestKotlin NO-SOURCE
> Task :danger-plugin-installer:pluginUnderTestMetadata
> Task :danger-plugin-installer:compileTestJava NO-SOURCE
> Task :danger-plugin-installer:processTestResources NO-SOURCE
> Task :danger-plugin-installer:testClasses UP-TO-DATE
> Task :danger-plugin-installer:test NO-SOURCE
> Task :danger-plugin-installer:validatePlugins
> Task :danger-plugin-installer:check
> Task :danger-plugin-installer:build
Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/6.3/userguide/command_line_interface.html#sec:command_line_warnings
BUILD SUCCESSFUL in 1m 30s
7 actionable tasks: 7 executed
./gradlew install -p danger-plugin-installer
> Configure project :
Secret key SONATYPE_USER not found. Falling back to default
Secret key SONATYPE_PASS not found. Falling back to default
> Configure project :danger-kotlin
Kotlin Multiplatform Projects are an Alpha feature. See: https://kotlinlang.org/docs/reference/evolution/components-stability.html. To hide this message, add 'kotlin.mpp.stability.nowarn=true' to the Gradle properties.
> Configure project :danger-kotlin-sdk
Secret key SONATYPE_USER not found. Falling back to default
Secret key SONATYPE_PASS not found. Falling back to default
> Task :danger-plugin-installer:compileKotlin UP-TO-DATE
> Task :danger-plugin-installer:compileJava NO-SOURCE
> Task :danger-plugin-installer:pluginDescriptors UP-TO-DATE
> Task :danger-plugin-installer:processResources UP-TO-DATE
> Task :danger-plugin-installer:classes UP-TO-DATE
> Task :danger-plugin-installer:inspectClassesForKotlinIC UP-TO-DATE
> Task :danger-plugin-installer:jar UP-TO-DATE
> Task :danger-plugin-installer:install
Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/6.3/userguide/command_line_interface.html#sec:command_line_warnings
BUILD SUCCESSFUL in 3s
6 actionable tasks: 1 executed, 5 up-to-date
./gradlew shadowJar -p danger-kotlin-library
> Configure project :
Secret key SONATYPE_USER not found. Falling back to default
Secret key SONATYPE_PASS not found. Falling back to default
> Configure project :danger-kotlin
Kotlin Multiplatform Projects are an Alpha feature. See: https://kotlinlang.org/docs/reference/evolution/components-stability.html. To hide this message, add 'kotlin.mpp.stability.nowarn=true' to the Gradle properties.
> Configure project :danger-kotlin-sdk
Secret key SONATYPE_USER not found. Falling back to default
Secret key SONATYPE_PASS not found. Falling back to default
> Task :danger-kotlin-kts:compileKotlin
> Task :danger-kotlin-kts:compileJava NO-SOURCE
> Task :danger-kotlin-kts:processResources NO-SOURCE
> Task :danger-kotlin-kts:classes UP-TO-DATE
> Task :danger-kotlin-kts:inspectClassesForKotlinIC
> Task :danger-kotlin-kts:jar
> Task :danger-kotlin-sdk:compileKotlin
> Task :danger-kotlin-sdk:compileJava NO-SOURCE
> Task :danger-kotlin-sdk:processResources NO-SOURCE
> Task :danger-kotlin-sdk:classes UP-TO-DATE
> Task :danger-kotlin-sdk:inspectClassesForKotlinIC
> Task :danger-kotlin-sdk:jar
> Task :danger-kotlin-library:compileKotlin
w: JVM target 1.6 is deprecated and will be removed in a future release. Please migrate to JVM target 1.8 or above
w: /bitrise/src/_danger-kotlin/danger-kotlin-library/src/main/kotlin/systems/danger/kotlin/models/danger/DangerResults.kt: (1, 22): This declaration is experimental and its usage should be marked with '@kotlinx.serialization.ExperimentalSerializationApi' or '@OptIn(kotlinx.serialization.ExperimentalSerializationApi::class)'
w: /bitrise/src/_danger-kotlin/danger-kotlin-library/src/main/kotlin/systems/danger/kotlin/models/github/GitHub.kt: (1, 22): This declaration is experimental and its usage should be marked with '@kotlinx.serialization.ExperimentalSerializationApi' or '@OptIn(kotlinx.serialization.ExperimentalSerializationApi::class)'
w: /bitrise/src/_danger-kotlin/danger-kotlin-library/src/main/kotlin/systems/danger/kotlin/models/gitlab/GitLab.kt: (1, 22): This declaration is experimental and its usage should be marked with '@kotlinx.serialization.ExperimentalSerializationApi' or '@OptIn(kotlinx.serialization.ExperimentalSerializationApi::class)'
> Task :danger-kotlin-library:compileJava NO-SOURCE
> Task :danger-kotlin-library:processResources NO-SOURCE
> Task :danger-kotlin-library:classes UP-TO-DATE
> Task :danger-kotlin-library:shadowJar
Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/6.3/userguide/command_line_interface.html#sec:command_line_warnings
BUILD SUCCESSFUL in 27s
8 actionable tasks: 8 executed
./gradlew build -p danger-kotlin-kts
> Configure project :
Secret key SONATYPE_USER not found. Falling back to default
Secret key SONATYPE_PASS not found. Falling back to default
> Configure project :danger-kotlin
Kotlin Multiplatform Projects are an Alpha feature. See: https://kotlinlang.org/docs/reference/evolution/components-stability.html. To hide this message, add 'kotlin.mpp.stability.nowarn=true' to the Gradle properties.
> Configure project :danger-kotlin-sdk
Secret key SONATYPE_USER not found. Falling back to default
Secret key SONATYPE_PASS not found. Falling back to default
> Task :danger-kotlin-kts:compileKotlin UP-TO-DATE
> Task :danger-kotlin-kts:compileJava NO-SOURCE
> Task :danger-kotlin-kts:processResources NO-SOURCE
> Task :danger-kotlin-kts:classes UP-TO-DATE
> Task :danger-kotlin-kts:inspectClassesForKotlinIC UP-TO-DATE
> Task :danger-kotlin-kts:jar UP-TO-DATE
> Task :danger-kotlin-kts:assemble UP-TO-DATE
> Task :danger-kotlin-kts:compileTestKotlin NO-SOURCE
> Task :danger-kotlin-kts:compileTestJava NO-SOURCE
> Task :danger-kotlin-kts:processTestResources NO-SOURCE
> Task :danger-kotlin-kts:testClasses UP-TO-DATE
> Task :danger-kotlin-kts:test NO-SOURCE
> Task :danger-kotlin-kts:check UP-TO-DATE
> Task :danger-kotlin-kts:build UP-TO-DATE
Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/6.3/userguide/command_line_interface.html#sec:command_line_warnings
BUILD SUCCESSFUL in 1s
3 actionable tasks: 3 up-to-date
./gradlew build -p danger-kotlin
> Configure project :
Secret key SONATYPE_USER not found. Falling back to default
Secret key SONATYPE_PASS not found. Falling back to default
> Configure project :danger-kotlin
Kotlin Multiplatform Projects are an Alpha feature. See: https://kotlinlang.org/docs/reference/evolution/components-stability.html. To hide this message, add 'kotlin.mpp.stability.nowarn=true' to the Gradle properties.
> Configure project :danger-kotlin-sdk
Secret key SONATYPE_USER not found. Falling back to default
Secret key SONATYPE_PASS not found. Falling back to default
> Task :danger-kotlin:compileKotlinRunner
Downloading native dependencies (LLVM, sysroot etc). This is a one-time action performed only on the first run of the compiler.

Downloading dependency: https://download.jetbrains.com/kotlin/native/x86_64-unknown-linux-gnu-gcc-8.3.0-glibc-2.19-kernel-4.9-2.tar.gz (0 bytes/97.1 MiB). 
Downloading dependency: https://download.jetbrains.com/kotlin/native/x86_64-unknown-linux-gnu-gcc-8.3.0-glibc-2.19-kernel-4.9-2.tar.gz (23.1 MiB/97.1 MiB). 
Downloading dependency: https://download.jetbrains.com/kotlin/native/x86_64-unknown-linux-gnu-gcc-8.3.0-glibc-2.19-kernel-4.9-2.tar.gz (49.3 MiB/97.1 MiB). 
Downloading dependency: https://download.jetbrains.com/kotlin/native/x86_64-unknown-linux-gnu-gcc-8.3.0-glibc-2.19-kernel-4.9-2.tar.gz (69.3 MiB/97.1 MiB). 
Downloading dependency: https://download.jetbrains.com/kotlin/native/x86_64-unknown-linux-gnu-gcc-8.3.0-glibc-2.19-kernel-4.9-2.tar.gz (90.2 MiB/97.1 MiB). 
Downloading dependency: https://download.jetbrains.com/kotlin/native/x86_64-unknown-linux-gnu-gcc-8.3.0-glibc-2.19-kernel-4.9-2.tar.gz (97.1 MiB/97.1 MiB). Done.
Extracting dependency: /root/.konan/cache/x86_64-unknown-linux-gnu-gcc-8.3.0-glibc-2.19-kernel-4.9-2.tar.gz into /root/.konan/dependencies

Downloading dependency: https://download.jetbrains.com/kotlin/native/libffi-3.2.1-2-linux-x86-64.tar.gz (0 bytes/55.1 kiB). 
Downloading dependency: https://download.jetbrains.com/kotlin/native/libffi-3.2.1-2-linux-x86-64.tar.gz (55.1 kiB/55.1 kiB). Done.
Extracting dependency: /root/.konan/cache/libffi-3.2.1-2-linux-x86-64.tar.gz into /root/.konan/dependencies

Downloading dependency: https://download.jetbrains.com/kotlin/native/lldb-3-linux.tar.gz (0 bytes/45.5 MiB). 
Downloading dependency: https://download.jetbrains.com/kotlin/native/lldb-3-linux.tar.gz (1023.0 kiB/45.5 MiB). 
Downloading dependency: https://download.jetbrains.com/kotlin/native/lldb-3-linux.tar.gz (2.0 MiB/45.5 MiB). 
Downloading dependency: https://download.jetbrains.com/kotlin/native/lldb-3-linux.tar.gz (3.0 MiB/45.5 MiB). 
Downloading dependency: https://download.jetbrains.com/kotlin/native/lldb-3-linux.tar.gz (4.0 MiB/45.5 MiB). 
Downloading dependency: https://download.jetbrains.com/kotlin/native/lldb-3-linux.tar.gz (5.0 MiB/45.5 MiB). 
Downloading dependency: https://download.jetbrains.com/kotlin/native/lldb-3-linux.tar.gz (5.9 MiB/45.5 MiB). 
Downloading dependency: https://download.jetbrains.com/kotlin/native/lldb-3-linux.tar.gz (6.9 MiB/45.5 MiB). 
Downloading dependency: https://download.jetbrains.com/kotlin/native/lldb-3-linux.tar.gz (7.9 MiB/45.5 MiB). 
Downloading dependency: https://download.jetbrains.com/kotlin/native/lldb-3-linux.tar.gz (8.9 MiB/45.5 MiB). 
Downloading dependency: https://download.jetbrains.com/kotlin/native/lldb-3-linux.tar.gz (9.9 MiB/45.5 MiB). 
Downloading dependency: https://download.jetbrains.com/kotlin/native/lldb-3-linux.tar.gz (10.9 MiB/45.5 MiB). 
Downloading dependency: https://download.jetbrains.com/kotlin/native/lldb-3-linux.tar.gz (11.9 MiB/45.5 MiB). 
Downloading dependency: https://download.jetbrains.com/kotlin/native/lldb-3-linux.tar.gz (12.9 MiB/45.5 MiB). 
Downloading dependency: https://download.jetbrains.com/kotlin/native/lldb-3-linux.tar.gz (13.4 MiB/45.5 MiB). 
Downloading dependency: https://download.jetbrains.com/kotlin/native/lldb-3-linux.tar.gz (14.3 MiB/45.5 MiB). 
Downloading dependency: https://download.jetbrains.com/kotlin/native/lldb-3-linux.tar.gz (15.3 MiB/45.5 MiB). 
Downloading dependency: https://download.jetbrains.com/kotlin/native/lldb-3-linux.tar.gz (16.3 MiB/45.5 MiB). 
Downloading dependency: https://download.jetbrains.com/kotlin/native/lldb-3-linux.tar.gz (17.3 MiB/45.5 MiB). 
Downloading dependency: https://download.jetbrains.com/kotlin/native/lldb-3-linux.tar.gz (18.5 MiB/45.5 MiB). 
Downloading dependency: https://download.jetbrains.com/kotlin/native/lldb-3-linux.tar.gz (19.4 MiB/45.5 MiB). 
Downloading dependency: https://download.jetbrains.com/kotlin/native/lldb-3-linux.tar.gz (20.4 MiB/45.5 MiB). 
Downloading dependency: https://download.jetbrains.com/kotlin/native/lldb-3-linux.tar.gz (21.4 MiB/45.5 MiB). 
Downloading dependency: https://download.jetbrains.com/kotlin/native/lldb-3-linux.tar.gz (22.6 MiB/45.5 MiB). 
Downloading dependency: https://download.jetbrains.com/kotlin/native/lldb-3-linux.tar.gz (23.6 MiB/45.5 MiB). 
Downloading dependency: https://download.jetbrains.com/kotlin/native/lldb-3-linux.tar.gz (24.6 MiB/45.5 MiB). 
Downloading dependency: https://download.jetbrains.com/kotlin/native/lldb-3-linux.tar.gz (25.6 MiB/45.5 MiB). 
Downloading dependency: https://download.jetbrains.com/kotlin/native/lldb-3-linux.tar.gz (26.6 MiB/45.5 MiB). 
Downloading dependency: https://download.jetbrains.com/kotlin/native/lldb-3-linux.tar.gz (27.6 MiB/45.5 MiB). 
Downloading dependency: https://download.jetbrains.com/kotlin/native/lldb-3-linux.tar.gz (28.0 MiB/45.5 MiB). 
Downloading dependency: https://download.jetbrains.com/kotlin/native/lldb-3-linux.tar.gz (28.9 MiB/45.5 MiB). 
Downloading dependency: https://download.jetbrains.com/kotlin/native/lldb-3-linux.tar.gz (29.9 MiB/45.5 MiB). 
Downloading dependency: https://download.jetbrains.com/kotlin/native/lldb-3-linux.tar.gz (31.0 MiB/45.5 MiB). 
Downloading dependency: https://download.jetbrains.com/kotlin/native/lldb-3-linux.tar.gz (32.0 MiB/45.5 MiB). 
Downloading dependency: https://download.jetbrains.com/kotlin/native/lldb-3-linux.tar.gz (33.0 MiB/45.5 MiB). 
Downloading dependency: https://download.jetbrains.com/kotlin/native/lldb-3-linux.tar.gz (34.1 MiB/45.5 MiB). 
Downloading dependency: https://download.jetbrains.com/kotlin/native/lldb-3-linux.tar.gz (35.1 MiB/45.5 MiB). 
Downloading dependency: https://download.jetbrains.com/kotlin/native/lldb-3-linux.tar.gz (36.1 MiB/45.5 MiB). 
Downloading dependency: https://download.jetbrains.com/kotlin/native/lldb-3-linux.tar.gz (37.1 MiB/45.5 MiB). 
Downloading dependency: https://download.jetbrains.com/kotlin/native/lldb-3-linux.tar.gz (38.0 MiB/45.5 MiB). 
Downloading dependency: https://download.jetbrains.com/kotlin/native/lldb-3-linux.tar.gz (39.1 MiB/45.5 MiB). 
Downloading dependency: https://download.jetbrains.com/kotlin/native/lldb-3-linux.tar.gz (40.0 MiB/45.5 MiB). 
Downloading dependency: https://download.jetbrains.com/kotlin/native/lldb-3-linux.tar.gz (41.0 MiB/45.5 MiB). 
Downloading dependency: https://download.jetbrains.com/kotlin/native/lldb-3-linux.tar.gz (41.7 MiB/45.5 MiB). 
Downloading dependency: https://download.jetbrains.com/kotlin/native/lldb-3-linux.tar.gz (42.7 MiB/45.5 MiB). 
Downloading dependency: https://download.jetbrains.com/kotlin/native/lldb-3-linux.tar.gz (43.8 MiB/45.5 MiB). 
Downloading dependency: https://download.jetbrains.com/kotlin/native/lldb-3-linux.tar.gz (44.9 MiB/45.5 MiB). 
Downloading dependency: https://download.jetbrains.com/kotlin/native/lldb-3-linux.tar.gz (45.5 MiB/45.5 MiB). Done.
Extracting dependency: /root/.konan/cache/lldb-3-linux.tar.gz into /root/.konan/dependencies

Downloading dependency: https://download.jetbrains.com/kotlin/native/clang-llvm-8.0.0-linux-x86-64.tar.gz (0 bytes/581.9 MiB). 
Downloading dependency: https://download.jetbrains.com/kotlin/native/clang-llvm-8.0.0-linux-x86-64.tar.gz (26.4 MiB/581.9 MiB). 
Downloading dependency: https://download.jetbrains.com/kotlin/native/clang-llvm-8.0.0-linux-x86-64.tar.gz (52.2 MiB/581.9 MiB). 
Downloading dependency: https://download.jetbrains.com/kotlin/native/clang-llvm-8.0.0-linux-x86-64.tar.gz (78.0 MiB/581.9 MiB). 
Downloading dependency: https://download.jetbrains.com/kotlin/native/clang-llvm-8.0.0-linux-x86-64.tar.gz (104.6 MiB/581.9 MiB). 
Downloading dependency: https://download.jetbrains.com/kotlin/native/clang-llvm-8.0.0-linux-x86-64.tar.gz (130.5 MiB/581.9 MiB). 
Downloading dependency: https://download.jetbrains.com/kotlin/native/clang-llvm-8.0.0-linux-x86-64.tar.gz (156.3 MiB/581.9 MiB). 
Downloading dependency: https://download.jetbrains.com/kotlin/native/clang-llvm-8.0.0-linux-x86-64.tar.gz (183.1 MiB/581.9 MiB). 
Downloading dependency: https://download.jetbrains.com/kotlin/native/clang-llvm-8.0.0-linux-x86-64.tar.gz (208.7 MiB/581.9 MiB). 
Downloading dependency: https://download.jetbrains.com/kotlin/native/clang-llvm-8.0.0-linux-x86-64.tar.gz (234.7 MiB/581.9 MiB). 
Downloading dependency: https://download.jetbrains.com/kotlin/native/clang-llvm-8.0.0-linux-x86-64.tar.gz (261.2 MiB/581.9 MiB). 
Downloading dependency: https://download.jetbrains.com/kotlin/native/clang-llvm-8.0.0-linux-x86-64.tar.gz (284.0 MiB/581.9 MiB). 
Downloading dependency: https://download.jetbrains.com/kotlin/native/clang-llvm-8.0.0-linux-x86-64.tar.gz (310.2 MiB/581.9 MiB). 
Downloading dependency: https://download.jetbrains.com/kotlin/native/clang-llvm-8.0.0-linux-x86-64.tar.gz (336.3 MiB/581.9 MiB). 
Downloading dependency: https://download.jetbrains.com/kotlin/native/clang-llvm-8.0.0-linux-x86-64.tar.gz (362.4 MiB/581.9 MiB). 
Downloading dependency: https://download.jetbrains.com/kotlin/native/clang-llvm-8.0.0-linux-x86-64.tar.gz (388.2 MiB/581.9 MiB). 
Downloading dependency: https://download.jetbrains.com/kotlin/native/clang-llvm-8.0.0-linux-x86-64.tar.gz (415.1 MiB/581.9 MiB). 
Downloading dependency: https://download.jetbrains.com/kotlin/native/clang-llvm-8.0.0-linux-x86-64.tar.gz (441.7 MiB/581.9 MiB). 
Downloading dependency: https://download.jetbrains.com/kotlin/native/clang-llvm-8.0.0-linux-x86-64.tar.gz (467.3 MiB/581.9 MiB). 
Downloading dependency: https://download.jetbrains.com/kotlin/native/clang-llvm-8.0.0-linux-x86-64.tar.gz (493.4 MiB/581.9 MiB). 
Downloading dependency: https://download.jetbrains.com/kotlin/native/clang-llvm-8.0.0-linux-x86-64.tar.gz (519.2 MiB/581.9 MiB). 
Downloading dependency: https://download.jetbrains.com/kotlin/native/clang-llvm-8.0.0-linux-x86-64.tar.gz (545.3 MiB/581.9 MiB). 
Downloading dependency: https://download.jetbrains.com/kotlin/native/clang-llvm-8.0.0-linux-x86-64.tar.gz (565.8 MiB/581.9 MiB). 
Downloading dependency: https://download.jetbrains.com/kotlin/native/clang-llvm-8.0.0-linux-x86-64.tar.gz (581.9 MiB/581.9 MiB). Done.
Extracting dependency: /root/.konan/cache/clang-llvm-8.0.0-linux-x86-64.tar.gz into /root/.konan/dependencies
w: /bitrise/src/_danger-kotlin/danger-kotlin/src/runnerMain/kotlin/systems.danger/cmd/dangerfile/DangerFile.kt: (60, 24): 'toInt(): Int' is deprecated. Conversion of Char to Number is deprecated. Use Char.code property instead.
> Task :danger-kotlin:linkDebugExecutableRunner
> Task :danger-kotlin:linkReleaseExecutableRunner
> Task :danger-kotlin:compileKotlinMetadata NO-SOURCE
> Task :danger-kotlin:metadataMainClasses UP-TO-DATE
> Task :danger-kotlin:metadataJar
> Task :danger-kotlin:assemble
> Task :danger-kotlin:runnerProcessResources NO-SOURCE
> Task :danger-kotlin:runnerMainKlibrary
> Task :danger-kotlin:compileTestKotlinRunner NO-SOURCE
> Task :danger-kotlin:linkDebugTestRunner NO-SOURCE
> Task :danger-kotlin:runnerTest SKIPPED
> Task :danger-kotlin:allTests
> Task :danger-kotlin:check
> Task :danger-kotlin:build
Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/6.3/userguide/command_line_interface.html#sec:command_line_warnings
BUILD SUCCESSFUL in 2m 16s
5 actionable tasks: 5 executed
mkdir -p /usr/local/bin
mkdir -p /usr/local/lib/danger
mkdir -p /usr/local/lib/danger/libs
cp -f danger-kotlin/build/bin/runner/releaseExecutable/danger-kotlin.kexe /usr/local/bin/danger-kotlin
cp -f danger-kotlin-library/build/libs/danger-kotlin.jar /usr/local/lib/danger/danger-kotlin.jar
+ source /root/.bash_profile
++ export PATH=/usr/local/kotlinc/bin:/root/.bitrise/tools:/bitrise/go/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/go/bin:/opt/android-sdk-linux/platform-tools:/opt/android-sdk-linux/cmdline-tools/latest/bin:/opt/android-sdk-linux/cmdline-tools/4.0/bin:/opt/gradle/gradle-6.3/bin/:/opt/android-sdk-linux/ndk-bundle
++ PATH=/usr/local/kotlinc/bin:/root/.bitrise/tools:/bitrise/go/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/go/bin:/opt/android-sdk-linux/platform-tools:/opt/android-sdk-linux/cmdline-tools/latest/bin:/opt/android-sdk-linux/cmdline-tools/4.0/bin:/opt/gradle/gradle-6.3/bin/:/opt/android-sdk-linux/ndk-bundle
+ danger-kotlin ci
Executing $(which danger) ci --process danger-kotlin --passURLForDSL  - pid 11944
Executing kotlinc -script-templates systems.danger.kts.DangerFileScript -cp /usr/local/lib/danger/danger-kotlin.jar -script Dangerfile.df.kts /tmp/danger-dsl.json danger_out.json - pid 11965
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.intellij.util.ReflectionUtil to method java.util.ResourceBundle.setParent(java.util.ResourceBundle)
WARNING: Please consider reporting this to the maintainers of com.intellij.util.ReflectionUtil
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
kotlinx.serialization.json.internal.JsonDecodingException: Unexpected JSON token at offset 10448: Unexpected symbol 'n' in numeric literal
JSON input: .....    "approvals_before_merge": null,
        "subscribed": tr.....
    at kotlinx.serialization.json.internal.JsonExceptionsKt.JsonDecodingException(JsonExceptions.kt:24)
    at kotlinx.serialization.json.internal.JsonExceptionsKt.JsonDecodingException(JsonExceptions.kt:32)
    at kotlinx.serialization.json.internal.JsonLexer.fail(JsonLexer.kt:479)
    at kotlinx.serialization.json.internal.JsonLexer.fail$default(JsonLexer.kt:478)
    at kotlinx.serialization.json.internal.JsonLexer.consumeNumericLiteral(JsonLexer.kt:517)
    at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeInt(StreamingJsonDecoder.kt:203)
    at kotlinx.serialization.encoding.AbstractDecoder.decodeIntElement(AbstractDecoder.kt:53)
    at systems.danger.kotlin.models.gitlab.GitLabMergeRequest$$serializer.deserialize(GitLab.kt:34)
    at systems.danger.kotlin.models.gitlab.GitLabMergeRequest$$serializer.deserialize(GitLab.kt:34)
    at kotlinx.serialization.json.internal.PolymorphicKt.decodeSerializableValuePolymorphic(Polymorphic.kt:63)
    at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:32)
    at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableValue(AbstractDecoder.kt:43)
    at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableElement(AbstractDecoder.kt:70)
    at systems.danger.kotlin.models.gitlab.GitLab$$serializer.deserialize(GitLab.kt:11)
    at systems.danger.kotlin.models.gitlab.GitLab$$serializer.deserialize(GitLab.kt:11)
    at kotlinx.serialization.json.internal.PolymorphicKt.decodeSerializableValuePolymorphic(Polymorphic.kt:63)
    at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:32)
    at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableValue(AbstractDecoder.kt:43)
    at kotlinx.serialization.encoding.AbstractDecoder.decodeNullableSerializableElement(AbstractDecoder.kt:79)
    at systems.danger.kotlin.models.danger.DangerDSL$$serializer.deserialize(DangerDSL.kt:14)
    at systems.danger.kotlin.models.danger.DangerDSL$$serializer.deserialize(DangerDSL.kt:14)
    at kotlinx.serialization.json.internal.PolymorphicKt.decodeSerializableValuePolymorphic(Polymorphic.kt:63)
    at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:32)
    at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableValue(AbstractDecoder.kt:43)
    at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableElement(AbstractDecoder.kt:70)
    at systems.danger.kotlin.models.danger.DSL$$serializer.deserialize(DangerDSL.kt:9)
    at systems.danger.kotlin.models.danger.DSL$$serializer.deserialize(DangerDSL.kt:9)
    at kotlinx.serialization.json.internal.PolymorphicKt.decodeSerializableValuePolymorphic(Polymorphic.kt:63)
    at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:32)
    at kotlinx.serialization.json.Json.decodeFromString(Json.kt:95)
    at systems.danger.kotlin.MainDangerRunner.<init>(MainDangerRunner.kt:131)
    at systems.danger.kotlin.MainScriptKt.Danger(MainScript.kt:49)
    at Dangerfile_df.<init>(Dangerfile.df.kts:68)
warning: some JAR files in the classpath have the Kotlin Runtime library bundled into them. This may cause difficult to debug problems if there's a different version of the Kotlin Runtime library in the classpath. Consider removing these libraries from the classpath
/usr/local/lib/danger/danger-kotlin.jar: warning: library has Kotlin runtime bundled into it
Uncaught Kotlin exception: kotlin.Exception: Command kotlinc -script-templates systems.danger.kts.DangerFileScript -cp /usr/local/lib/danger/danger-kotlin.jar -script Dangerfile.df.kts /tmp/danger-dsl.json danger_out.json exited with code 768
    at kfun:systems.danger.cmd.Cmd.exec#internal (0x41d751)
    at kfun:systems.danger.cmd.dangerfile.DangerFile#execute(kotlin.String;kotlin.String){} (0x41e271)
    at kfun:systems.danger.DangerKotlin#run(){} (0x41c68f)
    at kfun:#main(kotlin.Array<kotlin.String>){} (0x41b6f7)
    at Init_and_run_start (0x44c656)
    at __libc_start_main (0x7f9d1fad80b3)
    at  (0x405031)
    at  ((nil))
Failing the build, there is 1 fail.
Feedback: https://gitlab.xx.fr/XXXXX-Android/merge_requests/2112#note_571355
Uncaught Kotlin exception: kotlin.Exception: Command $(which danger) ci --process danger-kotlin --passURLForDSL  exited with code 256
    at kfun:systems.danger.cmd.Cmd.exec#internal (0x41d751)
    at kfun:systems.danger.cmd.dangerjs.DangerJS#process(systems.danger.cmd.Command;kotlin.String;kotlin.collections.List<kotlin.String>){} (0x41f2bb)
    at kfun:#main(kotlin.Array<kotlin.String>){} (0x41b95b)
    at Init_and_run_start (0x44c656)
    at __libc_start_main (0x7ff762b970b3)
    at  (0x405031)
    at  ((nil))`

Integration with detekt-hint

Hi!

I am working on a tool for detection of violations on design principles in my master thesis (read more about it https://github.com/Mkohm/detekt-hint), and is looking for an open source project where I can integrate my tool for some feedback and testing. Would you welcome such an integration? It would mean a lot, and I hope it can continue to improve the maintainability of this project.

It only requires creating a configuration file and a new GitHub action. Please let me know if it is of any interest, and I will create a PR with the required changes.

Using danger(args) DSL from multiple files changes the current danger instance

//Dangerfile.df.kts
@file:Import("File1.df.kts", "File2.df.kts")
danger(args) {
    warn("From Root 1")
    test1()
    test2()
    warn("From Root 2")
}

// File1.df.kts
fun test1() = danger(args) {
    warn("From File1")
}

// File2.df.kts
fun test2() = danger(args) {
    warn("From File2")
}

Everything ran correctly but what gets added to the PR is missing first 2 warnings:

"From File2"
"From Root 2"

I was expecting this to act something like:

danger(args) {
    warn("From Root 1")
    warn("From File1")
    warn("From File2")
    warn("From Root 2")
}

I spoke with @f-meloni about this who found that calling

inline fun danger(args: Array<String>, block: DangerDSL.() -> Unit) = Danger(args).run(block)

changes the current danger instance (which should never happen), and that means that the "messages" list is re created.

Improve debugging capabilities

It's very hard to run debug locally which is very important.

Current caveats:

  • Can't run it directly from IDE
  • There is no possibility to pass additional parameters to kotlinc. I'm passing -J-agentlib:jdpwp... to run a debug server
  • in.json must be extracted temp folder from regular non-debug run

My current script:

echo "" > out.json
DEBUG=true \
DANGER_GITLAB_HOST=... \
DANGER_GITLAB_API_TOKEN=... \
kotlinc -J-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=127.0.0.1:8001 -script-templates systems.danger.kts.DangerFileScript \
-cp /usr/local/lib/danger/danger-kotlin.jar \
-script Dangerfile.df.kts \
PATH_TO_MR \
in.json \
out.json

At least, the ability to pass additional kotlinc parameters will make the debugging much easier

MissingFieldException error in BitBucketServerReviewer

Hello! I build danger-kotlin from sources, and when I try to run (I use bitbucket)
danger-kotlin *stash_pull_request_number* --dangerfile=Dangerfile.df.kts I get such error:

kotlinx.serialization.MissingFieldException: Field 'lastReviewedCommit' is required for type with serial name                 
'systems.danger.kotlin.models.bitbucket.BitBucketServerReviewer', but it was missing
    at kotlinx.serialization.internal.PluginExceptionsKt.throwMissingFieldException(PluginExceptions.kt:20)
    at systems.danger.kotlin.models.bitbucket.BitBucketServerReviewer.<init>(BitBucketServer.kt:233)
    at systems.danger.kotlin.models.bitbucket.BitBucketServerReviewer$$serializer.deserialize(BitBucketServer.kt:233)
    at systems.danger.kotlin.models.bitbucket.BitBucketServerReviewer$$serializer.deserialize(BitBucketServer.kt:233)
    at kotlinx.serialization.json.internal.PolymorphicKt.decodeSerializableValuePolymorphic(Polymorphic.kt:63)
    at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:32)
    at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableValue(AbstractDecoder.kt:43)
    at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableElement(AbstractDecoder.kt:70)
    at kotlinx.serialization.encoding.CompositeDecoder$DefaultImpls.decodeSerializableElement$default(Decoding.kt:535)
    at kotlinx.serialization.internal.ListLikeSerializer.readElement(CollectionSerializers.kt:80)
    at kotlinx.serialization.internal.AbstractCollectionSerializer.readElement$default(CollectionSerializers.kt:51)
    at kotlinx.serialization.internal.AbstractCollectionSerializer.merge(CollectionSerializers.kt:36)
    at kotlinx.serialization.internal.AbstractCollectionSerializer.deserialize(CollectionSerializers.kt:43)
    at kotlinx.serialization.json.internal.PolymorphicKt.decodeSerializableValuePolymorphic(Polymorphic.kt:63)
    at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:32)
    at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableValue(AbstractDecoder.kt:43)
    at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableElement(AbstractDecoder.kt:70)
    at systems.danger.kotlin.models.bitbucket.BitBucketServerPR$$serializer.deserialize(BitBucketServer.kt:195)
    at systems.danger.kotlin.models.bitbucket.BitBucketServerPR$$serializer.deserialize(BitBucketServer.kt:195)
    at kotlinx.serialization.json.internal.PolymorphicKt.decodeSerializableValuePolymorphic(Polymorphic.kt:63)
    at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:32)
    at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableValue(AbstractDecoder.kt:43)
    at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableElement(AbstractDecoder.kt:70)
    at systems.danger.kotlin.models.bitbucket.BitBucketServer$$serializer.deserialize(BitBucketServer.kt:13)
    at systems.danger.kotlin.models.bitbucket.BitBucketServer$$serializer.deserialize(BitBucketServer.kt:13)
    at kotlinx.serialization.json.internal.PolymorphicKt.decodeSerializableValuePolymorphic(Polymorphic.kt:63)
    at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:32)
    at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableValue(AbstractDecoder.kt:43)
    at kotlinx.serialization.encoding.AbstractDecoder.decodeNullableSerializableElement(AbstractDecoder.kt:79)
    at systems.danger.kotlin.models.danger.DangerDSL$$serializer.deserialize(DangerDSL.kt:14)
    at systems.danger.kotlin.models.danger.DangerDSL$$serializer.deserialize(DangerDSL.kt:14)
    at kotlinx.serialization.json.internal.PolymorphicKt.decodeSerializableValuePolymorphic(Polymorphic.kt:63)
    at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:32)
    at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableValue(AbstractDecoder.kt:43)
    at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableElement(AbstractDecoder.kt:70)
    at systems.danger.kotlin.models.danger.DSL$$serializer.deserialize(DangerDSL.kt:9)
    at systems.danger.kotlin.models.danger.DSL$$serializer.deserialize(DangerDSL.kt:9)
    at kotlinx.serialization.json.internal.PolymorphicKt.decodeSerializableValuePolymorphic(Polymorphic.kt:63)
    at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:32)
    at kotlinx.serialization.json.Json.decodeFromString(Json.kt:95)
    at systems.danger.kotlin.MainDangerRunner.<init>(MainDangerRunner.kt:131)
    at systems.danger.kotlin.MainScriptKt.Danger(MainScript.kt:49)
    at Dangerfile_df.<init>(Dangerfile.df.kts:6)

I saw same issue with gitlab #145, I guess it's related to default argument. Can it be fixed?

Integration with Danger in Ruby and Danger in JS

Hi, I'm new to Danger ecosystem, I am an Android developer and we use Danger in Ruby on our Jenkins/Gitlab to check our Merge requests. I've found this repository that is in Kotlin and I am curious if all plugins that I currently use in Ruby needs to write their version also in Kotlin or there is some option to use the ones in Ruby also in Kotlin. I'm not sure how this danger-kotlin works, if its a complete rewrite of Danger or its just a wrapper over the Ruby core so pardon if my question is silly.

Thanks!

Run on custom inhouse CI

Can we somehow run danger-kotlin ci on a custom in-house ci? my ios colleagues uses danger and they could hack it by exporting an env variable export TEAMCITY_VERSION="dummy"; however with danger-kotlin it doesn't work and I get this error below:

Executing $(which danger) ci --process danger-kotlin --passURLForDSL  - pid 3556
Skipping Danger due to this run not executing on a PR.
Step finished successfully.

Happy one year!

It's been just over a year since you all started working on this project!

danger_out.json exited with code 768

I have created a Danger Plugin it was working fine till I didn't update the Kotlin version 1.5.30 , after CI is failing,
and one has idea how to fix this :

Executing $(which danger) ci --process danger-kotlin --passURLForDSL --id DangerKotlinAction - pid 1
Executing kotlinc -script-templates systems.danger.kts.DangerFileScript -cp /usr/local/lib/danger/danger-kotlin.jar -script Dangerfile.df.kts /tmp/danger-dsl.json danger_out.json - pid 28

java.lang.reflect.InvocationTargetException
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
	at kotlin.reflect.jvm.internal.calls.CallerImpl$Constructor.call(CallerImpl.kt:41)
	at kotlin.reflect.jvm.internal.KCallableImpl.call(KCallableImpl.kt:108)
	at kotlin.reflect.jvm.internal.KCallableImpl.callDefaultMethod$kotlin_reflection(KCallableImpl.kt:159)
	at kotlin.reflect.jvm.internal.KCallableImpl.callBy(KCallableImpl.kt:112)

	at jp.ne.paypay.android.danger.model.DataMapper.invoke(DataMapper.kt:68)

	at Dangerfile_df$$special$$inlined$register$14.invoke(DataMapper.kt:45)
	at jp.ne.paypay.android.danger.model.DataMapper.argFor(DataMapper.kt:40)
	at jp.ne.paypay.android.danger.model.DataMapper.invoke(DataMapper.kt:68)
	at Dangerfile_df$$special$$inlined$register$33.invoke(DataMapper.kt:45)
	at jp.ne.paypay.android.danger.model.DataMapper.argFor(DataMapper.kt:40)
	at jp.ne.paypay.android.danger.model.DataMapper.invoke(DataMapper.kt:68)
	at Dangerfile_df.<init>(Dangerfile.df.kts:173)

Uncaught Kotlin exception: kotlin.Exception: Command kotlinc -script-templates systems.danger.kts.DangerFileScript -cp /usr/local/lib/danger/danger-kotlin.jar -script Dangerfile.df.kts /tmp/danger-dsl.json danger_out.json exited with code 768

    at kfun:systems.danger.cmd.Cmd#exec(){} (0x228518)
    at kfun:systems.danger.cmd.dangerfile.DangerFile#execute(kotlin.String;kotlin.String){} (0x22915b)
    at kfun:systems.danger.DangerKotlin#run(){} (0x227408)
    at Init_and_run_start (0x22c005)
    at __libc_start_main (0x7fdbb23f6b97)
    at  (0x211029)
    at  ((nil))

Failing the build, there is 1 fail.
Request failed [403]: https://api.github.com/user
Response: {
  "message": "Resource not accessible by integration",
  "documentation_url": "https://docs.github.com/rest/reference/users#get-the-authenticated-user"
}
Request failed [403]: https://api.github.com/user
Response: {
  "message": "Resource not accessible by integration",
  "documentation_url": "https://docs.github.com/rest/reference/users#get-the-authenticated-user"
}
Feedback: https://github.com/Pay-Baymax/pay2-merchant-android/pull/549#issuecomment-927604609
Uncaught Kotlin exception: kotlin.Exception: Command $(which danger) ci --process danger-kotlin --passURLForDSL --id DangerKotlinAction exited with code 256
    at kfun:systems.danger.cmd.Cmd#exec(){} (0x228518)
    at kfun:systems.danger.cmd.dangerjs.DangerJS#process(kotlin.String;kotlin.String;kotlin.collections.List<kotlin.String>){} (0x229764)
    at Init_and_run_start (0x22c364)
    at __libc_start_main (0x7f8e56260b97)
    at  (0x211029)
    at  ((nil))

github action doesn't work

This is my action:
(I believe only the last part is relevant, from name: Danger)

jobs:
  detekt_job:
    runs-on: ubuntu-latest
    name: GitHub Action for Maven
    steps:
      - uses: actions/checkout@v1
      - name: set environment variables
        uses: allenevans/[email protected]
        with:
          ENVIRONMENT: 'dev'
      - uses: actions/checkout@master
      - name: Setup java
        uses: actions/setup-java@v1
        with:
          java-version: 8
      - name: Diffset
        id: diffset
        uses: softprops/diffset@v1
        env:
         GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      - run: |
          mvn install -pl DetektExtensions
          mvn detekt:check
      - name: Danger
        uses: danger/kotlin@master
        with:
          args: "--id DangerKotlinAction"
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

I get the following error:

com.squareup.moshi.JsonDataException: Required value 'issue' missing at $.danger.github
	at com.squareup.moshi.kotlin.reflect.KotlinJsonAdapter.fromJson(KotlinJsonAdapter.kt:96)
	at com.squareup.moshi.JsonAdapter$2.fromJson(JsonAdapter.java:137)
	at com.squareup.moshi.kotlin.reflect.KotlinJsonAdapter.fromJson(KotlinJsonAdapter.kt:83)
	at com.squareup.moshi.JsonAdapter$2.fromJson(JsonAdapter.java:137)
	at com.squareup.moshi.kotlin.reflect.KotlinJsonAdapter.fromJson(KotlinJsonAdapter.kt:83)
	at com.squareup.moshi.JsonAdapter$2.fromJson(JsonAdapter.java:137)
	at com.squareup.moshi.JsonAdapter.fromJson(JsonAdapter.java:41)
	at systems.danger.kotlin.DangerRunner.<init>(DangerRunner.kt:125)
	at systems.danger.kotlin.DangerRunnerKt.Danger(DangerRunner.kt:238)
	at Dangerfile_df.<init>(Dangerfile.df.kts:14)
Uncaught Kotlin exception: kotlin.Exception: Command kotlinc -script-templates systems.danger.kts.DangerFileScript -cp /usr/local/lib/danger/danger-kotlin.jar -script Dangerfile.df.kts /tmp/danger-dsl.json danger_out.json exited with code 768

        at kfun:systems.danger.cmd.Cmd.exec() (0x21c739)
        at kfun:systems.danger.cmd.dangerfile.DangerFile.execute(kotlin.String;kotlin.String) (0x21d227)
        at kfun:systems.danger.DangerKotlin.run() (0x21c0e6)
        at Init_and_run_start (0x21f472)
        at __libc_start_main (0x7f42070f6b97)

        at  (0x20f029)
        at  ((nil))

My Danger file:

import org.w3c.dom.Document
import org.w3c.dom.Element
import systems.danger.kotlin.Danger
import systems.danger.kotlin.warn
import java.io.File
import javax.xml.parsers.DocumentBuilderFactory

val danger = Danger(args)

I've tried danger/kotlin@master, and I've tried danger/[email protected] - same error

brew install danger/tap/danger-kotlin error on Apple M1

brew install danger/tap/danger-kotlin error on Apple M1:

==> Installing dependencies for danger/tap/danger-kotlin: danger/tap/danger-js, openjdk, kotlin, maven and gradle
==> Installing danger/tap/danger-kotlin dependency: danger/tap/danger-js
🍺 /opt/homebrew/Cellar/danger-js/11.0.2: 3 files, 115.3MB, built in 2 seconds
==> Installing danger/tap/danger-kotlin dependency: openjdk
==> Pouring openjdk--17.0.2.arm64_monterey.bottle.tar.gz
🍺 /opt/homebrew/Cellar/openjdk/17.0.2: 640 files, 306.4MB
==> Installing danger/tap/danger-kotlin dependency: kotlin
==> Pouring kotlin--1.6.10.all.bottle.tar.gz
🍺 /opt/homebrew/Cellar/kotlin/1.6.10: 112 files, 74MB
==> Installing danger/tap/danger-kotlin dependency: maven
==> Pouring maven--3.8.4.arm64_monterey.bottle.tar.gz
🍺 /opt/homebrew/Cellar/maven/3.8.4: 79 files, 10MB
==> Installing danger/tap/danger-kotlin dependency: gradle
==> Pouring gradle--7.4.all.bottle.tar.gz
🍺 /opt/homebrew/Cellar/gradle/7.4: 11,253 files, 267.7MB
==> Installing danger/tap/danger-kotlin
==> make install PREFIX=/opt/homebrew/Cellar/danger-kotlin/1.0.0
Last 15 lines from /Users/stefanfessler/Library/Logs/Homebrew/danger-kotlin/01.make:
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)
at java.base/java.lang.Thread.run(Thread.java:833)
1 error

  • Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

  • Get more help at https://help.gradle.org

BUILD FAILED in 5s
make: *** [build] Error 1

Release 1.0.0

Roadmap to 1.0.0:

  • Make danger-kotlin work with gradle 5.0 (@gianluz is already working on it)
  • Decide what use to distribute danger-kotlin (maybe brew for Mac, but what for Linux?)
  • Change the name of the generated library (no snapshot) (I think @gianluz has some ideas for this)
  • Write documentation
  • Support for Dangerfile path from cliArgs (danger-swift implementation
    #100)
  • Getting Started Tutorial
  • Make a plugin
  • Usage guides
  • Create files on the json files on the tmp folder instead of the current folder
  • Find a way to allow custom GitHub API calls

How to get number of additions/deletions on Gitlab Merge request?

Hi, we use Danger Ruby on our projects hosted on self-hosted GitLab and with ruby we have access to the number of additions/deletions through git object in Dangerfile.

Unfortunately I did not find this option in danger-kotlin. I've found that GitHub provides this and I could access it in onGitHub block but it looks like GitLab does not support that.

So my point is - is it possible to retrieve this number currently? If not, is there any plan to add this to the git object? Is it even possible?

Thanks :)

How to use the `gem install danger-auto_label`

I know it's possible if use the original Danger (Ruby) version, then call gem install danger-auto_label to install auto_label plugin.

But, if use the Danger-Kotlin docker image (ghcr.io/danger/danger-kotlin:1.0.0), how to install such plugin? Or I must use the Danger Ruby instead?

Access to SDK classes in Plugin

Hi, I've touched this briefly in #101 but I want to open unrelated issue for discussion. I want to write a plugin that will check if commit messages in investigated MR matches the good conventions However I've hit the problem again when I don't have access to a Git class in my plugin. We were using this plugin with Danger ruby and it looks like the plugin has access to the Git object. Have you thought about how to provide plugin developers access to this DangerDSL classes so we can extend the Dangerfile behavior via plugin? Thanks

Alternative install for macOS

Our macOS environment is restricted from using home-brew.
Is there an alternative way to install danger-kotlin on macOS?

Update to use Kotlin 1.4.0

Hi!

Now danger-kotlin uses Kotlin 1.3.70.
Kotlin 1.3.70 has issue to resolving maven dependencies in kotlin-main-kts, and it had been fixed in Kotlin 1.4.0.
https://youtrack.jetbrains.com/issue/KT-37293

I created danger-kotlin plugin with danger-kotlin-sdk 1.1 and tried to use, but danger-kotlin could not resolve dependencies.
I locally build danger-kotlin and my plugin with Kotlin 1.4.0, then it worked.

It would love to use Kotlin 1.4.0. :)

java.text.ParseException: Unparseable date

Hi there,

I'm trying to run danger-kotlin on my bitrise ci, and i've got the following error.

Executing $(which danger) ci --process danger-kotlin --passURLForDSL  - pid 6751
Executing kotlinc -script-templates systems.danger.kts.DangerFileScript -cp /usr/local/lib/danger/danger-kotlin.jar -script Dangerfile.df.kts /var/folders/6q/wgy6jtp12w5gzgm9lzcglpqw0000gn/T/danger-dsl.json danger_out.json - pid 6756
java.text.ParseException: Unparseable date: "2021-04-30T14:35:00.103+02:00"
	at java.text.DateFormat.parse(DateFormat.java:366)
	at systems.danger.kotlin.DangerRunnerKt.fromISO8601UTC(DangerRunner.kt:27)
	at systems.danger.kotlin.Rfc3339DateJsonAdapter.fromJson(DangerRunner.kt:44)
	at systems.danger.kotlin.Rfc3339DateJsonAdapter.fromJson(DangerRunner.kt:40)
	at com.squareup.moshi.JsonAdapter$2.fromJson(JsonAdapter.java:137)
	at com.squareup.moshi.kotlin.reflect.KotlinJsonAdapter.fromJson(KotlinJsonAdapter.kt:83)
	at com.squareup.moshi.JsonAdapter$2.fromJson(JsonAdapter.java:137)
	at com.squareup.moshi.kotlin.reflect.KotlinJsonAdapter.fromJson(KotlinJsonAdapter.kt:83)
	at com.squareup.moshi.JsonAdapter$2.fromJson(JsonAdapter.java:137)
	at com.squareup.moshi.kotlin.reflect.KotlinJsonAdapter.fromJson(KotlinJsonAdapter.kt:83)
	at com.squareup.moshi.JsonAdapter$2.fromJson(JsonAdapter.java:137)
	at com.squareup.moshi.kotlin.reflect.KotlinJsonAdapter.fromJson(KotlinJsonAdapter.kt:83)
	at com.squareup.moshi.JsonAdapter$2.fromJson(JsonAdapter.java:137)
	at com.squareup.moshi.JsonAdapter.fromJson(JsonAdapter.java:41)
	at systems.danger.kotlin.DangerRunner.<init>(DangerRunner.kt:125)
	at systems.danger.kotlin.DangerRunnerKt.Danger(DangerRunner.kt:238)
	at Dangerfile_df.<init>(Dangerfile.df.kts:77)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
	at kotlin.script.experimental.jvm.BasicJvmScriptEvaluator.evalWithConfigAndOtherScriptsResults(BasicJvmScriptEvaluator.kt:96)
	at kotlin.script.experimental.jvm.BasicJvmScriptEvaluator.invoke$suspendImpl(BasicJvmScriptEvaluator.kt:41)
	at kotlin.script.experimental.jvm.BasicJvmScriptEvaluator.invoke(BasicJvmScriptEvaluator.kt)
	at org.jetbrains.kotlin.scripting.compiler.plugin.AbstractScriptEvaluationExtension$doEval$1.invokeSuspend(AbstractScriptEvaluationExtension.kt:143)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:56)
	at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:274)
	at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:84)
	at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:59)
	at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source)
	at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Builders.kt:38)
	at kotlinx.coroutines.BuildersKt.runBlocking$default(Unknown Source)
	at org.jetbrains.kotlin.scripting.compiler.plugin.AbstractScriptEvaluationExtension.doEval(AbstractScriptEvaluationExtension.kt:135)
	at org.jetbrains.kotlin.scripting.compiler.plugin.AbstractScriptEvaluationExtension.eval(AbstractScriptEvaluationExtension.kt:123)
	at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:102)
	at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:52)
	at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:88)
	at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:44)
	at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:98)
	at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:76)
	at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:45)
	at org.jetbrains.kotlin.cli.common.CLITool$Companion.doMainNoExit(CLITool.kt:227)
	at org.jetbrains.kotlin.cli.common.CLITool$Companion.doMainNoExit$default(CLITool.kt:222)
	at org.jetbrains.kotlin.cli.common.CLITool$Companion.doMain(CLITool.kt:214)
	at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler$Companion.main(K2JVMCompiler.kt:271)
	at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.main(K2JVMCompiler.kt)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.jetbrains.kotlin.preloading.Preloader.run(Preloader.java:87)
	at org.jetbrains.kotlin.preloading.Preloader.main(Preloader.java:44)
java.text.ParseException: Unparseable date: "2021-04-30T14:35:00.103+02:00"
	at java.text.DateFormat.parse(DateFormat.java:366)
	at systems.danger.kotlin.DangerRunnerKt.fromISO8601UTC(DangerRunner.kt:30)
	at systems.danger.kotlin.Rfc3339DateJsonAdapter.fromJson(DangerRunner.kt:44)
	at systems.danger.kotlin.Rfc3339DateJsonAdapter.fromJson(DangerRunner.kt:40)
	at com.squareup.moshi.JsonAdapter$2.fromJson(JsonAdapter.java:137)
	at com.squareup.moshi.kotlin.reflect.KotlinJsonAdapter.fromJson(KotlinJsonAdapter.kt:83)
	at com.squareup.moshi.JsonAdapter$2.fromJson(JsonAdapter.java:137)
	at com.squareup.moshi.kotlin.reflect.KotlinJsonAdapter.fromJson(KotlinJsonAdapter.kt:83)
	at com.squareup.moshi.JsonAdapter$2.fromJson(JsonAdapter.java:137)
	at com.squareup.moshi.kotlin.reflect.KotlinJsonAdapter.fromJson(KotlinJsonAdapter.kt:83)
	at com.squareup.moshi.JsonAdapter$2.fromJson(JsonAdapter.java:137)
	at com.squareup.moshi.kotlin.reflect.KotlinJsonAdapter.fromJson(KotlinJsonAdapter.kt:83)
	at com.squareup.moshi.JsonAdapter$2.fromJson(JsonAdapter.java:137)
	at com.squareup.moshi.JsonAdapter.fromJson(JsonAdapter.java:41)
	at systems.danger.kotlin.DangerRunner.<init>(DangerRunner.kt:125)
	at systems.danger.kotlin.DangerRunnerKt.Danger(DangerRunner.kt:238)
	at Dangerfile_df.<init>(Dangerfile.df.kts:77)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
	at kotlin.script.experimental.jvm.BasicJvmScriptEvaluator.evalWithConfigAndOtherScriptsResults(BasicJvmScriptEvaluator.kt:96)
	at kotlin.script.experimental.jvm.BasicJvmScriptEvaluator.invoke$suspendImpl(BasicJvmScriptEvaluator.kt:41)
	at kotlin.script.experimental.jvm.BasicJvmScriptEvaluator.invoke(BasicJvmScriptEvaluator.kt)
	at org.jetbrains.kotlin.scripting.compiler.plugin.AbstractScriptEvaluationExtension$doEval$1.invokeSuspend(AbstractScriptEvaluationExtension.kt:143)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:56)
	at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:274)
	at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:84)
	at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:59)
	at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source)
	at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Builders.kt:38)
	at kotlinx.coroutines.BuildersKt.runBlocking$default(Unknown Source)
	at org.jetbrains.kotlin.scripting.compiler.plugin.AbstractScriptEvaluationExtension.doEval(AbstractScriptEvaluationExtension.kt:135)
	at org.jetbrains.kotlin.scripting.compiler.plugin.AbstractScriptEvaluationExtension.eval(AbstractScriptEvaluationExtension.kt:123)
	at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:102)
	at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:52)
	at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:88)
	at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:44)
	at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:98)
	at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:76)
	at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:45)
	at org.jetbrains.kotlin.cli.common.CLITool$Companion.doMainNoExit(CLITool.kt:227)
	at org.jetbrains.kotlin.cli.common.CLITool$Companion.doMainNoExit$default(CLITool.kt:222)
	at org.jetbrains.kotlin.cli.common.CLITool$Companion.doMain(CLITool.kt:214)
	at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler$Companion.main(K2JVMCompiler.kt:271)
	at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.main(K2JVMCompiler.kt)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.jetbrains.kotlin.preloading.Preloader.run(Preloader.java:87)
	at org.jetbrains.kotlin.preloading.Preloader.main(Preloader.java:44)
java.lang.NullPointerException
	at systems.danger.kotlin.Rfc3339DateJsonAdapter.fromJson(DangerRunner.kt:44)
	at systems.danger.kotlin.Rfc3339DateJsonAdapter.fromJson(DangerRunner.kt:40)
	at com.squareup.moshi.JsonAdapter$2.fromJson(JsonAdapter.java:137)
	at com.squareup.moshi.kotlin.reflect.KotlinJsonAdapter.fromJson(KotlinJsonAdapter.kt:83)
	at com.squareup.moshi.JsonAdapter$2.fromJson(JsonAdapter.java:137)
	at com.squareup.moshi.kotlin.reflect.KotlinJsonAdapter.fromJson(KotlinJsonAdapter.kt:83)
	at com.squareup.moshi.JsonAdapter$2.fromJson(JsonAdapter.java:137)
	at com.squareup.moshi.kotlin.reflect.KotlinJsonAdapter.fromJson(KotlinJsonAdapter.kt:83)
	at com.squareup.moshi.JsonAdapter$2.fromJson(JsonAdapter.java:137)
	at com.squareup.moshi.kotlin.reflect.KotlinJsonAdapter.fromJson(KotlinJsonAdapter.kt:83)
	at com.squareup.moshi.JsonAdapter$2.fromJson(JsonAdapter.java:137)
	at com.squareup.moshi.JsonAdapter.fromJson(JsonAdapter.java:41)
	at systems.danger.kotlin.DangerRunner.<init>(DangerRunner.kt:125)
	at systems.danger.kotlin.DangerRunnerKt.Danger(DangerRunner.kt:238)
	at Dangerfile_df.<init>(Dangerfile.df.kts:77)

Here is my dangerfile.df.kts

@file:Repository("https://repo.maven.apache.org")
@file:DependsOn("org.apache.commons:commons-text:1.6")
@file:DependsOn("com.gianluz:danger-kotlin-android-lint-plugin:0.1.0")
@file:DependsOn("io.github.ackeecz:danger-kotlin-detekt:0.1.4")

import com.gianluz.dangerkotlin.androidlint.*
import io.github.ackeecz.danger.detekt.DetektPlugin
import systems.danger.kotlin.*
import java.nio.file.Files
import java.nio.file.Paths
import java.util.function.BiPredicate
import java.util.stream.Collectors

register plugin DetektPlugin
register plugin AndroidLint

danger(args) {

    val allSourceFiles = git.modifiedFiles + git.createdFiles
    val changelogChanged = allSourceFiles.contains("CHANGELOG.md")
    val sourceChanges = allSourceFiles.firstOrNull { it.contains("src") }

    onGitLab {

        // Changelog
        if (!changelogChanged && sourceChanges != null) {
            warn("Any changes to code should be reflected in the Changelog.")
        }

        // Big MR Check
        if (mergeRequest.changesCount.takeLast(1)
                .equals("+") || mergeRequest.changesCount.toInt() > 300
        ) {
            warn("Big MR, try to keep changes smaller if you can")
        }

        // Work in progress check
        if (mergeRequest.workInProgress) {
            warn("MR is classed as Work in Progress")
        }
    }

    val detektReports = Files.find(Paths.get(""), 10, BiPredicate { path, attributes ->
        val fileName = path.toFile().name
        fileName.endsWith("detekt.xml")
    }).map { it.toFile() }.collect(Collectors.toList())

    DetektPlugin.parseAndReport(*detektReports.toTypedArray())
}


androidLint {
    // Fail for each Fatal in a single module
    val moduleLintFilePaths = find(
        "app/build/reports/",
        "lint-results.xml",
        "lint-results-debug.xml",
        "lint-results-release.xml"
    ).toTypedArray()

    parseAllDistinct(*moduleLintFilePaths).forEach {
        if (it.severity == "Fatal" || it.severity == "Error")
            fail(
                "Danger lint check failed: ${it.message}",
                it.location.file.replace(System.getProperty("user.dir"), ""),
                Integer.parseInt(it.location.line)
            )
        if (it.severity == "Warning")
            warn(
                "Danger lint check warning: ${it.message}",
                it.location.file.replace(System.getProperty("user.dir"), ""),
                Integer.parseInt(it.location.line)
            )
    }
}

Brew installation failure danger-kotlin/0.2.0

Due installation via brew I got this isssue

==> make install PREFIX=/usr/local/Cellar/danger-kotlin/0.2.0
Last 15 lines from /Users/username/Library/Logs/Homebrew/danger-kotlin/01.make:

* Where:
Settings file '/private/tmp/danger-kotlin-20200226-23613-1a5qekz/kotlin-0.2.0/settings.gradle' line: 16

* What went wrong:
A problem occurred evaluating settings 'kotlin-0.2.0'.
> Could not get unknown property 'MPPTools' for settings 'kotlin-0.2.0' of type org.gradle.initialization.DefaultSettings.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 648ms
make: *** [build] Error 1

MissingFieldException: Field 'issue' is required, but it was missing

I'm getting this error when trying to run Danger from CI (Github Actions):

Executing $(which danger) ci --process danger-kotlin --passURLForDSL --failOnErrors --no-publish-check - pid 1
Executing kotlinc -script-templates systems.danger.kts.DangerFileScript -cp /usr/local/lib/danger/danger-kotlin.jar -script Dangerfile.df.kts /tmp/danger-dsl.json danger_out.json - pid 24

kotlinx.serialization.MissingFieldException: Field 'issue' is required, but it was missing

	at systems.danger.kotlin.models.github.GitHub.<init>(GitHub.kt)
	at systems.danger.kotlin.models.github.GitHub$$serializer.deserialize(GitHub.kt)
	at systems.danger.kotlin.models.github.GitHub$$serializer.deserialize(GitHub.kt:14)
	at kotlinx.serialization.json.internal.PolymorphicKt.decodeSerializableValuePolymorphic(Polymorphic.kt:63)
	at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:33)
	at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableValue(AbstractDecoder.kt:41)
	at kotlinx.serialization.encoding.AbstractDecoder.decodeNullableSerializableElement(AbstractDecoder.kt:72)
	at systems.danger.kotlin.models.danger.DangerDSL$$serializer.deserialize(DangerDSL.kt)
	at systems.danger.kotlin.models.danger.DangerDSL$$serializer.deserialize(DangerDSL.kt:15)
	at kotlinx.serialization.json.internal.PolymorphicKt.decodeSerializableValuePolymorphic(Polymorphic.kt:63)
	at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:33)
	at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableValue(AbstractDecoder.kt:41)
	at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableElement(AbstractDecoder.kt:63)
	at systems.danger.kotlin.models.danger.DSL$$serializer.deserialize(DangerDSL.kt)
	at systems.danger.kotlin.models.danger.DSL$$serializer.deserialize(DangerDSL.kt:10)
	at kotlinx.serialization.json.internal.PolymorphicKt.decodeSerializableValuePolymorphic(Polymorphic.kt:63)
	at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:33)
	at kotlinx.serialization.json.Json.decodeFromString(Json.kt:85)
	at systems.danger.kotlin.MainDangerRunner.<init>(MainDangerRunner.kt:130)
	at systems.danger.kotlin.MainScriptKt.Danger(MainScript.kt:39)
	at Dangerfile_df.<init>(Dangerfile.df.kts:225)

Could it be related to our organisation not using Github Issues feature at all? 🤔

I only found that issue when running Danger in CI, it was working as a charm when using:
danger-kotlin pr https://github.com/myOrg/myRepo/pull/123 from my machine.

Could not find a DangerFile

After running command bundle exec danger i get an error
[!] Could not find a Dangerfile.

Whole process looks like this:

  • gem install bundler
  • bundler init
  • Gemfile
    # frozen_string_literal: true
    source "https://rubygems.org"
    
    git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
    
    # gem "rails"
    gem 'danger'
    
  • bundle install
    bundle exec danger --version
  • bundle exec danger init

CI/CD side

  • bundle install
  • bundle exec danger

Does anyone know how to solve this problem?

Crash when milestone description is not set

The crash happened when a PR has a milestone but the description has not been set.

com.squareup.moshi.JsonDataException: Non-null value 'description' was null at $.danger.github.issue.milestone.description
	at com.squareup.moshi.kotlin.reflect.KotlinJsonAdapter.fromJson(KotlinJsonAdapter.kt:86)
	at com.squareup.moshi.JsonAdapter$2.fromJson(JsonAdapter.java:137)
	at com.squareup.moshi.kotlin.reflect.KotlinJsonAdapter.fromJson(KotlinJsonAdapter.kt:83)
	at com.squareup.moshi.JsonAdapter$2.fromJson(JsonAdapter.java:137)
	at com.squareup.moshi.kotlin.reflect.KotlinJsonAdapter.fromJson(KotlinJsonAdapter.kt:83)
	at com.squareup.moshi.JsonAdapter$2.fromJson(JsonAdapter.java:137)
	at com.squareup.moshi.kotlin.reflect.KotlinJsonAdapter.fromJson(KotlinJsonAdapter.kt:83)
	at com.squareup.moshi.JsonAdapter$2.fromJson(JsonAdapter.java:137)
	at com.squareup.moshi.kotlin.reflect.KotlinJsonAdapter.fromJson(KotlinJsonAdapter.kt:83)
	at com.squareup.moshi.JsonAdapter$2.fromJson(JsonAdapter.java:137)
	at com.squareup.moshi.JsonAdapter.fromJson(JsonAdapter.java:41)
	at systems.danger.kotlin.DangerRunner.<init>(DangerRunner.kt:125)
	at systems.danger.kotlin.DangerRunnerKt.Danger(DangerRunner.kt:238)
	at Dangerfile_df.<init>(Dangerfile.df.kts:18)

Dependencies apparently not working

Creating an issue just to keep everyone on track.
At the moment looks like something is broken regarding the dependency resolution, we can use danger-kotlin pure and nude 😞

I'm investigating on that!

Brew version 0.6

There is a new version 0.7.0 but when I'm trying to install with brew it's still getting the previous one. Is there a plan to update that too?

Field 'approvals_before_merge' is required, but it was missing

Hey guys, we've update to the newest version in the repository (we build binary from source) and this crash started to happen for us. Maybe we have older/newer gitlab version and this is not in the api but it should probably still not be required I suppose.

kotlinx.serialization.MissingFieldException: Field 'approvals_before_merge' is required, but it was missing
	at systems.danger.kotlin.GitLabMergeRequest.<init>(GitLab.kt:39)
	at systems.danger.kotlin.GitLabMergeRequest$$serializer.deserialize(GitLab.kt)
	at systems.danger.kotlin.GitLabMergeRequest$$serializer.deserialize(GitLab.kt:35)
	at kotlinx.serialization.json.internal.PolymorphicKt.decodeSerializableValuePolymorphic(Polymorphic.kt:63)
	at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:33)
	at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableValue(AbstractDecoder.kt:41)
	at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableElement(AbstractDecoder.kt:63)
	at systems.danger.kotlin.GitLab$$serializer.deserialize(GitLab.kt)
	at systems.danger.kotlin.GitLab$$serializer.deserialize(GitLab.kt:12)
	at kotlinx.serialization.json.internal.PolymorphicKt.decodeSerializableValuePolymorphic(Polymorphic.kt:63)
	at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:33)
	at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableValue(AbstractDecoder.kt:41)
	at kotlinx.serialization.encoding.AbstractDecoder.decodeNullableSerializableElement(AbstractDecoder.kt:72)
	at systems.danger.kotlin.DangerDSL$$serializer.deserialize(DangerDSL.kt)
	at systems.danger.kotlin.DangerDSL$$serializer.deserialize(DangerDSL.kt:11)
	at kotlinx.serialization.json.internal.PolymorphicKt.decodeSerializableValuePolymorphic(Polymorphic.kt:63)
	at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:33)
	at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableValue(AbstractDecoder.kt:41)
	at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableElement(AbstractDecoder.kt:63)
	at systems.danger.kotlin.DSL$$serializer.deserialize(DangerDSL.kt)
	at systems.danger.kotlin.DSL$$serializer.deserialize(DangerDSL.kt:6)
	at kotlinx.serialization.json.internal.PolymorphicKt.decodeSerializableValuePolymorphic(Polymorphic.kt:63)
	at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:33)
	at kotlinx.serialization.json.Json.decodeFromString(Json.kt:85)
	at systems.danger.kotlin.DangerRunner.<init>(DangerRunner.kt:232)
	at systems.danger.kotlin.DangerRunnerKt.Danger(DangerRunner.kt:198)
	at Dangerfile_df.<init>(Dangerfile.df.kts:93)

Danger execution fails for PR assigned to a closed milestone

PR is in an inactive (closed) milestone. It seem to be the cause for a serialization error.

kotlinx.serialization.SerializationException: systems.danger.kotlin.models.github.GitHubMilestoneState does not contain element with name 'closed'
    at kotlinx.serialization.json.internal.TreeJsonDecoderKt.getElementIndexOrThrow(TreeJsonDecoder.kt:271)
    at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeEnum(StreamingJsonDecoder.kt:225)
    at systems.danger.kotlin.models.github.GitHubMilestoneState$$serializer.deserialize(GitHub.kt)
    at systems.danger.kotlin.models.github.GitHubMilestoneState$$serializer.deserialize(GitHub.kt:304)
    at kotlinx.serialization.json.internal.PolymorphicKt.decodeSerializableValuePolymorphic(Polymorphic.kt:63)
    at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:33)
    at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableValue(AbstractDecoder.kt:41)
    at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableElement(AbstractDecoder.kt:63)
    at systems.danger.kotlin.models.github.GitHubMilestone$$serializer.deserialize(GitHub.kt)
    at systems.danger.kotlin.models.github.GitHubMilestone$$serializer.deserialize(GitHub.kt:332)
    at kotlinx.serialization.json.internal.PolymorphicKt.decodeSerializableValuePolymorphic(Polymorphic.kt:63)
    at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:33)
    at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableValue(AbstractDecoder.kt:41)
    at kotlinx.serialization.encoding.AbstractDecoder.decodeNullableSerializableElement(AbstractDecoder.kt:72)
    at systems.danger.kotlin.models.github.GitHubIssue$$serializer.deserialize(GitHub.kt)
    at systems.danger.kotlin.models.github.GitHubIssue$$serializer.deserialize(GitHub.kt:243)
    at kotlinx.serialization.json.internal.PolymorphicKt.decodeSerializableValuePolymorphic(Polymorphic.kt:63)
    at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:33)
    at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableValue(AbstractDecoder.kt:41)
    at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableElement(AbstractDecoder.kt:63)
    at systems.danger.kotlin.models.github.GitHub$$serializer.deserialize(GitHub.kt)
    at systems.danger.kotlin.models.github.GitHub$$serializer.deserialize(GitHub.kt:14)
    at kotlinx.serialization.json.internal.PolymorphicKt.decodeSerializableValuePolymorphic(Polymorphic.kt:63)
    at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:33)
    at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableValue(AbstractDecoder.kt:41)
    at kotlinx.serialization.encoding.AbstractDecoder.decodeNullableSerializableElement(AbstractDecoder.kt:72)
    at systems.danger.kotlin.models.danger.DangerDSL$$serializer.deserialize(DangerDSL.kt)
    at systems.danger.kotlin.models.danger.DangerDSL$$serializer.deserialize(DangerDSL.kt:15)
    at kotlinx.serialization.json.internal.PolymorphicKt.decodeSerializableValuePolymorphic(Polymorphic.kt:63)
    at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:33)
    at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableValue(AbstractDecoder.kt:41)
    at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableElement(AbstractDecoder.kt:63)
    at systems.danger.kotlin.models.danger.DSL$$serializer.deserialize(DangerDSL.kt)
    at systems.danger.kotlin.models.danger.DSL$$serializer.deserialize(DangerDSL.kt:10)
    at kotlinx.serialization.json.internal.PolymorphicKt.decodeSerializableValuePolymorphic(Polymorphic.kt:63)
    at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:33)
    at kotlinx.serialization.json.Json.decodeFromString(Json.kt:85)
    at systems.danger.kotlin.MainDangerRunner.<init>(MainDangerRunner.kt:130)
    at systems.danger.kotlin.MainScriptKt.Danger(MainScript.kt:39)
    at Dangerfile_df.<init>(Dangerfile.df.kts:69)

dangerfile

danger(args) {
    onGitHub {
        // Milestone is required
        if (pullRequest.milestone == null) {
            fail("PR is required to have a milestone.")
        }
    }
}

Environment: GitHub Enterprise Server 2.22.4

Autocomplete in Android Studio not working

Hi, I'm trying to enable autocompletion and syntax highlighting for kotlin Dangerfiles in AS 4.0+ and I have a trouble in making it work. I think that I've done everything that was in the manual in the README but I still get syntax errors (after multiple restarts) and the error tooltip shows message

Cannot access script base class 'systems.danger.kts.DangerFileScript'. Check your module classpath for missing or conflicting dependencies

I have installed danger-kotlin 0.5.1 through brew.

Do you know what I might be doing wrong?

Danger Kotlin does not install

When it gets to this part below, I'm always receiving a crash in the installation. Can some help?

`make install PREFIX=/usr/local/Cellar/danger-kotlin/0.7.1
./gradlew shadowJar -p danger-kotlin-library
Picked up _JAVA_OPTIONS: -Duser.home=/Users/arthurabreu/Library/Caches/Homebrew/java_cache

FAILURE: Build failed with an exception.

  • Where:
    Settings file '/private/tmp/danger-kotlin-20210823-12389-iwjeau/kotlin-0.7.1/settings.gradle'

  • What went wrong:
    Could not compile settings file '/private/tmp/danger-kotlin-20210823-12389-iwjeau/kotlin-0.7.1/settings.gradle'.

startup failed:
General error during semantic analysis: Unsupported class file major version 60

java.lang.IllegalArgumentException: Unsupported class file major version 60
at groovyjarjarasm.asm.ClassReader.(ClassReader.java:196)
at groovyjarjarasm.asm.ClassReader.(ClassReader.java:177)
at groovyjarjarasm.asm.ClassReader.(ClassReader.java:163)
at groovyjarjarasm.asm.ClassReader.(ClassReader.java:284)
at org.codehaus.groovy.ast.decompiled.AsmDecompiler.parseClass(AsmDecompiler.java:81)
at org.codehaus.groovy.control.ClassNodeResolver.findDecompiled(ClassNodeResolver.java:251)
at org.codehaus.groovy.control.ClassNodeResolver.tryAsLoaderClassOrScript(ClassNodeResolver.java:189)
at org.codehaus.groovy.control.ClassNodeResolver.findClassNode(ClassNodeResolver.java:169)
at org.codehaus.groovy.control.ClassNodeResolver.resolveName(ClassNodeResolver.java:125)
at org.codehaus.groovy.ast.decompiled.AsmReferenceResolver.resolveClassNullable(AsmReferenceResolver.java:57)
at org.codehaus.groovy.ast.decompiled.AsmReferenceResolver.resolveClass(AsmReferenceResolver.java:44)
at org.codehaus.groovy.ast.decompiled.AsmReferenceResolver.resolveNonArrayType(AsmReferenceResolver.java:79)
at org.codehaus.groovy.ast.decompiled.AsmReferenceResolver.resolveType(AsmReferenceResolver.java:70)
at org.codehaus.groovy.ast.decompiled.MemberSignatureParser.createMethodNode(MemberSignatureParser.java:57)
at org.codehaus.groovy.ast.decompiled.DecompiledClassNode$2.get(DecompiledClassNode.java:234)
at org.codehaus.groovy.ast.decompiled.DecompiledClassNode$2.get(DecompiledClassNode.java:231)
at org.codehaus.groovy.ast.decompiled.DecompiledClassNode.createMethodNode(DecompiledClassNode.java:242)
at org.codehaus.groovy.ast.decompiled.DecompiledClassNode.lazyInitMembers(DecompiledClassNode.java:199)
at org.codehaus.groovy.ast.decompiled.DecompiledClassNode.getDeclaredMethods(DecompiledClassNode.java:122)
at org.codehaus.groovy.ast.ClassNode.getMethods(ClassNode.java:912)`

java -version
java version "16.0.2" 2021-07-20
Java(TM) SE Runtime Environment (build 16.0.2+7-67)
Java HotSpot(TM) 64-Bit Server VM (build 16.0.2+7-67, mixed mode, sharing)

I have danger js and swift installed, no issues with those.

java.lang.NoClassDefFoundError

Hi, I've created a plugin for danger-kotlin and I keep it locally. It works well 99% of the time, but what sometimes happens is I get this error and it's goes away from jenkins after a while.

Executing $(which danger) ci --process danger-kotlin --passURLForDSL  - pid 25239

(node:25243) Warning: Setting the NODE_TLS_REJECT_UNAUTHORIZED environment variable to '0' makes TLS connections and HTTPS requests insecure by disabling certificate verification.

Executing kotlinc -script-templates systems.danger.kts.DangerFileScript -cp /usr/local/lib/danger/danger-kotlin.jar -script Dangerfile.df.kts /var/folders/6h/zdl3gfjn6n542vqh1cykzyv80000gn/T/danger-dsl.json danger_out.json - pid 25248


java.lang.NoClassDefFoundError: main/DKLinterReporter


	at Dangerfile_df.<init>(Dangerfile.df.kts:10)


Uncaught Kotlin exception: kotlin.Exception: Command kotlinc -script-templates systems.danger.kts.DangerFileScript -cp /usr/local/lib/danger/danger-kotlin.jar -script Dangerfile.df.kts /var/folders/6h/zdl3gfjn6n542vqh1cykzyv80000gn/T/danger-dsl.json danger_out.json exited with code 768


Failing the build, there is 1 fail

Did any of you had the same issue or are you aware how to fix it?
Thanks

JsonDecodingException on approvals_before_merge

Hello. I'm catching an exception, because approvals_before_merge field is null. According to GitLab doc this field is not required in the response and can be null.

Compiling Dangerfile Dangerfile.df.kts
Executing kotlinc -script-templates systems.danger.kts.DangerFileScript -cp /usr/local/lib/danger/danger-kotlin.jar -script Dangerfile.df.kts /var/folders/5q/4nc5x9yd6mvcpzd_g_cwjdyc0000gn/T/danger-dsl.json danger_out.json - pid 78358

kotlinx.serialization.json.internal.JsonDecodingException: Unexpected JSON token at offset 95589: Unexpected symbol 'n' in numeric literal
JSON input: .....    "approvals_before_merge": null,
        "subscribed": fa.....

Add reports such a ktlint/android lint

Hi, I was wondering is there's a way to add ktlint style report to add comments? such as:

# ktlint
github.dismiss_out_of_range_messages
checkstyle_format.base_path = Dir.pwd
checkstyle_format.report "<project_name>/build/reports/ktlint/ktlint-debug.xml"

Thanks

Non-null value 'body' was null at $.danger.github.issue.body

Seems to be new issue. Even when I add body to PR, its failing. Previously it was optional and just warning is shown, now it fails

Run danger/[email protected]


com.squareup.moshi.JsonDataException: Non-null value 'body' was null at $.danger.github.issue.body
	at com.squareup.moshi.kotlin.reflect.KotlinJsonAdapter.fromJson(KotlinJsonAdapter.kt:86)
	at com.squareup.moshi.JsonAdapter$2.fromJson(JsonAdapter.java:137)
	at com.squareup.moshi.kotlin.reflect.KotlinJsonAdapter.fromJson(KotlinJsonAdapter.kt:83)
	at com.squareup.moshi.JsonAdapter$2.fromJson(JsonAdapter.java:137)
	at com.squareup.moshi.kotlin.reflect.KotlinJsonAdapter.fromJson(KotlinJsonAdapter.kt:83)
	at com.squareup.moshi.JsonAdapter$2.fromJson(JsonAdapter.java:137)
	at com.squareup.moshi.kotlin.reflect.KotlinJsonAdapter.fromJson(KotlinJsonAdapter.kt:83)
	at com.squareup.moshi.JsonAdapter$2.fromJson(JsonAdapter.java:137)
	at com.squareup.moshi.JsonAdapter.fromJson(JsonAdapter.java:41)
	at systems.danger.kotlin.DangerRunner.<init>(DangerRunner.kt:125)
	at systems.danger.kotlin.DangerRunnerKt.Danger(DangerRunner.kt:238)
	at Dangerfile_df.<init>(Dangerfile.df.kts:75)
	```
Uncaught Kotlin exception: kotlin.Exception: Command kotlinc -script-templates systems.danger.kts.DangerFileScript -cp /usr/local/lib/danger/danger-kotlin.jar -script Dangerfile.df.kts /tmp/danger-dsl.json danger_out.json exited with code 768

    at kfun:systems.danger.cmd.Cmd#exec(){} (0x228518)
    at kfun:systems.danger.cmd.dangerfile.DangerFile#execute(kotlin.String;kotlin.String){} (0x22915b)
    at kfun:systems.danger.DangerKotlin#run(){} (0x227408)
    at Init_and_run_start (0x22c005)
    at __libc_start_main (0x7f0de2f50b97)
    at  (0x211029)
    at  ((nil))

Failing the build, there is 1 fail.
Request failed [403]: api.github.com/user
Response: {
  "message": "Resource not accessible by integration",
  "documentation_url": "docs.github.com/rest/reference/users#get-the-authenticated-user"
}
Request failed [403]: api.github.com/user
Response: {
  "message": "Resource not accessible by integration",
  "documentation_url": "docs.github.com/rest/reference/users#get-the-authenticated-user"
}
Uncaught Kotlin exception: kotlin.Exception: Command $(which danger) ci --process danger-kotlin --passURLForDSL  exited with code 256
    at kfun:systems.danger.cmd.Cmd#exec(){} (0x228518)
    at kfun:systems.danger.cmd.dangerjs.DangerJS#process(kotlin.String;kotlin.String;kotlin.collections.List<kotlin.String>){} (0x229764)
    at Init_and_run_start (0x22c364)
    at __libc_start_main (0x7f0d3eb59b97)
    at  (0x211029)
    at  ((nil))```
    

Kotlinc not found

Hi, getting the error when running Danger Kotlin on TeamCity CI:
sh: 1: kotlinc: not found
But kotlinc is installed at:
/usr/local/kotlinc/bin/kotlinc

Do you happen to know how to solve this?

Consider editing repository setings to remove "Packages" section

"Packages No packages published" is displayed right now, fortunately this pointless section can be removed.

Edit repo page config to remove it (cog next to the description).

I am not making a PR as it is defined in proprietary github settings, not in a git repository - and I have no rights to modify repo settings.

Peek 2020-10-25 09-10

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.