bts-link brings the remote BTSes (Bug Tracking Systems) to our Debian BTS (aka debbugs), see the announce.
Its purpose is to allow to Fire and forget bugs reports to upstreams, and let an automatic tool track the upstream bug status. It was once written to help the pkg-kde team, and was then extended so that other teams and other BTSes than bugzilla could be supported. At the time when this documentation was written, bts-link supports:
bugzilla (and issuezilla);
gnats;
launchpad;
mantis;
savane (from savanah);
sourceforge trackers;
trac;
gforge (and fusionforge most probably).
bts-link uses the forwarded state of debian bugs to detect URI's of remote BTSes it knows about. The current configuration file is always available from gitweb.
Then, based on its information, it polls the remote BTSes, gets the remote bug status, and resolution if the bug was closed, and acts accordingly. Depending on the remote BTS, it may know how to navigate to the proper active bug in case a remote bug was a duplicate of another one.
bts-link uses usertags to store its informations. The user is bts-link-upstream@lists.alioth.debian.org and it uses status-* and resolution-* (user)tags to store those informations.
Then each time the upstream bug status changes, bts-link takes the following decisions:
if the bug was previously opened, then closed: it tags the debian bug fixed-upstream ;
if the bug was previously closed, then re-opened: it removes the tag fixed-upstream ;
if the upstream resolution is also detected as a wontfix-like (it does not catches everyone of them though): it adds a wontfix tag (and it will remove it also if the resolution moves from a wontfix state to another one).
duplicates ? : to be documented
merged-upstream ?
bts-link will never ever try to change tags in any other conditions. It hence means that if you (as a Debian Maintainer) think that the bug isn't fixed upstream, whatever upstream claims, you can completely remove the fixed-upstream tag, bts-link won't force it back, except if upstream re-opens the bug, then closes it again.
A list of all bugs having been managed by bts-link should be available at : http://bugs.debian.org/cgi-bin/pkgreport.cgi?users=bts-link-upstream@lists.alioth.debian.org for the curious ones (attention, huge report).