mirror of
https://github.com/github/semantic.git
synced 2024-12-25 16:02:43 +03:00
Merge pull request #1955 from github/grpc-interface-design
Design out our gRPC interface
This commit is contained in:
commit
724ffc06aa
77
proto/code_analysis.proto
Normal file
77
proto/code_analysis.proto
Normal file
@ -0,0 +1,77 @@
|
||||
syntax = "proto3";
|
||||
import "types.proto";
|
||||
package github.semantic.v1alpha1;
|
||||
|
||||
// Semantic's CodeAnalysis service provides endpoints for parsing, analyzing, and
|
||||
// comparing source code.
|
||||
service CodeAnalysis {
|
||||
// Parsing
|
||||
//
|
||||
// Parse source code blobs and return abstract syntax trees.
|
||||
rpc Parse (ParseTreeRequest) returns (ParseTreeResponse);
|
||||
|
||||
// Diffing
|
||||
//
|
||||
// Summarize an AST diff of source blobs.
|
||||
rpc SummarizeDiff (SummarizeDiffRequest) returns (SummarizeDiffResponse);
|
||||
// AST diff of source blobs
|
||||
// rpc Diff (DiffRequest) returns (DiffResponse) {}
|
||||
|
||||
// Analyzing
|
||||
//
|
||||
// Calculate an import graph for a project.
|
||||
// rpc GraphImports (ImportGraphRequest) returns (ImportGraphResponse);
|
||||
// rpc GraphCalls (CallGraphRequest) returns (CallGraphResponse);
|
||||
|
||||
// Check health & status of the service.
|
||||
rpc CheckHealth (HealthCheckRequest) returns (HealthCheckResponse);
|
||||
}
|
||||
|
||||
message ParseTreeRequest {
|
||||
repeated Blob blobs = 1;
|
||||
}
|
||||
|
||||
message ParseTreeResponse {
|
||||
bytes json_tree = 1;
|
||||
repeated ParseError errors = 2;
|
||||
}
|
||||
|
||||
message SummarizeDiffRequest {
|
||||
repeated BlobPair blobPairs = 1;
|
||||
}
|
||||
|
||||
message SummarizeDiffResponse {
|
||||
repeated DiffSummary changes = 1;
|
||||
repeated ParseError errors = 2;
|
||||
}
|
||||
|
||||
message BlobPair {
|
||||
Blob before = 1;
|
||||
Blob after = 2;
|
||||
}
|
||||
|
||||
message DiffSummary {
|
||||
string term = 1;
|
||||
string name = 2;
|
||||
Span span = 3;
|
||||
string change = 4;
|
||||
}
|
||||
|
||||
message ParseError {
|
||||
string error = 1;
|
||||
Span span = 2;
|
||||
string language = 3;
|
||||
}
|
||||
|
||||
message HealthCheckRequest {
|
||||
string service = 1;
|
||||
}
|
||||
|
||||
message HealthCheckResponse {
|
||||
enum ServingStatus {
|
||||
UNKNOWN = 0;
|
||||
SERVING = 1;
|
||||
NOT_SERVING = 2;
|
||||
}
|
||||
ServingStatus status = 1;
|
||||
}
|
@ -1,5 +1,5 @@
|
||||
syntax = "proto3";
|
||||
package semantic;
|
||||
package github.semantic.v1alpha1;
|
||||
enum Language {Unknown = 0;
|
||||
Go = 1;
|
||||
Haskell = 2;
|
||||
@ -28,14 +28,14 @@ message Boolean { bool booleanContent = 1;
|
||||
}
|
||||
message Hash { repeated Term hashElements = 1;
|
||||
}
|
||||
message Float { bytes floatContent = 1;
|
||||
message Float { string floatContent = 1;
|
||||
}
|
||||
message KeyValue { Term key = 1;
|
||||
Term value = 2;
|
||||
}
|
||||
message Null {
|
||||
}
|
||||
message TextElement { bytes textElementContent = 1;
|
||||
message TextElement { string textElementContent = 1;
|
||||
}
|
||||
message Term { oneof syntax {Array array = 1;
|
||||
Boolean boolean = 2;
|
@ -1,58 +0,0 @@
|
||||
syntax = "proto3";
|
||||
import "types.proto";
|
||||
package semantic;
|
||||
|
||||
message HealthCheckRequest {
|
||||
string service = 1;
|
||||
}
|
||||
|
||||
message HealthCheckResponse {
|
||||
enum ServingStatus {
|
||||
UNKNOWN = 0;
|
||||
SERVING = 1;
|
||||
NOT_SERVING = 2;
|
||||
}
|
||||
ServingStatus status = 1;
|
||||
}
|
||||
|
||||
service SemanticAPI {
|
||||
rpc HealthCheck(HealthCheckRequest) returns (HealthCheckResponse);
|
||||
rpc FetchSummaries (SummariesRequest) returns (SummariesResponse) {}
|
||||
rpc ParseBlobs (ParseRequest) returns (ParseResponse) {}
|
||||
}
|
||||
|
||||
message SummariesRequest {
|
||||
repeated BlobPair blobPairs = 1;
|
||||
}
|
||||
|
||||
message ParseRequest {
|
||||
repeated Blob source = 1;
|
||||
}
|
||||
|
||||
message BlobPair {
|
||||
Blob before = 1;
|
||||
Blob after = 2;
|
||||
}
|
||||
|
||||
message SummariesResponse {
|
||||
repeated Summary changes = 1;
|
||||
repeated Error errors = 2;
|
||||
}
|
||||
|
||||
message ParseResponse {
|
||||
bytes json_tree = 1;
|
||||
repeated Error errors = 2;
|
||||
}
|
||||
|
||||
message Summary {
|
||||
string categoryName = 1;
|
||||
string termName = 2;
|
||||
Span span = 3;
|
||||
string changeType = 4;
|
||||
}
|
||||
|
||||
message Error {
|
||||
string error = 1;
|
||||
Span span = 2;
|
||||
string language = 3;
|
||||
}
|
Loading…
Reference in New Issue
Block a user