助教您好,
我在進行 Homework 3 的 Matrix 相關測試時,遇到 matrix:mas 與 matrix:sso 兩個項目無法通過的問題。經過本地端排查,發現原因似乎是 MAS (Matrix Authentication Service) 的新版 GraphQL Schema 與 OJ 測試腳本使用的舊版語法不相容。
遇到的問題狀況:
matrix:mas 卡住: 在執行 matrix:mas 檢查時,流程會停在 ###### Check Server Name via MAS Admin API ######,無法繼續執行也無法通過。
matrix:sso 報錯: 在執行 matrix:sso 檢查時,會在 Checking OAuth2 Upstream Providers 步驟出現錯誤:[FAIL] Failed to parse OAuth2 providers response。
我使用 MAS latest 版本(也嘗試過 v0.11.0),並在本地端使用 curl 模擬 OJ 的行為,發現以下現象(如附件截圖):
Server Name 查詢失敗 (對應 matrix:mas): 當我嘗試查詢 query { matrix { homeserver } } 時,API 回傳 Unknown field "matrix" on type "Query"。
Upstream Provider 查詢失敗 (對應 matrix:sso): 當我使用大寫的 upstreamOAuth2Providers 查詢時,API 回傳 Unknown field 並提示 Did you mean "upstreamOauth2Providers"?。 如果我改用小寫的 upstreamOauth2Providers (小寫 auth),則可以正確撈到資料。