Open Collective integration

Created on 24 February 2023, over 1 year ago
Updated 1 April 2023, over 1 year ago

Problem/Motivation

The current work outlined in #3094555-2: Funding module planning thread β†’ has been slowed due to other priorities or lack of time to volunteer. At the same time, there are several old and new limitations with Open Collective embeds and widgets that make embedding a less flexible and desirable solution compared to integration via the Open Collective API.

Considering the field has long been seen as a stopgap (mainly because the Open Collective API didn't meet our needs at the time), the current blockers would be less of an issue if the API was mature enough to start on integration.

Proposed resolution

I'm proposing we do the following:

  • Outline our goals and needs (in this issue)
  • Do an analysis of the Open Collective API to determine if it can accommodate our needs
  • If it makes sense to proceed, determine the resources we'd need to complete the work in a timely fashion

In terms of our goals and needs, I think GitHub Sponsors provides some good examples for displaying tiers and crediting sponsors on pages outlined in 🌱 Roadmap to Stable Release 1.0.x Active in a consistent, automated fashion. Few examples:

org - https://github.com/mautic
project - https://github.com/sponsors/AzuraCast
user - https://github.com/geerlingguy

I'll provide more detail in the comments (when I can) and keep this description updated (the best I can).

🌱 Plan
Status

Active

Version

1.0

Component

Code

Created by

πŸ‡ΊπŸ‡ΈUnited States gusaus

Live updates comments and jobs are added and updated live.
Sign in to follow issues

Comments & Activities

  • Issue created by @gusaus
  • πŸ‡ΊπŸ‡ΈUnited States gusaus

    Considering @liberatr already created UI issues β†’ for the use cases outlined in 🌱 Roadmap to Stable Release 1.0.x Active , I think we can limit this issue to determining what we need from Open Collective API.

    I'll reference #3121265-5: Funding: User Experience (e.g. for Drupal.org) β†’ as it provides more detail about GitHub Sponsors we'd like to replicate.

    So here are some dumb questions. Is the goal to pull from the GraphQL API? If yes, this post may help those who understand these things determine if it will provide what we need.

    Skimming over their public GraphQL API documentation, it seems like everything we'd want to pull in is there. What do the folks who understand and know how to build out integrations think? Is there still additional information we need to provide that will help with the evaluation?

  • πŸ‡ΊπŸ‡ΈUnited States gusaus
  • πŸ‡ΊπŸ‡ΈUnited States gusaus

    Referencing #3322000-5: Funding Idea: Event Tickets + Open Collective β†’ as the module β†’ @pwolanin and @daggerhart provides one working example of Open Collective integration. That said, based on the last paragraph of the module description, it doesn't seem like its currently leveraging the Open Collective GraphQL API?

    If you want to contribute or do something similar with a webhook, take a look at this tool to help you grab the data: https://www.drupal.org/project/request_dumper β†’
    Other integration points may be added over time, such as using their graphQL api.

    If no, maybe that creates an additional opportunity to pool resources and collaborate.

  • πŸ‡ΊπŸ‡ΈUnited States gusaus

    Since the last update, @daggerhart has joined the #funding Slack channel and has created https://www.drupal.org/project/oc_graphql_client β†’ to experiment with how this and/or related modules (like https://www.drupal.org/project/ocf_integration β†’ ) can use the client to make things like:

    • custom elements (embeds)
    • custom webform elements
    • maybe even views integration

    What we don't yet have is a list of what we want from API.

    @daggerhart listed out a few ideas in this Slack thread

    • get all events for a collective
    • get all tiers (tickets) for an event
    • get collective backers

    We should list out more in the comments and then compile in the issue description.

  • πŸ‡ΊπŸ‡ΈUnited States gusaus

    There's been some consensus around spinning off Open Collective integration into a separate module (initially maintained by @daggerhart and me providing non-technical support).

    Seems like a good, obvious name would be Open Collective (machine name - opencollective).

    Does that make sense (the name and general idea of creating a separate module)?

  • πŸ‡ΊπŸ‡ΈUnited States gusaus
  • πŸ‡ΊπŸ‡ΈUnited States gusaus

    Quick follow-up on the last comment. @daggerhart created the project and it made sense to transfer this on-topic issue from Funding. That said, I'd like our project lead to claim and use this issue to gather requirements, user stories, and elements that will help define the scope.

    I'll just add that some/all of the related UX issues might end up leveraging the Open Collective API rather than the Funding module for the use cases outlined in [#3094555}.

    Hopefully, we can discuss and make some decisions during the next check-in in #funding (Drupal Slack).

Production build 0.69.0 2024