Add support for Gitlab merge-request and issues (#133)

Co-authored-by: Adrian Görisch <adrian.goerisch@10m.de>
This commit is contained in:
Adrian Görisch 2020-04-27 10:57:20 +02:00 committed by GitHub
parent c412b1711c
commit f763553739
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 61 additions and 0 deletions

View File

@ -118,4 +118,28 @@ export default {
?.textContent?.trim(),
projectId: projectIdentifierBySelector(".taskItem.selected .taskItem-titleWrapper-title"),
},
"gitlab-mr": {
name: "gitlab",
urlPatterns: [
"https\\://gitlab.com/:org/:group/:projectId/-/merge_requests/:id",
"https\\://gitlab.com/:org/:projectId/-/merge_requests/:id",
],
description: (document, service, { id }) => {
const title = document.querySelector("h2.title")?.textContent?.trim()
return `#${id} ${title || ""}`.trim()
},
},
"gitlab-issues": {
name: "gitlab",
urlPatterns: [
"https\\://gitlab.com/:org/:group/:projectId/-/issues/:id",
"https\\://gitlab.com/:org/:projectId/-/issues/:id",
],
description: (document, service, { id }) => {
const title = document.querySelector("h2.title")?.textContent?.trim()
return `#${id} ${title || ""}`.trim()
},
},
}

View File

@ -108,6 +108,43 @@ describe("utils", () => {
).id,
).toEqual("1234")
})
it("should match gitlab-mergerequest url", () => {
const service = matcher(
"https://gitlab.com/testorganisatzion/testproject/-/merge_requests/1",
)
expect(service.id).toEqual("1")
expect(service.match.id).toEqual("1")
expect(service.name).toEqual("gitlab")
expect(service.projectId).toEqual("testproject")
})
it("should match gitlab-mergerequest url with group", () => {
const service = matcher(
"https://gitlab.com/testorganisatzion/test-group/testproject/-/merge_requests/1",
)
expect(service.id).toEqual("1")
expect(service.match.id).toEqual("1")
expect(service.name).toEqual("gitlab")
expect(service.projectId).toEqual("testproject")
})
it("should match gitlab-issue url", () => {
const service = matcher("https://gitlab.com/testorganisatzion/testproject/-/issues/1")
expect(service.id).toEqual("1")
expect(service.match.id).toEqual("1")
expect(service.name).toEqual("gitlab")
expect(service.projectId).toEqual("testproject")
})
it("should match gitlab-issue url with group", () => {
const service = matcher(
"https://gitlab.com/testorganisatzion/test-group/testproject/-/issues/1",
)
expect(service.id).toEqual("1")
expect(service.match.id).toEqual("1")
expect(service.name).toEqual("gitlab")
expect(service.projectId).toEqual("testproject")
})
})
describe("createEnhancer", () => {