Μετάβαση στο περιεχόμενο

Τεκμηρίωση του API

Έκδοση 1.0.0 - προδιαγραφή OpenAPI

Βάση των κλήσεων: https://dolinews.com/api/v1

The service tells what was announced, and when. It never states the current state of a module.

Reading and the generic feeds are free and need no account. Writing needs a contributor account and a personal token. A token grants the right to SUBMIT, never the right to publish: every submission enters the same human review circuit as the web surface, and is published only once the review has accepted it.

Submitting is a declaration that the author holds the rights on the content, places it under CC BY-SA 4.0, and breaks neither the law nor a third-party right, trademarks included. The usage rules are identical through a token and through the web.

The version prefix is frozen: nothing breaks under /api/v1 without a /api/v2 published alongside it.

Υποβολή άρθρου, από άκρη σε άκρη

Τέσσερα βήματα. Ένα διακριτικό δίνει το δικαίωμα υποβολής: η δημοσίευση προέρχεται από την αξιολόγηση, ποτέ από την κλήση.

  1. Ανοίξτε λογαριασμό συνεισφέροντα και δημιουργήστε διακριτικό από τη σελίδα διακριτικών του λογαριασμού σας. Το μυστικό εμφανίζεται μία μόνο φορά. Η πλήρης διαδρομή, βήμα βήμα
  2. Ανεβάστε τα στιγμιότυπά σας με POST /media και σημειώστε τα αναγνωριστικά που επιστρέφονται.
  3. Δημιουργήστε το άρθρο με POST /articles, αναφέροντας τις διευθύνσεις των εικόνων στο σώμα και τα αναγνωριστικά τους στο media_ids.
  4. Υποβάλετέ το προς αξιολόγηση με POST /articles/{id}/submit, ή απευθείας θέτοντας το submit σε true στο προηγούμενο βήμα.
TOKEN="1|abc..."

# 1. Déposer une capture
curl -H "Authorization: Bearer $TOKEN" \
     -F file=@capture.png -F editor_id=3 -F alt="Écran de configuration" \
     https://dolinews.com/api/v1/media

# 2. Créer l'article et le soumettre dans le même appel
curl -H "Authorization: Bearer $TOKEN" \
     -H "Content-Type: application/json" \
     -d '{"editor_id":3,"type":"release","title":"Module XY 2.1",
          "version":"2.1.0","locale":"fr_FR","maturity":"stable",
          "summary":"Correction de la génération des relances.",
          "body":"## Corrections\n\n- relances","media_ids":[42],
          "submit":true}' \
     https://dolinews.com/api/v1/articles

Δεν ανακοινώνεται προθεσμία αξιολόγησης: το άρθρο δημοσιεύεται όταν η αξιολόγηση το εγκρίνει. Η υπηρεσία δείχνει τον παρατηρούμενο χρόνο, τη διάμεσο των τελευταίων αποφάσεων.

Ταυτοποίηση

Personal token of a contributor account, minted from the account page or from POST /tokens. Sent as Authorization: Bearer <token>. It grants the right to submit, never the right to publish.

Authorization: Bearer <το διακριτικό σας>

Περιορισμός ρυθμού

Κλήσεις Χωρίς λογαριασμό Με διακριτικό
Ανάγνωση 60 requests per minute and per IP address 120 requests per minute and per account
Εγγραφή 5 requests per minute and per IP address 10 requests per minute and per account

Articles

The feed: reading published articles, submitting new ones, translating and correcting them.

GET /articles

χωρίς λογαριασμό

List published articles

The published feed, filterable exactly like the web surface. Non-stable maturities are excluded unless named: the default is stable alone.

Παράμετροι ερωτήματος

Πεδίο Τύπος Υποχρεωτικό Περιγραφή
editor string όχι Editor slug.
project string όχι Project slug.
dolibarr integer όχι Dolibarr major version the announcement concerns. Reads as "announcements concerning this version", never as "modules compatible with it".
focus string όχι Nature of a release publication. Τιμές: doc, cleanup, feature_minor, feature_major, bugfix_minor, bugfix_major, security, compat, eol
locale string όχι Content locale of the article, such as fr_FR. Τιμές: fr_FR, en_US, es_ES, de_DE, it_IT, nl_NL, pt_PT
maturity array of string όχι Maturities to include, repeatable. Omitted, only stable articles come back. An unknown value is ignored rather than emptying the list. Τιμές: alpha, beta, rc, stable, deprecated
q string όχι Free-text search over the title, the summary and the body. Words are ANDed, five of them at most are honoured.
per_page integer όχι Articles per page. Clamped to the 1-100 range. Προεπιλογή: 25

