Skip to content
This repository was archived by the owner on Mar 13, 2025. It is now read-only.
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
1 change: 1 addition & 0 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ install_dependency: &install_dependency
sudo apt install jq
sudo apt install python3-pip
sudo pip3 install awscli --upgrade
sudo pip3 install docker==6.1.3

install_deploysuite: &install_deploysuite
name: Installation of install_deploysuite.
Expand Down
28 changes: 26 additions & 2 deletions models/Project.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,33 @@ const schema = new Schema({
required: true
},
tags: {
type: String,
type: 'list',
list: [{
type: 'map',
map: {
id: {type: String, required: true},
name: {type: String, required: true}
}
}],
required: true,
default: ''
default: [],
fromDynamo(value) {
if (value.S) {
return value.S;
}
if (value.L) {
return value.L.map((item) => {
if (item.M && item.M.name && item.M.id) {
return {
id: item.M.id.S,
name: item.M.name.S
};
}
return null;
});
}
return [];
}
},
rocketChatWebhook: {type: String, required: false},
rocketChatChannelName: {type: String, required: false},
Expand Down
16 changes: 8 additions & 8 deletions routes/webhooks.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,25 +24,25 @@ const router = express.Router();
router.post('/github', SecurityChecker('github'), RepositoryFilter('github'), wrapper(async (req, res) => {
const result = GithubEventDetector.detect(req.body);
if (!result) {
logger.info('unknown event detected');
logger.debug(req.body);
logger.info('Unknown Github event detected');
logger.info(JSON.stringify(req.body));
} else {
await kafka.send(JSON.stringify(result));
logger.info(`successfully add event: ${result.event} to kafka queue`);
logger.debug(`kafka message: ${JSON.stringify(result)}`);
logger.info(`Successfully added Github event: ${result.event} to kafka queue`);
logger.info(`kafka message: ${JSON.stringify(result)}`);
}
res.json({success: true});
}));

router.post('/gitlab', SecurityChecker('gitlab'), RepositoryFilter('gitlab'), wrapper(async (req, res) => {
const result = GitlabEventDetector.detect(req.body);
if (!result) {
logger.info('unknown event detected');
logger.debug(req.body);
logger.info('Unknown Gitlab event detected');
logger.info(JSON.stringify(req.body));
} else {
await kafka.send(JSON.stringify(result));
logger.info(`successfully add event: ${result.event} to kafka queue`);
logger.debug(`kafka message: ${JSON.stringify(result)}`);
logger.info(`Successfully added Gitlab event: ${result.event} to kafka queue`);
logger.info(`kafka message: ${JSON.stringify(result)}`);
}
res.json({success: true});
}));
Expand Down
3 changes: 3 additions & 0 deletions utils/EventDetector.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@

const Joi = require('joi');
const _ = require('lodash');
const logger = require('../utils/logger');

class EventDetector {

Expand All @@ -35,12 +36,14 @@ class EventDetector {
_.forEach(this.events, (e) => {
let result = Joi.validate(data, e.schema, {stripUnknown: true});
if (result.error) {
logger.info(`Joi validate: ${JSON.stringify(result.error)}`);
return;
}
const obj = e.parse(data);
// validate
result = Joi.attempt(obj, e.event.schema);
if (result.error) {
logger.info(`Joi schema attempt error: ${JSON.stringify(result.error)}`);
throw result.error;
}
// done
Expand Down