blob: 960c898ba0102268dec4d7249fedd232c0bc7ed6 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
|
syntax = "proto3";
package gitaly;
import "lint.proto";
import "shared.proto";
option go_package = "gitlab.com/gitlab-org/gitaly/v14/proto/go/gitalypb";
// HookService is a service which provides the implementation of a subset of
// Git hooks. These are typically invoked via the `gitaly-hooks` binary to
// ensure that the actual hook logic is executed in the context of the server.
service HookService {
rpc PreReceiveHook(stream PreReceiveHookRequest) returns (stream PreReceiveHookResponse) {
option (op_type) = {
op: ACCESSOR
};
}
rpc PostReceiveHook(stream PostReceiveHookRequest) returns (stream PostReceiveHookResponse) {
option (op_type) = {
op: ACCESSOR
};
}
rpc UpdateHook(UpdateHookRequest) returns (stream UpdateHookResponse) {
option (op_type) = {
op: ACCESSOR
};
}
rpc ReferenceTransactionHook(stream ReferenceTransactionHookRequest) returns (stream ReferenceTransactionHookResponse) {
option (op_type) = {
op: ACCESSOR
};
}
// PackObjectsHookWithSidechannel is an optimized version of PackObjectsHook that uses
// a unix socket side channel.
rpc PackObjectsHookWithSidechannel(PackObjectsHookWithSidechannelRequest) returns (PackObjectsHookWithSidechannelResponse) {
option (op_type) = {
op: ACCESSOR
};
}
}
message PreReceiveHookRequest {
Repository repository = 1 [(target_repository)=true];
repeated string environment_variables = 2;
bytes stdin = 4;
repeated string git_push_options = 5;
}
message PreReceiveHookResponse{
bytes stdout = 1;
bytes stderr = 2;
ExitStatus exit_status = 3;
}
message PostReceiveHookRequest {
Repository repository = 1 [(target_repository)=true];
repeated string environment_variables = 2;
bytes stdin = 3;
repeated string git_push_options = 4;
}
message PostReceiveHookResponse{
bytes stdout = 1;
bytes stderr = 2;
ExitStatus exit_status = 3;
}
message UpdateHookRequest {
Repository repository = 1 [(target_repository)=true];
repeated string environment_variables = 2;
bytes ref = 3;
string old_value = 4;
string new_value = 5;
}
message UpdateHookResponse{
bytes stdout = 1;
bytes stderr = 2;
ExitStatus exit_status = 3;
}
message ReferenceTransactionHookRequest {
Repository repository = 1 [(target_repository)=true];
repeated string environment_variables = 2;
bytes stdin = 3;
enum State {
PREPARED = 0;
COMMITTED = 1;
ABORTED = 2;
}
State state = 4;
}
message ReferenceTransactionHookResponse {
bytes stdout = 1;
bytes stderr = 2;
ExitStatus exit_status = 3;
}
message PackObjectsHookWithSidechannelRequest {
Repository repository = 1 [(target_repository)=true];
// args contains the arguments passed to the pack-objects hook, without the leading "git"
repeated string args = 2;
}
message PackObjectsHookWithSidechannelResponse {
}
|