class VersionAction extends Action {


    @Override
    public boolean action(Request request, Response response) {<FILL_FUNCTION_BODY>}
}

        if (request.getNettyRequest() instanceof FullHttpRequest) {
            if(closeApiVersion) {
                response.sendError(HttpResponseStatus.NOT_FOUND, "404 Not found!");
                return true;
            }

            response.setStatus(HttpResponseStatus.OK);
            try {

                response.setContent(Utility.formatJson(gson.toJson(GitRepositoryState.getGitRepositoryState())));
            } catch (IOException e) {
                e.printStackTrace();
                response.setContent("{\"version\":\"unknown\"}");
            }
        }
        return true;
    
<methods>public non-sealed void <init>() ,public abstract boolean action(com.xiaoleilu.loServer.handler.Request, com.xiaoleilu.loServer.handler.Response) ,public boolean doAction(com.xiaoleilu.loServer.handler.Request, com.xiaoleilu.loServer.handler.Response) ,public static void init(io.moquette.server.config.IConfig) ,public boolean isTransactionAction() ,public cn.wildfirechat.common.ErrorCode preAction(com.xiaoleilu.loServer.handler.Request, com.xiaoleilu.loServer.handler.Response) <variables>protected static win.liyufan.im.RateLimiter adminLimiter,protected static win.liyufan.im.RateLimiter channelLimiter,protected static boolean closeApiVersion,public ChannelHandlerContext ctx,protected static final com.google.gson.Gson gson,public static io.moquette.spi.IMessagesStore messagesStore,protected static win.liyufan.im.RateLimiter robotLimiter,public static io.moquette.spi.ISessionsStore sessionsStore