Απαντήσεις

200 One page of published articles.
429 RATE_LIMITED: too many requests.

POST /articles

απαιτείται διακριτικό λογαριασμός συνεισφέροντα όριο εγγραφής

Create a draft article

Creates a draft for an editor the account is a member of. With submit set to true, the draft enters the review queue in the same call and a publication token is consumed.

Illustrations are ids returned by POST /media beforehand: the body references their URLs, media_ids ties them to the article. Unbound media are purged as orphans after the grace period.

A version is proposed once: an announcement is identified by its project, version number and locale within the editor. Sending one that is still a draft, under review or rejected updates that article (200, meta.existing_article) instead of creating a second one; an identical text changes nothing and keeps the accords. Sending one already published answers ALREADY_PUBLISHED with detail.article_id: propose a revision of that article instead. Without a project or a version number, nothing is matched.

Σώμα του αιτήματος application/json

Πεδίο Τύπος Υποχρεωτικό Περιγραφή
editor_id integer ναι Editor the article is published for. The account must be a member. Required on creation, ignored on edit.
type string ναι A release publishes a version, an announcement does not. Τιμές: release, announcement
project_id integer όχι Sheet the article belongs to.
focus string όχι Nature of a release publication. Τιμές: doc, cleanup, feature_minor, feature_major, bugfix_minor, bugfix_major, security, compat, eol
title string ναι
version string όχι
summary string ναι
body string ναι Markdown. Free HTML is refused.
locale string ναι Content locale, five characters. Τιμές: fr_FR, en_US, es_ES, de_DE, it_IT, nl_NL, pt_PT
dolibarr_min integer όχι Lowest Dolibarr major version announced. Compatibility lives on the article, with its date, never on the sheet.
dolibarr_max integer όχι Highest Dolibarr major version announced.
maturity string όχι Τιμές: alpha, beta, rc, stable, deprecated
compat_status string όχι How the announced compatibility was established. Τιμές: declared, tested, experimental
media_ids array of integer όχι Identifiers returned by POST /media. Binds the images to this article and saves them from the orphan purge.
featured_media_id integer | null όχι The image put forward on the feed card, the sharing card and the feeds: a media deposited for the article's editor. Reviewed with the article. Without it, the first image of the body is used. Refused on a translation, which shows the image of its source.
submit boolean όχι Submit to the review right away, consuming a publication token.

Απαντήσεις

200 The version was already proposed and not yet published: that article was updated, and submitted when submit was true. meta.existing_article is true.
201 Draft created, submitted too when submit was true.
401 INVALID_TOKEN: missing, revoked or expired token.
403 CONTRIBUTOR_REQUIRED: a verified contributor account is needed. A reader account can read and subscribe, never write.
409 ALREADY_PUBLISHED: this version of the project is already published in this locale, detail.article_id names it; a published article changes only through a revision. CONFLICT: the version is under review by another member of the editor (detail.article_id), or the state of the article forbids the update.
422 VALIDATION_FAILED: invalid payload. detail names the offending fields.
429 QUOTA_BUCKET_EMPTY or QUEUE_CEILING_REACHED: the publication credit of the project is spent, or too many announcements of this editor are already under review. Neither is a rate limit: retrying later is the only remedy.

GET /articles/{id}

χωρίς λογαριασμό

Read one published article

Adds the rendered body and the language versions of the group. A version flagged stale was translated from an earlier revision of its source.

Παράμετροι διαδρομής

Πεδίο Τύπος Υποχρεωτικό Περιγραφή
id integer ναι Article identifier.

Απαντήσεις

200 The article, its rendered body and its language versions.
404 NOT_FOUND: unknown resource, or one the account may not see.
429 RATE_LIMITED: too many requests.

PATCH /articles/{id}

απαιτείται διακριτικό όριο εγγραφής

Edit an unpublished article

Edits a draft or a rejected article of the calling account. Editing an article under review counts as a resubmission and resets the acceptances already given.

