diff --git a/types/Gitlab/GitlabFile.ts b/types/Gitlab/GitlabFile.ts
new file mode 100644
index 0000000000000000000000000000000000000000..05205d4f1e28d5d04e60ae304acb02f3ddcb0d02
--- /dev/null
+++ b/types/Gitlab/GitlabFile.ts
@@ -0,0 +1,16 @@
+interface GitlabFile {
+    file_name: string,
+    file_path: string,
+    size: number,
+    encoding: string,
+    content_sha256: string,
+    ref: string,
+    blob_id: string,
+    commit_id: string,
+    last_commit_id: string,
+    execute_filemode: boolean,
+    content: string,
+}
+
+
+export default GitlabFile;
\ No newline at end of file
diff --git a/types/Gitlab/GitlabTreeFile.ts b/types/Gitlab/GitlabTreeFile.ts
new file mode 100644
index 0000000000000000000000000000000000000000..b2cf67ecb1d636838ff2e48cbc6ce62e11248476
--- /dev/null
+++ b/types/Gitlab/GitlabTreeFile.ts
@@ -0,0 +1,13 @@
+import GitlabTreeFileType from './GitlabTreeFileType';
+
+
+interface GitlabTreeFile {
+    id: number,
+    name: string,
+    type: GitlabTreeFileType,
+    path: string,
+    mode: string
+}
+
+
+export default GitlabTreeFile;
\ No newline at end of file
diff --git a/types/Gitlab/GitlabTreeFileType.ts b/types/Gitlab/GitlabTreeFileType.ts
new file mode 100644
index 0000000000000000000000000000000000000000..eead9b931715ec73fa158513775419dfb14ee538
--- /dev/null
+++ b/types/Gitlab/GitlabTreeFileType.ts
@@ -0,0 +1,8 @@
+enum GitlabTreeFileType {
+    TREE   = 'tree',
+    BLOB   = 'blob',
+    COMMIT = 'commit'
+}
+
+
+export default GitlabTreeFileType;