@webqit/webflo 0.8.54-0 → 0.8.58-0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/services/origins/index.js +12 -16
package/package.json
CHANGED
|
@@ -140,28 +140,24 @@ export async function deploy(Ui, origin, flags = {}, layout = {}) {
|
|
|
140
140
|
*/
|
|
141
141
|
export async function hook(Ui, event, deployCallback, flags = {}, layout = {}) {
|
|
142
142
|
const eventHandler = Webhooks.createEventHandler();
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
const submits = await event.request.parse();
|
|
147
|
-
console.log('-------------------------submits', submits)
|
|
148
|
-
const matches = (await origins.match(submits.payload.repository.full_name, flags, layout)).filter(o => o.autodeploy);
|
|
149
|
-
console.log('-------------------------matches', matches)
|
|
143
|
+
if (event.request.headers.has('user-agent') && event.request.headers.get('user-agent').startsWith('GitHub-Hookshot/')) {
|
|
144
|
+
const payload = await event.request.json();
|
|
145
|
+
const matches = (await origins.match(payload.repository.full_name, flags, layout)).filter(o => o.autodeploy);
|
|
150
146
|
var deployParams;
|
|
151
147
|
if (!(deployParams = matches[0])) {
|
|
152
148
|
return;
|
|
153
149
|
}
|
|
154
150
|
if (matches.length > 1) {
|
|
155
|
-
throw new Error(`Failed deploy attempt (${
|
|
151
|
+
throw new Error(`Failed deploy attempt (${payload.repository.full_name}): Multiple deploy settings found.`);
|
|
156
152
|
}
|
|
157
153
|
if (!deployParams.autodeploy_secret) {
|
|
158
|
-
throw new Error(`Failed deploy attempt (${
|
|
154
|
+
throw new Error(`Failed deploy attempt (${payload.repository.full_name}): The deploy settings do not contain a secret.`);
|
|
159
155
|
}
|
|
160
|
-
if (!Webhooks.verify(deployParams.autodeploy_secret,
|
|
161
|
-
throw new Error(`Failed deploy attempt (${
|
|
156
|
+
if (!Webhooks.verify(deployParams.autodeploy_secret, payload, event.request.headers.get('x-hub-signature'))) {
|
|
157
|
+
throw new Error(`Failed deploy attempt (${payload.repository.full_name}): Signature mismatch.`);
|
|
162
158
|
}
|
|
163
|
-
if (
|
|
164
|
-
throw new Error(`Failed deploy attempt (${
|
|
159
|
+
if (payload.repository.disabled || payload.repository.archived) {
|
|
160
|
+
throw new Error(`Failed deploy attempt (${payload.repository.full_name}): Repository disabled or archived.`);
|
|
165
161
|
}
|
|
166
162
|
eventHandler.on('push', async ({ name, payload }) => {
|
|
167
163
|
Ui.log('---------------------------');
|
|
@@ -182,9 +178,9 @@ export async function hook(Ui, event, deployCallback, flags = {}, layout = {}) {
|
|
|
182
178
|
}
|
|
183
179
|
});
|
|
184
180
|
return eventHandler.receive({
|
|
185
|
-
id: event.request.headers
|
|
186
|
-
name: event.request.headers
|
|
187
|
-
payload:
|
|
181
|
+
id: event.request.headers.get('x-github-delivery'),
|
|
182
|
+
name: event.request.headers.get('x-github-event'),
|
|
183
|
+
payload: payload /* JSON object */,
|
|
188
184
|
});
|
|
189
185
|
}
|
|
190
186
|
}
|