A published article is never edited in place: use the revisions endpoint.

Παράμετροι διαδρομής

Πεδίο Τύπος Υποχρεωτικό Περιγραφή
id integer ναι Article identifier.

Σώμα του αιτήματος application/json

Πεδίο Τύπος Υποχρεωτικό Περιγραφή
editor_id integer ναι Editor the article is published for. The account must be a member. Required on creation, ignored on edit.
type string ναι A release publishes a version, an announcement does not. Τιμές: release, announcement
project_id integer όχι Sheet the article belongs to.
focus string όχι Nature of a release publication. Τιμές: doc, cleanup, feature_minor, feature_major, bugfix_minor, bugfix_major, security, compat, eol
title string ναι
version string όχι
summary string ναι
body string ναι Markdown. Free HTML is refused.
locale string ναι Content locale, five characters. Τιμές: fr_FR, en_US, es_ES, de_DE, it_IT, nl_NL, pt_PT
dolibarr_min integer όχι Lowest Dolibarr major version announced. Compatibility lives on the article, with its date, never on the sheet.
dolibarr_max integer όχι Highest Dolibarr major version announced.
maturity string όχι Τιμές: alpha, beta, rc, stable, deprecated
compat_status string όχι How the announced compatibility was established. Τιμές: declared, tested, experimental
media_ids array of integer όχι Identifiers returned by POST /media. Binds the images to this article and saves them from the orphan purge.
featured_media_id integer | null όχι The image put forward on the feed card, the sharing card and the feeds: a media deposited for the article's editor. Reviewed with the article. Without it, the first image of the body is used. Refused on a translation, which shows the image of its source.
submit boolean όχι Submit to the review right away, consuming a publication token.

Απαντήσεις

200 The updated article.
401 INVALID_TOKEN: missing, revoked or expired token.
404 NOT_FOUND: unknown resource, or one the account may not see.
409 CONFLICT: the state of the resource forbids the action.
422 VALIDATION_FAILED: invalid payload. detail names the offending fields.
429 RATE_LIMITED: too many requests.

POST /articles/{id}/submit

απαιτείται διακριτικό όριο εγγραφής

Submit an article to the review

Sends a draft of the calling account into the review queue and consumes a publication token. No review delay is announced: an article is published when the review has accepted it. What the service displays is the observed delay, the median of the recent decisions.

Παράμετροι διαδρομής

Πεδίο Τύπος Υποχρεωτικό Περιγραφή
id integer ναι Article identifier.

Απαντήσεις

200 The article, now pending review.
401 INVALID_TOKEN: missing, revoked or expired token.
404 NOT_FOUND: unknown resource, or one the account may not see.
409 CONFLICT: the state of the resource forbids the action.
429 QUOTA_BUCKET_EMPTY or QUEUE_CEILING_REACHED: the publication credit of the project is spent, or too many announcements of this editor are already under review. Neither is a rate limit: retrying later is the only remedy.

POST /articles/{id}/translations

απαιτείται διακριτικό λογαριασμός συνεισφέροντα όριο εγγραφής

Translate an article

Adds a language version to the group of the source article. One locale per group at most. Open to the author of the announcement, to the members of its editor, and to accounts the editor mandated for that locale. A translation consumes no publication token and carries no quorum: submitted by its own editor it is published straight away, submitted by a mandated translator it goes through one reviewer. It never publishes before its source, and takes the source's publication date.

Παράμετροι διαδρομής

Πεδίο Τύπος Υποχρεωτικό Περιγραφή
id integer ναι Article identifier.

Σώμα του αιτήματος application/json

Πεδίο Τύπος Υποχρεωτικό Περιγραφή
locale string ναι Content locale, five characters. Τιμές: fr_FR, en_US, es_ES, de_DE, it_IT, nl_NL, pt_PT
title string ναι
summary string ναι
body string ναι Markdown. Free HTML is refused.
submit boolean όχι Submit to the review right away.

Απαντήσεις

201 The translated article.
401 INVALID_TOKEN: missing, revoked or expired token.
403 CONTRIBUTOR_REQUIRED: a verified contributor account is needed. A reader account can read and subscribe, never write.
404 NOT_FOUND: unknown resource, or one the account may not see.
409 That locale already exists in the group.
422 VALIDATION_FAILED: invalid payload. detail names the offending fields.
429 QUEUE_CEILING_REACHED: too many announcements of this editor are already under review, every project combined. The unit is the announcement, not the article: the language versions of one announcement hold a single slot.

