Commit e53b0a62 authored by marius david's avatar marius david
Browse files

fetcher: use GitLab

parent 99d38cb9
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -4,12 +4,13 @@
import os
import traceback
from entry_manager import EntryManager
from lib.github_forge import GithubForge
#from lib.github_forge import GithubForge
from lib.gitlab_forge import GitlabForge

class LemmyFetcher:
	def __init__(self, entry_manager):
		self.entry_manager = entry_manager
		self.forge = GithubForge()
		self.forge = GitlabForge()
		self.forge.from_env()
		self.read_ids = set()
		os.makedirs("processed_posts", exist_ok = True)
+33 −0
Original line number Diff line number Diff line
import requests

from lib.forge_base import ForgeBase
import os

class GitlabForge(ForgeBase):
	def __init__(self):
		self.token = None
	
	def from_env(self):
		self.token = os.environ.get("GITLAB_TOKEN")
		self.domain = os.environ.get("GITLAB_DOMAIN")
		self.project_id = os.environ.get("GITLAB_PROJECT_ID")
	
	def does_pr_already_exist(self, from_branch):
		url = "https://{}/api/v4/projects/{}/merge_requests?state=opened&source_branch={}&target_branch={}".format(self.domain, self.project_id, from_branch, "main")
		req = requests.get(url)
		req.raise_for_status()

		return len(req.json()) > 0
	
	def make_pr_between_branches(self, from_branch, to_branch, title, body):
		url = "https://{}/api/v4/projects/{}/merge_requests".format(self.domain, self.project_id)
		req = requests.post(url, params={
			"source_branch": from_branch,
			"target_branch": to_branch,
			"title": title,
			"description": body
		}, headers = {
			"PRIVATE-TOKEN": self.token
		})
		req.raise_for_status()
		return req.json()["web_url"]
 No newline at end of file