From eaf6ac44e7d38ff6cc71ca72bdaceed59b86c550 Mon Sep 17 00:00:00 2001
From: HampusM <hampus@hampusmat.com>
Date: Wed, 4 Aug 2021 16:11:10 +0200
Subject: Added API documentation & updated the Typedoc theme dependency

---
 documentation/API/introduction.md |   3 +
 documentation/API/v1/repos.md     | 165 ++++++++++++++++++++++++++++++++++++++
 documentation/API/v1/v1.md        |  22 +++++
 3 files changed, 190 insertions(+)
 create mode 100644 documentation/API/introduction.md
 create mode 100644 documentation/API/v1/repos.md
 create mode 100644 documentation/API/v1/v1.md

(limited to 'documentation/API')

diff --git a/documentation/API/introduction.md b/documentation/API/introduction.md
new file mode 100644
index 0000000..343bdf6
--- /dev/null
+++ b/documentation/API/introduction.md
@@ -0,0 +1,3 @@
+Every Githermit instance has a public API.
+
+These are all the endpoints for this API.
\ No newline at end of file
diff --git a/documentation/API/v1/repos.md b/documentation/API/v1/repos.md
new file mode 100644
index 0000000..483676e
--- /dev/null
+++ b/documentation/API/v1/repos.md
@@ -0,0 +1,165 @@
+## /repos
+**Method:** GET
+
+**Description:**<br>
+Retrieves a list of available repositories.
+
+**Parameters:**<br>
+None
+
+**Response:**<br>
+
+| Code    | Description            | Schema                                                              |
+|---------|------------------------|---------------------------------------------------------------------|
+| 200     | A list of repositories | [\[Repository summary\]](/docs/interfaces/api.RepositorySummary.html) |
+| 400-599 | An error               | [Error](/docs/modules/api.html#Error)                               |
+
+<br>
+
+## /repos/:repo
+**Method:** GET
+
+**Description:**<br>
+Retrieves a repository.
+
+**Parameters:**<br>
+
+| Name | Location | Description    | Required | Schema |
+|------|----------|----------------|----------|--------|
+| repo | path     | The repository | true     | string |
+
+**Response:**<br>
+
+| Code    | Description  | Schema                                             |
+|---------|--------------|----------------------------------------------------|
+| 200     | A repository | [Repository](/docs/interfaces/api.Repository.html) |
+| 400-599 | An error     | [Error](/docs/modules/api.html#Error)              |
+
+<br>
+
+## /repos/:repo/tree
+**Method:** GET
+
+**Description:**<br>
+Retrieves a repository tree.
+
+**Parameters:**<br>
+
+| Name | Location | Description      | Required | Schema |
+|------|----------|------------------|----------|--------|
+| repo | path     | The repository   | true     | string |
+| path | query    | Path in the tree | false    | string |
+
+**Response:**<br>
+
+| Code    | Description | Schema                                |
+|---------|-------------|---------------------------------------|
+| 200     | A tree      | [Tree](/docs/modules/api.html#Tree)   |
+| 400-599 | An error    | [Error](/docs/modules/api.html#Error) |
+
+<br>
+
+## /repos/:repo/tags
+**Method:** GET
+
+**Description:**<br>
+Retrieves a repository tag.
+
+**Parameters:**<br>
+
+| Name | Location | Description    | Required | Schema |
+|------|----------|----------------|----------|--------|
+| repo | path     | The repository | true     | string |
+
+**Response:**<br>
+
+| Code    | Description | Schema                                |
+|---------|-------------|---------------------------------------|
+| 200     | A tag       | [\[Tag\]](/docs/modules/api.html#Tag) |
+| 400-599 | An error    | [Error](/docs/modules/api.html#Error) |
+
+<br>
+
+## /repos/:repo/log
+**Method:** GET
+
+**Description:**<br>
+Retrieves a repository's log.
+
+**Parameters:**<br>
+
+| Name | Location | Description    | Required | Schema |
+|------|----------|----------------|----------|--------|
+| repo | path     | The repository | true     | string |
+
+**Response:**<br>
+
+| Code    | Description  | Schema                                             |
+|---------|--------------|----------------------------------------------------|
+| 200     | A log commit | [\[Log commit\]](/docs/modules/api.html#LogCommit) |
+| 400-599 | An error     | [Error](/docs/modules/api.html#Error)              |
+
+<br>
+
+## /repos/:repo/log/:commit
+**Method:** GET
+
+**Description:**<br>
+Retrieves a commit from a repository.
+
+**Parameters:**<br>
+
+| Name   | Location | Description    | Required | Schema |
+|--------|----------|----------------|----------|--------|
+| repo   | path     | The repository | true     | string |
+| commit | path     | A commit SHA   | true     | string |
+
+**Response:**<br>
+
+| Code    | Description | Schema                                     |
+|---------|-------------|--------------------------------------------|
+| 200     | A commit    | [Commit](/docs/interfaces/api.Commit.html) |
+| 400-599 | An error    | [Error](/docs/modules/api.html#Error)      |
+
+<br>
+
+## /repos/:repo/branches
+**Method:** GET
+
+**Description:**<br>
+Retrieves a repository's branches.
+
+**Parameters:**<br>
+
+| Name   | Location | Description    | Required | Schema |
+|--------|----------|----------------|----------|--------|
+| repo   | path     | The repository | true     | string |
+
+**Response:**<br>
+
+| Code    | Description | Schema                                                        |
+|---------|-------------|---------------------------------------------------------------|
+| 200     | A branch    | [\[Branch summary\]](/docs/interfaces/api.BranchSummary.html) |
+| 400-599 | An error    | [Error](/docs/modules/api.html#Error)                         |
+
+<br>
+
+## /repos/:repo/branches/:branch
+**Method:** GET
+
+**Description:**<br>
+Retrieves a branch from a repository.
+
+**Parameters:**<br>
+
+| Name   | Location | Description    | Required | Schema |
+|--------|----------|----------------|----------|--------|
+| repo   | path     | The repository | true     | string |
+| branch | path     | A branch       | true     | string |
+
+**Response:**<br>
+
+| Code    | Description | Schema                                     |
+|---------|-------------|--------------------------------------------|
+| 200     | A branch    | [Branch](/docs/interfaces/api.Branch.html) |
+| 400-599 | An error    | [Error](/docs/modules/api.html#Error)      |
\ No newline at end of file
diff --git a/documentation/API/v1/v1.md b/documentation/API/v1/v1.md
new file mode 100644
index 0000000..327d7f2
--- /dev/null
+++ b/documentation/API/v1/v1.md
@@ -0,0 +1,22 @@
+## About
+The first edition of the Githermit API.
+
+All of following endpoints should be prefixed with `/api/v1`.
+
+<br>
+
+## /info
+**Method:** GET
+
+**Description:**<br>
+Retrieves information about the Githermit instance.
+
+**Parameters:**<br>
+None
+
+**Response:**<br>
+
+| Code    | Description          | Schema                                |
+|---------|----------------------|---------------------------------------|
+| 200     | Instance information | [Info](/docs/modules/api.html#Info)   |
+| 400-599 | An error             | [Error](/docs/modules/api.html#Error) |
\ No newline at end of file
-- 
cgit v1.2.3-18-g5258