POST /articles/{id}/revisions

απαιτείται διακριτικό όριο εγγραφής

Propose a revision of a published article

A published article is never modified in place. A revision re-enters the review; once accepted, the article carries the mention of its correction and the original version stays readable.

Send only the fields that change. The motive is mandatory and is shown to the review team.

Παράμετροι διαδρομής

Πεδίο Τύπος Υποχρεωτικό Περιγραφή
id integer ναι Article identifier.

Σώμα του αιτήματος application/json

Πεδίο Τύπος Υποχρεωτικό Περιγραφή
title string όχι
summary string όχι
body string όχι
featured_media_id integer | null όχι New featured image, a media of the article's editor. Null takes the designation away. Applied with the revision, never before.
media_ids array of integer όχι Images the corrected body or the new featured image brings, deposited through POST /media. Binding them shows nothing before the revision is applied.
motive string ναι Why the correction is needed.

Απαντήσεις

201 The revision, pending review.
401 INVALID_TOKEN: missing, revoked or expired token.
404 NOT_FOUND: unknown resource, or one the account may not see.
409 CONFLICT: the state of the resource forbids the action.
422 VALIDATION_FAILED: invalid payload. detail names the offending fields.
429 RATE_LIMITED: too many requests.

Projects

Project sheets. A sheet is persistent and carries NO Dolibarr compatibility: anything dated lives on the article, with its date.

GET /projects

χωρίς λογαριασμό

List project sheets

Παράμετροι ερωτήματος

Πεδίο Τύπος Υποχρεωτικό Περιγραφή
per_page integer όχι Items per page. Clamped to the 1-100 range. Προεπιλογή: 25

Απαντήσεις

200 One page of sheets.
429 RATE_LIMITED: too many requests.

POST /projects

απαιτείται διακριτικό λογαριασμός συνεισφέροντα όριο εγγραφής

Create a project sheet

The sheet is persistent and carries no dated information: no Dolibarr compatibility, no version. Those live on the articles, each with its date.

Σώμα του αιτήματος application/json

Πεδίο Τύπος Υποχρεωτικό Περιγραφή
editor_id integer ναι Editor the sheet belongs to. The account must be a member.
name string ναι
summary string ναι
description string όχι
license string όχι

Απαντήσεις

201 The created sheet.
401 INVALID_TOKEN: missing, revoked or expired token.
403 CONTRIBUTOR_REQUIRED: a verified contributor account is needed. A reader account can read and subscribe, never write.
422 VALIDATION_FAILED: invalid payload. detail names the offending fields.
429 RATE_LIMITED: too many requests.

GET /projects/{slug}

χωρίς λογαριασμό

Read one project sheet

Adds the typed links, the translations, the logo and the gallery of the sheet.

A sheet masked by the moderation team answers 404, except to a token of its own editor, which keeps reading it to correct it: `hidden` is then true. The announcements filed under it stay published and carry no project.

Παράμετροι διαδρομής

Πεδίο Τύπος Υποχρεωτικό Περιγραφή
slug string ναι Project slug.

Απαντήσεις

200 The sheet, its links, its translations, its logo and its gallery.
404 NOT_FOUND: unknown resource, or one the account may not see.
429 RATE_LIMITED: too many requests.

PATCH /projects/{slug}

απαιτείται διακριτικό όριο εγγραφής

Edit the reference fields of a sheet

Rewrites the text of a sheet the calling account publishes for: name, language, summary, description and licence. Only the fields present in the call are touched, so a tool fixing the description alone cannot blank the licence it did not send.

The description is Markdown, rendered through the same whitelist as an article body, and bounded by the instance. A sheet presents a project and never states its current Dolibarr compatibility: what is dated lives in the announcements.

Links, translations and status have their own endpoints.

Παράμετροι διαδρομής

Πεδίο Τύπος Υποχρεωτικό Περιγραφή
slug string ναι Project slug.

Σώμα του αιτήματος application/json

Πεδίο Τύπος Υποχρεωτικό Περιγραφή
name string όχι
locale string όχι Content locale the sheet is written in (fr_FR, es_ES...).
summary string όχι
description string | null όχι Markdown, bounded by the instance (8000 characters by default).
license string | null όχι

