summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfr33domlover <fr33domlover@riseup.net>2020-05-17 14:59:31 +0300
committerfr33domlover <fr33domlover@riseup.net>2020-05-17 14:59:31 +0300
commit91488c19a1325bae70aa746d908dcdd0b938277e (patch)
tree81f4b1adb6dce0e0bf382a4fceaf081b44e652a1
parentb7277d233ce9b6cc5065f4369421ef779c44ed09 (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.jsonld6
-rw-r--r--spec/behavior.md12
-rw-r--r--spec/modeling.md6
-rw-r--r--spec/vocabulary.md66
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`