diff options
author | fr33domlover <fr33domlover@riseup.net> | 2020-05-17 14:59:31 +0300 |
---|---|---|
committer | fr33domlover <fr33domlover@riseup.net> | 2020-05-17 14:59:31 +0300 |
commit | 91488c19a1325bae70aa746d908dcdd0b938277e (patch) | |
tree | 81f4b1adb6dce0e0bf382a4fceaf081b44e652a1 | |
parent | b7277d233ce9b6cc5065f4369421ef779c44ed09 (diff) |
Add properties sendPatchesTo and tracksPatchesFor
These are much like ticketsTrackedBy and tracksTicketsFor, except for
patches and MRs. Allows for similar flexibility pointing to the actor
managing the patch / MR. Typically on web forges a repo actor would
manage its own MRs (and tickets), but the flexibility allows for other,
more loose or varied setups, to be equally able to federate (for example
repos hosted by e.g. gitolite while e.g. Bugzilla handles tickets and
patches).
-rw-r--r-- | rdf/context.jsonld | 6 | ||||
-rw-r--r-- | spec/behavior.md | 12 | ||||
-rw-r--r-- | spec/modeling.md | 6 | ||||
-rw-r--r-- | spec/vocabulary.md | 66 |
4 files changed, 84 insertions, 6 deletions
diff --git a/rdf/context.jsonld b/rdf/context.jsonld index f45e311..64c7276 100644 --- a/rdf/context.jsonld +++ b/rdf/context.jsonld @@ -68,6 +68,12 @@ "tracksTicketsFor": { "@id": "forge:tracksTicketsFor", "@type": "@id" }, + "sendPatchesTo": { + "@id": "forge:sendPatchesTo", + "@type": "@id" }, + "tracksPatchesFor": { + "@id": "forge:tracksPatchesFor", + "@type": "@id" }, "forks": { "@id": "forge:forks", "@type": "@id" } diff --git a/spec/behavior.md b/spec/behavior.md index f80e1aa..96367d9 100644 --- a/spec/behavior.md +++ b/spec/behavior.md @@ -235,12 +235,12 @@ The *creation* flow begins with the ticket being published using a [Create][] activity, in which [object][] is a [Ticket][type-ticket] with fields as described [in the modeling specification][model-ticket]. The ticket MUST specify at least [id][], [attributedTo][], [summary][], [content][] and -[context][]. The [context][] property specifies the ticket tracker to which the -actor is reporting the Ticket (e.g. a repository or project etc. under which -the ticket will be listed if accepted). [context][] MUST be either an actor or -a child object. If it's a child object, the actor to whom the child object -belongs MUST be listed as a recipient in the Create's [to][] field. If it's an -actor, then that actor MUST be listed in the `to` field. +[context][]. The [context][] property specifies the project or tracker to which +the actor is reporting the Ticket (e.g. a repository or project etc. under +which the ticket will be listed if accepted). [context][] MUST be either an +actor or a child object. If it's a child object, the actor to whom the child +object belongs MUST be listed as a recipient in the Create's [to][] field. If +it's an actor, then that actor MUST be listed in the `to` field. Among the recipients listed in the Create's recipient fields, exactly one recipient is the actor who's responsible for processing the ticket and possibly diff --git a/spec/modeling.md b/spec/modeling.md index b492229..68754b4 100644 --- a/spec/modeling.md +++ b/spec/modeling.md @@ -142,6 +142,10 @@ Properties: * [ticketsTrackedBy][prop-ticketstrackedby]: The ticket tracker that tracks tickets for this repository, this can be the repository itself if it manages its own tickets +* [sendPatchesTo][prop-sendpatchesto]: The actor that tracks tickets for this + repository, this can be the repository itself if it manages its own patches + and merge requests. For example it may be some external tracker or service, + or the user or team to whom the repository belongs. Example: @@ -164,6 +168,7 @@ Example: "followers": "https://dev.example/aviva/treesim/followers", "team": "https://dev.example/aviva/treesim/team", "ticketsTrackedBy": "https://dev.example/aviva/treesim", + "sendPatchesTo": "https://dev.example/aviva/treesim", "name": "Tree Growth 3D Simulation", "summary": "<p>Tree growth 3D simulator for my nature exploration game</p>" } @@ -370,6 +375,7 @@ Example: [prop-hashbefore]: /vocabulary.html#prop-hashbefore [prop-isresolved]: /vocabulary.html#prop-isresolved [prop-ref]: /vocabulary.html#prop-ref +[prop-sendpatchesto]: /vocabulary.html#prop-sendpatchesto [prop-team]: /vocabulary.html#prop-team [prop-ticketstrackedby]: /vocabulary.html#prop-ticketstrackedby diff --git a/spec/vocabulary.md b/spec/vocabulary.md index 51cd96e..cf0cfe8 100644 --- a/spec/vocabulary.md +++ b/spec/vocabulary.md @@ -748,6 +748,72 @@ them to this tracker. } ``` +## sendPatchesTo {#prop-sendpatchesto} + +**URI:** `https://forgefed.peers.community/ns#sendPatchesTo` + +**Notes:** Identifies the actor which tracks patches and merge requests related +to the given repository. This is the actor to whom you send patches and merge +requests you'd like to open against the repository. + +**Domain:** [Repository][] + +**Range:** [Object][] that is an actor + +**Functional:** Yes + +**Inverse of:** [tracksPatchesFor](#prop-trackspatchesfor) + +**Example:** + +```json +{ + "@context": [ + "https://www.w3.org/ns/activitystreams", + "https://forgefed.peers.community/ns" + ], + "id": "https://dev.example/aviva/treesim", + "type": "Repository", + "name": "Tree Growth 3D Simulation", + "summary": "<p>Tree growth 3D simulator for my nature exploration game</p>", + "sendPatchesTo": "https://bugs.example/projects/treesim" +} +``` + +## tracksPatchesFor {#prop-trackspatchesfor} + +**URI:** `https://forgefed.peers.community/ns#tracksPatchesFor` + +**Notes:** Identifies repositories for which which this patch and merge request +tracker tracks patches and merge requests. When you'd like to open patches or +merge requests against those repositories, you can send them to this tracker. + +**Domain:** [Object][] that is an actor + +**Range:** [Repository][] + +**Functional:** No + +**Inverse of:** [sendPatchesTo](#prop-sendpatchesto) + +**Example:** + +```json +{ + "@context": [ + "https://www.w3.org/ns/activitystreams", + "https://forgefed.peers.community/ns" + ], + "id": "https://project.example/treesim", + "type": "Project", + "tracksPatchesFor": [ + "https://dev.example/aviva/liblsystem", + "https://dev.example/aviva/3d-tree-models", + "https://dev.example/aviva/treesim" + ] +} +``` + ## forks {#prop-forks} **URI:** `https://forgefed.peers.community/ns#forks` |