Skip to content

Commit

Permalink
Changed from name to repo_name
Browse files Browse the repository at this point in the history
  • Loading branch information
maccyber committed Jan 29, 2017
1 parent a725644 commit 013f453
Show file tree
Hide file tree
Showing 8 changed files with 40 additions and 19 deletions.
9 changes: 9 additions & 0 deletions CHANGES.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
## 4.0.0 (2017-01-29)

* [#28]https://github.com/maccyber/dockerhub-webhook/issues/28)
Adds ability to run script with parameters
([@maccyber)

* [#28]https://github.com/maccyber/dockerhub-webhook/issues/28)
Changed the use of name to repo_name. Now you have to define namespace and image name i scripts/index.js (e.g. maccyber/maccyber.io)
([@maccyber)
14 changes: 7 additions & 7 deletions handlers/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,23 +17,23 @@ module.exports = (request, reply) => {
err = 'Missing payload'
} else if (!payload.repository) {
err = 'Missing payload.repository'
} else if (!payload.repository.name) {
err = 'Missing payload.repository.name'
} else if (!hooks[payload.repository.name]) {
err = `${payload.repository.name} does not exist in scripts/index.js`
} else if (!payload.repository.repo_name) {
err = 'Missing payload.repository.repo_name'
} else if (!hooks[payload.repository.repo_name]) {
err = `${payload.repository.repo_name} does not exist in scripts/index.js`
}
if (err) {
request.log(['debug'], err)
reply(Boom.badRequest(err))
} else {
reply(payload.repository.name).code(204)
reply(payload.repository.repo_name).code(204)

request.log(['debug'], 'Payload from docker hub:')
request.log(['debug'], payload)
request.log(['debug'], `Running hook on repo: ${payload.repository.name}`)
request.log(['debug'], `Running hook on repo: ${payload.repository.repo_name}`)

const options = {
script: hooks[payload.repository.name],
script: hooks[payload.repository.repo_name],
callbackUrl: payload.callback_url
}
runScript(options)
Expand Down
4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "dockerhub-webhook",
"version": "3.0.1",
"version": "4.0.0",
"description": "Docker hub webhook",
"license": "MIT",
"author": {
Expand Down Expand Up @@ -49,7 +49,7 @@
"boom": "4.2.0",
"file-exists": "2.0.0",
"good": "7.1.0",
"good-console": "6.3.1",
"good-console": "6.1.3",
"good-squeeze": "5.0.1",
"hapi": "16.1.0",
"joi": "10.2.0",
Expand Down
2 changes: 2 additions & 0 deletions scripts/hello.sh
Original file line number Diff line number Diff line change
@@ -1,2 +1,4 @@
#!/bin/sh
echo Running dummy script
echo $1
echo $2
4 changes: 2 additions & 2 deletions scripts/index.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
'use strict'

module.exports = {
'testhook': 'hello.sh parameter1 parameter2', // Name of reponame : Script
'maccyber.io': 'maccyber.io.sh',
'maccyber/testhook': 'hello.sh parameter1 parameter2', // namespace/repo_name : script <parameters>
'maccyber/maccyber.io': 'maccyber.io.sh',
'fail': 'fail.sh'
}
6 changes: 3 additions & 3 deletions test/data/dockerhub.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,9 @@
"is_private": true,
"is_trusted": true,
"name": "testhook",
"namespace": "svendowideit",
"owner": "svendowideit",
"repo_name": "svendowideit/testhook",
"namespace": "maccyber",
"owner": "maccyber",
"repo_name": "maccyber/testhook",
"repo_url": "https://registry.hub.docker.com/u/svendowideit/testhook/",
"star_count": 0,
"status": "Active"
Expand Down
10 changes: 10 additions & 0 deletions test/test-modules.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
'use strict'

const tap = require('tap')
const pkg = require('../package.json')
const dependencies = pkg.dependencies || {}

Object.keys(dependencies).forEach((dependency) => {
const module = require(dependency)
tap.ok(module, `${dependency} loads ok`)
})
10 changes: 5 additions & 5 deletions test/test-routes.js
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ tap.test('Missing payload.repository', (t) => {
})
})

tap.test('Missing payload.repository.name', (t) => {
tap.test('Missing payload.repository.repo_name', (t) => {
const options = {
method: 'POST',
url: `${config.route}/${config.token}`,
Expand All @@ -73,29 +73,29 @@ tap.test('Missing payload.repository.name', (t) => {
}
server.inject(options, (res) => {
t.equal(res.statusCode, 400, 'Status code ok')
t.equal(res.result.message, 'Missing payload.repository.name', 'Error message ok')
t.equal(res.result.message, 'Missing payload.repository.repo_name', 'Error message ok')
t.end()
})
})

tap.test('does not exist in scripts/index.js', (t) => {
const file = require('./data/dockerhub.json')
file.repository.name = 'wrong'
file.repository.repo_name = 'wrong'
const options = {
method: 'POST',
url: `${config.route}/${config.token}`,
payload: file
}
server.inject(options, (res) => {
t.equal(res.statusCode, 400, 'Status code ok')
t.equal(res.result.message, `${file.repository.name} does not exist in scripts/index.js`, 'Error message ok')
t.equal(res.result.message, `${file.repository.repo_name} does not exist in scripts/index.js`, 'Error message ok')
t.end()
})
})

tap.test('Valid dockerhub JSON', (t) => {
const file = require('./data/dockerhub.json')
file.repository.name = 'testhook'
file.repository.repo_name = 'maccyber/testhook'
const options = {
method: 'POST',
url: `${config.route}/${config.token}`,
Expand Down

0 comments on commit 013f453

Please sign in to comment.