This project is no longer maintained
I can no longer work on fogbugz-mode unless I have an account to use or if I add more fake API calls to the included fake API server. I’m no longer employed at a workplace that uses FogBugz. If I get around to another place that uses FogBugz then I’ll continue work on this.
I think this is a good enough start for other FogBugz/Emacs users to get going with.
See COPYING for license and copyright information.
Fogbugz-emacs is an interface for interacting with the FogBugz bug tracking system. It lets you view, create, and update cases, projects, and whatever else the FogBugz API gives you access to.
The FogBugz website has a listing of all the functionality that their API provides. fogbugz-emacs aims to implement support for all of that functionality.
fogbugz-emacs can be integrated with org-mode and that was the original intention for creating fogbugz-emacs. Using properties it can pull in more information about cases and construct a full list of cases for a project.
fogbugz-emacs comes with a web server that simulates the FogBugz API. This was created due to a lack of Internet when moving into a new place. Another reason is that sometimes you can’t do things live. At work, it would be a problem to create multiple projects and cases while working on fogbugz-emacs. Other users would see this and think something is wrong.
A local mock server reduces latency to…basically no latency.
I tried to replicate as much functionality as possible. My reasoning is that an interface to a web API is incomplete, and very very optimistic, if it can only handle positive cases. It should be able to handle the cases where something goes wrong.
The mock server is written in Common Lisp and has been tested with SBCL on GNU/Linux. It uses the fantastic Hunchentoot web server library and the CXML library to generate the XML output.
Need to store a token
Map lispy names back to fogbugz as an HTTP parameter, file:./fogbugz.el::fogbugz-convert-lispy-column-names
When a field name begins with “f” it’s a boolean value, should be converted “true” to T and the “false” to NIL. The lispy name should be suffixed with “-p”.
When a field name begins with “s” it’s a string value.
When it begins with “ix” it’s an ID of another object so “-id” should be the suffix of the lispy name.
The type notation should be dropped from the field name when converting to the lispy name.
Examples:
- fWrite
- read-and-write-p
- ixPersonOwner
- owner-id
- sPerson
- person
- fDeleted
- deleted-p
Properties:
- id
- last-updated
- creator
- area
Tags are listed beside the item.
Assumes that the TODO statuses are setup the same way.
Using a timestamp stored in the properties, Last-Updated or something like that. Need to be able to force updating with a prefix argument.
Modify tags alist so that it makes categories a separate tag group, file:org-fogbugz.el::org-fogbugz-tag-alist
This is the expected output from the org-fogbugz code.
(The TODO status is set when the case is open, when it’s closed, the status is switched to DONE)
(This is the latest text summary) I searched the docs, but no goose!
(There is no due date for this case, but if there were, it’d be used for the DEADLINE)