| OLD | NEW |
| (Empty) | |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. |
| 4 |
| 5 // This file *partially* describes Monorail API. |
| 6 // It is derived from |
| 7 // https://chromium.googlesource.com/infra/infra/+/f2e2a4d/appengine/monorail/se
rvices/api_svc_v1.py |
| 8 // and |
| 9 // https://chromium.googlesource.com/infra/infra/+/f2e2a4d/appengine/monorail/pr
oto/api_pb2_v1.py |
| 10 |
| 11 syntax = "proto3"; |
| 12 |
| 13 package monorail; |
| 14 |
| 15 // Monorail service can manipulate issues. |
| 16 service Monorail { |
| 17 // Creates an issue. |
| 18 rpc InsertIssue(InsertIssueRequest) returns (InsertIssueResponse){}; |
| 19 // Posts a comment to an issue. Can update issue attributes, such as status. |
| 20 rpc InsertComment(InsertCommentRequest) returns (InsertCommentResponse){}; |
| 21 } |
| 22 |
| 23 // A monorail issue. |
| 24 message Issue { |
| 25 // Reporter of the issue. |
| 26 AtomPerson author = 1; |
| 27 // Issues that must be fixed before this one can be fixed. |
| 28 repeated IssueRef blockedOn = 2; |
| 29 // People participating in the issue discussion. |
| 30 repeated AtomPerson cc = 6; |
| 31 // The text body of the issue. |
| 32 string description = 8; |
| 33 // Identifier of the issue, unique within the appengine app. |
| 34 int32 id = 9; |
| 35 // Monorail components for this issue. |
| 36 repeated string components = 10; |
| 37 // Arbitrary indexed strings visible to users, |
| 38 // usually of form "Key-Value" or "Key-Value-SubValue", |
| 39 repeated string labels = 11; |
| 40 // Who is currently responsible for closing the issue. |
| 41 AtomPerson owner = 12; |
| 42 // Current status of issue. Standard values: |
| 43 // |
| 44 // Open statuses: |
| 45 // "Unconrimed" - New, has been not verified or reproduced. |
| 46 // "Untriaged" - Confirmed, not reviews for priority of assignment |
| 47 // "Available" - Triaged, but no owner assigned |
| 48 // "Started" - Work in progress. |
| 49 // "ExternalDependency" - Requires action from a third party |
| 50 // Closed statuses: |
| 51 // "Fixed" - Work completed, needs verificaiton |
| 52 // "Verified" - Test or reporter verified that the fix works |
| 53 // "Duplicate" - Same root cause as another issue |
| 54 // "WontFix" - Cannot reproduce, works as intended, invalid or absolete. |
| 55 // "Archived" - Old issue with no activity. |
| 56 string status = 17; |
| 57 // A one line description of the issue. |
| 58 string summary = 18; |
| 59 } |
| 60 |
| 61 // IssueRef references another issue in the same Monorail instance. |
| 62 message IssueRef { |
| 63 // ID of the issue. |
| 64 int32 issueId = 1; |
| 65 // ID of the project containing the issue. |
| 66 string projectId = 2; |
| 67 } |
| 68 |
| 69 // Request for Monorail.InsertIssue(). |
| 70 message InsertIssueRequest { |
| 71 // Target project id. |
| 72 string projectId = 1; |
| 73 // Definition of the issue. |
| 74 // issue.id must be empty. |
| 75 Issue issue = 2; |
| 76 // Whether to send email to participants. |
| 77 bool sendEmail = 3; |
| 78 } |
| 79 |
| 80 // Response for Monorail.InsertIssue() |
| 81 message InsertIssueResponse { |
| 82 // Created issue. |
| 83 Issue issue = 1; |
| 84 } |
| 85 |
| 86 // Request for Monorail.InsertComment() |
| 87 message InsertCommentRequest { |
| 88 // Defines the comment. |
| 89 // This message is partial. |
| 90 // Derived from IssueCommentWrapper type in api_pb2_v1.py. |
| 91 message Comment { |
| 92 string content = 4; |
| 93 Update updates = 8; |
| 94 } |
| 95 // Definition of the comment. |
| 96 Comment comment = 1; |
| 97 // The reference to post the comment to. |
| 98 IssueRef issue = 2; |
| 99 } |
| 100 |
| 101 message InsertCommentResponse{} |
| 102 |
| 103 // Defines a mutation to an issue. |
| 104 // This message is partial. |
| 105 // Derived from Update type in api_pb2_v1.py. |
| 106 message Update { |
| 107 // If set, the new status of the issue. |
| 108 string status = 2; |
| 109 } |
| 110 |
| 111 // Identifies a Monorail user. |
| 112 message AtomPerson { |
| 113 // User email. |
| 114 string name = 1; |
| 115 } |
| OLD | NEW |