Απαντήσεις

200 The sheet as it now reads.
401 INVALID_TOKEN: missing, revoked or expired token.
403 FORBIDDEN: the account is not a member of the editor that owns the resource.
404 NOT_FOUND: unknown resource, or one the account may not see.
422 VALIDATION_FAILED: invalid payload. detail names the offending fields.
429 RATE_LIMITED: too many requests.

POST /projects/{slug}/gallery

απαιτείται διακριτικό όριο εγγραφής

Add an image to the gallery of a sheet

Deposit the image with POST /media first, then name its id here. The media must belong to the editor of the sheet. Naming an image already in the gallery rewrites its caption and, when given, its position: a tool can run again without piling up duplicates.

The gallery is bounded by the instance; the refusal names the maximum. A Dolibarr screenshot routinely holds real personal data: publish screenshots taken on demonstration data only.

Παράμετροι διαδρομής

Πεδίο Τύπος Υποχρεωτικό Περιγραφή
slug string ναι Project slug.

Σώμα του αιτήματος application/json

Πεδίο Τύπος Υποχρεωτικό Περιγραφή
media_id integer ναι
caption string | null όχι
position integer | null όχι Display order. Defaults to after the last image.

Απαντήσεις

200 The image was already in the gallery; its caption and position were rewritten.
201 The image added to the gallery.
401 INVALID_TOKEN: missing, revoked or expired token.
403 Not a member of the sheet's editor, or media of another editor.
404 NOT_FOUND: unknown resource, or one the account may not see.
422 Invalid input, or gallery full: detail.gallery_max carries the maximum.
429 RATE_LIMITED: too many requests.

DELETE /projects/{slug}/gallery/{mediaId}

απαιτείται διακριτικό όριο εγγραφής

Take an image out of the gallery of a sheet

The file itself stays deposited; it is purged later if nothing else holds it.

Παράμετροι διαδρομής

Πεδίο Τύπος Υποχρεωτικό Περιγραφή
slug string ναι Project slug.
mediaId integer ναι Media identifier of the gallery image.

Απαντήσεις

200 The image left the gallery.
401 INVALID_TOKEN: missing, revoked or expired token.
403 FORBIDDEN: the account is not a member of the editor that owns the resource.
404 Unknown sheet, or image not in its gallery.
429 RATE_LIMITED: too many requests.

POST /projects/{slug}/translations

απαιτείται διακριτικό λογαριασμός συνεισφέροντα όριο εγγραφής

Translate a project sheet

Sheet translations live on their own, one row per locale. Unlike an article translation, this one does not go through the review.

Παράμετροι διαδρομής

Πεδίο Τύπος Υποχρεωτικό Περιγραφή
slug string ναι Project slug.

Σώμα του αιτήματος application/json

Πεδίο Τύπος Υποχρεωτικό Περιγραφή
locale string ναι Content locale, five characters. Τιμές: fr_FR, en_US, es_ES, de_DE, it_IT, nl_NL, pt_PT
name string ναι
summary string ναι
description string όχι

Απαντήσεις

201 The translated sheet.
401 INVALID_TOKEN: missing, revoked or expired token.
403 CONTRIBUTOR_REQUIRED: a verified contributor account is needed. A reader account can read and subscribe, never write.
404 NOT_FOUND: unknown resource, or one the account may not see.
422 VALIDATION_FAILED: invalid payload. detail names the offending fields.
429 RATE_LIMITED: too many requests.

Editors

Directory of the organisations and people who publish.

GET /editors

χωρίς λογαριασμό

List editors

Παράμετροι ερωτήματος

Πεδίο Τύπος Υποχρεωτικό Περιγραφή
per_page integer όχι Items per page. Clamped to the 1-100 range. Προεπιλογή: 25

Απαντήσεις

200 One page of editors.
429 RATE_LIMITED: too many requests.

POST /editors

απαιτείται διακριτικό λογαριασμός συνεισφέροντα όριο εγγραφής

Create the editor you publish for

Creates the editor the calling account owns and becomes a member of. This is the first call of a new integration: the identifier it returns is the editor_id every write endpoint asks for.

