steyep / alfred-jira Goto Github PK
View Code? Open in Web Editor NEWAlfred 3 (or Alfred 2) workflow for interacting with JIRA.
Alfred 3 (or Alfred 2) workflow for interacting with JIRA.
When I try and update the status of a ticket (eg. from "Active" to "Done") the workflow fails silently.
In the debugger I get this error;
[2017-08-10 14:51:30][ERROR: action.script] Must supply ticketId, action, and token
Currently pressing backspace deletes a single char.
After selecting a jira ticket, it makes sense that backspace will delete the whole ticket number and not just the last char.
Let me know if it doesn't makes sense. I'll try to clarify.
User should be able to filter their list of tickets/watched issues by keywords. Meaning, filtering should also apply to words that appear in an issues summary, description, status, et cetera.
Hi I'm not sure if I'm missing a trick here but it's not clear how to complete the log in step. Can you please clarify?
Hi,
I get a JS error when trying to Login for the first time. I search for "electron" in past issues, but none of them line up with what I'm seeing.
I'm running node 8.2.0 and npm 5.3.0, both from /usr/local/bin, installed via homebrew
Full Alfred debug output:
[2017-08-30 17:45:57][input.scriptfilter] Queuing argument ''
[2017-08-30 17:45:58][input.scriptfilter] Script with argument '(null)' finished
[2017-08-30 17:45:58][STDERR: input.scriptfilter] Unable to get options. auth.checkConfig did not pass.
[2017-08-30 17:45:58][input.scriptfilter] <?xml version="1.0"?>
<items>
<item valid="yes" arg="login">
<title>Login</title>
<icon>/Users/mbulman/src/alfred-jira/resources/icons/login.png</icon>
</item>
</items>
[2017-08-30 17:45:59][input.scriptfilter] Processing output of 'action.script' with arg 'login'
[2017-08-30 17:46:01][ERROR: action.script] /Users/mbulman/src/alfred-jira/lib/jira/auth.js:19
if (err) throw err;
^
Error: Command failed: /bin/bash -c "eval $(/usr/libexec/path_helper | awk '{print $1}') npm run electron login"
module.js:487
throw err;
^
Error: Cannot find module './'
at Function.Module._resolveFilename (module.js:485:15)
at Function.Module._load (module.js:437:25)
at Module.require (module.js:513:17)
at require (internal/module.js:11:18)
at Object.<anonymous> (/Users/mbulman/src/alfred-jira/node_modules/.bin/electron:3:16)
at Module._compile (module.js:569:30)
at Object.Module._extensions..js (module.js:580:10)
at Module.load (module.js:503:32)
at tryModuleLoad (module.js:466:12)
at Function.Module._load (module.js:458:3)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] electron: `electron . "login"`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] electron script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! /Users/mbulman/.npm/_logs/2017-08-30T22_46_00_941Z-debug.log
at ChildProcess.exithandler (child_process.js:270:12)
at emitTwo (events.js:125:13)
at ChildProcess.emit (events.js:213:7)
at maybeClose (internal/child_process.js:921:16)
at Socket.stream.socket.on (internal/child_process.js:348:11)
at emitOne (events.js:115:13)
at Socket.emit (events.js:210:7)
at Pipe._handle.close [as _onclose] (net.js:549:12)
[2017-08-30 17:46:01][action.script] Processing output of 'output.notification' with arg ''
Output of /Users/mbulman/.npm/_logs/2017-08-30T22_46_00_941Z-debug.log:
0 info it worked if it ends with ok
1 verbose cli [ '/usr/local/Cellar/node/8.2.0_1/bin/node',
1 verbose cli '/usr/local/bin/npm',
1 verbose cli 'run',
1 verbose cli 'electron',
1 verbose cli 'login' ]
2 info using [email protected]
3 info using [email protected]
4 verbose run-script [ 'preelectron', 'electron', 'postelectron' ]
5 info lifecycle [email protected]~preelectron: [email protected]
6 info lifecycle [email protected]~electron: [email protected]
7 verbose lifecycle [email protected]~electron: unsafe-perm in lifecycle true
8 verbose lifecycle [email protected]~electron: PATH: /usr/local/lib/node_modules/npm/bin/node-gyp-bin:/Users/mbulman/src/alfred-jira/node_modules/.bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
9 verbose lifecycle [email protected]~electron: CWD: /Users/mbulman/src/alfred-jira
10 silly lifecycle [email protected]~electron: Args: [ '-c', 'electron . "login"' ]
11 silly lifecycle [email protected]~electron: Returned: code: 1 signal: null
12 info lifecycle [email protected]~electron: Failed to exec electron script
13 verbose stack Error: [email protected] electron: `electron . "login"`
13 verbose stack Exit status 1
13 verbose stack at EventEmitter.<anonymous> (/usr/local/lib/node_modules/npm/lib/utils/lifecycle.js:289:16)
13 verbose stack at emitTwo (events.js:125:13)
13 verbose stack at EventEmitter.emit (events.js:213:7)
13 verbose stack at ChildProcess.<anonymous> (/usr/local/lib/node_modules/npm/lib/utils/spawn.js:40:14)
13 verbose stack at emitTwo (events.js:125:13)
13 verbose stack at ChildProcess.emit (events.js:213:7)
13 verbose stack at maybeClose (internal/child_process.js:921:16)
13 verbose stack at Process.ChildProcess._handle.onexit (internal/child_process.js:211:5)
14 verbose pkgid [email protected]
15 verbose cwd /Users/mbulman/src/alfred-jira
16 verbose Darwin 16.7.0
17 verbose argv "/usr/local/Cellar/node/8.2.0_1/bin/node" "/usr/local/bin/npm" "run" "electron" "login"
18 verbose node v8.2.0
19 verbose npm v5.3.0
20 error code ELIFECYCLE
21 error errno 1
22 error [email protected] electron: `electron . "login"`
22 error Exit status 1
23 error Failed at the [email protected] electron script.
23 error This is probably not a problem with npm. There is likely additional logging output above.
24 verbose exit [ 1, true ]
Thanks
Want to include a way to quickly interact with Agile boards
I would love a checkbox in the settings to disable the automatic time tracking.
It would also be cool to have a menu item to manually log time to an issue.
Give user the ability to set an increment to which their "time spent" will be rounded.
For example:
A user may want to set an interval of 15 min
so that 1 hour 57min
is rounded to an even 2 hours
. Similarly, 2 mins
would be rounded to 15 mins
.
Hi @steyep - now with a working version of alfred-jira, I come directly to feature requests :)
I imagine to configure JQL queries to names in order to have fast access to my most important issues. Currently on top level there are two very specific queries bookmarked
My feature request is to generalize that and allow any query bookmarks in that place.
All of my requests seem to return an HTTP 400. We have a few projects and a number of statuses, perhaps the URL is too long? It seems to be cutting off the query string based on my limited debugging
I always get a 401 on login. Are there any logs that I can have look at?
As per #38, I am receiving an error when attempting to access My Issues or Watched Issues. However, search appears to be working.
[2017-03-09 10:46:05][input.scriptfilter] <?xml version="1.0"?>
<items>
<item valid="no">
<title>400: Bad Request</title>
</item>
</items>
Navigating to { my jira configured url }/rest/api/2/search?jql=assignee=currentUser()
in a browser and I receive a 220,315 character JSON response.
Let me know what else I can do to help figure this one out. Even just with search, you have created a great workflow!
How are issues currently sorted?
It would nice to sort them by last update date.
For me it seems to correlate well with relevancy.
Give the option to download user avatars
Display a given issue's description in the issue menu.
I'm currently running node v 7.4.0
Here is the error I get when running jira in alfred:
Starting debug for 'jira'
[2017-01-24 09:29:42][ERROR: input.scriptfilter] Code 1: /Users/{USERNAME}/Documents/NodeApps/alfred-jira/lib/scriptfilter.js:7
let feedback = '<?xml version="1.0"?><items><item valid="no"><title>%s</title></item></items>';
^^^
SyntaxError: Block-scoped declarations (let, const, function, class) not yet supported outside strict mode
at exports.runInThisContext (vm.js:53:16)
at Module._compile (module.js:373:25)
at Object.Module._extensions..js (module.js:416:10)
at Module.load (module.js:343:32)
at Function.Module._load (module.js:300:12)
at Function.Module.runMain (module.js:441:10)
at startup (node.js:139:18)
at node.js:990:3
Allow user to log time from workflow. Should track time spent on a ticket by giving the user the option to start/stop progress on an issue.
When I try to login, I get this:
JSON error: JSON text did not start with array or object and option to allow fragments not set. in JSON:
Now using node v6.11.3 (npm v3.10.10)
<?xml version="1.0"?>
<items>
<item valid="yes" arg="login">
<title>Login</title>
<icon>./resources/icons/login.png</icon>
</item>
</items>
I got the login window once, but there's no way to get it again.
I'm using nvm, so I added this to both workflow steps that needed it:
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
nvm use 6
Hi there,
for me, the login flow is not working.
To come around with this, can you please provide a configuration example?
I do not need a graphical version, just manual steps are fine.
When commenting on an issue a user may want to mention another JIRA user. By typing an @
followed by the user's first name, a list of "mention-able" users should appear below the comment. Selecting a user will replace the @[first_name]
with the appropriate username.
Add setting in configuration that will allow a user to specify a minimum work log.
For example: always log a minimum of 30m
when working on an issue.
Allow user to configure which items are displayed in the menu for a given issue.
It seems to be related with localization. I use Korean locale in my jira enviroment.
This is error message of alfred debug console.
[2017-05-22 17:52:52][STDERR: input.scriptfilter] Searching for query:
assignee=currentUser()+AND+project+in+("KAK","NELO","TEAM")+AND+status+in+("진행 중","할 일","완료")+order+by+Priority+DESC,+Key+DESC
{ status: 400,
statusText: 'Bad Request',
headers:
{ ... },
config:
{ ... },
request:
ClientRequest {
domain: null,
_events:
{ error: [Function: handleRequestError],
prefinish: [Function: requestOnPrefinish] },
_eventsCount: 2,
_maxListeners: undefined,
output: [],
outputEncodings: [],
outputCallbacks: [],
outputSize: 0,
writable: true,
_last: true,
upgrading: false,
chunkedEncoding: false,
shouldKeepAlive: false,
useChunkedEncodingByDefault: false,
sendDate: false,
_removedHeader: {},
_contentLength: 0,
_hasBody: true,
_trailer: '',
finished: true,
_headerSent: true,
socket:
Socket {
connecting: false,
_hadError: false,
_handle: null,
_parent: null,
_host: '****',
_readableState: [Object],
readable: false,
domain: null,
_events: [Object],
_eventsCount: 8,
_maxListeners: undefined,
_writableState: [Object],
writable: false,
allowHalfOpen: false,
destroyed: true,
_bytesDispatched: 437,
_sockname: null,
_pendingData: null,
_pendingEncoding: '',
server: null,
_server: null,
parser: null,
_httpMessage: [Circular],
read: [Function],
_consuming: true,
_idleNext: null,
_idlePrev: null,
_idleTimeout: -1 },
connection:
Socket {
connecting: false,
_hadError: false,
_handle: null,
_parent: null,
_host: '****',
_readableState: [Object],
readable: false,
domain: null,
_events: [Object],
_eventsCount: 8,
_maxListeners: undefined,
_writableState: [Object],
writable: false,
allowHalfOpen: false,
destroyed: true,
_bytesDispatched: 437,
_sockname: null,
_pendingData: null,
_pendingEncoding: '',
server: null,
_server: null,
parser: null,
_httpMessage: [Circular],
read: [Function],
_consuming: true,
_idleNext: null,
_idlePrev: null,
_idleTimeout: -1 },
_header: 'GET /rest/api/2/search?jql=assignee=currentUser()+AND+project+in+(%22KAK%22,%22NELO%22,%22TEAM%22)+AND+status+in+(%22%EC%A7%84%ED%96%89%20%EC%A4%91%22,%22%ED%95%A0%20%EC%9D%BC%22,%22%EC%99%84%EB%A3%8C%22)+order+by+Priority+DESC,+Key+DESC HTTP/1.1\r\nAccept: application/json, text/plain, */*\r\nContent-Type: application/json\r\nAuthorization: Basic ****\r\nUser-Agent: axios/0.13.1\r\nHost: *****\r\nConnection: close\r\n\r\n',
_headers:
{ ... },
_headerNames:
{ ... },
_onPendingData: null,
agent:
Agent { ... },
socketPath: undefined,
timeout: undefined,
method: 'GET',
path: '/rest/api/2/search?jql=assignee=currentUser()+AND+project+in+(%22KAK%22,%22NELO%22,%22TEAM%22)+AND+status+in+(%22%EC%A7%84%ED%96%89%20%EC%A4%91%22,%22%ED%95%A0%20%EC%9D%BC%22,%22%EC%99%84%EB%A3%8C%22)+order+by+Priority+DESC,+Key+DESC',
_ended: true,
parser: null,
res:
IncomingMessage {
...
},
data:
{ errorMessages:
[ '\'완료\' 값이 \'status\' 필드에 존재하지 않습니다.',
'\'진행 중\' 값이 \'status\' 필드에 존재하지 않습니다.',
'\'할 일\' 값이 \'status\' 필드에 존재하지 않습니다.' ],
errors: {} } }
Like with quick command jira project-123 show the search results and add action to open it in default browser
It would be nice to have background caching. First time takes a few seconds to load.
Hi @steyep, just wanted to thank you for this excellent tool you've made. It is very valuable to me. Thanks :)
I'll do PRs when I can.
PS: Sorry if it's inappropriate to create an issue for this.
I initially cloned the repo via ssh
, and the exec of git fetch origin
fails when I attempt to go to Settings:
[2017-05-18 06:56:58][STDERR: input.scriptfilter] ssh_askpass: exec(/usr/X11R6/bin/ssh-askpass): No such file or directory
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
{ Error: Command failed: /bin/zsh -c ". /Users/richard/.nvm/nvm.sh && /usr/libexec/path_helper | awk '{print $1}' && git fetch origin"
ssh_askpass: exec(/usr/X11R6/bin/ssh-askpass): No such file or directory
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
at checkExecSyncError (child_process.js:475:13)
at Object.execSync (child_process.js:515:13)
at Object.module.exports.execSync (/Users/richard/src/alfred-jira/lib/alfred-exec.js:15:18)
at Object.module.exports.checkUpdates (/Users/richard/src/alfred-jira/lib/settings.js:37:10)
at Object.module.exports.menu (/Users/richard/src/alfred-jira/lib/settings.js:52:10)
at emitOne (events.js:96:13)
at EventEmitter.emit (events.js:188:7)
at Object.ActionHandler.handle (/Users/richard/src/alfred-jira/lib/workflow.js:16:20)
at Object.<anonymous> (/Users/richard/src/alfred-jira/lib/scriptfilter.js:116:13)
at Module._compile (module.js:541:32)
error: null,
cmd: '/bin/zsh -c ". /Users/richard/.nvm/nvm.sh && /usr/libexec/path_helper | awk \'{print $1}\' && git fetch origin"',
file: '/bin/sh',
args:
[ '/bin/sh',
'-c',
'/bin/zsh -c ". /Users/richard/.nvm/nvm.sh && /usr/libexec/path_helper | awk \'{print $1}\' && git fetch origin"' ],
options:
{ shell: true,
file: '/bin/sh',
args:
[ '/bin/sh',
'-c',
'/bin/zsh -c ". /Users/richard/.nvm/nvm.sh && /usr/libexec/path_helper | awk \'{print $1}\' && git fetch origin"' ],
envPairs:
[ 'SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.DnawcXLzqP/Listeners',
'alfred_theme=theme.fileimport.C5AAD5D0-51FB-4908-82F1-020A1B9172A3',
'alfred_workflow_bundleid=jira.steyep',
'Apple_PubSub_Socket_Render=/private/tmp/com.apple.launchd.C4Ncz0b5GR/Render',
'alfred_version_build=818',
'alfred_theme_subtext=0',
'alfred_workflow_name=jira',
'XPC_FLAGS=0x0',
'alfred_version=3.3.2',
'alfred_workflow_uid=_jira',
'SHELL=/bin/zsh',
'alfred_workflow_cache=/Users/richard/Library/Caches/com.runningwithcrayons.Alfred-3/Workflow Data/jira.steyep',
'SECURITYSESSIONID=186a7',
'LC_CTYPE=en_US.UTF-8',
'alfred_workflow_data=/Users/richard/Library/Application Support/Alfred 3/Workflow Data/jira.steyep',
'PATH=/Users/richard/.local/bin:/Users/richard/.dotfiles/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/android/platform-tools:/opt/android/tools:/usr/local/heroku/bin:/Users/richard/.rvm/bin:.',
'DISPLAY=/private/tmp/com.apple.launchd.3n6nOPxRsT/org.macosforge.xquartz:0',
'alfred_theme_selection_background=rgba(254,255,254,0.00)',
'alfred_debug=1',
'HOME=/Users/richard',
'TMPDIR=/var/folders/5p/ftxr4z5n5915w20bsygjpz300000gn/T/',
'USER=richard',
'alfred_preferences=/Users/richard/Dropbox (Personal)/Alfred/Alfred.alfredpreferences',
'LOGNAME=richard',
'XPC_SERVICE_NAME=com.runningwithcrayons.Alfred-3.8372',
'__CF_USER_TEXT_ENCODING=0x1F5:0x0:0x0',
'alfred_theme_background=rgba(43,61,80,0.80)',
'alfred_preferences_localhash=eee440200d9614aceb7084b808c180df6ba65a86',
'SHLVL=0',
'PWD=/Users/richard/src/alfred-jira',
'OLDPWD=/Users/richard/src/alfred-jira',
'EDITOR=/usr/bin/vim',
'ANDROID_HOME=/opt/android',
'GWT_HOME=/opt/gwt',
'HEROKU_HOME=/usr/local/heroku',
'MAVEN_OPTS=-Djava.awt.headless=true',
'MAVEN_ARGS=-Dvs.config.dir=build -Dnf.config.dir=build',
'BOX_COLOR=\u001b[38;5;251m',
'_=/Users/richard/.nvm/versions/node/v6.3.1/bin/node',
'NODE_TLS_REJECT_UNAUTHORIZED=0' ],
stdio: [ [Object], [Object], [Object] ] },
envPairs:
[ 'SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.DnawcXLzqP/Listeners',
'alfred_theme=theme.fileimport.C5AAD5D0-51FB-4908-82F1-020A1B9172A3',
'alfred_workflow_bundleid=jira.steyep',
'Apple_PubSub_Socket_Render=/private/tmp/com.apple.launchd.C4Ncz0b5GR/Render',
'alfred_version_build=818',
'alfred_theme_subtext=0',
'alfred_workflow_name=jira',
'XPC_FLAGS=0x0',
'alfred_version=3.3.2',
'alfred_workflow_uid=_jira',
'SHELL=/bin/zsh',
'alfred_workflow_cache=/Users/richard/Library/Caches/com.runningwithcrayons.Alfred-3/Workflow Data/jira.steyep',
'SECURITYSESSIONID=186a7',
'LC_CTYPE=en_US.UTF-8',
'alfred_workflow_data=/Users/richard/Library/Application Support/Alfred 3/Workflow Data/jira.steyep',
'PATH=/Users/richard/.local/bin:/Users/richard/.dotfiles/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/android/platform-tools:/opt/android/tools:/usr/local/heroku/bin:/Users/richard/.rvm/bin:.',
'DISPLAY=/private/tmp/com.apple.launchd.3n6nOPxRsT/org.macosforge.xquartz:0',
'alfred_theme_selection_background=rgba(254,255,254,0.00)',
'alfred_debug=1',
'HOME=/Users/richard',
'TMPDIR=/var/folders/5p/ftxr4z5n5915w20bsygjpz300000gn/T/',
'USER=richard',
'alfred_preferences=/Users/richard/Dropbox (Personal)/Alfred/Alfred.alfredpreferences',
'LOGNAME=richard',
'XPC_SERVICE_NAME=com.runningwithcrayons.Alfred-3.8372',
'__CF_USER_TEXT_ENCODING=0x1F5:0x0:0x0',
'alfred_theme_background=rgba(43,61,80,0.80)',
'alfred_preferences_localhash=eee440200d9614aceb7084b808c180df6ba65a86',
'SHLVL=0',
'PWD=/Users/richard/src/alfred-jira',
'OLDPWD=/Users/richard/src/alfred-jira',
'EDITOR=/usr/bin/vim',
'ANDROID_HOME=/opt/android',
'GWT_HOME=/opt/gwt',
'HEROKU_HOME=/usr/local/heroku',
'MAVEN_OPTS=-Djava.awt.headless=true',
'MAVEN_ARGS=-Dvs.config.dir=build -Dnf.config.dir=build',
'BOX_COLOR=\u001b[38;5;251m',
'_=/Users/richard/.nvm/versions/node/v6.3.1/bin/node',
'NODE_TLS_REJECT_UNAUTHORIZED=0' ],
stderr: <Buffer 73 73 68 5f 61 73 6b 70 61 73 73 3a 20 65 78 65 63 28 2f 75 73 72 2f 58 31 31 52 36 2f 62 69 6e 2f 73 73 68 2d 61 73 6b 70 61 73 73 29 3a 20 4e 6f 20 ... >,
stdout: <Buffer 50 41 54 48 3d 22 2f 75 73 72 2f 6c 6f 63 61 6c 2f 62 69 6e 3a 2f 75 73 72 2f 62 69 6e 3a 2f 62 69 6e 3a 2f 75 73 72 2f 73 62 69 6e 3a 2f 73 62 69 6e ... >,
pid: 27700,
output:
[ null,
<Buffer 50 41 54 48 3d 22 2f 75 73 72 2f 6c 6f 63 61 6c 2f 62 69 6e 3a 2f 75 73 72 2f 62 69 6e 3a 2f 62 69 6e 3a 2f 75 73 72 2f 73 62 69 6e 3a 2f 73 62 69 6e ... >,
<Buffer 73 73 68 5f 61 73 6b 70 61 73 73 3a 20 65 78 65 63 28 2f 75 73 72 2f 58 31 31 52 36 2f 62 69 6e 2f 73 73 68 2d 61 73 6b 70 61 73 73 29 3a 20 4e 6f 20 ... > ],
signal: null,
status: 128 }
The workaround is to update to https
:
git remote set-url origin https://github.com/steyep/alfred-jira.git
Or clone via https
in the beginning.
Hi @steyep - some other idea - say stop if you don't want to get any more feature requests :-)
currently you present a single issue a result set in the form
KEY
summary
This is ok, but for some cases I wish more meta data here.
What about making this customisable im a form that for each bookmark two additional fields, say main text
and sub text
are presented and can be filled with a template such as
main text: "{summary}"
sub text: "{key} - {status} - {assignee}"
Documentation I think misses the step - I couldn't find a way to login/authenticate, set our jira hostname, etc. using Alfred 3.4.1
For example, I would prefer →
over ►
.
The user search uses 'rest/api/2/user/assignable/multiProjectSearch'
this will only return a list of users which have access to every project in the companies Jira instance.
Also returning watched issues/assigned issues uses every status such as "Done" which makes searching for issues potentially difficult.
Whenever I attempt to log in to my companies Jira instance I get the following.
[2016-09-27 13:48:02][input.scriptfilter] Processing output of 'action.script' with arg 'login' [2016-09-27 13:48:30][ERROR: action.script] (node:48618) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 2): TypeError: Cannot read property 'status' of undefined Credentials erased!
I couldn't get the login option to appear on node 4.5 so I am currently using 6.6.
Love your plugin!
I miss the ability to view issues assigned to me in current sprint. Would you find it useful?
Any tips about how I should go about implementing it?
Cheers,
Itai
Hi @steyep - some other idea - say stop if you don't want to get any more feature requests :-)
In order to change to jira very fast, I would like to use the typical meta or alt function of alfred.
Currently alt+return
on an issue searches for bookmark-X
with spotify which is imho a bug.
More useful could be
Open issue in jira
as an alternative action for an issue, as well asOpen query in jira
as an alternative action on a bookarkAdd the ability to create a new issue for a project from the workflow.
Boost performance by querying and cacheing some of the data in the background when the workflow is launched.
Allow user to watch/unwatch issues from within the workflow.
Relieve the user from having to manually edit values in the config.json
file by creating a UI that will simplify configuration and add validation to the available options.
I'm opting to use Electron
in lieu of Pashua
so that the settings app can have a little more flexibility. That means that the login functionality will need to be revised to use Electron
.
I'm trying to set up alfred-jira
, and I currently cannot log in. I'm attempting to debug via shell rather than through Alfred, and this is what I see:
/Users/richard/src/alfred-jira/lib/jira/auth.js:19
if (err) throw err;
^
Error: Command failed: /bin/zsh -c "eval $(/usr/libexec/path_helper | awk '{print $1}') npm run electron login"
module.js:442
throw err;
^
Error: Cannot find module './'
at Function.Module._resolveFilename (module.js:440:15)
at Function.Module._load (module.js:388:25)
at Module.require (module.js:468:17)
at require (internal/module.js:20:19)
at Object.<anonymous> (/Users/richard/src/alfred-jira/node_modules/.bin/electron:3:16)
at Module._compile (module.js:541:32)
at Object.Module._extensions..js (module.js:550:10)
at Module.load (module.js:458:32)
at tryModuleLoad (module.js:417:12)
at Function.Module._load (module.js:409:3)
npm ERR! Darwin 16.5.0
npm ERR! argv "/Users/richard/.nvm/versions/node/v6.3.1/bin/node" "/Users/richard/.nvm/versions/node/v6.3.1/bin/npm" "run" "electron" "login"
npm ERR! node v6.3.1
npm ERR! npm v3.10.3
npm ERR! code ELIFECYCLE
npm ERR! [email protected] electron: `electron . "login"`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] electron script 'electron . "login"'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the alfred-jira package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! electron . "login"
npm ERR! You can get information on how to open an issue for this project with:
npm ERR! npm bugs alfred-jira
npm ERR! Or if that isn't available, you can get their info via:
npm ERR! npm owner ls alfred-jira
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR! /Users/richard/src/alfred-jira/npm-debug.log
at ChildProcess.exithandler (child_process.js:202:12)
at emitTwo (events.js:106:13)
at ChildProcess.emit (events.js:191:7)
at maybeClose (internal/child_process.js:852:16)
at Socket.<anonymous> (internal/child_process.js:323:11)
at emitOne (events.js:96:13)
at Socket.emit (events.js:188:7)
at Pipe._handle.close [as _onclose] (net.js:492:12)
And npm-debug.log
:
0 info it worked if it ends with ok
1 verbose cli [ '/Users/richard/.nvm/versions/node/v6.3.1/bin/node',
1 verbose cli '/Users/richard/.nvm/versions/node/v6.3.1/bin/npm',
1 verbose cli 'run',
1 verbose cli 'electron',
1 verbose cli 'login' ]
2 info using [email protected]
3 info using [email protected]
4 verbose run-script [ 'preelectron', 'electron', 'postelectron' ]
5 info lifecycle [email protected]~preelectron: [email protected]
6 silly lifecycle [email protected]~preelectron: no script for preelectron, continuing
7 info lifecycle [email protected]~electron: [email protected]
8 verbose lifecycle [email protected]~electron: unsafe-perm in lifecycle true
9 verbose lifecycle [email protected]~electron: PATH: /Users/richard/.nvm/versions/node/v6.3.1/lib/node_modules/npm/bin/node-gyp-bin:/Users/richard/src/alfred-jira/node_modules/.bin:/Users/richard/.nvm/versions/node/v6.3.1/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/Users/richard/.nvm/versions/node/v6.3.1/bin:/Users/richard/.sdkman/candidates/maven/current/bin:/Users/richard/.sdkman/candidates/java/current/bin:/Users/richard/.sdkman/candidates/groovy/current/bin:/Users/richard/.sdkman/candidates/gradle/current/bin:/Users/richard/.local/bin:/Users/richard/.dotfiles/bin:/opt/android/platform-tools:/opt/android/tools:/usr/local/heroku/bin:/Users/richard/.rvm/bin:.
10 verbose lifecycle [email protected]~electron: CWD: /Users/richard/src/alfred-jira
11 silly lifecycle [email protected]~electron: Args: [ '-c', 'electron . "login"' ]
12 silly lifecycle [email protected]~electron: Returned: code: 1 signal: null
13 info lifecycle [email protected]~electron: Failed to exec electron script
14 verbose stack Error: [email protected] electron: `electron . "login"`
14 verbose stack Exit status 1
14 verbose stack at EventEmitter.<anonymous> (/Users/richard/.nvm/versions/node/v6.3.1/lib/node_modules/npm/lib/utils/lifecycle.js:242:16)
14 verbose stack at emitTwo (events.js:106:13)
14 verbose stack at EventEmitter.emit (events.js:191:7)
14 verbose stack at ChildProcess.<anonymous> (/Users/richard/.nvm/versions/node/v6.3.1/lib/node_modules/npm/lib/utils/spawn.js:40:14)
14 verbose stack at emitTwo (events.js:106:13)
14 verbose stack at ChildProcess.emit (events.js:191:7)
14 verbose stack at maybeClose (internal/child_process.js:852:16)
14 verbose stack at Process.ChildProcess._handle.onexit (internal/child_process.js:215:5)
15 verbose pkgid [email protected]
16 verbose cwd /Users/richard/src/alfred-jira
17 error Darwin 16.5.0
18 error argv "/Users/richard/.nvm/versions/node/v6.3.1/bin/node" "/Users/richard/.nvm/versions/node/v6.3.1/bin/npm" "run" "electron" "login"
19 error node v6.3.1
20 error npm v3.10.3
21 error code ELIFECYCLE
22 error [email protected] electron: `electron . "login"`
22 error Exit status 1
23 error Failed at the [email protected] electron script 'electron . "login"'.
23 error Make sure you have the latest version of node.js and npm installed.
23 error If you do, this is most likely a problem with the alfred-jira package,
23 error not with npm itself.
23 error Tell the author that this fails on your system:
23 error electron . "login"
23 error You can get information on how to open an issue for this project with:
23 error npm bugs alfred-jira
23 error Or if that isn't available, you can get their info via:
23 error npm owner ls alfred-jira
23 error There is likely additional logging output above.
24 verbose exit [ 1, true ]
I am using nvm
to manage node versions, obviously, but I don't see that being a problem here. Any tips / ideas on how to debug this?
The workflow is currently set up to persist data by issue key. This results in only the most recently added data associated with an issue to be persisted.
Give users the option to download priority icons by running npm run download-priority-icons
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.