42 lines
1.1 KiB
C
42 lines
1.1 KiB
C
#include "giteaAPI.h"
|
|
#include <curl/curl.h>
|
|
#include <curl/easy.h>
|
|
#include <string.h>
|
|
#include <malloc.h>
|
|
|
|
|
|
SESSION teaui_gitea_session(const char *instance){
|
|
curl_global_init(0);
|
|
CURL *handle = curl_easy_init();
|
|
SESSION ret = {.handle=handle};
|
|
memcpy(ret.instance, instance, strlen(instance));
|
|
return ret;
|
|
}
|
|
|
|
void teaui_gitea_cleanup(SESSION s){
|
|
curl_global_cleanup();
|
|
curl_easy_cleanup(s.handle);
|
|
}
|
|
|
|
void teaui_gitea_auth_basic(SESSION s, const char *user, const char *pass){
|
|
curl_easy_setopt(s.handle, CURLOPT_USERNAME, user);
|
|
curl_easy_setopt(s.handle, CURLOPT_PASSWORD, pass);
|
|
}
|
|
|
|
void teaui_gitea_auth_token(SESSION s, const char *token){
|
|
char header[256] = "Authorization: ";
|
|
strcat(header, token);
|
|
curl_easy_setopt(s.handle , CURLOPT_HEADERDATA, header);
|
|
}
|
|
|
|
const char* teaui_gitea_auth_generateToken(SESSION s, const char * username){
|
|
char endpoint[1024];
|
|
strcpy(endpoint, s.instance);
|
|
strcat(endpoint, "/api/v1/users/");
|
|
strcat(endpoint, username);
|
|
strcat(endpoint, "/tokens");
|
|
curl_easy_setopt(s.handle, CURLOPT_URL, endpoint);
|
|
curl_easy_perform(s.handle);
|
|
return "";
|
|
}
|