Creating is not being verified. The editor comes back with verified false and stays that way until the moderation team acts on it; nothing in the API grants that state.

Σώμα του αιτήματος application/json

Πεδίο Τύπος Υποχρεωτικό Περιγραφή
name string ναι
contact_email string ναι Address the review team writes to. Never published.
website string όχι
description string όχι

Απαντήσεις

201 The created editor, unverified.
401 INVALID_TOKEN: missing, revoked or expired token.
403 CONTRIBUTOR_REQUIRED: a verified contributor account is needed. A reader account can read and subscribe, never write.
409 The account already owns an editor. The publication credit and the queue ceiling are counted per editor, so an account mints one and joins the others on invitation.
422 VALIDATION_FAILED: invalid payload. detail names the offending fields.
429 RATE_LIMITED: too many requests.

GET /editors/{slug}

χωρίς λογαριασμό

Read one editor

Adds the description, the website and the project sheets of the editor.

Παράμετροι διαδρομής

Πεδίο Τύπος Υποχρεωτικό Περιγραφή
slug string ναι Editor slug.

Απαντήσεις

200 The editor and its sheets.
404 NOT_FOUND: unknown resource, or one the account may not see.
429 RATE_LIMITED: too many requests.

Media

Image deposit. Step one of the two-step illustrated publication.

POST /media

απαιτείται διακριτικό λογαριασμός συνεισφέροντα όριο εγγραφής

Deposit an image

Step one of an illustrated publication: deposit the image, get its id and URL, reference the URL in the article body, then list the id in media_ids.

The file is re-encoded whatever it claims to be; the declared MIME type and the extension are never taken as proof. EXIF data does not survive the rewrite. SVG is refused.

The response carries a warning worth relaying to your users: a Dolibarr screenshot routinely holds real personal data.

A media held by nothing - no article, no sheet logo or gallery, no editor logo - is purged after the grace period.

source_hash is the sha256 of the file as sent, before re-encoding: a client compares it with the hash of its own file to know whether an image is already deposited.

Σώμα του αιτήματος multipart/form-data

Πεδίο Τύπος Υποχρεωτικό Περιγραφή
file string ναι Bitmap image. SVG refused.
editor_id integer ναι Editor the media belongs to. The account must be a member.
alt string όχι Alternative text.

Απαντήσεις

201 The stored media, after re-encoding.
401 INVALID_TOKEN: missing, revoked or expired token.
403 CONTRIBUTOR_REQUIRED: a verified contributor account is needed. A reader account can read and subscribe, never write.
413 PAYLOAD_TOO_LARGE: file above the ceiling.
415 UNSUPPORTED_MEDIA: bitmap images only, never SVG.
422 VALIDATION_FAILED: invalid payload. detail names the offending fields.
429 RATE_LIMITED: too many requests.

Attestations

Test indicators attached to a sheet. Declarative, never a certification.

POST /attestations

απαιτείται διακριτικό λογαριασμός συνεισφέροντα όριο εγγραφής

Publish a test indicator for one of your sheets

The indicator is declarative as long as the test instances are hosted by the editors themselves. It is displayed as "tests published by the editor", never as "certified" nor as a quality label, and the wording is part of the contract.

Σώμα του αιτήματος application/json

Πεδίο Τύπος Υποχρεωτικό Περιγραφή
project string ναι Slug of one of your sheets.
article_id integer όχι Article the measurement relates to, when there is one.
source_type string ναι Τιμές: captests, ci, other
source_url string ναι
metric string ναι
value string ναι
unit string όχι
measured_at string όχι When the measurement was taken. Never in the future.
signature string όχι

Απαντήσεις

201 The recorded indicator.
401 INVALID_TOKEN: missing, revoked or expired token.
403 CONTRIBUTOR_REQUIRED: a verified contributor account is needed. A reader account can read and subscribe, never write.
404 NOT_FOUND: unknown resource, or one the account may not see.
422 VALIDATION_FAILED: invalid payload. detail names the offending fields.
429 RATE_LIMITED: too many requests.

Account

Profile, personal tokens and subscriptions of the calling account.

GET /profile

απαιτείται διακριτικό

Read the calling account

Includes the editors the account is a member of, with its role in each: those are the editor_id values the write endpoints accept.

Απαντήσεις

