@@ -139,6 +139,8 @@ pub struct ApprovalInfo {
139
139
pub approver : String ,
140
140
/// The SHA of the commit that was approved.
141
141
pub sha : String ,
142
+ /// When the pull request was approved.
143
+ pub approved_at : DateTime < Utc > ,
142
144
}
143
145
144
146
/// Represents the approval status of a pull request.
@@ -150,23 +152,29 @@ pub enum ApprovalStatus {
150
152
151
153
impl sqlx:: Type < sqlx:: Postgres > for ApprovalStatus {
152
154
fn type_info ( ) -> sqlx:: postgres:: PgTypeInfo {
153
- <( Option < String > , Option < String > ) as sqlx:: Type < sqlx:: Postgres > >:: type_info ( )
155
+ <( Option < String > , Option < String > , Option < DateTime < Utc > > ) as sqlx:: Type < sqlx:: Postgres > >:: type_info ( )
154
156
}
155
157
}
156
158
157
159
impl < ' r > sqlx:: Decode < ' r , sqlx:: Postgres > for ApprovalStatus {
158
160
fn decode ( value : sqlx:: postgres:: PgValueRef < ' r > ) -> Result < Self , BoxDynError > {
159
- let ( approver, sha) =
160
- <( Option < String > , Option < String > ) as sqlx:: Decode < sqlx:: Postgres > >:: decode ( value) ?;
161
-
162
- match ( approver, sha) {
163
- ( Some ( approver) , Some ( sha) ) => {
164
- Ok ( ApprovalStatus :: Approved ( ApprovalInfo { approver, sha } ) )
161
+ let ( approver, sha, approved_at) =
162
+ <( Option < String > , Option < String > , Option < DateTime < Utc > > ) as sqlx:: Decode <
163
+ sqlx:: Postgres ,
164
+ > >:: decode ( value) ?;
165
+
166
+ match ( approver, sha, approved_at) {
167
+ ( Some ( approver) , Some ( sha) , Some ( approved_at) ) => {
168
+ Ok ( ApprovalStatus :: Approved ( ApprovalInfo {
169
+ approver,
170
+ sha,
171
+ approved_at,
172
+ } ) )
165
173
}
166
- ( None , None ) => Ok ( ApprovalStatus :: NotApproved ) ,
167
- ( approver, sha) => Err ( format ! (
168
- "Inconsistent approval state: approver={:?}, sha={:?}" ,
169
- approver, sha
174
+ ( None , None , None ) => Ok ( ApprovalStatus :: NotApproved ) ,
175
+ ( approver, sha, approved_at ) => Err ( format ! (
176
+ "Inconsistent approval state: approver={:?}, sha={:?}, approved_at={:?} " ,
177
+ approver, sha, approved_at
170
178
)
171
179
. into ( ) ) ,
172
180
}
0 commit comments