From e668092cf0bca471e665580c255c04a6ffc3cb8f Mon Sep 17 00:00:00 2001 From: zhangqian <zhangqian@123.com> Date: 星期二, 29 八月 2023 19:22:51 +0800 Subject: [PATCH] 采购负责人 --- docs/docs.go | 744 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 716 insertions(+), 28 deletions(-) diff --git a/docs/docs.go b/docs/docs.go index 5052c01..42749da 100644 --- a/docs/docs.go +++ b/docs/docs.go @@ -1899,6 +1899,57 @@ } } }, + "/con/downloadContract": { + "get": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "Contract" + ], + "summary": "涓嬭浇Contract", + "parameters": [ + { + "type": "string", + "description": "鍒涘缓鏃堕棿", + "name": "created_at", + "in": "query" + }, + { + "type": "string", + "name": "fileName", + "in": "query" + }, + { + "type": "integer", + "description": "涓婚敭ID", + "name": "id", + "in": "query" + }, + { + "type": "integer", + "name": "supplierID", + "in": "query" + } + ], + "responses": { + "200": { + "description": "{\"success\":true,\"data\":{},\"msg\":\"涓嬭浇鎴愬姛\"}", + "schema": { + "type": "string" + } + } + } + } + }, "/con/findContract": { "get": { "security": [ @@ -1918,12 +1969,9 @@ "summary": "鐢╥d鏌ヨContract", "parameters": [ { - "type": "array", - "items": { - "type": "integer" - }, - "collectionFormat": "csv", - "name": "fileContent", + "type": "string", + "description": "鍒涘缓鏃堕棿", + "name": "created_at", "in": "query" }, { @@ -1973,16 +2021,13 @@ "parameters": [ { "type": "string", - "name": "endCreatedAt", + "description": "鍒涘缓鏃堕棿", + "name": "created_at", "in": "query" }, { - "type": "array", - "items": { - "type": "integer" - }, - "collectionFormat": "csv", - "name": "fileContent", + "type": "string", + "name": "endCreatedAt", "in": "query" }, { @@ -2054,12 +2099,9 @@ "summary": "棰勮Contract", "parameters": [ { - "type": "array", - "items": { - "type": "integer" - }, - "collectionFormat": "csv", - "name": "fileContent", + "type": "string", + "description": "鍒涘缓鏃堕棿", + "name": "created_at", "in": "query" }, { @@ -2145,6 +2187,12 @@ ], "summary": "鑾峰彇鍗曚竴瀹㈡埛淇℃伅", "parameters": [ + { + "type": "string", + "description": "鍒涘缓鏃堕棿", + "name": "created_at", + "in": "query" + }, { "type": "string", "description": "瀹㈡埛鍚�", @@ -2897,6 +2945,12 @@ "summary": "鐢╥d鏌ヨIndustry", "parameters": [ { + "type": "string", + "description": "鍒涘缓鏃堕棿", + "name": "created_at", + "in": "query" + }, + { "type": "integer", "description": "涓婚敭ID", "name": "id", @@ -2936,6 +2990,12 @@ ], "summary": "鍒嗛〉鑾峰彇Industry鍒楄〃", "parameters": [ + { + "type": "string", + "description": "鍒涘缓鏃堕棿", + "name": "created_at", + "in": "query" + }, { "type": "string", "name": "endCreatedAt", @@ -3273,6 +3333,12 @@ "summary": "鐢╥d鏌ヨMember", "parameters": [ { + "type": "string", + "description": "鍒涘缓鏃堕棿", + "name": "created_at", + "in": "query" + }, + { "type": "integer", "description": "涓婚敭ID", "name": "id", @@ -3322,6 +3388,12 @@ ], "summary": "鍒嗛〉鑾峰彇Member鍒楄〃", "parameters": [ + { + "type": "string", + "description": "鍒涘缓鏃堕棿", + "name": "created_at", + "in": "query" + }, { "type": "string", "name": "endCreatedAt", @@ -3400,6 +3472,12 @@ ], "summary": "鍒嗛〉鑾峰彇Member鍒楄〃", "parameters": [ + { + "type": "string", + "description": "鍒涘缓鏃堕棿", + "name": "created_at", + "in": "query" + }, { "type": "string", "name": "endCreatedAt", @@ -4091,6 +4169,12 @@ "summary": "鐢╥d鏌ヨProduct", "parameters": [ { + "type": "string", + "description": "鍒涘缓鏃堕棿", + "name": "created_at", + "in": "query" + }, + { "type": "integer", "name": "deliveryTime", "in": "query" @@ -4190,6 +4274,12 @@ ], "summary": "鍒嗛〉鑾峰彇Product鍒楄〃", "parameters": [ + { + "type": "string", + "description": "鍒涘缓鏃堕棿", + "name": "created_at", + "in": "query" + }, { "type": "integer", "name": "deliveryTime", @@ -4318,6 +4408,12 @@ ], "summary": "鍒嗛〉鑾峰彇Product鍒楄〃", "parameters": [ + { + "type": "string", + "description": "鍒涘缓鏃堕棿", + "name": "created_at", + "in": "query" + }, { "type": "integer", "name": "deliveryTime", @@ -4490,7 +4586,7 @@ "in": "body", "required": true, "schema": { - "$ref": "#/definitions/purchaserequest.AddPurchase" + "$ref": "#/definitions/purchaserequest.UpdatePurchase" } } ], @@ -4533,7 +4629,7 @@ "summary": "鍒涘缓閲囪喘鍗�", "parameters": [ { - "description": "閲囪喘鍗曠敤鎴峰悕, 閲囪喘鍗曟墜鏈哄彿鐮�", + "description": "閲囪喘鍗�,閲囪喘鍗曚骇鍝�", "name": "data", "in": "body", "required": true, @@ -4711,6 +4807,104 @@ "properties": { "data": { "$ref": "#/definitions/response.PageResult" + }, + "msg": { + "type": "string" + } + } + } + ] + } + } + } + } + }, + "/purchase/purchaseType": { + "post": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "Purchase" + ], + "summary": "鍒涘缓閲囪喘绫诲瀷", + "parameters": [ + { + "description": "閲囪喘绫诲瀷list", + "name": "data", + "in": "body", + "required": true, + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/purchaserequest.PurchaseType" + } + } + } + ], + "responses": { + "200": { + "description": "鍒涘缓閲囪喘绫诲瀷", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/response.Response" + }, + { + "type": "object", + "properties": { + "msg": { + "type": "string" + } + } + } + ] + } + } + } + } + }, + "/purchase/purchaseTypeList": { + "get": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "Purchase" + ], + "summary": "鑾峰彇閲囪喘绫诲瀷鍒楄〃", + "responses": { + "200": { + "description": "鑾峰彇閲囪喘绫诲瀷鍒楄〃", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/response.Response" + }, + { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/definitions/purchase.PurchaseType" + } }, "msg": { "type": "string" @@ -4963,6 +5157,12 @@ }, { "type": "string", + "description": "鍒涘缓鏃堕棿", + "name": "created_at", + "in": "query" + }, + { + "type": "string", "name": "detailAddress", "in": "query" }, @@ -5069,6 +5269,12 @@ { "type": "string", "name": "contact", + "in": "query" + }, + { + "type": "string", + "description": "鍒涘缓鏃堕棿", + "name": "created_at", "in": "query" }, { @@ -5342,6 +5548,12 @@ "summary": "鐢╥d鏌ヨSupplierType", "parameters": [ { + "type": "string", + "description": "鍒涘缓鏃堕棿", + "name": "created_at", + "in": "query" + }, + { "type": "integer", "description": "涓婚敭ID", "name": "id", @@ -5381,6 +5593,12 @@ ], "summary": "鍒嗛〉鑾峰彇SupplierType鍒楄〃", "parameters": [ + { + "type": "string", + "description": "鍒涘缓鏃堕棿", + "name": "created_at", + "in": "query" + }, { "type": "string", "name": "endCreatedAt", @@ -5589,6 +5807,12 @@ "parameters": [ { "type": "string", + "description": "鍒涘缓鏃堕棿", + "name": "created_at", + "in": "query" + }, + { + "type": "string", "description": "鎻忚堪", "name": "desc", "in": "query" @@ -5662,6 +5886,12 @@ ], "summary": "鍒嗛〉鑾峰彇SysDictionary鍒楄〃", "parameters": [ + { + "type": "string", + "description": "鍒涘缓鏃堕棿", + "name": "created_at", + "in": "query" + }, { "type": "string", "description": "鎻忚堪", @@ -5905,6 +6135,12 @@ "summary": "鐢╥d鏌ヨSysDictionaryDetail", "parameters": [ { + "type": "string", + "description": "鍒涘缓鏃堕棿", + "name": "created_at", + "in": "query" + }, + { "type": "integer", "description": "涓婚敭ID", "name": "id", @@ -5985,6 +6221,12 @@ ], "summary": "鍒嗛〉鑾峰彇SysDictionaryDetail鍒楄〃", "parameters": [ + { + "type": "string", + "description": "鍒涘缓鏃堕棿", + "name": "created_at", + "in": "query" + }, { "type": "integer", "description": "涓婚敭ID", @@ -6297,6 +6539,12 @@ }, { "type": "string", + "description": "鍒涘缓鏃堕棿", + "name": "created_at", + "in": "query" + }, + { + "type": "string", "description": "閿欒淇℃伅", "name": "error_message", "in": "query" @@ -6404,6 +6652,12 @@ "type": "string", "description": "璇锋眰Body", "name": "body", + "in": "query" + }, + { + "type": "string", + "description": "鍒涘缓鏃堕棿", + "name": "created_at", "in": "query" }, { @@ -8020,6 +8274,10 @@ "example.ExaCustomer": { "type": "object", "properties": { + "created_at": { + "description": "鍒涘缓鏃堕棿", + "type": "string" + }, "customerName": { "description": "瀹㈡埛鍚�", "type": "string" @@ -8056,6 +8314,10 @@ "chunkTotal": { "type": "integer" }, + "created_at": { + "description": "鍒涘缓鏃堕棿", + "type": "string" + }, "exaFileChunk": { "type": "array", "items": { @@ -8083,6 +8345,10 @@ "example.ExaFileChunk": { "type": "object", "properties": { + "created_at": { + "description": "鍒涘缓鏃堕棿", + "type": "string" + }, "exaFileID": { "type": "integer" }, @@ -8101,6 +8367,10 @@ "example.ExaFileUploadAndDownload": { "type": "object", "properties": { + "created_at": { + "description": "鍒涘缓鏃堕棿", + "type": "string" + }, "id": { "description": "涓婚敭ID", "type": "integer" @@ -8123,6 +8393,42 @@ } } }, + "purchase.OrderStatus": { + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4 + ], + "x-enum-comments": { + "OrderStatusCompleted": "宸插畬鎴�", + "OrderStatusConfirmed": "宸蹭笅鍗�", + "OrderStatusReceived": "宸插埌璐�", + "OrderStatusStored": "宸插叆搴�" + }, + "x-enum-varnames": [ + "OrderStatusConfirmed", + "OrderStatusReceived", + "OrderStatusStored", + "OrderStatusCompleted" + ] + }, + "purchase.PriceAdjustmentType": { + "type": "integer", + "enum": [ + 1, + 2 + ], + "x-enum-comments": { + "PriceAdjustmentTypeAdd": "澧炲姞", + "PriceAdjustmentTypeSub": "鍑忓皯" + }, + "x-enum-varnames": [ + "PriceAdjustmentTypeAdd", + "PriceAdjustmentTypeSub" + ] + }, "purchase.Purchase": { "type": "object", "properties": { @@ -8130,37 +8436,131 @@ "description": "鑱旂郴浜�", "type": "string" }, + "created_at": { + "description": "鍒涘缓鏃堕棿", + "type": "string" + }, + "creator": { + "description": "鍒跺崟浜�", + "type": "string" + }, "deliveryDate": { "description": "浜や粯鏃ユ湡", + "type": "string" + }, + "handledBy": { + "description": "缁忓姙浜�", "type": "string" }, "id": { "description": "涓婚敭ID", "type": "integer" }, + "invoiceAmount": { + "description": "宸叉敹绁ㄩ噾棰�", + "type": "number" + }, "name": { "description": "閲囪喘鍚嶇О", "type": "string" + }, + "number": { + "description": "閲囪喘缂栧彿", + "type": "string" + }, + "orderSource": { + "description": "鍗曟嵁鏉ユ簮", + "type": "string" + }, + "orderType": { + "description": "鍗曟嵁绫诲瀷", + "type": "string" + }, + "paidAmount": { + "description": "宸蹭粯閲戦", + "type": "number" }, "phone": { "description": "鑱旂郴浜虹數璇�", "type": "string" }, + "priceAdjustment": { + "description": "浠锋牸璋冩暣鍊�", + "type": "number" + }, + "priceAdjustmentType": { + "description": "浠锋牸璋冩暣绫诲瀷", + "allOf": [ + { + "$ref": "#/definitions/purchase.PriceAdjustmentType" + } + ] + }, + "purchaseType": { + "$ref": "#/definitions/purchase.PurchaseType" + }, "purchaseTypeId": { "description": "閲囪喘绫诲瀷id", "type": "integer" + }, + "quantity": { + "description": "閲囪喘鏁伴噺", + "type": "number" + }, + "realTotalPrice": { + "description": "鏈�缁堜环鏍�", + "type": "number" }, "remark": { "description": "澶囨敞", "type": "string" }, + "shouldPayAmount": { + "description": "搴斾粯閲戦", + "type": "number" + }, "signingDate": { "description": "绛剧害鏃ユ湡", "type": "string" }, + "status": { + "description": "鐘舵��", + "allOf": [ + { + "$ref": "#/definitions/purchase.OrderStatus" + } + ] + }, + "supplier": { + "$ref": "#/definitions/test.Supplier" + }, "supplierId": { "description": "渚涘簲鍟唅d", "type": "integer" + }, + "totalPrice": { + "description": "浠风◣鍚堣", + "type": "number" + }, + "unInvoiceAmount": { + "description": "鏈敹绁ㄩ噾棰�", + "type": "number" + }, + "warehouse": { + "description": "鏀惰揣浠撳簱", + "type": "string" + }, + "wholeDiscount": { + "description": "鏁村崟鎶樻墸鍊�", + "type": "number" + }, + "wholeDiscountType": { + "description": "鏁村崟鎶樻墸绫诲瀷", + "allOf": [ + { + "$ref": "#/definitions/purchase.WholeDiscountType" + } + ] } } }, @@ -8170,6 +8570,10 @@ "amount": { "description": "閲囪喘鏁伴噺", "type": "number" + }, + "created_at": { + "description": "鍒涘缓鏃堕棿", + "type": "string" }, "id": { "description": "涓婚敭ID", @@ -8197,6 +8601,49 @@ } } }, + "purchase.PurchaseType": { + "type": "object", + "properties": { + "created_at": { + "description": "鍒涘缓鏃堕棿", + "type": "string" + }, + "id": { + "description": "涓婚敭ID", + "type": "integer" + }, + "name": { + "description": "閲囪喘绫诲瀷", + "type": "string" + }, + "pin": { + "description": "鏄惁缃《", + "type": "boolean" + }, + "sort": { + "description": "鎺掑簭", + "type": "integer" + } + } + }, + "purchase.WholeDiscountType": { + "type": "integer", + "enum": [ + 0, + 1, + 2 + ], + "x-enum-comments": { + "WholeDiscountTypeDefault": "鏃犳姌鎵�", + "WholeDiscountTypeDiscount": "鐩存帴闄嶄环", + "WholeDiscountTypePercent": "鐧惧垎姣旈檷浠�" + }, + "x-enum-varnames": [ + "WholeDiscountTypeDefault", + "WholeDiscountTypePercent", + "WholeDiscountTypeDiscount" + ] + }, "purchaserequest.AddPurchase": { "type": "object", "properties": { @@ -8207,7 +8654,131 @@ } }, "purchase": { - "$ref": "#/definitions/purchase.Purchase" + "$ref": "#/definitions/purchaserequest.Purchase" + } + } + }, + "purchaserequest.Purchase": { + "type": "object", + "properties": { + "contact": { + "description": "鑱旂郴浜�", + "type": "string" + }, + "deliveryDate": { + "description": "浜や粯鏃ユ湡", + "type": "string" + }, + "id": { + "description": "涓婚敭ID", + "type": "integer" + }, + "name": { + "description": "閲囪喘鍚嶇О", + "type": "string" + }, + "number": { + "description": "閲囪喘缂栧彿", + "type": "string" + }, + "phone": { + "description": "鑱旂郴浜虹數璇�", + "type": "string" + }, + "priceAdjustment": { + "description": "浠锋牸璋冩暣鍊�", + "type": "number" + }, + "priceAdjustmentType": { + "description": "浠锋牸璋冩暣绫诲瀷", + "allOf": [ + { + "$ref": "#/definitions/purchase.PriceAdjustmentType" + } + ] + }, + "purchaseTypeId": { + "description": "閲囪喘绫诲瀷id", + "type": "integer" + }, + "quantity": { + "description": "閲囪喘鏁伴噺", + "type": "number" + }, + "realTotalPrice": { + "description": "鏈�缁堜环鏍�", + "type": "number" + }, + "remark": { + "description": "澶囨敞", + "type": "string" + }, + "signingDate": { + "description": "绛剧害鏃ユ湡", + "type": "string" + }, + "status": { + "description": "鐘舵��", + "allOf": [ + { + "$ref": "#/definitions/purchase.OrderStatus" + } + ] + }, + "supplierId": { + "description": "渚涘簲鍟唅d", + "type": "integer" + }, + "totalPrice": { + "description": "浠风◣鍚堣", + "type": "number" + }, + "wholeDiscount": { + "description": "鏁村崟鎶樻墸鍊�", + "type": "number" + }, + "wholeDiscountType": { + "description": "鏁村崟鎶樻墸绫诲瀷", + "allOf": [ + { + "$ref": "#/definitions/purchase.WholeDiscountType" + } + ] + } + } + }, + "purchaserequest.PurchaseType": { + "type": "object", + "properties": { + "id": { + "description": "涓婚敭ID", + "type": "integer" + }, + "name": { + "description": "閲囪喘绫诲瀷", + "type": "string" + }, + "pin": { + "description": "鏄惁缃《", + "type": "boolean" + }, + "sort": { + "description": "鎺掑簭", + "type": "integer" + } + } + }, + "purchaserequest.UpdatePurchase": { + "type": "object", + "properties": { + "productList": { + "type": "array", + "items": { + "$ref": "#/definitions/purchase.PurchaseProducts" + } + }, + "purchase": { + "$ref": "#/definitions/purchaserequest.Purchase" } } }, @@ -8456,6 +9027,10 @@ "description": "api缁�", "type": "string" }, + "created_at": { + "description": "鍒涘缓鏃堕棿", + "type": "string" + }, "desc": { "description": "鎺掑簭鏂瑰紡:鍗囧簭false(榛樿)|闄嶅簭true", "type": "boolean" @@ -8663,13 +9238,65 @@ } } }, + "response.PurchaseProducts": { + "type": "object", + "properties": { + "amount": { + "description": "閲囪喘鏁伴噺", + "type": "number" + }, + "deliveryTime": { + "type": "integer" + }, + "modelNumber": { + "type": "string" + }, + "name": { + "type": "string" + }, + "number": { + "type": "string" + }, + "price": { + "description": "閲囪喘鍗曚环", + "type": "number" + }, + "productId": { + "description": "浜у搧id", + "type": "integer" + }, + "productType": { + "type": "string" + }, + "purchaseId": { + "description": "閲囪喘id", + "type": "integer" + }, + "purchasePrice": { + "type": "number" + }, + "shippingDuration": { + "type": "integer" + }, + "specifications": { + "type": "string" + }, + "total": { + "description": "閲囪喘鎬讳环", + "type": "number" + }, + "unit": { + "type": "string" + } + } + }, "response.PurchaseResponse": { "type": "object", "properties": { "productList": { "type": "array", "items": { - "$ref": "#/definitions/purchase.PurchaseProducts" + "$ref": "#/definitions/response.PurchaseProducts" } }, "purchase": { @@ -8984,6 +9611,10 @@ "description": "api缁�", "type": "string" }, + "created_at": { + "description": "鍒涘缓鏃堕棿", + "type": "string" + }, "description": { "description": "api涓枃鎻忚堪", "type": "string" @@ -9055,6 +9686,10 @@ "system.SysAutoCode": { "type": "object", "properties": { + "created_at": { + "description": "鍒涘缓鏃堕棿", + "type": "string" + }, "desc": { "type": "string" }, @@ -9087,6 +9722,10 @@ }, "component": { "description": "瀵瑰簲鍓嶇鏂囦欢璺緞", + "type": "string" + }, + "created_at": { + "description": "鍒涘缓鏃堕棿", "type": "string" }, "hidden": { @@ -9138,6 +9777,10 @@ "system.SysBaseMenuBtn": { "type": "object", "properties": { + "created_at": { + "description": "鍒涘缓鏃堕棿", + "type": "string" + }, "desc": { "type": "string" }, @@ -9156,6 +9799,10 @@ "system.SysBaseMenuParameter": { "type": "object", "properties": { + "created_at": { + "description": "鍒涘缓鏃堕棿", + "type": "string" + }, "id": { "description": "涓婚敭ID", "type": "integer" @@ -9180,6 +9827,10 @@ "system.SysDictionary": { "type": "object", "properties": { + "created_at": { + "description": "鍒涘缓鏃堕棿", + "type": "string" + }, "desc": { "description": "鎻忚堪", "type": "string" @@ -9211,6 +9862,10 @@ "system.SysDictionaryDetail": { "type": "object", "properties": { + "created_at": { + "description": "鍒涘缓鏃堕棿", + "type": "string" + }, "id": { "description": "涓婚敭ID", "type": "integer" @@ -9260,6 +9915,10 @@ }, "component": { "description": "瀵瑰簲鍓嶇鏂囦欢璺緞", + "type": "string" + }, + "created_at": { + "description": "鍒涘缓鏃堕棿", "type": "string" }, "hidden": { @@ -9320,6 +9979,10 @@ }, "body": { "description": "璇锋眰Body", + "type": "string" + }, + "created_at": { + "description": "鍒涘缓鏃堕棿", "type": "string" }, "error_message": { @@ -9387,6 +10050,10 @@ "description": "鍩虹棰滆壊", "type": "string" }, + "created_at": { + "description": "鍒涘缓鏃堕棿", + "type": "string" + }, "email": { "description": "鐢ㄦ埛閭", "type": "string" @@ -9436,11 +10103,9 @@ "test.Contract": { "type": "object", "properties": { - "fileContent": { - "type": "array", - "items": { - "type": "integer" - } + "created_at": { + "description": "鍒涘缓鏃堕棿", + "type": "string" }, "fileName": { "type": "string" @@ -9457,6 +10122,10 @@ "test.Industry": { "type": "object", "properties": { + "created_at": { + "description": "鍒涘缓鏃堕棿", + "type": "string" + }, "id": { "description": "涓婚敭ID", "type": "integer" @@ -9469,6 +10138,10 @@ "test.Member": { "type": "object", "properties": { + "created_at": { + "description": "鍒涘缓鏃堕棿", + "type": "string" + }, "id": { "description": "涓婚敭ID", "type": "integer" @@ -9487,6 +10160,10 @@ "test.Product": { "type": "object", "properties": { + "created_at": { + "description": "鍒涘缓鏃堕棿", + "type": "string" + }, "deliveryTime": { "type": "integer" }, @@ -9550,6 +10227,13 @@ "contact": { "type": "string" }, + "contract": { + "$ref": "#/definitions/test.Contract" + }, + "created_at": { + "description": "鍒涘缓鏃堕棿", + "type": "string" + }, "detailAddress": { "type": "string" }, @@ -9592,6 +10276,10 @@ "test.SupplierType": { "type": "object", "properties": { + "created_at": { + "description": "鍒涘缓鏃堕棿", + "type": "string" + }, "id": { "description": "涓婚敭ID", "type": "integer" -- Gitblit v1.8.0