200 The account and its editor memberships.
401 INVALID_TOKEN: missing, revoked or expired token.
429 RATE_LIMITED: too many requests.

POST /logout

απαιτείται διακριτικό

Revoke the calling token

Revokes the token that made the call, and only that one. The other tokens of the account stay valid.

Απαντήσεις

200 Token revoked.
401 INVALID_TOKEN: missing, revoked or expired token.

GET /tokens

απαιτείται διακριτικό

List the tokens of the account

Names and metadata. A token secret is never returned twice.

Απαντήσεις

200 The tokens, most recent first.
401 INVALID_TOKEN: missing, revoked or expired token.

POST /tokens

απαιτείται διακριτικό

Mint a token

Lets an integration chain rotate its own tokens. The first token is minted from the web account page: this endpoint needs a valid token already.

The secret appears exactly once, in this response.

Σώμα του αιτήματος application/json

Πεδίο Τύπος Υποχρεωτικό Περιγραφή
name string ναι What this token is for. Shown on the account page.

Απαντήσεις

201 The minted token. Store the secret now.
401 INVALID_TOKEN: missing, revoked or expired token.
422 VALIDATION_FAILED: invalid payload. detail names the offending fields.

DELETE /tokens/{id}

απαιτείται διακριτικό

Revoke a token

Παράμετροι διαδρομής

Πεδίο Τύπος Υποχρεωτικό Περιγραφή
id integer ναι Token identifier.

Απαντήσεις

200 Token revoked.
401 INVALID_TOKEN: missing, revoked or expired token.
404 NOT_FOUND: unknown resource, or one the account may not see.

GET /watches

απαιτείται διακριτικό

List the subscriptions of the account

Watched projects and editors, with the personal feed URL when one has been issued.

Απαντήσεις

200 The subscriptions and the personal feed URL.
401 INVALID_TOKEN: missing, revoked or expired token.

POST /watches

απαιτείται διακριτικό

Add or remove a subscription

Toggles the subscription: calling it again on the same target removes it. Exactly one of project_id and editor_id is expected.

Σώμα του αιτήματος application/json

Πεδίο Τύπος Υποχρεωτικό Περιγραφή
project_id integer όχι
editor_id integer όχι
focus array of string όχι Restrict the subscription to these focuses. Τιμές: doc, cleanup, feature_minor, feature_major, bugfix_minor, bugfix_major, security, compat, eol
maturity array of string όχι Restrict the subscription to these maturities. Τιμές: alpha, beta, rc, stable, deprecated

Απαντήσεις

200 State after the toggle.
401 INVALID_TOKEN: missing, revoked or expired token.
422 VALIDATION_FAILED: invalid payload. detail names the offending fields.

POST /watches/feed-token

απαιτείται διακριτικό

Issue or regenerate the personal feed token

The personal feed is a tokenised URL: a feed reader cannot authenticate, so the URL carries the secret. Treat it as one. Regenerating revokes the previous URL immediately.

Σώμα του αιτήματος application/json

Πεδίο Τύπος Υποχρεωτικό Περιγραφή
regenerate boolean όχι Revoke the current URL and issue a new one.

Απαντήσεις

200 The personal feed URL.
401 INVALID_TOKEN: missing, revoked or expired token.

Specification

This document, served by the instance itself.

GET /openapi.json

χωρίς λογαριασμό

This specification

The OpenAPI document of the instance, with its own base URL filled in. Served without an account so a client generator can fetch it.

Απαντήσεις

200 The OpenAPI 3.1 document.

Κωδικοί σφάλματος

Ένα σφάλμα απαντά με αυτή τη μορφή: {"error": "CODE", "message": "...", "detail": {...}}. Στηρίξτε την ενσωμάτωσή σας στον κωδικό, ποτέ στο μήνυμα.

Κωδικός Κατάσταση HTTP
INVALID_TOKEN 401
ACCOUNT_INACTIVE 403
CONTRIBUTOR_REQUIRED 403
FORBIDDEN 403
NOT_FOUND 404
CONFLICT 409
ALREADY_PUBLISHED 409
PAYLOAD_TOO_LARGE 413
UNSUPPORTED_MEDIA 415
VALIDATION_FAILED 422
RATE_LIMITED 429
QUOTA_BUCKET_EMPTY 429
QUEUE_CEILING_REACHED 429
INTERNAL 500