Open Bug 254400 Opened 20 years ago Updated 11 years ago

Provide an interface for SCM integration

Categories

(Bugzilla :: Bugzilla-General, enhancement, P3)

enhancement

Tracking

()

People

(Reporter: mkgnu, Unassigned)

References

Details

Attachments

(1 file)

User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040401 Galeon/1.3.14 (Debian package 1.3.14a-1) Build Identifier: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040401 Galeon/1.3.14 (Debian package 1.3.14a-1) An interface that facilitates integration of SCM systems with Bugzilla needs to be developed. <a href= "http://bugzilla.org/cgi-bin/mj_wwwusr?user=&passw=&list=developers&brief=on&func=archive-get-part&extra=200407/154">This</a> thread contains some discussion on this topic. One promising solution proposed by Christian Robottom Reis <kiko@async.com.br> is XML-RPC. Reproducible: Always Steps to Reproduce:
Summary: Provide an interface for SCM integration → Provide an interface for SCM integration
As a reference, this project attempts to create a web-service for MantisBT that can accept such integration actions. It may be worthwhile to examine: http://www.futureware.biz/mantisconnect/
Should be aware of the comments in bug 282493, comment 0 when this is implemented. Current Scmbug code has implemented some functions currently missing from Bugzilla, and these use SQL, so they might break in Bz 2.20. This increases the importance of an SCM integration interface. Still, it can wait since Scmbug works so far.
Depends on: 280493
Severity: normal → enhancement
Depends on: webservices
OS: Linux → All
Hardware: PC → All
Reassigning bugs that I'm not actively working on to the default component owner in order to try to make some sanity out of my personal buglist. This doesn't mean the bug isn't being dealt with, just that I'm not the one doing it. If you are dealing with this bug, please assign it to yourself.
Assignee: justdave → general
QA Contact: mattyt-bugzilla → default-qa
This would be a good place to start for what "plugins" would need.
Blocks: bz-plugin
Status: UNCONFIRMED → NEW
Ever confirmed: true
Priority: -- → P3
Target Milestone: --- → Bugzilla 2.22
I'm not sure how it's currently envisioned to provide this integration. I need a mechanism to extract from Bugzilla some bug metadata, or update bugs. In particular the API needed should provide at least the following: integration_connect_database integration_disconnect_database integration_add_comment integration_get_product_name integration_get_bug_owner integration_get_bug_status integration_bug_in_active_state integration_active_states_list integration_get_bug_subject integration_add_tag integration_tag_exists integration_delete_tag integration_vdd integration_vdd is currently a feature under development in Scmbug. The ultimate goal is to define a common query used to provide a version description document; that is a document detailing the bugs worked-on between releases, newly identified bugs, bugs marked as won't fix, etc. I'm attaching Bugzilla.pm.in v1.12 from the Scmbug codebase that demonstrates how these functions are currently implemented. This Scmbug backend currently connects directly to Bugzilla's DB and uses some functions from globals.pl. Currently, calls to is_version_up_to_2_16() and is_version_latest() attempt to implement schema-release-specific functionality. Ideally we'd like this logic to be in this interface and updated by Bugzilla developers when the schema does indeed change. The key point here is that it's time we all (all bug-trackers) identify the one, single common SCM integration interface needed to solve the "integration problem" once and for all (Scmbug's ultimate goal). This is *very much* open to discussion. Bugzilla gets to go first and define it. As for the mechanism (XML over RPC, direct db connections, etc.) are all welcome, as long as it's an approach that is guaranteed to work with all other bugtrackers. This may be too-agressive of a goal. E.g. Berkley-DB -based trackers with no DB daemon just can't accept direct db connections. Debian's file-based bugtracker also comes to mind. Hmmmm....
Attached file v1.12 of Bugzilla.pm.in from Scmbug. (deleted) —
This is the existing Bugzilla bug-tracking backend in Scmbug. All integration_* functions in it demonstrate the functionality needed for generic SCM-to-bugtracking integration.
I've read some more on bug 289039. The plugin API envisioned by Bugzilla does not meet Scmbug's requirements. The issue of authentication remains open for SCM integration. Currently, Scmbug uses Bugzilla's localconfig and globals.pl to extract all the information needed. The DB username/password is retrieved Scmbug's config file (see init_specific in attachment #179905 [details]). In a sense, Scmbug assumes local DB access is available. The plugin API plan in bug #289039 assumes a user is already logged in and simply exercising a new custom feature loaded as a plugin. It does not permit one to interact with Bugzilla without logging in as the user. Scmbug for example must add comments coming in from several different SCM users impersonating those users. If direct access to the database is not available what's the recommended alternative ? Dave Swegen suggested in the past a general admin account for such a scenario. Just some thoughts.
As far as an SCMBug-type plugin goes, you're probably right that it doesn't fit the "plugins" that I had envisioned. Instead, I expect that SCMBug will be using the interface that we will work on in bug 224577. Ideally, SCMBug should never have to touch the database directly, but should do all its work through XML-RPC. Any bugtracker could implement XML-RPC, as long as they are a web-based bugtracker. *Thank you* for your post about what SCMBug needs, by the way. I was planning on sending you an email asking about exactly that. :-) If you could define the exact abstract data structure that you expect a "VDD" to be, that would be really helpful. A UML diagram, or a text-based description, or an implementation in any common Object-Oriented language (perl, Java, etc.) would all be OK. :-)
No longer blocks: bz-plugin
(In reply to comment #5) > The key point here is that it's time we all (all bug-trackers) identify the > one, single common SCM integration interface needed to solve the "integration > problem" once and for all (Scmbug's ultimate goal). This is *very much* open > to discussion. Bugzilla gets to go first and define it. By the way, I really like this idea. In fact, I'd like to take it even further and create a standardized XML-RPC bug-tracker interface. I'm going to talk it over with some folks, and then send out some emails and see if we can't get such a thing rolling. :-)
One thing I've wondered about, and have not spend enough time thinking on due to VDD being still in the works, is whether it's valuable to have in each bug an additional field called "Customer release notes" or something to that effect. The goal is to automatically produce a list of bugs that were worked on between releases. But perhaps it's better to only list meta-bugs for a higher-level customer-perspective, and both meta and actual bugs for a more detailed view. Arguably the bug summary should be used for that, but this field may summarize the problem at a lower-level developer level, rather than the higher-level customer response needed.
Discussion here so far seems to be about external systems calling into Bugzilla. However, I am dealing with a case where Bugzilla needs to make calls into an external system. In my case, changes to bug status need to be mirrored to an associated object in salesforce. My proposal is that instead of forcing people to poke into the underbelly of post_bug.cgi, risking their sanity and merge conflicts, a standardized set of hooks should be provided for various Bugzilla events. As a first step, the hooks can be for notification of the event having successfully taken place. Down the road, hooks for notification about an event that is about to take place could be provided, with a chance for the implementation to veto the proposed change. This would be useful even for internal Bugzilla customization. For instance, I needed to change the semantics of resolving a bug FIXED -- it could not be set unless a custom field version_fixed was also set at the same time. Conversely, if the bug changes status from RESOLVED FIXED to any other, this field has to be automatically cleared. You can see how this could be made a lot simpler with the hooks I describe. Are these ideas within the scope of this meta-bug, or should a new one be opened?
(In reply to comment #11) Your request is more like bug 298341.
The trunk is now frozen to prepare Bugzilla 2.22. Only bug fixes are accepted, no enhancement bugs. As this bug has a pretty low activity (especially from the assignee), it's retargetted to ---. If you want to work on it and you think you can have it fixed for 2.24, please retarget it accordingly (to 2.24).
Target Milestone: Bugzilla 2.22 → ---
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: