Skip to content
This repository was archived by the owner on Mar 13, 2025. It is now read-only.

fix: update git-helper for refactored GitlabService #112

Merged
merged 1 commit into from
Sep 13, 2023
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
8 changes: 4 additions & 4 deletions services/GithubService.js
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ function _parseRepoUrl(fullName) {
/**
* authenticate the github using access token
* @param {String} accessToken the access token of copilot
* @returns {Object} the github instance
* @returns {Promise<Object>} the github instance
* @private
*/
async function _authenticate(accessToken) {
Expand Down Expand Up @@ -82,7 +82,7 @@ async function _removeAssignees(github, owner, repo, number, assignees) {
/**
* gets the username of given user id
* @param {Number} id the user id
* @returns {string} username if found
* @returns {Promise<string>} username if found
*/
async function _getUsernameById(id) {
const user = await request
Expand Down Expand Up @@ -211,7 +211,7 @@ createComment.schema = {
* Gets the user name by user id
* @param {Object} copilot the copilot
* @param {Number} userId the user id
* @returns {string} the username if found else null
* @returns {Promise<string>} the username if found else null
*/
async function getUsernameById(copilot, userId) {
Joi.attempt({copilot, userId}, getUsernameById.schema);
Expand All @@ -228,7 +228,7 @@ getUsernameById.schema = {
* Gets the user id by username
* @param {Object} copilot the copilot
* @param {string} login the username
* @returns {Number} the user id if found else null
* @returns {Promise<Number>} the user id if found else null
*/
async function getUserIdByLogin(copilot, login) {
Joi.attempt({copilot, login}, getUserIdByLogin.schema);
Expand Down
4 changes: 2 additions & 2 deletions services/GitlabService.js
Original file line number Diff line number Diff line change
Expand Up @@ -287,7 +287,7 @@ class GitlabService {
/**
* Gets the user name by user id
* @param {Number} userId the user id
* @returns {string} the username if found else null
* @returns {Promise<string>} the username if found else null
*/
async getUsernameById(userId) {
Joi.attempt({userId}, {userId: Joi.number().required()});
Expand All @@ -298,7 +298,7 @@ class GitlabService {
/**
* Gets the user id by username
* @param {String} login the username
* @returns {Number} the user id if found else null
* @returns {Promise<Number>} the user id if found else null
*/
async getUserIdByLogin(login) {
Joi.attempt({login}, {login: Joi.string().required()});
Expand Down
13 changes: 11 additions & 2 deletions utils/git-helper.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@

const config = require('config');
const gitHubService = require('../services/GithubService');
const gitlabService = require('../services/GitlabService');
const GitlabService = require('../services/GitlabService');
const azureService = require('../services/AzureService');

class GitHelper {
Expand All @@ -27,6 +27,7 @@ class GitHelper {
if (event.provider === 'github') {
await gitHubService.createComment(event.copilot, event.data.repository.full_name, issueNumber, comment);
} else if (event.provider === 'gitlab') {
const gitlabService = await GitlabService.create(event.copilot);
await gitlabService.createComment(event.copilot, event.data.repository, issueNumber, comment);
}
}
Expand All @@ -41,6 +42,7 @@ class GitHelper {
if (event.provider === 'github') {
await gitHubService.addLabels(event.copilot, event.data.repository.full_name, issueNumber, labels);
} else if (event.provider === 'gitlab') {
const gitlabService = await GitlabService.create(event.copilot);
await gitlabService.addLabels(event.copilot, event.data.repository, issueNumber, labels);
}
}
Expand All @@ -54,6 +56,7 @@ class GitHelper {
if (event.provider === 'github') {
await gitHubService.changeState(event.copilot, event.data.repository.full_name, issue.number, 'open');
} else if (event.provider === 'gitlab') {
const gitlabService = await GitlabService.create(event.copilot);
await gitlabService.changeState(event.copilot, event.data.repository, issue.number, 'reopen');
}
}
Expand All @@ -68,6 +71,7 @@ class GitHelper {
if (event.provider === 'github') {
return await gitHubService.getUsernameById(event.copilot, assigneeUserId);
} else if (event.provider === 'gitlab') {
const gitlabService = await GitlabService.create(event.copilot);
return await gitlabService.getUsernameById(event.copilot, assigneeUserId);
}
return null;
Expand All @@ -84,6 +88,7 @@ class GitHelper {
if (event.provider === 'github') {
await gitHubService.removeAssign(event.copilot, event.data.repository.full_name, issueNumber, assigneeUsername);
} else if (event.provider === 'gitlab') {
const gitlabService = await GitlabService.create(event.copilot);
await gitlabService.removeAssign(event.copilot, event.data.repository, issueNumber, assigneeUserId);
}
}
Expand All @@ -98,6 +103,7 @@ class GitHelper {
if (event.provider === 'github') {
await gitHubService.updateIssue(event.copilot, event.data.repository.full_name, issueNumber, newTitle);
} else if (event.provider === 'gitlab') {
const gitlabService = await GitlabService.create(event.copilot);
await gitlabService.updateIssue(event.copilot, event.data.repository, issueNumber, newTitle);
}
}
Expand All @@ -112,6 +118,7 @@ class GitHelper {
if (event.provider === 'github') {
await gitHubService.assignUser(event.copilot, event.data.repository.full_name, issueNumber, assignedUser);
} else if (event.provider === 'gitlab') {
const gitlabService = await GitlabService.create(event.copilot);
const userId = await gitlabService.getUserIdByLogin(event.copilot, assignedUser);
await gitlabService.assignUser(event.copilot, event.data.repository, issueNumber, userId);
}
Expand All @@ -131,6 +138,7 @@ class GitHelper {
await gitHubService.markIssueAsPaid(event.copilot, event.data.repository.full_name, issueNumber, challengeUUID, existLabels, winner,
createCopilotPayments);
} else if (event.provider === 'gitlab') {
const gitlabService = await GitlabService.create(event.copilot);
await gitlabService.markIssueAsPaid(event.copilot, event.data.repository, issueNumber, challengeUUID, existLabels, winner,
createCopilotPayments);
} else if (event.provider === 'azure') {
Expand All @@ -139,7 +147,7 @@ class GitHelper {
}

/**
* Retruns repository full url
* Returns repository full url
* @param {Object} event the event
* @returns {String} the repository full url
*/
Expand All @@ -162,6 +170,7 @@ class GitHelper {
if (event.provider === 'github') {
return await gitHubService.getUserIdByLogin(event.copilot, assignee);
} else if (event.provider === 'gitlab') {
const gitlabService = await GitlabService.create(event.copilot);
return gitlabService.getUserIdByLogin(event.copilot, assignee);
}
return null;
Expand Down