Expose project status and information through API

RESOLVED FIXED

Status

P3
normal
RESOLVED FIXED
2 years ago
a year ago

People

(Reporter: flod, Assigned: stas)

Tracking

Trunk
Points:
---

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(2 attachments)

(Reporter)

Description

2 years ago
WebStatus exposes information through a very simple API:
* Default output is JSON, but can be set to plain text.
* You can query a product ID, and get the list of supported locales (default), the list of complete locales, or the list of incomplete locales.

Example: https://l10n.mozilla-community.org/webstatus/api/?product=outofdate-notifications-system-addon&type=complete&txt

It would be really useful being able to retrieve information from Pontoon via API. Interesting queries:
* Stats for a locale: supported projects, status of each project.
* Stats for a project: supported locales, incomplete locales, complete locales.
Hi :flod,

I talked with :mathjazz, for the full resolution of this ticket we should create an API for the rest of available resources e.g:
* entities
** translations
* contributors
** their timelines (?)

As a part of this bug it is required to create a documentation and research how we can transit our current codebase into rest(ful/ish) api.
Priority: -- → P3
:flod,mathjazz

I wonder if We could use GraphQL here as a query language (https://medium.com/@ottovw/rest-api-downfalls-and-dawn-of-graphql-dd00991a0eb8#.wtygnkbda).
The GQL would nicely express things like entities (and their filters) and allow bigger flexibility for clients.
What do you think? Or do you prefer a simple REST interface? I don't know what's the preferred solution in Mozilla organization.
Flags: needinfo?(francesco.lodolo)

Comment 3

2 years ago
I think that in the pontelmo universe, this is more of a elmo-side bug than a pontoon one.

I'm personally sympathetic to GraphQL. I haven't totally dug into how easy it is to consume the results, though.

I wonder to which extent this is a dupe of bug 1332181 now, as that has more detailed information?
(Reporter)

Comment 4

2 years ago
I'm not familiar with GraphQL. Having said that, I wonder about the size of the response, if we end up exposing this much information in one call (unless I'm completely misreading that article).

The way I see it, this might be more a blocker for bug 1332181 than a dupe: centralized schedule needs this information (it will probably get it internally, not via API), but it's not necessarily the only one. The latter is also a point to consider when picking REST vs GraphQL vs something else.
Flags: needinfo?(francesco.lodolo)
(Reporter)

Comment 5

2 years ago
(In reply to Francesco Lodolo [:flod] from comment #4)
> The way I see it, this might be more a blocker for bug 1332181 than a dupe:
> centralized schedule needs this information

Pike made a good point on IRC: if bug 1332181 is about identifying the data, and creating ways to manage/expose them in Pontoon, this bug is about exposing this data to the outside world.

I still don't think they're dupes, but this is not a blocker, more the other way around (we need the data before building the API).
The other advantage of the API is that it can communicate data to the Open Innovation team's centralized community dashboards, especially once we implement quality metrics for individual localizers, communities, and projects.
Assignee: nobody → stas
(Assignee)

Comment 7

a year ago
Created attachment 8902827 [details] [review]
Add GraphQL to Pontoon

I submitted a PR which adds GraphQL to Pontoon. I requested reviews on Github.

We chose to go ahead with GraphQL after researching other options (see https://wiki.mozilla.org/L10n:Pontoon/API for the summary) and after a discussion in https://groups.google.com/forum/#!topic/mozilla.tools.l10n/R1S7Pk-c6uU.

Thanks for everyone involved!
(Assignee)

Updated

a year ago
Blocks: 1395273

Comment 8

a year ago
Commit pushed to master at https://github.com/mozilla/pontoon

https://github.com/mozilla/pontoon/commit/bb919ea7527e257d35532a113d06be8365b5a1ff
Add GraphQL (#630)

Add the /graphql API endpoint to Pontoon. The main driver is the use case from bug 1302053:

  - Stats for a locale: supported projects, status of each project.
  - Stats for a project: supported locales, incomplete locales, complete locales.

Research: https://wiki.mozilla.org/L10n:Pontoon/API
Discussion: https://groups.google.com/forum/#!topic/mozilla.tools.l10n/R1S7Pk-c6uU.
(Assignee)

Comment 9

a year ago
Thanks for the help getting this merged and for the reviews!
Status: NEW → RESOLVED
Last Resolved: a year ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.