API v2 Β· REST Β· JSON
NoackHub API
Build integrations, CLI tools, and your own clients. The whole feature surface is exposed as JSON with code samples in 6 languages.
π Getting started
All requests go to https://dev.noackhub.noackhosting.net/api/v2. Authenticate with the header Authorization: token <din-token>.
Get tokens via POST /auth/login below.
π Roles
Role Can
user Create repos, issues, PRs. Own settings.
customer_admin + invite & administer their own invited users.
site_admin + audit log + all users.
POST
/auth/login
Logga in och fΓ₯ API-token. Anonyma anrop.
Request body (JSON):
{
"password": "PASS",
"username": "USER"
}
curl
python
javascript
php
perl
java
curl -X POST \
-H 'Content-Type: application/json' \
-d '{
"password": "PASS",
"username": "USER"
}' \
https://dev.noackhub.noackhosting.net/api/v2/auth/login
import requests
URL = "https://dev.noackhub.noackhosting.net/api/v2/auth/login"
BODY = {
"password": "PASS",
"username": "USER"
}
r = requests.post(URL, json=BODY)
print(r.status_code, r.json())
const url = "https://dev.noackhub.noackhosting.net/api/v2/auth/login";
const opts = {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({
"password": "PASS",
"username": "USER"
}),
};
const r = await fetch(url, opts);
const data = await r.json();
console.log(r.status, data);
<?php
$url = "https://dev.noackhub.noackhosting.net/api/v2/auth/login";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
$headers = [
"Content-Type: application/json",
];
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$body = ["password" => "PASS", "username" => "USER"];
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($body));
$response = curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
echo $code . "\n" . $response;
use LWP::UserAgent;
use JSON;
use HTTP::Request;
my $ua = LWP::UserAgent->new;
my $req = HTTP::Request->new(POST => "https://dev.noackhub.noackhosting.net/api/v2/auth/login");
$req->header("Content-Type" => "application/json");
$req->content(encode_json({ password => "PASS", username => "USER" }));
my $res = $ua->request($req);
print $res->code, "\n", $res->decoded_content;
import java.net.URI;
import java.net.http.*;
HttpClient client = HttpClient.newHttpClient();
HttpRequest.Builder rb = HttpRequest.newBuilder()
.uri(URI.create("https://dev.noackhub.noackhosting.net/api/v2/auth/login"))
.header("Content-Type", "application/json")
.post(HttpRequest.BodyPublishers.ofString("{ \"password\": \"PASS\", \"username\": \"USER\" }"));
HttpResponse<String> r = client.send(rb.build(), HttpResponse.BodyHandlers.ofString());
System.out.println(r.statusCode() + "\n" + r.body());
π¦ Expected response (200)
{
"token": "abc123def456...",
"user": {"login": "anna", "email": "anna@ex.se", "is_admin": false}
}
GET
/me
π auth
HΓ€mta din egna user-info.
curl
python
javascript
php
perl
java
curl -X GET \
-H "Authorization: token $TOKEN" \
https://dev.noackhub.noackhosting.net/api/v2/me
import requests
URL = "https://dev.noackhub.noackhosting.net/api/v2/me"
HEADERS = {"Authorization": f"token {TOKEN}"}
r = requests.get(URL, headers=HEADERS)
print(r.status_code, r.json())
const url = "https://dev.noackhub.noackhosting.net/api/v2/me";
const opts = {
method: "GET",
headers: {
"Authorization": `token ${TOKEN}`,
},
};
const r = await fetch(url, opts);
const data = await r.json();
console.log(r.status, data);
<?php
$url = "https://dev.noackhub.noackhosting.net/api/v2/me";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
$headers = [
"Authorization: token $TOKEN",
];
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
echo $code . "\n" . $response;
use LWP::UserAgent;
use JSON;
use HTTP::Request;
my $ua = LWP::UserAgent->new;
my $req = HTTP::Request->new(GET => "https://dev.noackhub.noackhosting.net/api/v2/me");
$req->header("Authorization" => "token $TOKEN");
my $res = $ua->request($req);
print $res->code, "\n", $res->decoded_content;
import java.net.URI;
import java.net.http.*;
HttpClient client = HttpClient.newHttpClient();
HttpRequest.Builder rb = HttpRequest.newBuilder()
.uri(URI.create("https://dev.noackhub.noackhosting.net/api/v2/me"))
.header("Authorization", "token " + TOKEN)
.get(HttpRequest.BodyPublishers.noBody());
HttpResponse<String> r = client.send(rb.build(), HttpResponse.BodyHandlers.ofString());
System.out.println(r.statusCode() + "\n" + r.body());
π¦ Expected response (200)
{
"id": 4,
"login": "anna",
"full_name": "Anna Andersson",
"email": "anna@ex.se",
"avatar_url": "https://noackhub.noackhosting.net/avatars/...",
"is_admin": false
}
GET
/me/state
π auth
Onboarding-status (2FA, SSH-key, roll).
curl
python
javascript
php
perl
java
curl -X GET \
-H "Authorization: token $TOKEN" \
https://dev.noackhub.noackhosting.net/api/v2/me/state
import requests
URL = "https://dev.noackhub.noackhosting.net/api/v2/me/state"
HEADERS = {"Authorization": f"token {TOKEN}"}
r = requests.get(URL, headers=HEADERS)
print(r.status_code, r.json())
const url = "https://dev.noackhub.noackhosting.net/api/v2/me/state";
const opts = {
method: "GET",
headers: {
"Authorization": `token ${TOKEN}`,
},
};
const r = await fetch(url, opts);
const data = await r.json();
console.log(r.status, data);
<?php
$url = "https://dev.noackhub.noackhosting.net/api/v2/me/state";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
$headers = [
"Authorization: token $TOKEN",
];
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
echo $code . "\n" . $response;
use LWP::UserAgent;
use JSON;
use HTTP::Request;
my $ua = LWP::UserAgent->new;
my $req = HTTP::Request->new(GET => "https://dev.noackhub.noackhosting.net/api/v2/me/state");
$req->header("Authorization" => "token $TOKEN");
my $res = $ua->request($req);
print $res->code, "\n", $res->decoded_content;
import java.net.URI;
import java.net.http.*;
HttpClient client = HttpClient.newHttpClient();
HttpRequest.Builder rb = HttpRequest.newBuilder()
.uri(URI.create("https://dev.noackhub.noackhosting.net/api/v2/me/state"))
.header("Authorization", "token " + TOKEN)
.get(HttpRequest.BodyPublishers.noBody());
HttpResponse<String> r = client.send(rb.build(), HttpResponse.BodyHandlers.ofString());
System.out.println(r.statusCode() + "\n" + r.body());
π¦ Expected response (200)
{
"role": "user",
"twofa_enabled": true,
"ssh_key_added": true,
"invited_by": "mikael",
"activated_at": "2026-05-12T10:14:21Z"
}
PATCH
/me/profile
π auth
Uppdatera profilfΓ€lt.
Request body (JSON):
{
"email": "anna@ex.se",
"full_name": "Anna Andersson",
"location": "Stockholm"
}
curl
python
javascript
php
perl
java
curl -X PATCH \
-H "Authorization: token $TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"email": "anna@ex.se",
"full_name": "Anna Andersson",
"location": "Stockholm"
}' \
https://dev.noackhub.noackhosting.net/api/v2/me/profile
import requests
URL = "https://dev.noackhub.noackhosting.net/api/v2/me/profile"
HEADERS = {"Authorization": f"token {TOKEN}"}
BODY = {
"email": "anna@ex.se",
"full_name": "Anna Andersson",
"location": "Stockholm"
}
r = requests.patch(URL, headers=HEADERS, json=BODY)
print(r.status_code, r.json())
const url = "https://dev.noackhub.noackhosting.net/api/v2/me/profile";
const opts = {
method: "PATCH",
headers: {
"Authorization": `token ${TOKEN}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"email": "anna@ex.se",
"full_name": "Anna Andersson",
"location": "Stockholm"
}),
};
const r = await fetch(url, opts);
const data = await r.json();
console.log(r.status, data);
<?php
$url = "https://dev.noackhub.noackhosting.net/api/v2/me/profile";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PATCH");
$headers = [
"Authorization: token $TOKEN",
"Content-Type: application/json",
];
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$body = ["location" => "Stockholm", "email" => "anna@ex.se", "full_name" => "Anna Andersson"];
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($body));
$response = curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
echo $code . "\n" . $response;
use LWP::UserAgent;
use JSON;
use HTTP::Request;
my $ua = LWP::UserAgent->new;
my $req = HTTP::Request->new(PATCH => "https://dev.noackhub.noackhosting.net/api/v2/me/profile");
$req->header("Authorization" => "token $TOKEN");
$req->header("Content-Type" => "application/json");
$req->content(encode_json({ email => "anna@ex.se", full_name => "Anna Andersson", location => "Stockholm" }));
my $res = $ua->request($req);
print $res->code, "\n", $res->decoded_content;
import java.net.URI;
import java.net.http.*;
HttpClient client = HttpClient.newHttpClient();
HttpRequest.Builder rb = HttpRequest.newBuilder()
.uri(URI.create("https://dev.noackhub.noackhosting.net/api/v2/me/profile"))
.header("Authorization", "token " + TOKEN)
.header("Content-Type", "application/json")
.patch(HttpRequest.BodyPublishers.ofString("{ \"email\": \"anna@ex.se\", \"full_name\": \"Anna Andersson\", \"location\": \"Stockholm\" }"));
HttpResponse<String> r = client.send(rb.build(), HttpResponse.BodyHandlers.ofString());
System.out.println(r.statusCode() + "\n" + r.body());
π¦ Expected response (200)
{"ok": true}
POST
/me/password
π auth
Byt eget lΓΆsenord.
Request body (JSON):
{
"new_password": "newPass12chars",
"old_password": "oldPass"
}
curl
python
javascript
php
perl
java
curl -X POST \
-H "Authorization: token $TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"new_password": "newPass12chars",
"old_password": "oldPass"
}' \
https://dev.noackhub.noackhosting.net/api/v2/me/password
import requests
URL = "https://dev.noackhub.noackhosting.net/api/v2/me/password"
HEADERS = {"Authorization": f"token {TOKEN}"}
BODY = {
"new_password": "newPass12chars",
"old_password": "oldPass"
}
r = requests.post(URL, headers=HEADERS, json=BODY)
print(r.status_code, r.json())
const url = "https://dev.noackhub.noackhosting.net/api/v2/me/password";
const opts = {
method: "POST",
headers: {
"Authorization": `token ${TOKEN}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"new_password": "newPass12chars",
"old_password": "oldPass"
}),
};
const r = await fetch(url, opts);
const data = await r.json();
console.log(r.status, data);
<?php
$url = "https://dev.noackhub.noackhosting.net/api/v2/me/password";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
$headers = [
"Authorization: token $TOKEN",
"Content-Type: application/json",
];
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$body = ["new_password" => "newPass12chars", "old_password" => "oldPass"];
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($body));
$response = curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
echo $code . "\n" . $response;
use LWP::UserAgent;
use JSON;
use HTTP::Request;
my $ua = LWP::UserAgent->new;
my $req = HTTP::Request->new(POST => "https://dev.noackhub.noackhosting.net/api/v2/me/password");
$req->header("Authorization" => "token $TOKEN");
$req->header("Content-Type" => "application/json");
$req->content(encode_json({ new_password => "newPass12chars", old_password => "oldPass" }));
my $res = $ua->request($req);
print $res->code, "\n", $res->decoded_content;
import java.net.URI;
import java.net.http.*;
HttpClient client = HttpClient.newHttpClient();
HttpRequest.Builder rb = HttpRequest.newBuilder()
.uri(URI.create("https://dev.noackhub.noackhosting.net/api/v2/me/password"))
.header("Authorization", "token " + TOKEN)
.header("Content-Type", "application/json")
.post(HttpRequest.BodyPublishers.ofString("{ \"new_password\": \"newPass12chars\", \"old_password\": \"oldPass\" }"));
HttpResponse<String> r = client.send(rb.build(), HttpResponse.BodyHandlers.ofString());
System.out.println(r.statusCode() + "\n" + r.body());
π¦ Expected response (200)
{"ok": true}
POST
/me/2fa/setup
π auth
Generera TOTP-secret + QR-kod (base64 PNG).
curl
python
javascript
php
perl
java
curl -X POST \
-H "Authorization: token $TOKEN" \
https://dev.noackhub.noackhosting.net/api/v2/me/2fa/setup
import requests
URL = "https://dev.noackhub.noackhosting.net/api/v2/me/2fa/setup"
HEADERS = {"Authorization": f"token {TOKEN}"}
r = requests.post(URL, headers=HEADERS)
print(r.status_code, r.json())
const url = "https://dev.noackhub.noackhosting.net/api/v2/me/2fa/setup";
const opts = {
method: "POST",
headers: {
"Authorization": `token ${TOKEN}`,
},
};
const r = await fetch(url, opts);
const data = await r.json();
console.log(r.status, data);
<?php
$url = "https://dev.noackhub.noackhosting.net/api/v2/me/2fa/setup";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
$headers = [
"Authorization: token $TOKEN",
];
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
echo $code . "\n" . $response;
use LWP::UserAgent;
use JSON;
use HTTP::Request;
my $ua = LWP::UserAgent->new;
my $req = HTTP::Request->new(POST => "https://dev.noackhub.noackhosting.net/api/v2/me/2fa/setup");
$req->header("Authorization" => "token $TOKEN");
my $res = $ua->request($req);
print $res->code, "\n", $res->decoded_content;
import java.net.URI;
import java.net.http.*;
HttpClient client = HttpClient.newHttpClient();
HttpRequest.Builder rb = HttpRequest.newBuilder()
.uri(URI.create("https://dev.noackhub.noackhosting.net/api/v2/me/2fa/setup"))
.header("Authorization", "token " + TOKEN)
.post(HttpRequest.BodyPublishers.noBody());
HttpResponse<String> r = client.send(rb.build(), HttpResponse.BodyHandlers.ofString());
System.out.println(r.statusCode() + "\n" + r.body());
π¦ Expected response (200)
{"secret": "JBSWY3DPEHPK3PXP", "qr_png_base64": "iVBORw0KGgo...", "otpauth_url": "otpauth://totp/..."}
POST
/me/2fa/confirm
π auth
BekrΓ€fta enrollment med TOTP-kod.
Request body (JSON):
{
"code": "123456"
}
curl
python
javascript
php
perl
java
curl -X POST \
-H "Authorization: token $TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"code": "123456"
}' \
https://dev.noackhub.noackhosting.net/api/v2/me/2fa/confirm
import requests
URL = "https://dev.noackhub.noackhosting.net/api/v2/me/2fa/confirm"
HEADERS = {"Authorization": f"token {TOKEN}"}
BODY = {
"code": "123456"
}
r = requests.post(URL, headers=HEADERS, json=BODY)
print(r.status_code, r.json())
const url = "https://dev.noackhub.noackhosting.net/api/v2/me/2fa/confirm";
const opts = {
method: "POST",
headers: {
"Authorization": `token ${TOKEN}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"code": "123456"
}),
};
const r = await fetch(url, opts);
const data = await r.json();
console.log(r.status, data);
<?php
$url = "https://dev.noackhub.noackhosting.net/api/v2/me/2fa/confirm";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
$headers = [
"Authorization: token $TOKEN",
"Content-Type: application/json",
];
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$body = ["code" => "123456"];
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($body));
$response = curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
echo $code . "\n" . $response;
use LWP::UserAgent;
use JSON;
use HTTP::Request;
my $ua = LWP::UserAgent->new;
my $req = HTTP::Request->new(POST => "https://dev.noackhub.noackhosting.net/api/v2/me/2fa/confirm");
$req->header("Authorization" => "token $TOKEN");
$req->header("Content-Type" => "application/json");
$req->content(encode_json({ code => "123456" }));
my $res = $ua->request($req);
print $res->code, "\n", $res->decoded_content;
import java.net.URI;
import java.net.http.*;
HttpClient client = HttpClient.newHttpClient();
HttpRequest.Builder rb = HttpRequest.newBuilder()
.uri(URI.create("https://dev.noackhub.noackhosting.net/api/v2/me/2fa/confirm"))
.header("Authorization", "token " + TOKEN)
.header("Content-Type", "application/json")
.post(HttpRequest.BodyPublishers.ofString("{ \"code\": \"123456\" }"));
HttpResponse<String> r = client.send(rb.build(), HttpResponse.BodyHandlers.ofString());
System.out.println(r.statusCode() + "\n" + r.body());
π¦ Expected response (200)
{"ok": true}
POST
/me/2fa/verify
π auth
Verifiera TOTP-kod vid login.
Request body (JSON):
{
"code": "123456"
}
curl
python
javascript
php
perl
java
curl -X POST \
-H "Authorization: token $TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"code": "123456"
}' \
https://dev.noackhub.noackhosting.net/api/v2/me/2fa/verify
import requests
URL = "https://dev.noackhub.noackhosting.net/api/v2/me/2fa/verify"
HEADERS = {"Authorization": f"token {TOKEN}"}
BODY = {
"code": "123456"
}
r = requests.post(URL, headers=HEADERS, json=BODY)
print(r.status_code, r.json())
const url = "https://dev.noackhub.noackhosting.net/api/v2/me/2fa/verify";
const opts = {
method: "POST",
headers: {
"Authorization": `token ${TOKEN}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"code": "123456"
}),
};
const r = await fetch(url, opts);
const data = await r.json();
console.log(r.status, data);
<?php
$url = "https://dev.noackhub.noackhosting.net/api/v2/me/2fa/verify";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
$headers = [
"Authorization: token $TOKEN",
"Content-Type: application/json",
];
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$body = ["code" => "123456"];
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($body));
$response = curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
echo $code . "\n" . $response;
use LWP::UserAgent;
use JSON;
use HTTP::Request;
my $ua = LWP::UserAgent->new;
my $req = HTTP::Request->new(POST => "https://dev.noackhub.noackhosting.net/api/v2/me/2fa/verify");
$req->header("Authorization" => "token $TOKEN");
$req->header("Content-Type" => "application/json");
$req->content(encode_json({ code => "123456" }));
my $res = $ua->request($req);
print $res->code, "\n", $res->decoded_content;
import java.net.URI;
import java.net.http.*;
HttpClient client = HttpClient.newHttpClient();
HttpRequest.Builder rb = HttpRequest.newBuilder()
.uri(URI.create("https://dev.noackhub.noackhosting.net/api/v2/me/2fa/verify"))
.header("Authorization", "token " + TOKEN)
.header("Content-Type", "application/json")
.post(HttpRequest.BodyPublishers.ofString("{ \"code\": \"123456\" }"));
HttpResponse<String> r = client.send(rb.build(), HttpResponse.BodyHandlers.ofString());
System.out.println(r.statusCode() + "\n" + r.body());
π¦ Expected response (200)
{"ok": true}
POST
/me/2fa/disable
π auth
StΓ€ng av 2FA.
Request body (JSON):
{
"code": "123456"
}
curl
python
javascript
php
perl
java
curl -X POST \
-H "Authorization: token $TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"code": "123456"
}' \
https://dev.noackhub.noackhosting.net/api/v2/me/2fa/disable
import requests
URL = "https://dev.noackhub.noackhosting.net/api/v2/me/2fa/disable"
HEADERS = {"Authorization": f"token {TOKEN}"}
BODY = {
"code": "123456"
}
r = requests.post(URL, headers=HEADERS, json=BODY)
print(r.status_code, r.json())
const url = "https://dev.noackhub.noackhosting.net/api/v2/me/2fa/disable";
const opts = {
method: "POST",
headers: {
"Authorization": `token ${TOKEN}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"code": "123456"
}),
};
const r = await fetch(url, opts);
const data = await r.json();
console.log(r.status, data);
<?php
$url = "https://dev.noackhub.noackhosting.net/api/v2/me/2fa/disable";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
$headers = [
"Authorization: token $TOKEN",
"Content-Type: application/json",
];
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$body = ["code" => "123456"];
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($body));
$response = curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
echo $code . "\n" . $response;
use LWP::UserAgent;
use JSON;
use HTTP::Request;
my $ua = LWP::UserAgent->new;
my $req = HTTP::Request->new(POST => "https://dev.noackhub.noackhosting.net/api/v2/me/2fa/disable");
$req->header("Authorization" => "token $TOKEN");
$req->header("Content-Type" => "application/json");
$req->content(encode_json({ code => "123456" }));
my $res = $ua->request($req);
print $res->code, "\n", $res->decoded_content;
import java.net.URI;
import java.net.http.*;
HttpClient client = HttpClient.newHttpClient();
HttpRequest.Builder rb = HttpRequest.newBuilder()
.uri(URI.create("https://dev.noackhub.noackhosting.net/api/v2/me/2fa/disable"))
.header("Authorization", "token " + TOKEN)
.header("Content-Type", "application/json")
.post(HttpRequest.BodyPublishers.ofString("{ \"code\": \"123456\" }"));
HttpResponse<String> r = client.send(rb.build(), HttpResponse.BodyHandlers.ofString());
System.out.println(r.statusCode() + "\n" + r.body());
π¦ Expected response (200)
{"ok": true}
GET
/me/keys
π auth
Lista SSH-nycklar.
curl
python
javascript
php
perl
java
curl -X GET \
-H "Authorization: token $TOKEN" \
https://dev.noackhub.noackhosting.net/api/v2/me/keys
import requests
URL = "https://dev.noackhub.noackhosting.net/api/v2/me/keys"
HEADERS = {"Authorization": f"token {TOKEN}"}
r = requests.get(URL, headers=HEADERS)
print(r.status_code, r.json())
const url = "https://dev.noackhub.noackhosting.net/api/v2/me/keys";
const opts = {
method: "GET",
headers: {
"Authorization": `token ${TOKEN}`,
},
};
const r = await fetch(url, opts);
const data = await r.json();
console.log(r.status, data);
<?php
$url = "https://dev.noackhub.noackhosting.net/api/v2/me/keys";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
$headers = [
"Authorization: token $TOKEN",
];
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
echo $code . "\n" . $response;
use LWP::UserAgent;
use JSON;
use HTTP::Request;
my $ua = LWP::UserAgent->new;
my $req = HTTP::Request->new(GET => "https://dev.noackhub.noackhosting.net/api/v2/me/keys");
$req->header("Authorization" => "token $TOKEN");
my $res = $ua->request($req);
print $res->code, "\n", $res->decoded_content;
import java.net.URI;
import java.net.http.*;
HttpClient client = HttpClient.newHttpClient();
HttpRequest.Builder rb = HttpRequest.newBuilder()
.uri(URI.create("https://dev.noackhub.noackhosting.net/api/v2/me/keys"))
.header("Authorization", "token " + TOKEN)
.get(HttpRequest.BodyPublishers.noBody());
HttpResponse<String> r = client.send(rb.build(), HttpResponse.BodyHandlers.ofString());
System.out.println(r.statusCode() + "\n" + r.body());
π¦ Expected response (200)
[
{"id": 7, "title": "laptop", "fingerprint": "SHA256:abc...", "key": "ssh-ed25519 AAAAC3..."}
]
POST
/me/keys
π auth
LΓ€gg till SSH-nyckel.
Request body (JSON):
{
"key": "ssh-ed25519 AAAA...",
"title": "laptop"
}
curl
python
javascript
php
perl
java
curl -X POST \
-H "Authorization: token $TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"key": "ssh-ed25519 AAAA...",
"title": "laptop"
}' \
https://dev.noackhub.noackhosting.net/api/v2/me/keys
import requests
URL = "https://dev.noackhub.noackhosting.net/api/v2/me/keys"
HEADERS = {"Authorization": f"token {TOKEN}"}
BODY = {
"key": "ssh-ed25519 AAAA...",
"title": "laptop"
}
r = requests.post(URL, headers=HEADERS, json=BODY)
print(r.status_code, r.json())
const url = "https://dev.noackhub.noackhosting.net/api/v2/me/keys";
const opts = {
method: "POST",
headers: {
"Authorization": `token ${TOKEN}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"key": "ssh-ed25519 AAAA...",
"title": "laptop"
}),
};
const r = await fetch(url, opts);
const data = await r.json();
console.log(r.status, data);
<?php
$url = "https://dev.noackhub.noackhosting.net/api/v2/me/keys";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
$headers = [
"Authorization: token $TOKEN",
"Content-Type: application/json",
];
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$body = ["key" => "ssh-ed25519 AAAA...", "title" => "laptop"];
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($body));
$response = curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
echo $code . "\n" . $response;
use LWP::UserAgent;
use JSON;
use HTTP::Request;
my $ua = LWP::UserAgent->new;
my $req = HTTP::Request->new(POST => "https://dev.noackhub.noackhosting.net/api/v2/me/keys");
$req->header("Authorization" => "token $TOKEN");
$req->header("Content-Type" => "application/json");
$req->content(encode_json({ key => "ssh-ed25519 AAAA...", title => "laptop" }));
my $res = $ua->request($req);
print $res->code, "\n", $res->decoded_content;
import java.net.URI;
import java.net.http.*;
HttpClient client = HttpClient.newHttpClient();
HttpRequest.Builder rb = HttpRequest.newBuilder()
.uri(URI.create("https://dev.noackhub.noackhosting.net/api/v2/me/keys"))
.header("Authorization", "token " + TOKEN)
.header("Content-Type", "application/json")
.post(HttpRequest.BodyPublishers.ofString("{ \"key\": \"ssh-ed25519 AAAA...\", \"title\": \"laptop\" }"));
HttpResponse<String> r = client.send(rb.build(), HttpResponse.BodyHandlers.ofString());
System.out.println(r.statusCode() + "\n" + r.body());
π¦ Expected response (201)
{"id": 8, "title": "laptop", "fingerprint": "SHA256:abc...", "key": "ssh-ed25519 AAAA..."}
DELETE
/me/keys/{id}
π auth
Ta bort SSH-nyckel.
curl
python
javascript
php
perl
java
curl -X DELETE \
-H "Authorization: token $TOKEN" \
https://dev.noackhub.noackhosting.net/api/v2/me/keys/{id}
import requests
URL = "https://dev.noackhub.noackhosting.net/api/v2/me/keys/{id}"
HEADERS = {"Authorization": f"token {TOKEN}"}
r = requests.delete(URL, headers=HEADERS)
print(r.status_code, r.json())
const url = "https://dev.noackhub.noackhosting.net/api/v2/me/keys/{id}";
const opts = {
method: "DELETE",
headers: {
"Authorization": `token ${TOKEN}`,
},
};
const r = await fetch(url, opts);
const data = await r.json();
console.log(r.status, data);
<?php
$url = "https://dev.noackhub.noackhosting.net/api/v2/me/keys/{id}";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE");
$headers = [
"Authorization: token $TOKEN",
];
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
echo $code . "\n" . $response;
use LWP::UserAgent;
use JSON;
use HTTP::Request;
my $ua = LWP::UserAgent->new;
my $req = HTTP::Request->new(DELETE => "https://dev.noackhub.noackhosting.net/api/v2/me/keys/{id}");
$req->header("Authorization" => "token $TOKEN");
my $res = $ua->request($req);
print $res->code, "\n", $res->decoded_content;
import java.net.URI;
import java.net.http.*;
HttpClient client = HttpClient.newHttpClient();
HttpRequest.Builder rb = HttpRequest.newBuilder()
.uri(URI.create("https://dev.noackhub.noackhosting.net/api/v2/me/keys/{id}"))
.header("Authorization", "token " + TOKEN)
.delete(HttpRequest.BodyPublishers.noBody());
HttpResponse<String> r = client.send(rb.build(), HttpResponse.BodyHandlers.ofString());
System.out.println(r.statusCode() + "\n" + r.body());
π¦ Expected response (200)
{"ok": true}
GET
/repos
π auth
Lista mina repos.
curl
python
javascript
php
perl
java
curl -X GET \
-H "Authorization: token $TOKEN" \
https://dev.noackhub.noackhosting.net/api/v2/repos
import requests
URL = "https://dev.noackhub.noackhosting.net/api/v2/repos"
HEADERS = {"Authorization": f"token {TOKEN}"}
r = requests.get(URL, headers=HEADERS)
print(r.status_code, r.json())
const url = "https://dev.noackhub.noackhosting.net/api/v2/repos";
const opts = {
method: "GET",
headers: {
"Authorization": `token ${TOKEN}`,
},
};
const r = await fetch(url, opts);
const data = await r.json();
console.log(r.status, data);
<?php
$url = "https://dev.noackhub.noackhosting.net/api/v2/repos";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
$headers = [
"Authorization: token $TOKEN",
];
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
echo $code . "\n" . $response;
use LWP::UserAgent;
use JSON;
use HTTP::Request;
my $ua = LWP::UserAgent->new;
my $req = HTTP::Request->new(GET => "https://dev.noackhub.noackhosting.net/api/v2/repos");
$req->header("Authorization" => "token $TOKEN");
my $res = $ua->request($req);
print $res->code, "\n", $res->decoded_content;
import java.net.URI;
import java.net.http.*;
HttpClient client = HttpClient.newHttpClient();
HttpRequest.Builder rb = HttpRequest.newBuilder()
.uri(URI.create("https://dev.noackhub.noackhosting.net/api/v2/repos"))
.header("Authorization", "token " + TOKEN)
.get(HttpRequest.BodyPublishers.noBody());
HttpResponse<String> r = client.send(rb.build(), HttpResponse.BodyHandlers.ofString());
System.out.println(r.statusCode() + "\n" + r.body());
π¦ Expected response (200)
[
{
"id": 12,
"name": "mitt-repo",
"full_name": "anna/mitt-repo",
"private": false,
"html_url": "https://noackhub.noackhosting.net/anna/mitt-repo",
"ssh_url": "ssh://git@noackhub.noackhosting.net:2222/anna/mitt-repo.git",
"clone_url": "https://noackhub.noackhosting.net/anna/mitt-repo.git",
"default_branch": "main",
"updated_at": "2026-05-13T08:42:01Z"
}
]
POST
/repos
π auth
Skapa nytt repo.
Request body (JSON):
{
"auto_init": true,
"description": "Hello",
"name": "mitt-repo",
"private": false
}
curl
python
javascript
php
perl
java
curl -X POST \
-H "Authorization: token $TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"auto_init": true,
"description": "Hello",
"name": "mitt-repo",
"private": false
}' \
https://dev.noackhub.noackhosting.net/api/v2/repos
import requests
URL = "https://dev.noackhub.noackhosting.net/api/v2/repos"
HEADERS = {"Authorization": f"token {TOKEN}"}
BODY = {
"auto_init": True,
"description": "Hello",
"name": "mitt-repo",
"private": False
}
r = requests.post(URL, headers=HEADERS, json=BODY)
print(r.status_code, r.json())
const url = "https://dev.noackhub.noackhosting.net/api/v2/repos";
const opts = {
method: "POST",
headers: {
"Authorization": `token ${TOKEN}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"auto_init": true,
"description": "Hello",
"name": "mitt-repo",
"private": false
}),
};
const r = await fetch(url, opts);
const data = await r.json();
console.log(r.status, data);
<?php
$url = "https://dev.noackhub.noackhosting.net/api/v2/repos";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
$headers = [
"Authorization: token $TOKEN",
"Content-Type: application/json",
];
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$body = ["auto_init" => true, "description" => "Hello", "name" => "mitt-repo", "private" => false];
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($body));
$response = curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
echo $code . "\n" . $response;
use LWP::UserAgent;
use JSON;
use HTTP::Request;
my $ua = LWP::UserAgent->new;
my $req = HTTP::Request->new(POST => "https://dev.noackhub.noackhosting.net/api/v2/repos");
$req->header("Authorization" => "token $TOKEN");
$req->header("Content-Type" => "application/json");
$req->content(encode_json({ description => "Hello", name => "mitt-repo", private => \0, auto_init => \1 }));
my $res = $ua->request($req);
print $res->code, "\n", $res->decoded_content;
import java.net.URI;
import java.net.http.*;
HttpClient client = HttpClient.newHttpClient();
HttpRequest.Builder rb = HttpRequest.newBuilder()
.uri(URI.create("https://dev.noackhub.noackhosting.net/api/v2/repos"))
.header("Authorization", "token " + TOKEN)
.header("Content-Type", "application/json")
.post(HttpRequest.BodyPublishers.ofString("{ \"auto_init\": true, \"description\": \"Hello\", \"name\": \"mitt-repo\", \"private\": false }"));
HttpResponse<String> r = client.send(rb.build(), HttpResponse.BodyHandlers.ofString());
System.out.println(r.statusCode() + "\n" + r.body());
π¦ Expected response (201)
{
"id": 13,
"name": "mitt-repo",
"full_name": "anna/mitt-repo",
"private": false,
"html_url": "https://noackhub.noackhosting.net/anna/mitt-repo",
"ssh_url": "ssh://git@noackhub.noackhosting.net:2222/anna/mitt-repo.git",
"default_branch": "main"
}
GET
/repos/{owner}/{repo}
π auth
HΓ€mta repo-detalj.
curl
python
javascript
php
perl
java
curl -X GET \
-H "Authorization: token $TOKEN" \
https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}
import requests
URL = "https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}"
HEADERS = {"Authorization": f"token {TOKEN}"}
r = requests.get(URL, headers=HEADERS)
print(r.status_code, r.json())
const url = "https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}";
const opts = {
method: "GET",
headers: {
"Authorization": `token ${TOKEN}`,
},
};
const r = await fetch(url, opts);
const data = await r.json();
console.log(r.status, data);
<?php
$url = "https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
$headers = [
"Authorization: token $TOKEN",
];
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
echo $code . "\n" . $response;
use LWP::UserAgent;
use JSON;
use HTTP::Request;
my $ua = LWP::UserAgent->new;
my $req = HTTP::Request->new(GET => "https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}");
$req->header("Authorization" => "token $TOKEN");
my $res = $ua->request($req);
print $res->code, "\n", $res->decoded_content;
import java.net.URI;
import java.net.http.*;
HttpClient client = HttpClient.newHttpClient();
HttpRequest.Builder rb = HttpRequest.newBuilder()
.uri(URI.create("https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}"))
.header("Authorization", "token " + TOKEN)
.get(HttpRequest.BodyPublishers.noBody());
HttpResponse<String> r = client.send(rb.build(), HttpResponse.BodyHandlers.ofString());
System.out.println(r.statusCode() + "\n" + r.body());
π¦ Expected response (200)
{
"id": 13,
"name": "mitt-repo",
"full_name": "anna/mitt-repo",
"private": false,
"html_url": "https://noackhub.noackhosting.net/anna/mitt-repo",
"ssh_url": "ssh://git@noackhub.noackhosting.net:2222/anna/mitt-repo.git",
"default_branch": "main"
}
PATCH
/repos/{owner}/{repo}
π auth
Redigera repo.
Request body (JSON):
{
"description": "Updated",
"private": true
}
curl
python
javascript
php
perl
java
curl -X PATCH \
-H "Authorization: token $TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"description": "Updated",
"private": true
}' \
https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}
import requests
URL = "https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}"
HEADERS = {"Authorization": f"token {TOKEN}"}
BODY = {
"description": "Updated",
"private": True
}
r = requests.patch(URL, headers=HEADERS, json=BODY)
print(r.status_code, r.json())
const url = "https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}";
const opts = {
method: "PATCH",
headers: {
"Authorization": `token ${TOKEN}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"description": "Updated",
"private": true
}),
};
const r = await fetch(url, opts);
const data = await r.json();
console.log(r.status, data);
<?php
$url = "https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PATCH");
$headers = [
"Authorization: token $TOKEN",
"Content-Type: application/json",
];
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$body = ["description" => "Updated", "private" => true];
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($body));
$response = curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
echo $code . "\n" . $response;
use LWP::UserAgent;
use JSON;
use HTTP::Request;
my $ua = LWP::UserAgent->new;
my $req = HTTP::Request->new(PATCH => "https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}");
$req->header("Authorization" => "token $TOKEN");
$req->header("Content-Type" => "application/json");
$req->content(encode_json({ description => "Updated", private => \1 }));
my $res = $ua->request($req);
print $res->code, "\n", $res->decoded_content;
import java.net.URI;
import java.net.http.*;
HttpClient client = HttpClient.newHttpClient();
HttpRequest.Builder rb = HttpRequest.newBuilder()
.uri(URI.create("https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}"))
.header("Authorization", "token " + TOKEN)
.header("Content-Type", "application/json")
.patch(HttpRequest.BodyPublishers.ofString("{ \"description\": \"Updated\", \"private\": true }"));
HttpResponse<String> r = client.send(rb.build(), HttpResponse.BodyHandlers.ofString());
System.out.println(r.statusCode() + "\n" + r.body());
π¦ Expected response (200)
{
"id": 13,
"name": "mitt-repo",
"full_name": "anna/mitt-repo",
"private": false,
"html_url": "https://noackhub.noackhosting.net/anna/mitt-repo",
"ssh_url": "ssh://git@noackhub.noackhosting.net:2222/anna/mitt-repo.git",
"default_branch": "main"
}
DELETE
/repos/{owner}/{repo}
π auth
Radera repo.
curl
python
javascript
php
perl
java
curl -X DELETE \
-H "Authorization: token $TOKEN" \
https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}
import requests
URL = "https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}"
HEADERS = {"Authorization": f"token {TOKEN}"}
r = requests.delete(URL, headers=HEADERS)
print(r.status_code, r.json())
const url = "https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}";
const opts = {
method: "DELETE",
headers: {
"Authorization": `token ${TOKEN}`,
},
};
const r = await fetch(url, opts);
const data = await r.json();
console.log(r.status, data);
<?php
$url = "https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE");
$headers = [
"Authorization: token $TOKEN",
];
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
echo $code . "\n" . $response;
use LWP::UserAgent;
use JSON;
use HTTP::Request;
my $ua = LWP::UserAgent->new;
my $req = HTTP::Request->new(DELETE => "https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}");
$req->header("Authorization" => "token $TOKEN");
my $res = $ua->request($req);
print $res->code, "\n", $res->decoded_content;
import java.net.URI;
import java.net.http.*;
HttpClient client = HttpClient.newHttpClient();
HttpRequest.Builder rb = HttpRequest.newBuilder()
.uri(URI.create("https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}"))
.header("Authorization", "token " + TOKEN)
.delete(HttpRequest.BodyPublishers.noBody());
HttpResponse<String> r = client.send(rb.build(), HttpResponse.BodyHandlers.ofString());
System.out.println(r.statusCode() + "\n" + r.body());
π¦ Expected response (200)
{"ok": true}
GET
/repos/{owner}/{repo}/contents/{path}
π auth
Lista filer eller hΓ€mta fil-innehΓ₯ll.
curl
python
javascript
php
perl
java
curl -X GET \
-H "Authorization: token $TOKEN" \
https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/contents/{path}
import requests
URL = "https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/contents/{path}"
HEADERS = {"Authorization": f"token {TOKEN}"}
r = requests.get(URL, headers=HEADERS)
print(r.status_code, r.json())
const url = "https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/contents/{path}";
const opts = {
method: "GET",
headers: {
"Authorization": `token ${TOKEN}`,
},
};
const r = await fetch(url, opts);
const data = await r.json();
console.log(r.status, data);
<?php
$url = "https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/contents/{path}";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
$headers = [
"Authorization: token $TOKEN",
];
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
echo $code . "\n" . $response;
use LWP::UserAgent;
use JSON;
use HTTP::Request;
my $ua = LWP::UserAgent->new;
my $req = HTTP::Request->new(GET => "https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/contents/{path}");
$req->header("Authorization" => "token $TOKEN");
my $res = $ua->request($req);
print $res->code, "\n", $res->decoded_content;
import java.net.URI;
import java.net.http.*;
HttpClient client = HttpClient.newHttpClient();
HttpRequest.Builder rb = HttpRequest.newBuilder()
.uri(URI.create("https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/contents/{path}"))
.header("Authorization", "token " + TOKEN)
.get(HttpRequest.BodyPublishers.noBody());
HttpResponse<String> r = client.send(rb.build(), HttpResponse.BodyHandlers.ofString());
System.out.println(r.statusCode() + "\n" + r.body());
π¦ Expected response (200)
[{"name": "README.md", "type": "file", "path": "README.md", "size": 142}]
GET
/repos/{owner}/{repo}/commits
π auth
Senaste commits.
curl
python
javascript
php
perl
java
curl -X GET \
-H "Authorization: token $TOKEN" \
https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/commits
import requests
URL = "https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/commits"
HEADERS = {"Authorization": f"token {TOKEN}"}
r = requests.get(URL, headers=HEADERS)
print(r.status_code, r.json())
const url = "https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/commits";
const opts = {
method: "GET",
headers: {
"Authorization": `token ${TOKEN}`,
},
};
const r = await fetch(url, opts);
const data = await r.json();
console.log(r.status, data);
<?php
$url = "https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/commits";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
$headers = [
"Authorization: token $TOKEN",
];
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
echo $code . "\n" . $response;
use LWP::UserAgent;
use JSON;
use HTTP::Request;
my $ua = LWP::UserAgent->new;
my $req = HTTP::Request->new(GET => "https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/commits");
$req->header("Authorization" => "token $TOKEN");
my $res = $ua->request($req);
print $res->code, "\n", $res->decoded_content;
import java.net.URI;
import java.net.http.*;
HttpClient client = HttpClient.newHttpClient();
HttpRequest.Builder rb = HttpRequest.newBuilder()
.uri(URI.create("https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/commits"))
.header("Authorization", "token " + TOKEN)
.get(HttpRequest.BodyPublishers.noBody());
HttpResponse<String> r = client.send(rb.build(), HttpResponse.BodyHandlers.ofString());
System.out.println(r.statusCode() + "\n" + r.body());
π¦ Expected response (200)
[
{
"sha": "f0a1b2c3d4e5",
"commit": {"message": "Initial commit", "author": {"name": "anna", "email": "anna@ex.se", "date": "2026-05-13T08:00:00Z"}},
"html_url": "https://noackhub.noackhosting.net/anna/mitt-repo/commit/f0a1b2c3d4e5"
}
]
GET
/repos/{owner}/{repo}/collaborators
π auth
Lista collaborators.
curl
python
javascript
php
perl
java
curl -X GET \
-H "Authorization: token $TOKEN" \
https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/collaborators
import requests
URL = "https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/collaborators"
HEADERS = {"Authorization": f"token {TOKEN}"}
r = requests.get(URL, headers=HEADERS)
print(r.status_code, r.json())
const url = "https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/collaborators";
const opts = {
method: "GET",
headers: {
"Authorization": `token ${TOKEN}`,
},
};
const r = await fetch(url, opts);
const data = await r.json();
console.log(r.status, data);
<?php
$url = "https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/collaborators";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
$headers = [
"Authorization: token $TOKEN",
];
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
echo $code . "\n" . $response;
use LWP::UserAgent;
use JSON;
use HTTP::Request;
my $ua = LWP::UserAgent->new;
my $req = HTTP::Request->new(GET => "https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/collaborators");
$req->header("Authorization" => "token $TOKEN");
my $res = $ua->request($req);
print $res->code, "\n", $res->decoded_content;
import java.net.URI;
import java.net.http.*;
HttpClient client = HttpClient.newHttpClient();
HttpRequest.Builder rb = HttpRequest.newBuilder()
.uri(URI.create("https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/collaborators"))
.header("Authorization", "token " + TOKEN)
.get(HttpRequest.BodyPublishers.noBody());
HttpResponse<String> r = client.send(rb.build(), HttpResponse.BodyHandlers.ofString());
System.out.println(r.statusCode() + "\n" + r.body());
π¦ Expected response (200)
[{"login": "kund2", "permission": "write"}]
POST
/repos/{owner}/{repo}/collaborators
π auth
LΓ€gg till collaborator.
Request body (JSON):
{
"permission": "write",
"username": "kund2"
}
curl
python
javascript
php
perl
java
curl -X POST \
-H "Authorization: token $TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"permission": "write",
"username": "kund2"
}' \
https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/collaborators
import requests
URL = "https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/collaborators"
HEADERS = {"Authorization": f"token {TOKEN}"}
BODY = {
"permission": "write",
"username": "kund2"
}
r = requests.post(URL, headers=HEADERS, json=BODY)
print(r.status_code, r.json())
const url = "https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/collaborators";
const opts = {
method: "POST",
headers: {
"Authorization": `token ${TOKEN}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"permission": "write",
"username": "kund2"
}),
};
const r = await fetch(url, opts);
const data = await r.json();
console.log(r.status, data);
<?php
$url = "https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/collaborators";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
$headers = [
"Authorization: token $TOKEN",
"Content-Type: application/json",
];
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$body = ["permission" => "write", "username" => "kund2"];
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($body));
$response = curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
echo $code . "\n" . $response;
use LWP::UserAgent;
use JSON;
use HTTP::Request;
my $ua = LWP::UserAgent->new;
my $req = HTTP::Request->new(POST => "https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/collaborators");
$req->header("Authorization" => "token $TOKEN");
$req->header("Content-Type" => "application/json");
$req->content(encode_json({ permission => "write", username => "kund2" }));
my $res = $ua->request($req);
print $res->code, "\n", $res->decoded_content;
import java.net.URI;
import java.net.http.*;
HttpClient client = HttpClient.newHttpClient();
HttpRequest.Builder rb = HttpRequest.newBuilder()
.uri(URI.create("https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/collaborators"))
.header("Authorization", "token " + TOKEN)
.header("Content-Type", "application/json")
.post(HttpRequest.BodyPublishers.ofString("{ \"permission\": \"write\", \"username\": \"kund2\" }"));
HttpResponse<String> r = client.send(rb.build(), HttpResponse.BodyHandlers.ofString());
System.out.println(r.statusCode() + "\n" + r.body());
π¦ Expected response (201)
{"ok": true}
GET
/repos/{owner}/{repo}/issues
π auth
Lista issues (?state=open|closed|all).
curl
python
javascript
php
perl
java
curl -X GET \
-H "Authorization: token $TOKEN" \
https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/issues
import requests
URL = "https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/issues"
HEADERS = {"Authorization": f"token {TOKEN}"}
r = requests.get(URL, headers=HEADERS)
print(r.status_code, r.json())
const url = "https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/issues";
const opts = {
method: "GET",
headers: {
"Authorization": `token ${TOKEN}`,
},
};
const r = await fetch(url, opts);
const data = await r.json();
console.log(r.status, data);
<?php
$url = "https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/issues";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
$headers = [
"Authorization: token $TOKEN",
];
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
echo $code . "\n" . $response;
use LWP::UserAgent;
use JSON;
use HTTP::Request;
my $ua = LWP::UserAgent->new;
my $req = HTTP::Request->new(GET => "https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/issues");
$req->header("Authorization" => "token $TOKEN");
my $res = $ua->request($req);
print $res->code, "\n", $res->decoded_content;
import java.net.URI;
import java.net.http.*;
HttpClient client = HttpClient.newHttpClient();
HttpRequest.Builder rb = HttpRequest.newBuilder()
.uri(URI.create("https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/issues"))
.header("Authorization", "token " + TOKEN)
.get(HttpRequest.BodyPublishers.noBody());
HttpResponse<String> r = client.send(rb.build(), HttpResponse.BodyHandlers.ofString());
System.out.println(r.statusCode() + "\n" + r.body());
π¦ Expected response (200)
[
{
"id": 101,
"number": 1,
"title": "Bug",
"state": "open",
"user": {"login": "anna"},
"body": "Steps to reproduce...",
"created_at": "2026-05-13T08:30:00Z",
"comments": 0
}
]
POST
/repos/{owner}/{repo}/issues
π auth
Skapa issue.
Request body (JSON):
{
"body": "Steps to reproduce...",
"title": "Bug"
}
curl
python
javascript
php
perl
java
curl -X POST \
-H "Authorization: token $TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"body": "Steps to reproduce...",
"title": "Bug"
}' \
https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/issues
import requests
URL = "https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/issues"
HEADERS = {"Authorization": f"token {TOKEN}"}
BODY = {
"body": "Steps to reproduce...",
"title": "Bug"
}
r = requests.post(URL, headers=HEADERS, json=BODY)
print(r.status_code, r.json())
const url = "https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/issues";
const opts = {
method: "POST",
headers: {
"Authorization": `token ${TOKEN}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"body": "Steps to reproduce...",
"title": "Bug"
}),
};
const r = await fetch(url, opts);
const data = await r.json();
console.log(r.status, data);
<?php
$url = "https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/issues";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
$headers = [
"Authorization: token $TOKEN",
"Content-Type: application/json",
];
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$body = ["body" => "Steps to reproduce...", "title" => "Bug"];
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($body));
$response = curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
echo $code . "\n" . $response;
use LWP::UserAgent;
use JSON;
use HTTP::Request;
my $ua = LWP::UserAgent->new;
my $req = HTTP::Request->new(POST => "https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/issues");
$req->header("Authorization" => "token $TOKEN");
$req->header("Content-Type" => "application/json");
$req->content(encode_json({ body => "Steps to reproduce...", title => "Bug" }));
my $res = $ua->request($req);
print $res->code, "\n", $res->decoded_content;
import java.net.URI;
import java.net.http.*;
HttpClient client = HttpClient.newHttpClient();
HttpRequest.Builder rb = HttpRequest.newBuilder()
.uri(URI.create("https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/issues"))
.header("Authorization", "token " + TOKEN)
.header("Content-Type", "application/json")
.post(HttpRequest.BodyPublishers.ofString("{ \"body\": \"Steps to reproduce...\", \"title\": \"Bug\" }"));
HttpResponse<String> r = client.send(rb.build(), HttpResponse.BodyHandlers.ofString());
System.out.println(r.statusCode() + "\n" + r.body());
π¦ Expected response (201)
{
"id": 102,
"number": 2,
"title": "Bug",
"state": "open",
"user": {"login": "anna"},
"body": "Steps to reproduce...",
"html_url": "https://noackhub.noackhosting.net/anna/mitt-repo/issues/2"
}
GET
/repos/{owner}/{repo}/issues/{number}
π auth
HΓ€mta issue + kommentarer.
curl
python
javascript
php
perl
java
curl -X GET \
-H "Authorization: token $TOKEN" \
https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/issues/{number}
import requests
URL = "https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/issues/{number}"
HEADERS = {"Authorization": f"token {TOKEN}"}
r = requests.get(URL, headers=HEADERS)
print(r.status_code, r.json())
const url = "https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/issues/{number}";
const opts = {
method: "GET",
headers: {
"Authorization": `token ${TOKEN}`,
},
};
const r = await fetch(url, opts);
const data = await r.json();
console.log(r.status, data);
<?php
$url = "https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/issues/{number}";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
$headers = [
"Authorization: token $TOKEN",
];
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
echo $code . "\n" . $response;
use LWP::UserAgent;
use JSON;
use HTTP::Request;
my $ua = LWP::UserAgent->new;
my $req = HTTP::Request->new(GET => "https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/issues/{number}");
$req->header("Authorization" => "token $TOKEN");
my $res = $ua->request($req);
print $res->code, "\n", $res->decoded_content;
import java.net.URI;
import java.net.http.*;
HttpClient client = HttpClient.newHttpClient();
HttpRequest.Builder rb = HttpRequest.newBuilder()
.uri(URI.create("https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/issues/{number}"))
.header("Authorization", "token " + TOKEN)
.get(HttpRequest.BodyPublishers.noBody());
HttpResponse<String> r = client.send(rb.build(), HttpResponse.BodyHandlers.ofString());
System.out.println(r.statusCode() + "\n" + r.body());
π¦ Expected response (200)
{
"id": 101,
"number": 1,
"title": "Bug",
"state": "open",
"body": "Steps to reproduce...",
"user": {"login": "anna"},
"comments_list": [
{"id": 222, "body": "I can confirm this.", "user": {"login": "bob"}, "created_at": "2026-05-13T09:00:00Z"}
]
}
POST
/repos/{owner}/{repo}/issues/{number}/state
π auth
StΓ€ng eller ΓΆppna issue.
Request body (JSON):
{
"state": "closed"
}
curl
python
javascript
php
perl
java
curl -X POST \
-H "Authorization: token $TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"state": "closed"
}' \
https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/issues/{number}/state
import requests
URL = "https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/issues/{number}/state"
HEADERS = {"Authorization": f"token {TOKEN}"}
BODY = {
"state": "closed"
}
r = requests.post(URL, headers=HEADERS, json=BODY)
print(r.status_code, r.json())
const url = "https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/issues/{number}/state";
const opts = {
method: "POST",
headers: {
"Authorization": `token ${TOKEN}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"state": "closed"
}),
};
const r = await fetch(url, opts);
const data = await r.json();
console.log(r.status, data);
<?php
$url = "https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/issues/{number}/state";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
$headers = [
"Authorization: token $TOKEN",
"Content-Type: application/json",
];
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$body = ["state" => "closed"];
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($body));
$response = curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
echo $code . "\n" . $response;
use LWP::UserAgent;
use JSON;
use HTTP::Request;
my $ua = LWP::UserAgent->new;
my $req = HTTP::Request->new(POST => "https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/issues/{number}/state");
$req->header("Authorization" => "token $TOKEN");
$req->header("Content-Type" => "application/json");
$req->content(encode_json({ state => "closed" }));
my $res = $ua->request($req);
print $res->code, "\n", $res->decoded_content;
import java.net.URI;
import java.net.http.*;
HttpClient client = HttpClient.newHttpClient();
HttpRequest.Builder rb = HttpRequest.newBuilder()
.uri(URI.create("https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/issues/{number}/state"))
.header("Authorization", "token " + TOKEN)
.header("Content-Type", "application/json")
.post(HttpRequest.BodyPublishers.ofString("{ \"state\": \"closed\" }"));
HttpResponse<String> r = client.send(rb.build(), HttpResponse.BodyHandlers.ofString());
System.out.println(r.statusCode() + "\n" + r.body());
π¦ Expected response (200)
{"ok": true}
GET
/repos/{owner}/{repo}/pulls
π auth
Lista pull requests.
curl
python
javascript
php
perl
java
curl -X GET \
-H "Authorization: token $TOKEN" \
https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/pulls
import requests
URL = "https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/pulls"
HEADERS = {"Authorization": f"token {TOKEN}"}
r = requests.get(URL, headers=HEADERS)
print(r.status_code, r.json())
const url = "https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/pulls";
const opts = {
method: "GET",
headers: {
"Authorization": `token ${TOKEN}`,
},
};
const r = await fetch(url, opts);
const data = await r.json();
console.log(r.status, data);
<?php
$url = "https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/pulls";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
$headers = [
"Authorization: token $TOKEN",
];
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
echo $code . "\n" . $response;
use LWP::UserAgent;
use JSON;
use HTTP::Request;
my $ua = LWP::UserAgent->new;
my $req = HTTP::Request->new(GET => "https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/pulls");
$req->header("Authorization" => "token $TOKEN");
my $res = $ua->request($req);
print $res->code, "\n", $res->decoded_content;
import java.net.URI;
import java.net.http.*;
HttpClient client = HttpClient.newHttpClient();
HttpRequest.Builder rb = HttpRequest.newBuilder()
.uri(URI.create("https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/pulls"))
.header("Authorization", "token " + TOKEN)
.get(HttpRequest.BodyPublishers.noBody());
HttpResponse<String> r = client.send(rb.build(), HttpResponse.BodyHandlers.ofString());
System.out.println(r.statusCode() + "\n" + r.body());
π¦ Expected response (200)
[{"id": 50, "number": 1, "title": "Add feature X", "state": "open", "user": {"login": "anna"}, "head": "feature-x", "base": "main"}]
GET
/repos/{owner}/{repo}/pulls/{number}
π auth
PR-detalj + kommentarer.
curl
python
javascript
php
perl
java
curl -X GET \
-H "Authorization: token $TOKEN" \
https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/pulls/{number}
import requests
URL = "https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/pulls/{number}"
HEADERS = {"Authorization": f"token {TOKEN}"}
r = requests.get(URL, headers=HEADERS)
print(r.status_code, r.json())
const url = "https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/pulls/{number}";
const opts = {
method: "GET",
headers: {
"Authorization": `token ${TOKEN}`,
},
};
const r = await fetch(url, opts);
const data = await r.json();
console.log(r.status, data);
<?php
$url = "https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/pulls/{number}";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
$headers = [
"Authorization: token $TOKEN",
];
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
echo $code . "\n" . $response;
use LWP::UserAgent;
use JSON;
use HTTP::Request;
my $ua = LWP::UserAgent->new;
my $req = HTTP::Request->new(GET => "https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/pulls/{number}");
$req->header("Authorization" => "token $TOKEN");
my $res = $ua->request($req);
print $res->code, "\n", $res->decoded_content;
import java.net.URI;
import java.net.http.*;
HttpClient client = HttpClient.newHttpClient();
HttpRequest.Builder rb = HttpRequest.newBuilder()
.uri(URI.create("https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/pulls/{number}"))
.header("Authorization", "token " + TOKEN)
.get(HttpRequest.BodyPublishers.noBody());
HttpResponse<String> r = client.send(rb.build(), HttpResponse.BodyHandlers.ofString());
System.out.println(r.statusCode() + "\n" + r.body());
π¦ Expected response (200)
{"id": 50, "number": 1, "title": "Add feature X", "state": "open", "body": "...", "comments_list": []}
GET
/repos/{owner}/{repo}/releases
π auth
Lista releases.
curl
python
javascript
php
perl
java
curl -X GET \
-H "Authorization: token $TOKEN" \
https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/releases
import requests
URL = "https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/releases"
HEADERS = {"Authorization": f"token {TOKEN}"}
r = requests.get(URL, headers=HEADERS)
print(r.status_code, r.json())
const url = "https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/releases";
const opts = {
method: "GET",
headers: {
"Authorization": `token ${TOKEN}`,
},
};
const r = await fetch(url, opts);
const data = await r.json();
console.log(r.status, data);
<?php
$url = "https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/releases";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
$headers = [
"Authorization: token $TOKEN",
];
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
echo $code . "\n" . $response;
use LWP::UserAgent;
use JSON;
use HTTP::Request;
my $ua = LWP::UserAgent->new;
my $req = HTTP::Request->new(GET => "https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/releases");
$req->header("Authorization" => "token $TOKEN");
my $res = $ua->request($req);
print $res->code, "\n", $res->decoded_content;
import java.net.URI;
import java.net.http.*;
HttpClient client = HttpClient.newHttpClient();
HttpRequest.Builder rb = HttpRequest.newBuilder()
.uri(URI.create("https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/releases"))
.header("Authorization", "token " + TOKEN)
.get(HttpRequest.BodyPublishers.noBody());
HttpResponse<String> r = client.send(rb.build(), HttpResponse.BodyHandlers.ofString());
System.out.println(r.statusCode() + "\n" + r.body());
π¦ Expected response (200)
[
{"id": 5, "tag_name": "v1.0.0", "name": "First stable", "draft": false, "prerelease": false, "published_at": "2026-05-10T12:00:00Z"}
]
GET
/repos/{owner}/{repo}/releases/{tag}
π auth
Release-detalj.
curl
python
javascript
php
perl
java
curl -X GET \
-H "Authorization: token $TOKEN" \
https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/releases/{tag}
import requests
URL = "https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/releases/{tag}"
HEADERS = {"Authorization": f"token {TOKEN}"}
r = requests.get(URL, headers=HEADERS)
print(r.status_code, r.json())
const url = "https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/releases/{tag}";
const opts = {
method: "GET",
headers: {
"Authorization": `token ${TOKEN}`,
},
};
const r = await fetch(url, opts);
const data = await r.json();
console.log(r.status, data);
<?php
$url = "https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/releases/{tag}";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
$headers = [
"Authorization: token $TOKEN",
];
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
echo $code . "\n" . $response;
use LWP::UserAgent;
use JSON;
use HTTP::Request;
my $ua = LWP::UserAgent->new;
my $req = HTTP::Request->new(GET => "https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/releases/{tag}");
$req->header("Authorization" => "token $TOKEN");
my $res = $ua->request($req);
print $res->code, "\n", $res->decoded_content;
import java.net.URI;
import java.net.http.*;
HttpClient client = HttpClient.newHttpClient();
HttpRequest.Builder rb = HttpRequest.newBuilder()
.uri(URI.create("https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/releases/{tag}"))
.header("Authorization", "token " + TOKEN)
.get(HttpRequest.BodyPublishers.noBody());
HttpResponse<String> r = client.send(rb.build(), HttpResponse.BodyHandlers.ofString());
System.out.println(r.statusCode() + "\n" + r.body());
π¦ Expected response (200)
{"id": 5, "tag_name": "v1.0.0", "name": "First stable", "body": "Changelog...", "draft": false}
GET
/repos/{owner}/{repo}/actions/runs
π auth
Lista workflow-runs.
curl
python
javascript
php
perl
java
curl -X GET \
-H "Authorization: token $TOKEN" \
https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/actions/runs
import requests
URL = "https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/actions/runs"
HEADERS = {"Authorization": f"token {TOKEN}"}
r = requests.get(URL, headers=HEADERS)
print(r.status_code, r.json())
const url = "https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/actions/runs";
const opts = {
method: "GET",
headers: {
"Authorization": `token ${TOKEN}`,
},
};
const r = await fetch(url, opts);
const data = await r.json();
console.log(r.status, data);
<?php
$url = "https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/actions/runs";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
$headers = [
"Authorization: token $TOKEN",
];
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
echo $code . "\n" . $response;
use LWP::UserAgent;
use JSON;
use HTTP::Request;
my $ua = LWP::UserAgent->new;
my $req = HTTP::Request->new(GET => "https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/actions/runs");
$req->header("Authorization" => "token $TOKEN");
my $res = $ua->request($req);
print $res->code, "\n", $res->decoded_content;
import java.net.URI;
import java.net.http.*;
HttpClient client = HttpClient.newHttpClient();
HttpRequest.Builder rb = HttpRequest.newBuilder()
.uri(URI.create("https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/actions/runs"))
.header("Authorization", "token " + TOKEN)
.get(HttpRequest.BodyPublishers.noBody());
HttpResponse<String> r = client.send(rb.build(), HttpResponse.BodyHandlers.ofString());
System.out.println(r.statusCode() + "\n" + r.body());
π¦ Expected response (200)
[{"id": 17, "status": "success", "head_branch": "main", "head_sha": "f0a1b2c", "run_number": 4, "created_at": "2026-05-13T09:00:00Z"}]
GET
/repos/{owner}/{repo}/actions/runs/{id}
π auth
Run-detalj.
curl
python
javascript
php
perl
java
curl -X GET \
-H "Authorization: token $TOKEN" \
https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/actions/runs/{id}
import requests
URL = "https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/actions/runs/{id}"
HEADERS = {"Authorization": f"token {TOKEN}"}
r = requests.get(URL, headers=HEADERS)
print(r.status_code, r.json())
const url = "https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/actions/runs/{id}";
const opts = {
method: "GET",
headers: {
"Authorization": `token ${TOKEN}`,
},
};
const r = await fetch(url, opts);
const data = await r.json();
console.log(r.status, data);
<?php
$url = "https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/actions/runs/{id}";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
$headers = [
"Authorization: token $TOKEN",
];
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
echo $code . "\n" . $response;
use LWP::UserAgent;
use JSON;
use HTTP::Request;
my $ua = LWP::UserAgent->new;
my $req = HTTP::Request->new(GET => "https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/actions/runs/{id}");
$req->header("Authorization" => "token $TOKEN");
my $res = $ua->request($req);
print $res->code, "\n", $res->decoded_content;
import java.net.URI;
import java.net.http.*;
HttpClient client = HttpClient.newHttpClient();
HttpRequest.Builder rb = HttpRequest.newBuilder()
.uri(URI.create("https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/actions/runs/{id}"))
.header("Authorization", "token " + TOKEN)
.get(HttpRequest.BodyPublishers.noBody());
HttpResponse<String> r = client.send(rb.build(), HttpResponse.BodyHandlers.ofString());
System.out.println(r.statusCode() + "\n" + r.body());
π¦ Expected response (200)
{"id": 17, "status": "success", "head_branch": "main", "head_sha": "f0a1b2c", "jobs": []}
GET
/repos/{owner}/{repo}/actions/runs/{id}/jobs
π auth
Jobs i en run.
curl
python
javascript
php
perl
java
curl -X GET \
-H "Authorization: token $TOKEN" \
https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/actions/runs/{id}/jobs
import requests
URL = "https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/actions/runs/{id}/jobs"
HEADERS = {"Authorization": f"token {TOKEN}"}
r = requests.get(URL, headers=HEADERS)
print(r.status_code, r.json())
const url = "https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/actions/runs/{id}/jobs";
const opts = {
method: "GET",
headers: {
"Authorization": `token ${TOKEN}`,
},
};
const r = await fetch(url, opts);
const data = await r.json();
console.log(r.status, data);
<?php
$url = "https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/actions/runs/{id}/jobs";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
$headers = [
"Authorization: token $TOKEN",
];
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
echo $code . "\n" . $response;
use LWP::UserAgent;
use JSON;
use HTTP::Request;
my $ua = LWP::UserAgent->new;
my $req = HTTP::Request->new(GET => "https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/actions/runs/{id}/jobs");
$req->header("Authorization" => "token $TOKEN");
my $res = $ua->request($req);
print $res->code, "\n", $res->decoded_content;
import java.net.URI;
import java.net.http.*;
HttpClient client = HttpClient.newHttpClient();
HttpRequest.Builder rb = HttpRequest.newBuilder()
.uri(URI.create("https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/actions/runs/{id}/jobs"))
.header("Authorization", "token " + TOKEN)
.get(HttpRequest.BodyPublishers.noBody());
HttpResponse<String> r = client.send(rb.build(), HttpResponse.BodyHandlers.ofString());
System.out.println(r.statusCode() + "\n" + r.body());
π¦ Expected response (200)
[{"id": 88, "name": "build", "status": "success", "started_at": "2026-05-13T09:00:10Z", "completed_at": "2026-05-13T09:01:42Z"}]
GET
/repos/{owner}/{repo}/actions/jobs/{id}/logs
π auth
Plain text-loggar (Content-Type: text/plain).
curl
python
javascript
php
perl
java
curl -X GET \
-H "Authorization: token $TOKEN" \
https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/actions/jobs/{id}/logs
import requests
URL = "https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/actions/jobs/{id}/logs"
HEADERS = {"Authorization": f"token {TOKEN}"}
r = requests.get(URL, headers=HEADERS)
print(r.status_code, r.json())
const url = "https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/actions/jobs/{id}/logs";
const opts = {
method: "GET",
headers: {
"Authorization": `token ${TOKEN}`,
},
};
const r = await fetch(url, opts);
const data = await r.json();
console.log(r.status, data);
<?php
$url = "https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/actions/jobs/{id}/logs";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
$headers = [
"Authorization: token $TOKEN",
];
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
echo $code . "\n" . $response;
use LWP::UserAgent;
use JSON;
use HTTP::Request;
my $ua = LWP::UserAgent->new;
my $req = HTTP::Request->new(GET => "https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/actions/jobs/{id}/logs");
$req->header("Authorization" => "token $TOKEN");
my $res = $ua->request($req);
print $res->code, "\n", $res->decoded_content;
import java.net.URI;
import java.net.http.*;
HttpClient client = HttpClient.newHttpClient();
HttpRequest.Builder rb = HttpRequest.newBuilder()
.uri(URI.create("https://dev.noackhub.noackhosting.net/api/v2/repos/{owner}/{repo}/actions/jobs/{id}/logs"))
.header("Authorization", "token " + TOKEN)
.get(HttpRequest.BodyPublishers.noBody());
HttpResponse<String> r = client.send(rb.build(), HttpResponse.BodyHandlers.ofString());
System.out.println(r.statusCode() + "\n" + r.body());
π¦ Expected response (200)
Set up job
Run actions/checkout@v4
...
GET
/admin/invites
π auth
Lista invites. customer_admin ser bara egna.
curl
python
javascript
php
perl
java
curl -X GET \
-H "Authorization: token $TOKEN" \
https://dev.noackhub.noackhosting.net/api/v2/admin/invites
import requests
URL = "https://dev.noackhub.noackhosting.net/api/v2/admin/invites"
HEADERS = {"Authorization": f"token {TOKEN}"}
r = requests.get(URL, headers=HEADERS)
print(r.status_code, r.json())
const url = "https://dev.noackhub.noackhosting.net/api/v2/admin/invites";
const opts = {
method: "GET",
headers: {
"Authorization": `token ${TOKEN}`,
},
};
const r = await fetch(url, opts);
const data = await r.json();
console.log(r.status, data);
<?php
$url = "https://dev.noackhub.noackhosting.net/api/v2/admin/invites";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
$headers = [
"Authorization: token $TOKEN",
];
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
echo $code . "\n" . $response;
use LWP::UserAgent;
use JSON;
use HTTP::Request;
my $ua = LWP::UserAgent->new;
my $req = HTTP::Request->new(GET => "https://dev.noackhub.noackhosting.net/api/v2/admin/invites");
$req->header("Authorization" => "token $TOKEN");
my $res = $ua->request($req);
print $res->code, "\n", $res->decoded_content;
import java.net.URI;
import java.net.http.*;
HttpClient client = HttpClient.newHttpClient();
HttpRequest.Builder rb = HttpRequest.newBuilder()
.uri(URI.create("https://dev.noackhub.noackhosting.net/api/v2/admin/invites"))
.header("Authorization", "token " + TOKEN)
.get(HttpRequest.BodyPublishers.noBody());
HttpResponse<String> r = client.send(rb.build(), HttpResponse.BodyHandlers.ofString());
System.out.println(r.statusCode() + "\n" + r.body());
π¦ Expected response (200)
[
{"id": 3, "username": "kund1", "email": "kund@ex.se", "role": "user", "invited_by": "mikael", "status": "pending", "created_at": "2026-05-13T07:00:00Z"}
]
POST
/admin/invites
π auth
Skapa invite + skicka aktiveringsmail.
Request body (JSON):
{
"email": "kund@ex.se",
"fullName": "Kund Namn",
"role": "user",
"username": "kund1"
}
curl
python
javascript
php
perl
java
curl -X POST \
-H "Authorization: token $TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"email": "kund@ex.se",
"fullName": "Kund Namn",
"role": "user",
"username": "kund1"
}' \
https://dev.noackhub.noackhosting.net/api/v2/admin/invites
import requests
URL = "https://dev.noackhub.noackhosting.net/api/v2/admin/invites"
HEADERS = {"Authorization": f"token {TOKEN}"}
BODY = {
"email": "kund@ex.se",
"fullName": "Kund Namn",
"role": "user",
"username": "kund1"
}
r = requests.post(URL, headers=HEADERS, json=BODY)
print(r.status_code, r.json())
const url = "https://dev.noackhub.noackhosting.net/api/v2/admin/invites";
const opts = {
method: "POST",
headers: {
"Authorization": `token ${TOKEN}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"email": "kund@ex.se",
"fullName": "Kund Namn",
"role": "user",
"username": "kund1"
}),
};
const r = await fetch(url, opts);
const data = await r.json();
console.log(r.status, data);
<?php
$url = "https://dev.noackhub.noackhosting.net/api/v2/admin/invites";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
$headers = [
"Authorization: token $TOKEN",
"Content-Type: application/json",
];
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$body = ["username" => "kund1", "email" => "kund@ex.se", "fullName" => "Kund Namn", "role" => "user"];
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($body));
$response = curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
echo $code . "\n" . $response;
use LWP::UserAgent;
use JSON;
use HTTP::Request;
my $ua = LWP::UserAgent->new;
my $req = HTTP::Request->new(POST => "https://dev.noackhub.noackhosting.net/api/v2/admin/invites");
$req->header("Authorization" => "token $TOKEN");
$req->header("Content-Type" => "application/json");
$req->content(encode_json({ role => "user", username => "kund1", email => "kund@ex.se", fullName => "Kund Namn" }));
my $res = $ua->request($req);
print $res->code, "\n", $res->decoded_content;
import java.net.URI;
import java.net.http.*;
HttpClient client = HttpClient.newHttpClient();
HttpRequest.Builder rb = HttpRequest.newBuilder()
.uri(URI.create("https://dev.noackhub.noackhosting.net/api/v2/admin/invites"))
.header("Authorization", "token " + TOKEN)
.header("Content-Type", "application/json")
.post(HttpRequest.BodyPublishers.ofString("{ \"email\": \"kund@ex.se\", \"fullName\": \"Kund Namn\", \"role\": \"user\", \"username\": \"kund1\" }"));
HttpResponse<String> r = client.send(rb.build(), HttpResponse.BodyHandlers.ofString());
System.out.println(r.statusCode() + "\n" + r.body());
π¦ Expected response (201)
{"id": 4, "username": "kund1", "email": "kund@ex.se", "role": "user", "token": "...", "status": "pending"}
GET
/admin/users
π auth
Lista alla anvΓ€ndare.
curl
python
javascript
php
perl
java
curl -X GET \
-H "Authorization: token $TOKEN" \
https://dev.noackhub.noackhosting.net/api/v2/admin/users
import requests
URL = "https://dev.noackhub.noackhosting.net/api/v2/admin/users"
HEADERS = {"Authorization": f"token {TOKEN}"}
r = requests.get(URL, headers=HEADERS)
print(r.status_code, r.json())
const url = "https://dev.noackhub.noackhosting.net/api/v2/admin/users";
const opts = {
method: "GET",
headers: {
"Authorization": `token ${TOKEN}`,
},
};
const r = await fetch(url, opts);
const data = await r.json();
console.log(r.status, data);
<?php
$url = "https://dev.noackhub.noackhosting.net/api/v2/admin/users";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
$headers = [
"Authorization: token $TOKEN",
];
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
echo $code . "\n" . $response;
use LWP::UserAgent;
use JSON;
use HTTP::Request;
my $ua = LWP::UserAgent->new;
my $req = HTTP::Request->new(GET => "https://dev.noackhub.noackhosting.net/api/v2/admin/users");
$req->header("Authorization" => "token $TOKEN");
my $res = $ua->request($req);
print $res->code, "\n", $res->decoded_content;
import java.net.URI;
import java.net.http.*;
HttpClient client = HttpClient.newHttpClient();
HttpRequest.Builder rb = HttpRequest.newBuilder()
.uri(URI.create("https://dev.noackhub.noackhosting.net/api/v2/admin/users"))
.header("Authorization", "token " + TOKEN)
.get(HttpRequest.BodyPublishers.noBody());
HttpResponse<String> r = client.send(rb.build(), HttpResponse.BodyHandlers.ofString());
System.out.println(r.statusCode() + "\n" + r.body());
π¦ Expected response (200)
[
{"id": 1, "login": "mikael", "email": "mikael@noackinfra.se", "is_admin": true, "active": true, "role": "site_admin"},
{"id": 4, "login": "anna", "email": "anna@ex.se", "is_admin": false, "active": true, "role": "user"}
]
POST
/admin/users/{user}/disable
π auth
Inaktivera user.
curl
python
javascript
php
perl
java
curl -X POST \
-H "Authorization: token $TOKEN" \
https://dev.noackhub.noackhosting.net/api/v2/admin/users/{user}/disable
import requests
URL = "https://dev.noackhub.noackhosting.net/api/v2/admin/users/{user}/disable"
HEADERS = {"Authorization": f"token {TOKEN}"}
r = requests.post(URL, headers=HEADERS)
print(r.status_code, r.json())
const url = "https://dev.noackhub.noackhosting.net/api/v2/admin/users/{user}/disable";
const opts = {
method: "POST",
headers: {
"Authorization": `token ${TOKEN}`,
},
};
const r = await fetch(url, opts);
const data = await r.json();
console.log(r.status, data);
<?php
$url = "https://dev.noackhub.noackhosting.net/api/v2/admin/users/{user}/disable";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
$headers = [
"Authorization: token $TOKEN",
];
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
echo $code . "\n" . $response;
use LWP::UserAgent;
use JSON;
use HTTP::Request;
my $ua = LWP::UserAgent->new;
my $req = HTTP::Request->new(POST => "https://dev.noackhub.noackhosting.net/api/v2/admin/users/{user}/disable");
$req->header("Authorization" => "token $TOKEN");
my $res = $ua->request($req);
print $res->code, "\n", $res->decoded_content;
import java.net.URI;
import java.net.http.*;
HttpClient client = HttpClient.newHttpClient();
HttpRequest.Builder rb = HttpRequest.newBuilder()
.uri(URI.create("https://dev.noackhub.noackhosting.net/api/v2/admin/users/{user}/disable"))
.header("Authorization", "token " + TOKEN)
.post(HttpRequest.BodyPublishers.noBody());
HttpResponse<String> r = client.send(rb.build(), HttpResponse.BodyHandlers.ofString());
System.out.println(r.statusCode() + "\n" + r.body());
π¦ Expected response (200)
{"ok": true}
POST
/admin/users/{user}/enable
π auth
Aktivera user.
curl
python
javascript
php
perl
java
curl -X POST \
-H "Authorization: token $TOKEN" \
https://dev.noackhub.noackhosting.net/api/v2/admin/users/{user}/enable
import requests
URL = "https://dev.noackhub.noackhosting.net/api/v2/admin/users/{user}/enable"
HEADERS = {"Authorization": f"token {TOKEN}"}
r = requests.post(URL, headers=HEADERS)
print(r.status_code, r.json())
const url = "https://dev.noackhub.noackhosting.net/api/v2/admin/users/{user}/enable";
const opts = {
method: "POST",
headers: {
"Authorization": `token ${TOKEN}`,
},
};
const r = await fetch(url, opts);
const data = await r.json();
console.log(r.status, data);
<?php
$url = "https://dev.noackhub.noackhosting.net/api/v2/admin/users/{user}/enable";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
$headers = [
"Authorization: token $TOKEN",
];
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
echo $code . "\n" . $response;
use LWP::UserAgent;
use JSON;
use HTTP::Request;
my $ua = LWP::UserAgent->new;
my $req = HTTP::Request->new(POST => "https://dev.noackhub.noackhosting.net/api/v2/admin/users/{user}/enable");
$req->header("Authorization" => "token $TOKEN");
my $res = $ua->request($req);
print $res->code, "\n", $res->decoded_content;
import java.net.URI;
import java.net.http.*;
HttpClient client = HttpClient.newHttpClient();
HttpRequest.Builder rb = HttpRequest.newBuilder()
.uri(URI.create("https://dev.noackhub.noackhosting.net/api/v2/admin/users/{user}/enable"))
.header("Authorization", "token " + TOKEN)
.post(HttpRequest.BodyPublishers.noBody());
HttpResponse<String> r = client.send(rb.build(), HttpResponse.BodyHandlers.ofString());
System.out.println(r.statusCode() + "\n" + r.body());
π¦ Expected response (200)
{"ok": true}
DELETE
/admin/users/{user}
π auth
Radera user (purge).
curl
python
javascript
php
perl
java
curl -X DELETE \
-H "Authorization: token $TOKEN" \
https://dev.noackhub.noackhosting.net/api/v2/admin/users/{user}
import requests
URL = "https://dev.noackhub.noackhosting.net/api/v2/admin/users/{user}"
HEADERS = {"Authorization": f"token {TOKEN}"}
r = requests.delete(URL, headers=HEADERS)
print(r.status_code, r.json())
const url = "https://dev.noackhub.noackhosting.net/api/v2/admin/users/{user}";
const opts = {
method: "DELETE",
headers: {
"Authorization": `token ${TOKEN}`,
},
};
const r = await fetch(url, opts);
const data = await r.json();
console.log(r.status, data);
<?php
$url = "https://dev.noackhub.noackhosting.net/api/v2/admin/users/{user}";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE");
$headers = [
"Authorization: token $TOKEN",
];
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
echo $code . "\n" . $response;
use LWP::UserAgent;
use JSON;
use HTTP::Request;
my $ua = LWP::UserAgent->new;
my $req = HTTP::Request->new(DELETE => "https://dev.noackhub.noackhosting.net/api/v2/admin/users/{user}");
$req->header("Authorization" => "token $TOKEN");
my $res = $ua->request($req);
print $res->code, "\n", $res->decoded_content;
import java.net.URI;
import java.net.http.*;
HttpClient client = HttpClient.newHttpClient();
HttpRequest.Builder rb = HttpRequest.newBuilder()
.uri(URI.create("https://dev.noackhub.noackhosting.net/api/v2/admin/users/{user}"))
.header("Authorization", "token " + TOKEN)
.delete(HttpRequest.BodyPublishers.noBody());
HttpResponse<String> r = client.send(rb.build(), HttpResponse.BodyHandlers.ofString());
System.out.println(r.statusCode() + "\n" + r.body());
π¦ Expected response (200)
{"ok": true}