All of lore.kernel.org
 help / color / mirror / Atom feed
* Email bridge for GitLab
@ 2021-09-24 16:01 Donald Zickus
  0 siblings, 0 replies; only message in thread
From: Donald Zickus @ 2021-09-24 16:01 UTC (permalink / raw)
  To: workflows, konstantin, dja

Hi Konstantin, Daniel,

Thanks for the feedback on my GitLab talk yesterday.  Sorry I missed
the post talk discussion.

I know that creating a usable but distributed collaboration forum with
a forge (preferably email) is a challenging problem.

The problem presented:
How to collaborate across different forge based workflows or email
based workflows?
How to keep the entry bar low for contributors?
How to handle situations where the forge is down for a few hours, can
work still get done?

Most of the above problems indicate 'email' is the common method for
handling them.



I wanted to throw out the email bridge the Red Hat kernel developed
using Patchwork v2, celery and an http server as the core piece plus
added scripts glued together.  Considering kernel.org has a lot of
those pieces there, it might not be a stretch to implement this.

Anyway, throwing this out as a conversation starting solution:
patchlab (https://github.com/jeremycline/patchlab).  Thanks to Jeremy
Cline for thinking and implementing this!

How does it work?
(assuming a running instance of Patchwork and an http server)

Email -> GitLab
 * email sent to list and shows up on Patchwork as designed
 * Patchwork uses hook to call separate django DB table that maps PW
PatchID to GitLab MR
   * If not found, adds entry
   * kick off celery job
     * Comments use GitLab token to add comment to MR
     * New patches are applied locally in new branch and git push'd as new MR
     * Failed to apply patches are dropped
     * Updated patch updates MR

GitLab -> Email
  * GItLab updates will send webhooks to http server with Patchwork
    * comments convert GitLab MR to PW PatchID
      * use msgid and cc fields to send email reply
     * new MRs are cloned locally
       * git format-patch ; git-send-email
       * Add email header to avoid loop
       * Sent email circles around to populate Patchwork DB
         * extra email header will block further processing in above celery job

We have been running this publicly for almost a year now.
Email list : https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org/
GitLab project: https://gitlab.com/cki-project/kernel-ark/-/merge_requests

I know this isn't the most simple or elegant solution, but it solved
our needs for now.  Happy to entertain better ideas or thoughts!

Thoughts?

Cheers,
Don


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2021-09-24 16:01 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-09-24 16:01 Email bridge for GitLab Donald Zickus

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.