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

Commit 04905d8

Browse files
authored
Merge pull request #110 from dhruvit-r/develop
Gitlab auth fix-up
2 parents 68aaa8c + 8893ff9 commit 04905d8

15 files changed

+805
-427
lines changed

.eslintrc

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
"jsdoc"
88
],
99
"parserOptions": {
10-
"ecmaVersion": 8,
10+
"ecmaVersion": 2023,
1111
"ecmaFeatures": {
1212
"experimentalObjectRestSpread": true
1313
}
@@ -45,6 +45,8 @@
4545
"functions": "ignore"
4646
}
4747
],
48+
"import/no-unresolved": 0,
49+
"max-params": 0,
4850
"max-lines": 0,
4951
"max-statements": 0,
5052
"valid-jsdoc": 0

config/default.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,5 +80,6 @@ module.exports = {
8080
GITLAB_REFRESH_TOKEN_BEFORE_EXPIRATION: 300,
8181
GITLAB_CLIENT_ID: process.env.GITLAB_CLIENT_ID,
8282
GITLAB_CLIENT_SECRET: process.env.GITLAB_CLIENT_SECRET,
83-
GITLAB_OWNER_USER_CALLBACK_URL: process.env.GITLAB_OWNER_USER_CALLBACK_URL
83+
GITLAB_OWNER_USER_CALLBACK_URL: process.env.GITLAB_OWNER_USER_CALLBACK_URL,
84+
GITLAB_GUEST_USER_CALLBACK_URL: process.env.GITLAB_GUEST_USER_CALLBACK_URL
8485
};

constants.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,8 @@ const USER_TYPES = {
1919

2020
// The user roles
2121
const USER_ROLES = {
22-
OWNER: 'owner'
22+
OWNER: 'owner',
23+
GUEST: 'guest'
2324
};
2425

2526
// The challenge status

models/User.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,9 @@ const schema = new Schema({
4949
// gitlab token data
5050
accessToken: {type: String, required: false},
5151
accessTokenExpiration: {type: Date, required: false},
52-
refreshToken: {type: String, required: false}
52+
refreshToken: {type: String, required: false},
53+
lockId: {type: String, required: false},
54+
lockExpiration: {type: Date, required: false}
5355
});
5456

5557
module.exports = schema;

package-lock.json

Lines changed: 15 additions & 14 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@
1313
"direct-connect-migration": "node scripts/direct-connect-migration.js"
1414
},
1515
"engines": {
16-
"node": "~8.6.0"
16+
"node": ">=20",
17+
"npm": ">=9"
1718
},
1819
"repository": {
1920
"type": "git",
@@ -26,7 +27,7 @@
2627
},
2728
"homepage": "https://gitlab.com/luettich/processor#README",
2829
"dependencies": {
29-
"@gitbeaker/rest": "^39.12.0",
30+
"@gitbeaker/rest": "^39.13.0",
3031
"@octokit/rest": "^18.9.0",
3132
"axios": "^0.19.0",
3233
"circular-json": "^0.5.7",

services/EventService.js

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ const logger = require('../utils/logger');
1414
const models = require('../models');
1515
const dbHelper = require('../utils/db-helper');
1616
const gitHubService = require('./GithubService');
17-
const gitlabService = require('./GitlabService');
17+
const GitlabService = require('./GitlabService');
1818

1919
const timeoutMapper = {};
2020

@@ -27,7 +27,8 @@ async function reOpenIssue(event, issue) {
2727
if (event.provider === 'github') {
2828
await gitHubService.changeState(event.copilot, event.data.repository.full_name, issue.number, 'open');
2929
} else if (event.provider === 'gitlab') {
30-
await gitlabService.changeState(event.copilot, event.data.repository.id, issue.number, 'reopen');
30+
const gitlabService = await GitlabService.create(event.copilot);
31+
await gitlabService.changeState(event.data.repository.id, issue.number, 'reopen');
3132
}
3233
}
3334

@@ -37,7 +38,7 @@ async function reOpenIssue(event, issue) {
3738
* @param {Object} data the issue data or the copilot payment data
3839
* @param {Object} err the error
3940
*/
40-
async function handleEventGracefully(event, data, err) {
41+
async function handleEventGracefully(event, data, err) { // eslint-disable-line complexity
4142
if (err.errorAt === 'topcoder' || err.errorAt === 'processor') {
4243
event.retryCount = _.toInteger(event.retryCount);
4344
let keyName = '';
@@ -64,7 +65,7 @@ async function handleEventGracefully(event, data, err) {
6465
if (event.retryCount === config.RETRY_COUNT) {
6566
// Clear out the kafka queue of any queued messages (assignment, label changes, etc...)
6667
const timeoutsToClear = timeoutMapper[keyName];
67-
for (let i = 0; i < timeoutsToClear.length; i++) { // eslint-disable-line no-restricted-syntax
68+
for (let i = 0; i < timeoutsToClear.length; i++) { // eslint-disable-line no-restricted-syntax
6869
clearTimeout(timeoutsToClear[i]);
6970
}
7071
let comment = `[${err.statusCode}]: ${err.message}`;
@@ -95,7 +96,8 @@ async function handleEventGracefully(event, data, err) {
9596
if (event.provider === 'github') {
9697
await gitHubService.createComment(event.copilot, event.data.repository.full_name, data.number, comment);
9798
} else if (event.provider === 'gitlab') {
98-
await gitlabService.createComment(event.copilot, event.data.repository.id, data.number, comment);
99+
const gitlabService = await GitlabService.create(event.copilot);
100+
await gitlabService.createComment(event.data.repository.id, data.number, comment);
99101
}
100102

101103
if (event.event === 'issue.closed') {

0 commit comments

Comments
 (0)