UNPKG

2.8 kBtext/coffeescriptView Raw
1# Description:
2# manages the concept of templating for Phabricator Tasks
3#
4# Dependencies:
5#
6# Configuration:
7# PHABRICATOR_URL
8# PHABRICATOR_API_KEY
9#
10# Commands:
11# hubot pht new <name> T123
12# hubot pht show <name>
13# hubot pht search <term>
14# hubot pht remove <name>
15# hubot pht update <name> T321
16# hubot pht rename <name> <newname>
17#
18# Author:
19# mose
20
21Phabricator = require '../lib/phabricator'
22
23module.exports = (robot) ->
24
25 robot.phab ?= new Phabricator robot, process.env
26 phab = robot.phab
27
28 # hubot pht new <name> T123
29 robot.respond (/pht new ([-_a-zA-Z0-9]+) T([0-9]+) *$/), (msg) ->
30 name = msg.match[1]
31 taskid = msg.match[2]
32 phab.getPermission(msg.envelope.user, 'phadmin')
33 .then ->
34 phab.addTemplate(name, taskid)
35 .then (body) ->
36 msg.send "Ok. Template '#{name}' will use T#{taskid}."
37 .catch (e) ->
38 msg.send e
39 msg.finish()
40
41
42 # hubot pht show <name>
43 robot.respond (/pht (?:show|info) ([-_a-zA-Z0-9]+) *$/), (msg) ->
44 name = msg.match[1]
45 phab.getPermission(msg.envelope.user, 'phuser')
46 .then ->
47 phab.showTemplate(name)
48 .then (body) ->
49 msg.send "Template '#{name}' uses T#{body.task}."
50 .catch (e) ->
51 msg.send e
52 msg.finish()
53
54 # hubot pht search <term>
55 robot.respond (/pht (?:search|list) *([-_a-zA-Z0-9]+)? *$/), (msg) ->
56 term = msg.match[1]
57 phab.getPermission(msg.envelope.user, 'phuser')
58 .then ->
59 phab.searchTemplate(term)
60 .then (body) ->
61 for found in body
62 msg.send "Template '#{found.name}' uses T#{found.task}."
63 .catch (e) ->
64 msg.send e
65 msg.finish()
66
67 # hubot pht remove <name>
68 robot.respond (/pht remove ([-_a-zA-Z0-9]+) *$/), (msg) ->
69 name = msg.match[1]
70 phab.getPermission(msg.envelope.user, 'phadmin')
71 .then ->
72 phab.removeTemplate(name)
73 .then (body) ->
74 msg.send "Ok. Template '#{name}' was removed."
75 .catch (e) ->
76 msg.send e
77 msg.finish()
78
79 # hubot pht update <name> T321
80 robot.respond (/pht update ([-_a-zA-Z0-9]+) T([0-9]+) *$/), (msg) ->
81 name = msg.match[1]
82 taskid = msg.match[2]
83 phab.getPermission(msg.envelope.user, 'phadmin')
84 .then ->
85 phab.updateTemplate(name, taskid)
86 .then (body) ->
87 msg.send "Ok. Template '#{name}' will now use T#{taskid}."
88 .catch (e) ->
89 msg.send e
90 msg.finish()
91
92 # hubot pht rename <name> <newname>
93 robot.respond (/pht rename ([-_a-zA-Z0-9]+) ([-_a-zA-Z0-9]+) *$/), (msg) ->
94 name = msg.match[1]
95 newname = msg.match[2]
96 phab.getPermission(msg.envelope.user, 'phadmin')
97 .then ->
98 phab.renameTemplate(name, newname)
99 .then (body) ->
100 msg.send "Ok. Template '#{name}' will now bew known as '#{newname}'."
101 .catch (e) ->
102 msg.send e
103 msg.finish()