mirror of
				https://codeberg.org/yeentown/barkey.git
				synced 2025-11-04 15:34:13 +00:00 
			
		
		
		
	Fix bug
This commit is contained in:
		
							parent
							
								
									64547965b4
								
							
						
					
					
						commit
						2a5016865a
					
				
					 3 changed files with 30 additions and 42 deletions
				
			
		| 
						 | 
				
			
			@ -1,11 +1,9 @@
 | 
			
		|||
import deliver from './deliver';
 | 
			
		||||
import processInbox from './process-inbox';
 | 
			
		||||
import reportGitHubFailure from './report-github-failure';
 | 
			
		||||
 | 
			
		||||
const handlers = {
 | 
			
		||||
	deliver,
 | 
			
		||||
	processInbox,
 | 
			
		||||
	reportGitHubFailure
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
export default (job, done) => {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,24 +0,0 @@
 | 
			
		|||
import * as request from 'request-promise-native';
 | 
			
		||||
import User from '../../../models/user';
 | 
			
		||||
import createNote from '../../../services/note/create';
 | 
			
		||||
 | 
			
		||||
export default async ({ data }) => {
 | 
			
		||||
	const asyncBot = User.findOne({ _id: data.userId });
 | 
			
		||||
 | 
			
		||||
	// Fetch parent status
 | 
			
		||||
	const parentStatuses = await request({
 | 
			
		||||
		url: `${data.parentUrl}/statuses`,
 | 
			
		||||
		headers: {
 | 
			
		||||
			'User-Agent': 'misskey'
 | 
			
		||||
		},
 | 
			
		||||
		json: true
 | 
			
		||||
	});
 | 
			
		||||
 | 
			
		||||
	const parentState = parentStatuses[0].state;
 | 
			
		||||
	const stillFailed = parentState == 'failure' || parentState == 'error';
 | 
			
		||||
	const text = stillFailed ?
 | 
			
		||||
		`**⚠️BUILD STILL FAILED⚠️**: ?[${data.message}](${data.htmlUrl})` :
 | 
			
		||||
		`**🚨BUILD FAILED🚨**: →→→?[${data.message}](${data.htmlUrl})←←←`;
 | 
			
		||||
 | 
			
		||||
	createNote(await asyncBot, { text });
 | 
			
		||||
};
 | 
			
		||||
| 
						 | 
				
			
			@ -1,16 +1,17 @@
 | 
			
		|||
import * as EventEmitter from 'events';
 | 
			
		||||
import * as express from 'express';
 | 
			
		||||
//const crypto = require('crypto');
 | 
			
		||||
import * as request from 'request';
 | 
			
		||||
const crypto = require('crypto');
 | 
			
		||||
 | 
			
		||||
import User from '../../../models/user';
 | 
			
		||||
import createNote from '../../../services/note/create';
 | 
			
		||||
import config from '../../../config';
 | 
			
		||||
import { createHttp } from '../../../queue';
 | 
			
		||||
 | 
			
		||||
module.exports = async (app: express.Application) => {
 | 
			
		||||
	if (config.github_bot == null) return;
 | 
			
		||||
 | 
			
		||||
	const bot = await User.findOne({
 | 
			
		||||
		usernameLower: config.github_bot.username.toLowerCase(),
 | 
			
		||||
		host: null
 | 
			
		||||
		username_lower: config.github_bot.username.toLowerCase()
 | 
			
		||||
	});
 | 
			
		||||
 | 
			
		||||
	if (bot == null) {
 | 
			
		||||
| 
						 | 
				
			
			@ -18,7 +19,7 @@ module.exports = async (app: express.Application) => {
 | 
			
		|||
		return;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	const post = text => require('../endpoints/notes/create')({ text }, bot);
 | 
			
		||||
	const post = text => createNote(bot, { text });
 | 
			
		||||
 | 
			
		||||
	const handler = new EventEmitter();
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -26,12 +27,12 @@ module.exports = async (app: express.Application) => {
 | 
			
		|||
		// req.headers['x-hub-signature'] および
 | 
			
		||||
		// req.headers['x-github-event'] は常に string ですが、型定義の都合上
 | 
			
		||||
		// string | string[] になっているので string を明示しています
 | 
			
		||||
//		if ((new Buffer(req.headers['x-hub-signature'] as string)).equals(new Buffer(`sha1=${crypto.createHmac('sha1', config.github_bot.hook_secret).update(JSON.stringify(req.body)).digest('hex')}`))) {
 | 
			
		||||
		if ((new Buffer(req.headers['x-hub-signature'] as string)).equals(new Buffer(`sha1=${crypto.createHmac('sha1', config.github_bot.hook_secret).update(JSON.stringify(req.body)).digest('hex')}`))) {
 | 
			
		||||
			handler.emit(req.headers['x-github-event'] as string, req.body);
 | 
			
		||||
			res.sendStatus(200);
 | 
			
		||||
//		} else {
 | 
			
		||||
//			res.sendStatus(400);
 | 
			
		||||
//		}
 | 
			
		||||
		} else {
 | 
			
		||||
			res.sendStatus(400);
 | 
			
		||||
		}
 | 
			
		||||
	});
 | 
			
		||||
 | 
			
		||||
	handler.on('status', event => {
 | 
			
		||||
| 
						 | 
				
			
			@ -42,13 +43,26 @@ module.exports = async (app: express.Application) => {
 | 
			
		|||
				const commit = event.commit;
 | 
			
		||||
				const parent = commit.parents[0];
 | 
			
		||||
 | 
			
		||||
				createHttp({
 | 
			
		||||
					type: 'gitHubFailureReport',
 | 
			
		||||
					userId: bot._id,
 | 
			
		||||
					parentUrl: parent.url,
 | 
			
		||||
					htmlUrl: commit.html_url,
 | 
			
		||||
					message: commit.commit.message,
 | 
			
		||||
				}).save();
 | 
			
		||||
				// Fetch parent status
 | 
			
		||||
				request({
 | 
			
		||||
					url: `${parent.url}/statuses`,
 | 
			
		||||
					headers: {
 | 
			
		||||
						'User-Agent': 'misskey'
 | 
			
		||||
					}
 | 
			
		||||
				}, (err, res, body) => {
 | 
			
		||||
					if (err) {
 | 
			
		||||
						console.error(err);
 | 
			
		||||
						return;
 | 
			
		||||
					}
 | 
			
		||||
					const parentStatuses = JSON.parse(body);
 | 
			
		||||
					const parentState = parentStatuses[0].state;
 | 
			
		||||
					const stillFailed = parentState == 'failure' || parentState == 'error';
 | 
			
		||||
					if (stillFailed) {
 | 
			
		||||
						post(`**⚠️BUILD STILL FAILED⚠️**: ?[${commit.commit.message}](${commit.html_url})`);
 | 
			
		||||
					} else {
 | 
			
		||||
						post(`**🚨BUILD FAILED🚨**: →→→?[${commit.commit.message}](${commit.html_url})←←←`);
 | 
			
		||||
					}
 | 
			
		||||
				});
 | 
			
		||||
				break;
 | 
			
		||||
		}
 | 
			
		||||
	});
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		
		Reference in a new issue