Issues
Work with your space's items, or a repository's GitHub issues, from the terminal.
eqs issue is gh issue for eQuantic Space, with the same subcommands and flags. Without a flag it works on the items of your space. With --gh it works on a GitHub repository's issues, through your workspace's GitHub connection, so your machine needs no GitHub token.
Two modes
| Without a flag | With --gh | |
|---|---|---|
| Works on | The items of a space | The issues of a GitHub repository |
| Addressed by | An identifier, TASK-42, in either case | A number, 42 or #42, or the issue's URL |
| Where | --space <slug>, or the active space (eqs spaces use) | -R, --repo [github.com/]<owner>/<name>, or this clone's GitHub remote, origin first |
| Permissions | item.* | issue.read, issue.write, issue.delete |
--gh: eqs issue view https://github.com/octo/app/issues/42 reads it from GitHub.Commands
Lists the open items of a space, pinned first, or a repository's open issues. Also ls.
open (default), closed or all@me, an email, an id, or a GitHub login@me, a member or a logineqs issue ls -a @me -l api,ui
Shows an item or an issue: its type, stage or state, lock, pin, assignees, labels and description, and what it relates to: its parent, its sub-items or sub-issues, what blocks it and what it blocks.
/w/<workspace>/items/<identifier>, in its list wherever it moved. A browser that is in another workspace is offered the switch firsteqs issue view 650 --gh -c
Creates an item, of the task type, in the space's only list and in that list's first stage unless told otherwise, or an issue. Also new.
- reads standard input)eqs issue new --gh -t "Flaky test" -l bug --parent 652
Edits one or more items at once, or several issues of one repository.
none clears the last two)eqs issue edit TASK-41 TASK-42 --add-label api
Closes an item, into its list's done stage, or an issue, with a reason. One that is closed already is left as it is.
completed (default), "not planned" or duplicateeqs issue close TASK-42 --duplicate-of TASK-41
Reopens an item, back into its list's first to-do stage, or an issue. One that is open already is left as it is.
eqs issue reopen 42 --gh
Deletes an item, with everything under it, or an issue, once you type its identifier or number.
eqs issue delete TASK-42Comments on an item or an issue, or edits or deletes your last comment there.
--create-if-none, comment when you have none--yes skips the confirmationeqs issue comment TASK-42 --edit-last -b "On it, tomorrow"
Your open items, or your open issues in a repository: assigned to you, mentioning you, opened by you.
eqs issue status --gh
Moves an item, with its sub-items, to another list (<space>/<list>), or an issue to another repository of the same owner (<owner>/<name>). An item moved to another space leaves its labels behind.
eqs issue transfer TASK-42 platform/BacklogLocks the conversation: from then on only those who may edit it comment. eqs issue unlock <ref> unlocks it.
off_topic, resolved, spam or too_heatedeqs issue lock TASK-42 -r resolved
Pins an item to the top of its space, first in every view of its list, or an issue to its repository. Three at most each, as on GitHub. eqs issue unpin <ref> takes it off.
eqs issue pin TASK-42Makes a branch for an item, in a connected repository, or for an issue, linked to it on GitHub. With --list, lists its branches instead.
eqs issue develop TASK-42 -c
--gh, -R, --repo and --json [fields], which prints the raw answer, or only the fields named, separated by commas. A field the answer does not have is refused before anything is done, with the list of those it has. Options that take several values take them repeated or separated by commas.Permissions
Each subcommand needs the action below.
| Subcommand | Without a flag | With --gh |
|---|---|---|
list, view, status | item.read | issue.read |
create | item.create (item.update for its relations) | issue.write |
edit, close, reopen, lock, unlock, pin, unpin | item.update | issue.write |
transfer | item.update (and item.create in another space) | issue.write |
comment | item.comment (item.update on a locked item) | issue.write |
delete | item.delete | issue.delete |
develop | item.update and scm.write (item.read for --list) | issue.write (issue.read for --list) |
Of the built-in roles, Reader reads and comments: it holds item.read, item.comment and issue.read. Contributor also creates and changes: every item.* action, plus issue.read and issue.write. Only Owner holds issue.delete.
An item can point at one in another space: the one it duplicates, what blocks it, what it blocks. You are told of that one only when you may read items in its space. Otherwise view leaves it out, and close --duplicate-of answers that there is no such item.
On GitHub
Your workspace's GitHub connection does the work, so GitHub shows the connection's App as the author of what you create and comment, and eQuantic Space logs who asked. @me is your GitHub login, which it knows when you signed in with GitHub. Otherwise, write your login instead. status --gh needs that sign-in.
When GitHub refuses, the CLI says why: a refusal names the permission the App lacks, and a rate limit says when it resets.
Accepting the App's new permissions
--gh needs two permissions the GitHub App did not ask for before: Issues and Contents, both read and write (Contents to create a branch). Until an installation accepts them, GitHub keeps the App's old permissions there and refuses these writes, and the CLI names the permission that is missing.
eqs issue delete --gh cannot be undone: GitHub deletes the issue for good. That is why only owners hold issue.delete, and why the CLI asks you to type the issue's number first.