Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions 2 CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@
## Master

- Make `force_remove_source_branch` nullable in GitLab Merge request entity [@davidbilik] - [#197](https://github.com/danger/kotlin/pull/197)
- Update `GitLabMergeRequest` model: add `squash` field [@sonulen] - [#212](https://github.com/danger/kotlin/pull/212)
- Add Gitlab extensions for url's: to project, to file diff, to current version of file [@sonulen] - [#212](https://github.com/danger/kotlin/pull/212)

# 1.0.0-beta4, 1.0.0

Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,19 @@
package systems.danger.kotlin

import systems.danger.kotlin.models.gitlab.GitLab
import java.security.MessageDigest

// extensions over [GitLab] object

val GitLab.projectUrl: String
get() = mergeRequest.webUrl.split("/merge_requests").first()

fun GitLab.toWebUrl(filePath: String) = "$projectUrl/blob/${mergeRequest.sha}/${filePath}"

fun GitLab.toWebDiffUrl(filePath: String) = "${mergeRequest.webUrl}/diffs#diff-content-${filePath.sha1}"

val String.sha1: String
get() = MessageDigest
.getInstance("SHA-1")
.digest(toByteArray())
.joinToString(separator = "") { "%02x".format(it) }
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,8 @@ data class GitLabMergeRequest(
@SerialName("web_url")
val webUrl: String,
@SerialName("work_in_progress")
val workInProgress: Boolean
val workInProgress: Boolean,
val squash: Boolean,
) {
val canMerge: Boolean
get() = this.userMergeData.canMerge
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
package systems.danger.kotlin

import kotlinx.serialization.decodeFromString
import org.junit.Assert.assertEquals
import org.junit.Test
import systems.danger.kotlin.models.danger.DSL
import systems.danger.kotlin.models.gitlab.GitLab
import systems.danger.kotlin.utils.TestUtils

/**
* Tests for [GitLab] extensions
*/
internal class GitLabKtxTest {

companion object {
private const val filePath = "static/source/swift/guides/getting_started.html.slim"
private const val projectUrl = "https://gitlab.com/danger-systems/danger.systems"
private const val diffUrl = "$projectUrl/merge_requests/182/diffs#diff-content-6b0f4e17f37f5ea51f169e6e1eaa04a0151b17d1"
private const val blobUrl = "$projectUrl/blob/621bc3348549e51c5bd6ea9f094913e9e4667c7b/$filePath"
}

private val dsl: DSL
get() = TestUtils.Json.decodeFromString(TestUtils.JSONFiles.gitlabJSON)

private val gitLab: GitLab
get() = dsl.danger.gitlab

@Test
fun testProjectUrlAreCorrect() = assertEquals(projectUrl, gitLab.projectUrl)

@Test
fun testWebUrlAreCorrect() = assertEquals(blobUrl, gitLab.toWebUrl(filePath))

@Test
fun testWebDiffUrlWithAnchorAreCorrect() = assertEquals(diffUrl, gitLab.toWebDiffUrl(filePath))
}
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,7 @@ class GitLabParsingTests {
assertEquals(0, userNotesCount)
assertEquals("https://gitlab.com/danger-systems/danger.systems/merge_requests/182", webUrl)
assertEquals(false, workInProgress)
assertEquals(false, squash)
}
}

Expand Down
Morty Proxy This is a proxified and sanitized view of the page, visit original site.