Compare commits
17 Commits
Author | SHA1 | Date |
---|---|---|
stupidcomputer | e26b3cdfbc | |
stupidcomputer | 1dc13010e5 | |
stupidcomputer | 5544c8c83d | |
stupidcomputer | 879cf0a8d6 | |
stupidcomputer | 5c56b2ca29 | |
stupidcomputer | 3e68945bfc | |
stupidcomputer | 14680c1746 | |
stupidcomputer | 82ce1c7f6d | |
stupidcomputer | 67314c71cf | |
stupidcomputer | 13475a8531 | |
stupidcomputer | c974e278c9 | |
stupidcomputer | e9f1d2b00d | |
stupidcomputer | 4804488943 | |
stupidcomputer | 6e8a193f8f | |
stupidcomputer | 486d0565d4 | |
stupidcomputer | 16cc41a5bc | |
stupidcomputer | 7bbc6ae562 |
|
@ -0,0 +1,2 @@
|
|||
__pycache__/
|
||||
testing_configuration.cfg
|
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
"nixEnvSelector.nixFile": "${workspaceFolder}/shell.nix"
|
||||
}
|
23
LICENSE
23
LICENSE
|
@ -210,26 +210,3 @@ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY C
|
|||
17. Interpretation of Sections 15 and 16.
|
||||
|
||||
If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
gitea-github-sync
|
||||
Copyright (C) 2024 rndusr
|
||||
|
||||
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If your software can interact with users remotely through a computer network, you should also make sure that it provides a way for users to get its source. For example, if your program is a web application, its interface could display a "Source" link that leads users to an archive of the code. There are many ways you could offer source, and different solutions will be better for different programs; see section 13 for the specific requirements.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU AGPL, see <http://www.gnu.org/licenses/>.
|
||||
|
|
21
README.md
21
README.md
|
@ -1,18 +1,11 @@
|
|||
# gitea-github-sync
|
||||
|
||||
synchronize git repos, and associated issues, prs, and other repo metadata
|
||||
Automatically mirror from a private code forge to Github, and bidirectionally synchronize issues between two repos
|
||||
|
||||
## things to do
|
||||
- [ ] write a nix derivation for [giteapy](https://github.com/dblueai/giteapy)
|
||||
- [ ] integrate it into the shell.nix
|
||||
- [ ] define configuration
|
||||
- [ ] do the main thing
|
||||
- [ ] standardize the issue, pr, and other event objects
|
||||
- [ ] write a 'diff' function to return the delta between two objects
|
||||
- [ ] return a series of api calls to reconcile the problems
|
||||
- [ ] handle race conditions?
|
||||
- [ ] write documentation
|
||||
## Implementation notes
|
||||
|
||||
## license
|
||||
licensed agpl. see LICENSE for more details.
|
||||
gitea-github-sync is copyright rndusr, randomuser, stupidcomputer, et. al. 2024
|
||||
- The implementation matches up issue numbers, instead of coorelating them with a database or something. This is fine because we're only using this software on repos that have no issues (e.g. are brand new) and so therefore all the issue numbers will line up. For two mirrors with different issues, you'll have to pick one side to keep and another to purge.
|
||||
|
||||
## License
|
||||
|
||||
Licensed under the GNU Affero v3 license. (c) 2024 randomuser, stupidcomputer, etc.
|
|
@ -0,0 +1,332 @@
|
|||
from flask import Flask, request, redirect, abort, render_template
|
||||
import requests
|
||||
|
||||
from .webgit import Gitea, Github
|
||||
from .utils import issue_sentinel, generate_sentinel, create_signature
|
||||
|
||||
app = Flask(
|
||||
__name__,
|
||||
static_url_path="/bridge/static",
|
||||
static_folder="./static"
|
||||
)
|
||||
app.config.from_envvar('GIT_BRIDGE_SETTINGS')
|
||||
|
||||
@app.route("/bridge")
|
||||
def index():
|
||||
gitea = Gitea(
|
||||
api_token=app.config["GITEA_ACCESS_TOKEN"],
|
||||
instance_name=app.config["GITEA_INSTANCE_DOMAIN"],
|
||||
)
|
||||
|
||||
repos = gitea.get_user_repos().json()
|
||||
output = []
|
||||
for repo in repos:
|
||||
if not repo["private"]:
|
||||
output.append({
|
||||
"name": repo["name"],
|
||||
"desc": repo["description"],
|
||||
"url": repo["html_url"],
|
||||
})
|
||||
|
||||
return render_template("index.html", repos=output)
|
||||
|
||||
@app.route("/bridge/endpoints/gitea/repo", methods=["POST"])
|
||||
def gitea_handle_repo_action():
|
||||
"""
|
||||
Our plan of action for handling these events:
|
||||
- ignore deleting repositories -- this is a potentially destructive operation
|
||||
that *only* *the* *user* *should* *do*
|
||||
- create a cooresponding repo on github
|
||||
- create a push mirror to github so pushes to gitea get to github
|
||||
- create webhooks for issues (and in the future, pull requests) on both
|
||||
Gitea and Github ends
|
||||
"""
|
||||
|
||||
gitea = Gitea(
|
||||
api_token=app.config["GITEA_ACCESS_TOKEN"],
|
||||
instance_name=app.config["GITEA_INSTANCE_DOMAIN"]
|
||||
)
|
||||
github = Github(app.config["GITHUB_ACCESS_TOKEN"])
|
||||
|
||||
data = request.json
|
||||
|
||||
try:
|
||||
repository = data["repository"]
|
||||
|
||||
repo_action = data["action"]
|
||||
repo_id = repository["id"]
|
||||
repo_owner = repository["owner"]["login"]
|
||||
repo_name = repository["name"]
|
||||
repo_description = repository["description"]
|
||||
|
||||
except KeyError:
|
||||
abort(400) # the data isn't formatted correctly
|
||||
|
||||
if repo_action == "created":
|
||||
new_repo = github.create_repo(
|
||||
repo_name, repo_description
|
||||
)
|
||||
new_repo_url = new_repo.json()["html_url"]
|
||||
|
||||
gitea.add_push_target(
|
||||
repo_owner, repo_name, new_repo_url, repo_owner,
|
||||
app.config["GITHUB_ACCESS_TOKEN"]
|
||||
)
|
||||
gitea.force_push_target(
|
||||
repo_owner,
|
||||
repo_name
|
||||
)
|
||||
|
||||
github.create_webhook(
|
||||
repo_owner,
|
||||
repo_name,
|
||||
"https://{}/bridge/endpoints/github/issue".format(
|
||||
app.config["GITEA_INSTANCE_DOMAIN"]
|
||||
),
|
||||
["issues", "issue_comment"]
|
||||
)
|
||||
gitea.create_webhook(
|
||||
repo_owner,
|
||||
repo_name,
|
||||
"https://{}/bridge/endpoints/gitea/issue".format(
|
||||
app.config["GITEA_INSTANCE_DOMAIN"]
|
||||
),
|
||||
["issues", "issue_comment"]
|
||||
)
|
||||
|
||||
elif repo_action == "deleted":
|
||||
github.delete_repo(repo_owner, repo_name)
|
||||
|
||||
return ''
|
||||
|
||||
|
||||
@app.route("/bridge/endpoints/gitea/issue", methods=["POST"])
|
||||
def gitea_handle_issue_action():
|
||||
"""
|
||||
firstly, check if the sentinal is in the issue body
|
||||
- if it is, then stop processing the event
|
||||
(we don't want infinite loops)
|
||||
if we've opened an issue:
|
||||
- create a new one on the Github side
|
||||
- make it relate to the Gitea one
|
||||
- make the Gitea one related to the Github one
|
||||
|
||||
if we've commented:
|
||||
- add a comment to the cooresponding Github issue
|
||||
|
||||
if we've closed:
|
||||
- add a cooresponding comment and close the Github issue
|
||||
"""
|
||||
|
||||
gitea = Gitea(
|
||||
api_token=app.config["GITEA_ACCESS_TOKEN"],
|
||||
instance_name=app.config["GITEA_INSTANCE_DOMAIN"]
|
||||
)
|
||||
github = Github(app.config["GITHUB_ACCESS_TOKEN"])
|
||||
|
||||
data = request.json
|
||||
|
||||
try:
|
||||
event_type = data["action"]
|
||||
|
||||
repo_owner = data["repository"]["owner"]["login"]
|
||||
repo_name = data["repository"]["name"]
|
||||
issue_user = data["issue"]["user"]["login"]
|
||||
issue_user_url = "https://{}/{}".format(
|
||||
app.config["GITEA_INSTANCE_DOMAIN"],
|
||||
issue_user,
|
||||
)
|
||||
issue_number = data["issue"]["number"]
|
||||
|
||||
if event_type == "opened": # new issue created
|
||||
event_title = data["issue"]["title"]
|
||||
event_body = data["issue"]["body"]
|
||||
elif event_type == "created": # new comment on that issue
|
||||
event_title = None
|
||||
event_body = data["comment"]["body"]
|
||||
elif event_type == "closed": # issue closed
|
||||
event_title = None
|
||||
event_body = data["issue"]["body"]
|
||||
|
||||
event_url = data["issue"]["url"]
|
||||
|
||||
except KeyError as e:
|
||||
print(e, type(e))
|
||||
abort(400) # the data isn't formatted correctly
|
||||
|
||||
issue_sentinel_present = issue_sentinel in event_body
|
||||
|
||||
if event_type == "opened" and not issue_sentinel_present:
|
||||
issue_footer = create_signature(
|
||||
issue_user,
|
||||
issue_user_url,
|
||||
app.config["GITEA_INSTANCE_DOMAIN"],
|
||||
event_url,
|
||||
)
|
||||
|
||||
issue_body = "\n\n".join([
|
||||
event_body,
|
||||
issue_footer
|
||||
])
|
||||
|
||||
new_issue = github.create_issue(
|
||||
repo_owner,
|
||||
repo_name,
|
||||
event_title,
|
||||
issue_body,
|
||||
)
|
||||
|
||||
returned_data = new_issue.json()
|
||||
issue_comment_body = create_signature(
|
||||
"mirrored",
|
||||
returned_data["html_url"],
|
||||
app.config["GITEA_INSTANCE_DOMAIN"],
|
||||
returned_data["url"],
|
||||
)
|
||||
|
||||
gitea.leave_comment_on_issue_by_number(
|
||||
repo_owner,
|
||||
repo_name,
|
||||
issue_number,
|
||||
issue_comment_body,
|
||||
)
|
||||
|
||||
elif event_type == "created" and not issue_sentinel_present:
|
||||
comment_user = data["comment"]["user"]["login"]
|
||||
comment_user_url = "https://{}/{}".format(
|
||||
app.config["GITEA_INSTANCE_DOMAIN"],
|
||||
comment_user,
|
||||
)
|
||||
comment_footer = create_signature(
|
||||
comment_user,
|
||||
comment_user_url,
|
||||
app.config["GITEA_INSTANCE_DOMAIN"],
|
||||
event_url,
|
||||
)
|
||||
comment_body = "\n\n".join([
|
||||
event_body,
|
||||
comment_footer,
|
||||
])
|
||||
|
||||
github.leave_comment_on_issue_by_number(
|
||||
repo_owner,
|
||||
repo_name,
|
||||
issue_number,
|
||||
comment_body,
|
||||
)
|
||||
|
||||
elif event_type == "closed":
|
||||
github.close_issue_by_number(
|
||||
repo_owner,
|
||||
repo_name,
|
||||
issue_number,
|
||||
)
|
||||
|
||||
return ''
|
||||
|
||||
@app.route("/bridge/endpoints/github/issue", methods=["POST"])
|
||||
def github_handle_issue_action():
|
||||
gitea = Gitea(
|
||||
api_token=app.config["GITEA_ACCESS_TOKEN"],
|
||||
instance_name=app.config["GITEA_INSTANCE_DOMAIN"]
|
||||
)
|
||||
github = Github(app.config["GITHUB_ACCESS_TOKEN"])
|
||||
|
||||
data = request.json
|
||||
|
||||
try:
|
||||
event_type = data["action"]
|
||||
|
||||
repo_owner = data["repository"]["owner"]["login"]
|
||||
repo_name = data["repository"]["name"]
|
||||
issue_user = data["issue"]["user"]["login"]
|
||||
issue_user_url = "https://github.com/{}".format(
|
||||
issue_user,
|
||||
)
|
||||
issue_number = data["issue"]["number"]
|
||||
|
||||
if event_type == "opened": # new issue created
|
||||
event_title = data["issue"]["title"]
|
||||
event_body = data["issue"]["body"]
|
||||
elif event_type == "created": # new comment on that issue
|
||||
event_title = None
|
||||
event_body = data["comment"]["body"]
|
||||
elif event_type == "closed": # issue closed
|
||||
event_title = None
|
||||
event_body = data["issue"]["body"]
|
||||
|
||||
if not event_body: event_body = ""
|
||||
event_url = data["issue"]["url"]
|
||||
|
||||
except KeyError as e:
|
||||
print(e, type(e))
|
||||
abort(400) # the data isn't formatted correctly
|
||||
|
||||
issue_sentinel_present = issue_sentinel in event_body
|
||||
|
||||
if event_type == "opened" and not issue_sentinel_present:
|
||||
issue_footer = create_signature(
|
||||
issue_user,
|
||||
issue_user_url,
|
||||
app.config["GITEA_INSTANCE_DOMAIN"],
|
||||
event_url,
|
||||
)
|
||||
issue_body = "\n\n".join([
|
||||
event_body,
|
||||
issue_footer
|
||||
])
|
||||
|
||||
new_issue = gitea.create_issue(
|
||||
repo_owner,
|
||||
repo_name,
|
||||
event_title,
|
||||
issue_body
|
||||
)
|
||||
|
||||
returned_data = new_issue.json()
|
||||
issue_comment_body = create_signature(
|
||||
"mirrored",
|
||||
returned_data["html_url"],
|
||||
app.config["GITEA_INSTANCE_DOMAIN"],
|
||||
returned_data["url"],
|
||||
)
|
||||
|
||||
github.leave_comment_on_issue_by_number(
|
||||
repo_owner,
|
||||
repo_name,
|
||||
issue_number,
|
||||
issue_comment_body,
|
||||
)
|
||||
|
||||
elif event_type == "created" and not issue_sentinel_present:
|
||||
comment_user = data["comment"]["user"]["login"]
|
||||
comment_user_url = "https://github.com/{}".format(
|
||||
comment_user,
|
||||
)
|
||||
comment_footer = create_signature(
|
||||
comment_user,
|
||||
comment_user_url,
|
||||
app.config["GITEA_INSTANCE_DOMAIN"],
|
||||
event_url,
|
||||
)
|
||||
|
||||
comment_body = "\n\n".join([
|
||||
event_body,
|
||||
comment_footer,
|
||||
])
|
||||
|
||||
gitea.leave_comment_on_issue_by_number(
|
||||
repo_owner,
|
||||
repo_name,
|
||||
issue_number,
|
||||
comment_body
|
||||
)
|
||||
|
||||
elif event_type == "closed":
|
||||
gitea.close_issue_by_number(
|
||||
repo_owner,
|
||||
repo_name,
|
||||
issue_number,
|
||||
)
|
||||
|
||||
return ''
|
|
@ -0,0 +1,151 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="100mm"
|
||||
height="100mm"
|
||||
viewBox="0 0 100 100"
|
||||
version="1.1"
|
||||
id="svg1"
|
||||
xml:space="preserve"
|
||||
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25)"
|
||||
sodipodi:docname="logo.svg"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:cc="http://creativecommons.org/ns#"><sodipodi:namedview
|
||||
id="namedview1"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#000000"
|
||||
borderopacity="0.25"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:zoom="0.92381453"
|
||||
inkscape:cx="361.0032"
|
||||
inkscape:cy="323.65804"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1080"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="layer1" /><defs
|
||||
id="defs1"><pattern
|
||||
inkscape:collect="always"
|
||||
xlink:href="#pattern2853"
|
||||
id="pattern2864"
|
||||
patternTransform="translate(42.23939,37.38575)" /><pattern
|
||||
inkscape:collect="always"
|
||||
xlink:href="#pattern2838"
|
||||
id="pattern2845"
|
||||
patternTransform="translate(44.04167,18.04166)" /><linearGradient
|
||||
id="linearGradient2826"><stop
|
||||
style="stop-color:#dfb585;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop2828" /><stop
|
||||
style="stop-color:black;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop2830" /></linearGradient><linearGradient
|
||||
id="linearGradient2791"><stop
|
||||
style="stop-color:#4d95ee;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop2793" /><stop
|
||||
style="stop-color:black;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop2795" /></linearGradient><linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient2791"
|
||||
id="linearGradient2797"
|
||||
x1="213.11461"
|
||||
y1="113.20445"
|
||||
x2="213.11461"
|
||||
y2="351.95709"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(0,6)" /><linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient2826"
|
||||
id="linearGradient2832"
|
||||
x1="193.60881"
|
||||
y1="116.54642"
|
||||
x2="193.60881"
|
||||
y2="345.21436"
|
||||
gradientUnits="userSpaceOnUse" /><pattern
|
||||
patternUnits="userSpaceOnUse"
|
||||
width="31.916666"
|
||||
height="9.916667"
|
||||
patternTransform="translate(19.375,-47.29167)"
|
||||
id="pattern2838"><rect
|
||||
y="0.625"
|
||||
x="0.625"
|
||||
height="8.666667"
|
||||
width="30.666666"
|
||||
id="rect2836"
|
||||
style="opacity:1;fill:#7b6c52;fill-opacity:1;fill-rule:nonzero;stroke:#2d271e;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /></pattern><pattern
|
||||
patternUnits="userSpaceOnUse"
|
||||
width="34.958335"
|
||||
height="9.916667"
|
||||
patternTransform="translate(44.04167,18.04167)"
|
||||
id="pattern2853"><g
|
||||
id="g2849"
|
||||
transform="translate(-44.04167,-18.04167)"><rect
|
||||
style="fill:url(#pattern2845);stroke:none"
|
||||
width="31.916666"
|
||||
height="9.916667"
|
||||
x="44.041668"
|
||||
y="18.041666"
|
||||
id="rect2841" /><rect
|
||||
style="opacity:0;fill:#00cd0f;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
id="rect2847"
|
||||
width="9.166667"
|
||||
height="2.5833333"
|
||||
x="69.833336"
|
||||
y="21.916666" /></g></pattern></defs><g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"><g
|
||||
id="g4"
|
||||
transform="matrix(0.15875,0,0,0.15875,-3.8018304,-0.36145313)"> <path
|
||||
id="teabag"
|
||||
style="fill:#ffffff"
|
||||
d="M 395.9,484.2 269,423.2 c -12.5,-6 -17.9,-21.2 -11.8,-33.8 l 61,-126.9 c 6,-12.5 21.2,-17.9 33.8,-11.8 17.2,8.3 27.1,13 27.1,13 l -0.1,-109.2 16.7,-0.1 0.1,117.1 c 0,0 57.4,24.2 83.1,40.1 3.7,2.3 10.2,6.8 12.9,14.4 2.1,6.1 2,13.1 -1,19.3 l -61,126.9 c -6.2,12.7 -21.4,18.1 -33.9,12 z" /> <g
|
||||
id="g3"
|
||||
transform="translate(-3.8,-19.6)"> <g
|
||||
id="g2"> <path
|
||||
style="fill:#609926"
|
||||
d="m 622.7,149.8 c -4.1,-4.1 -9.6,-4 -9.6,-4 0,0 -117.2,6.6 -177.9,8 -13.3,0.3 -26.5,0.6 -39.6,0.7 0,39.1 0,78.2 0,117.2 -5.5,-2.6 -11.1,-5.3 -16.6,-7.9 0,-36.4 -0.1,-109.2 -0.1,-109.2 -29,0.4 -89.2,-2.2 -89.2,-2.2 0,0 -141.4,-7.1 -156.8,-8.5 -9.8,-0.6 -22.5,-2.1 -39,1.5 -8.7,1.8 -33.5,7.4 -53.8,26.9 -45,40.1 -33.5,103.9 -32.1,113.5 1.7,11.7 6.9,44.2 31.7,72.5 45.8,56.1 144.4,54.8 144.4,54.8 0,0 12.1,28.9 30.6,55.5 25,33.1 50.7,58.9 75.7,62 63,0 188.9,-0.1 188.9,-0.1 0,0 12,0.1 28.3,-10.3 14,-8.5 26.5,-23.4 26.5,-23.4 0,0 12.9,-13.8 30.9,-45.3 5.5,-9.7 10.1,-19.1 14.1,-28 0,0 55.2,-117.1 55.2,-231.1 -1.1,-34.5 -9.6,-40.6 -11.6,-42.6 z M 125.6,353.9 c -25.9,-8.5 -36.9,-18.7 -36.9,-18.7 0,0 -19.1,-13.4 -28.7,-39.8 -16.5,-44.2 -1.4,-71.2 -1.4,-71.2 0,0 8.4,-22.5 38.5,-30 13.8,-3.7 31,-3.1 31,-3.1 0,0 7.1,59.4 15.7,94.2 7.2,29.2 24.8,77.7 24.8,77.7 0,0 -26.1,-3.1 -43,-9.1 z m 300.3,107.6 c 0,0 -6.1,14.5 -19.6,15.4 -5.8,0.4 -10.3,-1.2 -10.3,-1.2 0,0 -0.3,-0.1 -5.3,-2.1 l -112.9,-55 c 0,0 -10.9,-5.7 -12.8,-15.6 -2.2,-8.1 2.7,-18.1 2.7,-18.1 L 322,273 c 0,0 4.8,-9.7 12.2,-13 0.6,-0.3 2.3,-1 4.5,-1.5 8.1,-2.1 18,2.8 18,2.8 L 467.4,315 c 0,0 12.6,5.7 15.3,16.2 1.9,7.4 -0.5,14 -1.8,17.2 -6.3,15.4 -55,113.1 -55,113.1 z"
|
||||
id="path1" /> <path
|
||||
style="fill:#609926"
|
||||
d="m 326.8,380.1 c -8.2,0.1 -15.4,5.8 -17.3,13.8 -1.9,8 2,16.3 9.1,20 7.7,4 17.5,1.8 22.7,-5.4 5.1,-7.1 4.3,-16.9 -1.8,-23.1 l 24,-49.1 c 1.5,0.1 3.7,0.2 6.2,-0.5 4.1,-0.9 7.1,-3.6 7.1,-3.6 4.2,1.8 8.6,3.8 13.2,6.1 4.8,2.4 9.3,4.9 13.4,7.3 0.9,0.5 1.8,1.1 2.8,1.9 1.6,1.3 3.4,3.1 4.7,5.5 1.9,5.5 -1.9,14.9 -1.9,14.9 -2.3,7.6 -18.4,40.6 -18.4,40.6 -8.1,-0.2 -15.3,5 -17.7,12.5 -2.6,8.1 1.1,17.3 8.9,21.3 7.8,4 17.4,1.7 22.5,-5.3 5,-6.8 4.6,-16.3 -1.1,-22.6 1.9,-3.7 3.7,-7.4 5.6,-11.3 5,-10.4 13.5,-30.4 13.5,-30.4 0.9,-1.7 5.7,-10.3 2.7,-21.3 -2.5,-11.4 -12.6,-16.7 -12.6,-16.7 -12.2,-7.9 -29.2,-15.2 -29.2,-15.2 0,0 0,-4.1 -1.1,-7.1 -1.1,-3.1 -2.8,-5.1 -3.9,-6.3 4.7,-9.7 9.4,-19.3 14.1,-29 -4.1,-2 -8.1,-4 -12.2,-6.1 -4.8,9.8 -9.7,19.7 -14.5,29.5 -6.7,-0.1 -12.9,3.5 -16.1,9.4 -3.4,6.3 -2.7,14.1 1.9,19.8 -8.2,16.8 -16.4,33.6 -24.6,50.4 z"
|
||||
id="path2" /> </g> </g> </g><g
|
||||
id="g1"
|
||||
transform="matrix(0.50182484,0,0,0.35249319,-51.630035,18.972095)"><path
|
||||
id="path2799"
|
||||
style="fill:#7b6c52;fill-opacity:1;fill-rule:nonzero;stroke:#2d271e;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
|
||||
d="m 341.66665,225.23539 c 0,-12.89512 0,-90.69934 0,-105.23535 0,-29.072012 23.59467,-52.666688 52.66669,-52.666688 29.07201,0 52.66668,23.594676 52.66668,52.666688 L 418.05691,30.666667 H -18.056812 L -47.00002,120.00004 c 0,-29.072012 23.594674,-52.666688 52.666691,-52.666688 29.07201,0 52.66668,23.594676 52.66668,52.666688 0,14.53601 0,92.94011 0,105.23535 m 24.222179,0 c 0,-12.89512 0,-90.69934 0,-105.23535 0,-29.072012 23.59467,-52.666688 52.66669,-52.666688 29.07201,0 52.66668,23.594676 52.66668,52.666688 0,14.53601 0,92.94011 0,105.23535 m 24.22219,0 c 0,-12.89512 0,-90.69934 0,-105.23535 0,-29.072012 23.59467,-52.666688 52.66669,-52.666688 29.07201,0 52.66668,23.594676 52.66668,52.666688 0,14.53601 0,92.94011 0,105.23535"
|
||||
sodipodi:nodetypes="cssccccssccsssccsssc" /><path
|
||||
style="opacity:0.7;fill:url(#linearGradient2797);fill-opacity:1;fill-rule:evenodd;stroke:#447cc1;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m -6.6627813,217.65413 c 0,-28.37004 -13.1115797,-86.58823 0.4458511,-86.32344 84.6560832,1.65344 142.3439102,8.5 158.4814802,9.29365 32.27513,1.5873 58.20106,-4.23281 97.8836,-6.34921 39.68254,-2.1164 74.60317,3.70371 107.93651,3.17461 33.33333,-0.52911 37.43386,-3.96826 49.73545,-2.64551 24.08055,2.58931 3.8201,42.09524 3.8201,86.01059"
|
||||
id="path1884"
|
||||
sodipodi:nodetypes="csssssc" /><path
|
||||
style="fill:url(#linearGradient2832);fill-opacity:1;fill-rule:evenodd;stroke:#784e1f;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 421.31443,97.523845 c 0,45.301975 0.5609,104.044905 0.5609,134.045145 -16.37801,0 -353.393449,-0.38532 -443.099849,-0.38532 0,-56.46314 2.984043,-109.38808 2.984043,-131.793769 18.28607177,11.882619 77.988729,47.037439 100.205554,47.891979 20.738622,0.25077 67.905562,22.79584 87.636022,28.15857 27.56341,2.34862 53.84138,-12.31897 81.50416,-8.10339 24.90771,1.58959 53.62348,2.5399 72.71854,-17.45229 15.32619,-12.89213 35.5339,-14.37299 53.87064,-18.56564 13.90946,-6.12504 36.38842,-20.82213 43.61999,-33.795285 z"
|
||||
id="path1875"
|
||||
sodipodi:nodetypes="cccccccccc" /><rect
|
||||
style="opacity:1;fill:url(#pattern2864);fill-opacity:1;fill-rule:nonzero;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
id="rect2834"
|
||||
width="445.33334"
|
||||
height="10"
|
||||
x="-24.468958"
|
||||
y="17.34409" /></g></g><metadata
|
||||
id="metadata1"><rdf:RDF><cc:Work
|
||||
rdf:about=""><cc:license
|
||||
rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" /></cc:Work><cc:License
|
||||
rdf:about="http://creativecommons.org/publicdomain/zero/1.0/"><cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#Reproduction" /><cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#Distribution" /><cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#DerivativeWorks" /></cc:License></rdf:RDF></metadata></svg>
|
After Width: | Height: | Size: 10 KiB |
|
@ -0,0 +1,130 @@
|
|||
:root { /* stolen from gitea */
|
||||
--bg-color: rgb(32, 36, 48);
|
||||
--lighter-bg: rgb(48, 51, 64);
|
||||
--top-bar: rgb(35, 40, 52);
|
||||
--reg-text: rgb(203, 208, 218);
|
||||
--links: rgb(135, 171, 99);
|
||||
--border-color: rgb(82, 87, 103);
|
||||
--fonts-regular: -apple-system, "Segoe UI", system-ui, Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", "Twemoji Mozilla"
|
||||
}
|
||||
|
||||
div#navbar {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
flex-wrap: nowrap;
|
||||
|
||||
background-color: var(--top-bar);
|
||||
border-style: solid;
|
||||
border-width: 0px 0px 0.9px 0px;
|
||||
border-bottom-color: var(--border-color);
|
||||
|
||||
gap: 0.5em;
|
||||
padding-left: 0.5em;
|
||||
}
|
||||
|
||||
div#container {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
margin-left: 0.5em;
|
||||
margin-right: 0.5em;
|
||||
margin-bottom: 0.5em;
|
||||
|
||||
padding: 0.25em;
|
||||
gap: 0.5em;
|
||||
}
|
||||
|
||||
img {
|
||||
height: 3em;
|
||||
}
|
||||
|
||||
.navelem {
|
||||
margin: 0.4em;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
body {
|
||||
background-color: var(--bg-color);
|
||||
color: var(--reg-text);
|
||||
font-family: var(--fonts-regular);
|
||||
|
||||
margin: 0px;
|
||||
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
a {
|
||||
color: var(--links);
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
text-decoration: underline dotted;
|
||||
}
|
||||
|
||||
.repodisplay {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
|
||||
background-color: var(--lighter-bg);
|
||||
padding: 0.5em;
|
||||
|
||||
border: 0.9px;
|
||||
border-style: solid;
|
||||
border-radius: 5px;
|
||||
border-color: var(--border-color);
|
||||
|
||||
gap: 2px;
|
||||
}
|
||||
|
||||
div.navelem {
|
||||
padding-left: 0.5em;
|
||||
padding-right: 0.5em;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
div.navelem > a {
|
||||
color: var(--reg-text);
|
||||
}
|
||||
|
||||
div.navelem > a:hover {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
div.navelem:hover {
|
||||
color: var(--reg-text);
|
||||
background-color: rgba(255, 255, 255, 0.55);
|
||||
}
|
||||
|
||||
#title {
|
||||
font-size: 4em;
|
||||
font-weight: 400;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#small {
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
#titlespan {
|
||||
width: 100%;
|
||||
padding-top: 0.5em;
|
||||
}
|
||||
|
||||
.reponame {
|
||||
font-size: 2em;
|
||||
}
|
||||
|
||||
.mainrepoinfo {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.repostatusarea {
|
||||
margin-left: auto;
|
||||
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
|
@ -0,0 +1,24 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>gitweb bridge</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<meta charset="UTF-8" />
|
||||
<link rel="stylesheet" href="{{ url_for('static', filename='main.css') }}">
|
||||
</head>
|
||||
<body>
|
||||
<div id="navbar">
|
||||
<div class="navelem">
|
||||
<a href="/bridge">
|
||||
<img src="{{ url_for('static', filename='logo.svg') }}" />
|
||||
</a>
|
||||
</div>
|
||||
<div class="navelem">
|
||||
<a href="/">Back to Gitea</a>
|
||||
</div>
|
||||
</div>
|
||||
<div id="container">
|
||||
{% block content %}{% endblock %}
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,26 @@
|
|||
{% extends 'base.html' %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<div id="titlespan">
|
||||
<span id="title">bridge</span> <span id="small"><a href="https://git.beepboop.systems/stupidcomputer/gitea-github-sync"><i>[what is this?]</i></a></span>
|
||||
</div>
|
||||
|
||||
{% for repo in repos %}
|
||||
|
||||
<div class="repodisplay">
|
||||
<div class="mainrepoinfo">
|
||||
<a href="{{ repo.url }}"><span class="reponame">{{ repo.name }}</span></a>
|
||||
|
||||
<span class="repodescription"><i>{{ repo.desc }}</i></span>
|
||||
</div>
|
||||
<div class="repostatusarea">
|
||||
<span class="repostatus">active</span>
|
||||
|
||||
<a href="/bridge/{{ repo.name }}">[status]</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% endfor %}
|
||||
|
||||
{% endblock %}
|
|
@ -0,0 +1,40 @@
|
|||
import base64
|
||||
|
||||
def to_base64(s: str) -> str:
|
||||
return base64.b64encode(
|
||||
s.encode("utf-8")
|
||||
).decode("utf-8")
|
||||
|
||||
def from_base64(s: str) -> str:
|
||||
return base64.b64decode(
|
||||
s.encode("utf-8")
|
||||
).decode("utf-8")
|
||||
|
||||
issue_sentinel = "GITEA_GITHUB_ISSUE_SYNC_SENTINEL"
|
||||
|
||||
def generate_sentinel(url: str) -> str:
|
||||
return ' '.join([issue_sentinel, to_base64(url)])
|
||||
|
||||
def create_signature(
|
||||
username: str,
|
||||
username_url: str,
|
||||
domain_base: str,
|
||||
url_to_encode: str,
|
||||
):
|
||||
return """
|
||||
|
||||
---
|
||||
|
||||
[{}]({}) via [gitea-github-sync](https://{}/bridge/about)
|
||||
|
||||
<details>
|
||||
<summary>Internal information</summary>
|
||||
|
||||
{}
|
||||
</details>
|
||||
""".format(
|
||||
username,
|
||||
username_url,
|
||||
domain_base,
|
||||
generate_sentinel(url_to_encode),
|
||||
)
|
|
@ -0,0 +1,201 @@
|
|||
from typing import Any
|
||||
from dataclasses import dataclass, field
|
||||
|
||||
import requests
|
||||
from requests import Request, Session
|
||||
from requests.exceptions import HTTPError
|
||||
|
||||
from flask import abort
|
||||
|
||||
@dataclass
|
||||
class WebgitClient:
|
||||
"""
|
||||
A quite thin wrapper around various code forges' REST APIs.
|
||||
Designed to be subclassed.
|
||||
"""
|
||||
api_token: str
|
||||
headers: Any = field(init=False)
|
||||
api_prefix: str = field(init=False)
|
||||
|
||||
def _post_request(self, request_obj):
|
||||
try:
|
||||
request_obj.raise_for_status()
|
||||
except HTTPError as e:
|
||||
print("An exception occured: {}({})".format(
|
||||
type(e).__name__, e
|
||||
))
|
||||
abort(500)
|
||||
|
||||
def _request_wrapper(self, method, *args, **kwargs):
|
||||
s = Session()
|
||||
r = Request(method, *args, **kwargs, headers=self.headers)
|
||||
prepped = s.prepare_request(r)
|
||||
settings = s.merge_environment_settings(prepped.url, {}, None, None, None)
|
||||
r = s.send(prepped, **settings)
|
||||
|
||||
self._post_request(r)
|
||||
return r
|
||||
|
||||
def get(self, *args, **kwargs):
|
||||
return self._request_wrapper("GET", *args, **kwargs)
|
||||
|
||||
def post(self, *args, **kwargs):
|
||||
return self._request_wrapper("POST", *args, **kwargs)
|
||||
|
||||
def patch(self, *args, **kwargs):
|
||||
return self._request_wrapper("PATCH", *args, **kwargs)
|
||||
|
||||
def delete(self, *args, **kwargs):
|
||||
return self._request_wrapper("DELETE", *args, **kwargs)
|
||||
|
||||
def create_repo(self, name, description):
|
||||
return self.post(
|
||||
self.api_prefix + "/user/repos",
|
||||
json={
|
||||
"name": name,
|
||||
"description": description,
|
||||
},
|
||||
)
|
||||
|
||||
def create_issue(self, owner, repo_name, title, body):
|
||||
return self.post(
|
||||
self.api_prefix + "/repos/{}/{}/issues".format(
|
||||
owner,
|
||||
repo_name,
|
||||
),
|
||||
json={
|
||||
"title": title,
|
||||
"body": body,
|
||||
},
|
||||
)
|
||||
|
||||
def leave_comment_on_issue_by_number(self, owner, repo_name, issue_number, body):
|
||||
return self.post(
|
||||
self.api_prefix + "/repos/{}/{}/issues/{}/comments".format(
|
||||
owner,
|
||||
repo_name,
|
||||
issue_number,
|
||||
),
|
||||
json={
|
||||
"body": body,
|
||||
},
|
||||
)
|
||||
|
||||
def leave_comment_on_issue_by_url(self, url, body):
|
||||
return self.post(
|
||||
url + "/comments",
|
||||
json={
|
||||
"body": body,
|
||||
},
|
||||
)
|
||||
|
||||
def close_issue_by_number(self, owner, repo_name, issue_number):
|
||||
return self.patch(
|
||||
self.api_prefix + "/repos/{}/{}/issues/{}".format(
|
||||
owner,
|
||||
repo_name,
|
||||
issue_number,
|
||||
),
|
||||
json={
|
||||
"state": "closed",
|
||||
},
|
||||
)
|
||||
|
||||
def close_issue_by_url(self, url):
|
||||
return self.patch(
|
||||
url,
|
||||
json={
|
||||
"state": "closed",
|
||||
},
|
||||
)
|
||||
|
||||
def delete_repo(self, owner, repo_name):
|
||||
return self.delete(
|
||||
self.api_prefix + "/repos/{}/{}".format(owner, repo_name)
|
||||
)
|
||||
|
||||
@dataclass
|
||||
class Github(WebgitClient):
|
||||
"""
|
||||
A quite thin wrapper around Github's REST API.
|
||||
"""
|
||||
def __post_init__(self):
|
||||
self.headers = {
|
||||
"Accept": "application/vnd.github+json",
|
||||
"Authorization": "token " + self.api_token,
|
||||
"X-GitHub-Api-Version": "2022-11-28",
|
||||
}
|
||||
self.api_prefix = "https://api.github.com"
|
||||
|
||||
def create_webhook(self, owner, repo_name, http_endpoint, events: list[str]):
|
||||
return self.post(
|
||||
self.api_prefix + "/repos/{}/{}/hooks".format(
|
||||
owner,
|
||||
repo_name,
|
||||
),
|
||||
json={
|
||||
"name": "web",
|
||||
"config": {
|
||||
"url": http_endpoint,
|
||||
"content_type": "json",
|
||||
},
|
||||
"events": events,
|
||||
},
|
||||
)
|
||||
|
||||
@dataclass
|
||||
class Gitea(WebgitClient):
|
||||
"""
|
||||
A quite thin wrapper around Gitea's REST API.
|
||||
"""
|
||||
instance_name: str
|
||||
|
||||
def __post_init__(self):
|
||||
self.headers = {
|
||||
"Authorization": "token " + self.api_token,
|
||||
}
|
||||
self.api_prefix = "https://{}/api/v1".format(self.instance_name)
|
||||
|
||||
def add_push_target(self, owner, repo_name, address, username, password):
|
||||
return self.post(
|
||||
self.api_prefix + "/repos/{}/{}/push_mirrors".format(
|
||||
owner, repo_name
|
||||
),
|
||||
json={
|
||||
"interval": "8h0m0s",
|
||||
"remote_address": address,
|
||||
"remote_password": password,
|
||||
"remote_username": username,
|
||||
"sync_on_commit": True,
|
||||
},
|
||||
)
|
||||
|
||||
def force_push_target(self, owner, repo_name):
|
||||
return self.post(
|
||||
self.api_prefix + "/repos/{}/{}/push_mirrors-sync".format(
|
||||
owner,
|
||||
repo_name
|
||||
),
|
||||
)
|
||||
|
||||
def create_webhook(self, owner, repo_name, http_endpoint, events: list[str]):
|
||||
return self.post(
|
||||
self.api_prefix + "/repos/{}/{}/hooks".format(
|
||||
owner,
|
||||
repo_name,
|
||||
),
|
||||
json={
|
||||
"active": True,
|
||||
"config": {
|
||||
"url": http_endpoint,
|
||||
"content_type": "json",
|
||||
},
|
||||
"events": events,
|
||||
"type": "gitea",
|
||||
},
|
||||
)
|
||||
|
||||
def get_user_repos(self):
|
||||
return self.get(
|
||||
self.api_prefix + "/user/repos"
|
||||
)
|
|
@ -0,0 +1,4 @@
|
|||
SECRET_KEY="replace_me"
|
||||
GITHUB_ACCESS_TOKEN="replace_me"
|
||||
GITEA_ACCESS_TOKEN="replace_me"
|
||||
GITEA_INSTANCE_DOMAIN="git.beepboop.systems"
|
|
@ -0,0 +1,19 @@
|
|||
{ lib, pkgs, config, ... }:
|
||||
let
|
||||
cfg = config.services.gitea-github-bridge;
|
||||
appEnv = pkgs.python3.withPackages (p: with p; [ waitress (callPackage ./bridge/default.nix {}) ]);
|
||||
in {
|
||||
options.services.gitea-github-bridge = {
|
||||
enable = lib.mkEnableOption "Enable the Gitea-Github bridge";
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
systemd.services.gitea-github-bridge = {
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
serviceConfig = {
|
||||
ExecStart = "${appEnv}/bin/waitress-serve --port=8041 bridge:app";
|
||||
StandardOutput = "journal";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
{ pkgs, pythonPackages ? (import <nixpkgs> {}).python3Packages }:
|
||||
pythonPackages.buildPythonPackage {
|
||||
name = "gitea-github-bridge";
|
||||
src = ./bridge;
|
||||
|
||||
propagatedBuildInputs = [ pythonPackages.flask pythonPackages.requests ];
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p $out/${pythonPackages.python.sitePackages}
|
||||
cp -r . $out/${pythonPackages.python.sitePackages}/bridge
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
shellHook = "export FLASK_APP=bridge";
|
||||
|
||||
format = "other";
|
||||
}
|
|
@ -0,0 +1,167 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://web.resource.org/cc/"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
id="svg2"
|
||||
sodipodi:version="0.32"
|
||||
inkscape:version="0.44"
|
||||
width="400"
|
||||
height="200"
|
||||
version="1.0"
|
||||
sodipodi:docbase="D:\wiki_svg"
|
||||
sodipodi:docname="Bridgedrawing.png.svg">
|
||||
<metadata
|
||||
id="metadata7">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs5">
|
||||
<pattern
|
||||
inkscape:collect="always"
|
||||
xlink:href="#pattern2853"
|
||||
id="pattern2864"
|
||||
patternTransform="translate(42.23939,37.38575)" />
|
||||
<pattern
|
||||
inkscape:collect="always"
|
||||
xlink:href="#pattern2838"
|
||||
id="pattern2845"
|
||||
patternTransform="translate(44.04167,18.04166)" />
|
||||
<linearGradient
|
||||
id="linearGradient2826">
|
||||
<stop
|
||||
style="stop-color:#dfb585;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop2828" />
|
||||
<stop
|
||||
style="stop-color:black;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop2830" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient2791">
|
||||
<stop
|
||||
style="stop-color:#4d95ee;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop2793" />
|
||||
<stop
|
||||
style="stop-color:black;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop2795" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient2791"
|
||||
id="linearGradient2797"
|
||||
x1="213.11461"
|
||||
y1="113.20445"
|
||||
x2="213.11461"
|
||||
y2="351.95709"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(0,6)" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient2826"
|
||||
id="linearGradient2832"
|
||||
x1="193.60881"
|
||||
y1="116.54642"
|
||||
x2="193.60881"
|
||||
y2="345.21436"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<pattern
|
||||
patternUnits="userSpaceOnUse"
|
||||
width="31.916666"
|
||||
height="9.916667"
|
||||
patternTransform="translate(19.375,-47.29167)"
|
||||
id="pattern2838">
|
||||
<rect
|
||||
y="0.625"
|
||||
x="0.625"
|
||||
height="8.666667"
|
||||
width="30.666666"
|
||||
id="rect2836"
|
||||
style="opacity:1;fill:#7b6c52;fill-opacity:1;fill-rule:nonzero;stroke:#2d271e;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
|
||||
</pattern>
|
||||
<pattern
|
||||
patternUnits="userSpaceOnUse"
|
||||
width="34.958335"
|
||||
height="9.916667"
|
||||
patternTransform="translate(44.04167,18.04167)"
|
||||
id="pattern2853">
|
||||
<g
|
||||
id="g2849"
|
||||
transform="translate(-44.04167,-18.04167)">
|
||||
<rect
|
||||
style="fill:url(#pattern2845);stroke:none"
|
||||
width="31.916666"
|
||||
height="9.916667"
|
||||
x="44.041668"
|
||||
y="18.041666"
|
||||
id="rect2841" />
|
||||
<rect
|
||||
style="opacity:0;fill:#00cd0f;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
id="rect2847"
|
||||
width="9.166667"
|
||||
height="2.5833333"
|
||||
x="69.833336"
|
||||
y="21.916666" />
|
||||
</g>
|
||||
</pattern>
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
inkscape:window-height="632"
|
||||
inkscape:window-width="853"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
guidetolerance="10.0"
|
||||
gridtolerance="10.0"
|
||||
objecttolerance="10.0"
|
||||
borderopacity="1.0"
|
||||
bordercolor="#666666"
|
||||
pagecolor="#ffffff"
|
||||
id="base"
|
||||
showborder="true"
|
||||
borderlayer="true"
|
||||
inkscape:showpageshadow="false"
|
||||
inkscape:zoom="0.1875"
|
||||
inkscape:cx="173.32657"
|
||||
inkscape:cy="364.01333"
|
||||
inkscape:window-x="3"
|
||||
inkscape:window-y="60"
|
||||
inkscape:current-layer="svg2" />
|
||||
<path
|
||||
id="path2799"
|
||||
style="fill:#7b6c52;fill-opacity:1;fill-rule:nonzero;stroke:#2d271e;stroke-width:1.2500006;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
|
||||
d="M 341.66665,225.23539 C 341.66665,212.34027 341.66665,134.53605 341.66665,120.00004 C 341.66665,90.928028 365.26132,67.333352 394.33334,67.333352 C 423.40535,67.333352 447.00002,90.928028 447.00002,120.00004 L 418.05691,30.666667 L -18.056812,30.666667 L -47.00002,120.00004 C -47.00002,90.928028 -23.405346,67.333352 5.666671,67.333352 C 34.738681,67.333352 58.333351,90.928028 58.333351,120.00004 C 58.333351,134.53605 58.333351,212.94015 58.333351,225.23539 M 82.55553,225.23539 C 82.55553,212.34027 82.55553,134.53605 82.55553,120.00004 C 82.55553,90.928028 106.1502,67.333352 135.22222,67.333352 C 164.29423,67.333352 187.8889,90.928028 187.8889,120.00004 C 187.8889,134.53605 187.8889,212.94015 187.8889,225.23539 M 212.11109,225.23539 C 212.11109,212.34027 212.11109,134.53605 212.11109,120.00004 C 212.11109,90.928028 235.70576,67.333352 264.77778,67.333352 C 293.84979,67.333352 317.44446,90.928028 317.44446,120.00004 C 317.44446,134.53605 317.44446,212.94015 317.44446,225.23539"
|
||||
sodipodi:nodetypes="cssccccssccsssccsssc" />
|
||||
<path
|
||||
style="opacity:0.7;fill:url(#linearGradient2797);fill-opacity:1;fill-rule:evenodd;stroke:#447cc1;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="M -6.6627813,217.65413 C -6.6627813,189.28409 -19.774361,131.0659 -6.2169302,131.33069 C 78.439153,132.98413 136.12698,139.83069 152.26455,140.62434 C 184.53968,142.21164 210.46561,136.39153 250.14815,134.27513 C 289.83069,132.15873 324.75132,137.97884 358.08466,137.44974 C 391.41799,136.92063 395.51852,133.48148 407.82011,134.80423 C 431.90066,137.39354 411.64021,176.89947 411.64021,220.81482"
|
||||
id="path1884"
|
||||
sodipodi:nodetypes="csssssc" />
|
||||
<path
|
||||
style="fill:url(#linearGradient2832);fill-opacity:1.0;fill-rule:evenodd;stroke:#784e1f;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="M 421.31443,97.523845 C 421.31443,142.82582 421.87533,201.56875 421.87533,231.56899 C 405.49732,231.56899 68.481881,231.18367 -21.224519,231.18367 C -21.224519,174.72053 -18.240476,121.79559 -18.240476,99.389901 C 0.045595773,111.27252 59.748253,146.42734 81.965078,147.28188 C 102.7037,147.53265 149.87064,170.07772 169.6011,175.44045 C 197.16451,177.78907 223.44248,163.12148 251.10526,167.33706 C 276.01297,168.92665 304.72874,169.87696 323.8238,149.88477 C 339.14999,136.99264 359.3577,135.51178 377.69444,131.31913 C 391.6039,125.19409 414.08286,110.497 421.31443,97.523845 z "
|
||||
id="path1875"
|
||||
sodipodi:nodetypes="cccccccccc" />
|
||||
<rect
|
||||
style="opacity:1;fill:url(#pattern2864);fill-opacity:1;fill-rule:nonzero;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
id="rect2834"
|
||||
width="445.33334"
|
||||
height="10"
|
||||
x="-24.468958"
|
||||
y="17.34409" />
|
||||
</svg>
|
After Width: | Height: | Size: 7.4 KiB |
|
@ -0,0 +1 @@
|
|||
<svg version="1.1" id="main_outline" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" style="enable-background:new 0 0 640 640;" xml:space="preserve" viewBox="5.67 143.05 628.65 387.55"> <g> <path id="teabag" style="fill:#FFFFFF" d="M395.9,484.2l-126.9-61c-12.5-6-17.9-21.2-11.8-33.8l61-126.9c6-12.5,21.2-17.9,33.8-11.8 c17.2,8.3,27.1,13,27.1,13l-0.1-109.2l16.7-0.1l0.1,117.1c0,0,57.4,24.2,83.1,40.1c3.7,2.3,10.2,6.8,12.9,14.4 c2.1,6.1,2,13.1-1,19.3l-61,126.9C423.6,484.9,408.4,490.3,395.9,484.2z"></path> <g> <g> <path style="fill:#609926" d="M622.7,149.8c-4.1-4.1-9.6-4-9.6-4s-117.2,6.6-177.9,8c-13.3,0.3-26.5,0.6-39.6,0.7c0,39.1,0,78.2,0,117.2 c-5.5-2.6-11.1-5.3-16.6-7.9c0-36.4-0.1-109.2-0.1-109.2c-29,0.4-89.2-2.2-89.2-2.2s-141.4-7.1-156.8-8.5 c-9.8-0.6-22.5-2.1-39,1.5c-8.7,1.8-33.5,7.4-53.8,26.9C-4.9,212.4,6.6,276.2,8,285.8c1.7,11.7,6.9,44.2,31.7,72.5 c45.8,56.1,144.4,54.8,144.4,54.8s12.1,28.9,30.6,55.5c25,33.1,50.7,58.9,75.7,62c63,0,188.9-0.1,188.9-0.1s12,0.1,28.3-10.3 c14-8.5,26.5-23.4,26.5-23.4s12.9-13.8,30.9-45.3c5.5-9.7,10.1-19.1,14.1-28c0,0,55.2-117.1,55.2-231.1 C633.2,157.9,624.7,151.8,622.7,149.8z M125.6,353.9c-25.9-8.5-36.9-18.7-36.9-18.7S69.6,321.8,60,295.4 c-16.5-44.2-1.4-71.2-1.4-71.2s8.4-22.5,38.5-30c13.8-3.7,31-3.1,31-3.1s7.1,59.4,15.7,94.2c7.2,29.2,24.8,77.7,24.8,77.7 S142.5,359.9,125.6,353.9z M425.9,461.5c0,0-6.1,14.5-19.6,15.4c-5.8,0.4-10.3-1.2-10.3-1.2s-0.3-0.1-5.3-2.1l-112.9-55 c0,0-10.9-5.7-12.8-15.6c-2.2-8.1,2.7-18.1,2.7-18.1L322,273c0,0,4.8-9.7,12.2-13c0.6-0.3,2.3-1,4.5-1.5c8.1-2.1,18,2.8,18,2.8 l110.7,53.7c0,0,12.6,5.7,15.3,16.2c1.9,7.4-0.5,14-1.8,17.2C474.6,363.8,425.9,461.5,425.9,461.5z"></path> <path style="fill:#609926" d="M326.8,380.1c-8.2,0.1-15.4,5.8-17.3,13.8c-1.9,8,2,16.3,9.1,20c7.7,4,17.5,1.8,22.7-5.4 c5.1-7.1,4.3-16.9-1.8-23.1l24-49.1c1.5,0.1,3.7,0.2,6.2-0.5c4.1-0.9,7.1-3.6,7.1-3.6c4.2,1.8,8.6,3.8,13.2,6.1 c4.8,2.4,9.3,4.9,13.4,7.3c0.9,0.5,1.8,1.1,2.8,1.9c1.6,1.3,3.4,3.1,4.7,5.5c1.9,5.5-1.9,14.9-1.9,14.9 c-2.3,7.6-18.4,40.6-18.4,40.6c-8.1-0.2-15.3,5-17.7,12.5c-2.6,8.1,1.1,17.3,8.9,21.3c7.8,4,17.4,1.7,22.5-5.3 c5-6.8,4.6-16.3-1.1-22.6c1.9-3.7,3.7-7.4,5.6-11.3c5-10.4,13.5-30.4,13.5-30.4c0.9-1.7,5.7-10.3,2.7-21.3 c-2.5-11.4-12.6-16.7-12.6-16.7c-12.2-7.9-29.2-15.2-29.2-15.2s0-4.1-1.1-7.1c-1.1-3.1-2.8-5.1-3.9-6.3c4.7-9.7,9.4-19.3,14.1-29 c-4.1-2-8.1-4-12.2-6.1c-4.8,9.8-9.7,19.7-14.5,29.5c-6.7-0.1-12.9,3.5-16.1,9.4c-3.4,6.3-2.7,14.1,1.9,19.8 C343.2,346.5,335,363.3,326.8,380.1z"></path> </g> </g> </g> </svg>
|
After Width: | Height: | Size: 2.5 KiB |
|
@ -0,0 +1,8 @@
|
|||
<?xml version="1.0"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="560" height="162" fill="none" stroke="#000">
|
||||
<clipPath id="c"><path d="m20,110q76,0 128-90 130,154 260,0 52,92 128,90"/></clipPath>
|
||||
<path stroke-width="100" stroke-dasharray="1,9" clip-path="url(#c)"
|
||||
d="m23,70h120m10,0h250m10,0h120"/>
|
||||
<path stroke-width="10" d="m148,18v124m260,0V18"/>
|
||||
<path stroke-width="2" d="m20,110q76,0 128-90 130,154 260,0 52,92 128,90H20m0,2h516"/>
|
||||
</svg>
|
After Width: | Height: | Size: 448 B |
|
@ -0,0 +1,151 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="100mm"
|
||||
height="100mm"
|
||||
viewBox="0 0 100 100"
|
||||
version="1.1"
|
||||
id="svg1"
|
||||
xml:space="preserve"
|
||||
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25)"
|
||||
sodipodi:docname="logo.svg"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:cc="http://creativecommons.org/ns#"><sodipodi:namedview
|
||||
id="namedview1"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#000000"
|
||||
borderopacity="0.25"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:zoom="0.92381453"
|
||||
inkscape:cx="361.0032"
|
||||
inkscape:cy="323.65804"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1080"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="layer1" /><defs
|
||||
id="defs1"><pattern
|
||||
inkscape:collect="always"
|
||||
xlink:href="#pattern2853"
|
||||
id="pattern2864"
|
||||
patternTransform="translate(42.23939,37.38575)" /><pattern
|
||||
inkscape:collect="always"
|
||||
xlink:href="#pattern2838"
|
||||
id="pattern2845"
|
||||
patternTransform="translate(44.04167,18.04166)" /><linearGradient
|
||||
id="linearGradient2826"><stop
|
||||
style="stop-color:#dfb585;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop2828" /><stop
|
||||
style="stop-color:black;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop2830" /></linearGradient><linearGradient
|
||||
id="linearGradient2791"><stop
|
||||
style="stop-color:#4d95ee;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop2793" /><stop
|
||||
style="stop-color:black;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop2795" /></linearGradient><linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient2791"
|
||||
id="linearGradient2797"
|
||||
x1="213.11461"
|
||||
y1="113.20445"
|
||||
x2="213.11461"
|
||||
y2="351.95709"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(0,6)" /><linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient2826"
|
||||
id="linearGradient2832"
|
||||
x1="193.60881"
|
||||
y1="116.54642"
|
||||
x2="193.60881"
|
||||
y2="345.21436"
|
||||
gradientUnits="userSpaceOnUse" /><pattern
|
||||
patternUnits="userSpaceOnUse"
|
||||
width="31.916666"
|
||||
height="9.916667"
|
||||
patternTransform="translate(19.375,-47.29167)"
|
||||
id="pattern2838"><rect
|
||||
y="0.625"
|
||||
x="0.625"
|
||||
height="8.666667"
|
||||
width="30.666666"
|
||||
id="rect2836"
|
||||
style="opacity:1;fill:#7b6c52;fill-opacity:1;fill-rule:nonzero;stroke:#2d271e;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /></pattern><pattern
|
||||
patternUnits="userSpaceOnUse"
|
||||
width="34.958335"
|
||||
height="9.916667"
|
||||
patternTransform="translate(44.04167,18.04167)"
|
||||
id="pattern2853"><g
|
||||
id="g2849"
|
||||
transform="translate(-44.04167,-18.04167)"><rect
|
||||
style="fill:url(#pattern2845);stroke:none"
|
||||
width="31.916666"
|
||||
height="9.916667"
|
||||
x="44.041668"
|
||||
y="18.041666"
|
||||
id="rect2841" /><rect
|
||||
style="opacity:0;fill:#00cd0f;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
id="rect2847"
|
||||
width="9.166667"
|
||||
height="2.5833333"
|
||||
x="69.833336"
|
||||
y="21.916666" /></g></pattern></defs><g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"><g
|
||||
id="g4"
|
||||
transform="matrix(0.15875,0,0,0.15875,-3.8018304,-0.36145313)"> <path
|
||||
id="teabag"
|
||||
style="fill:#ffffff"
|
||||
d="M 395.9,484.2 269,423.2 c -12.5,-6 -17.9,-21.2 -11.8,-33.8 l 61,-126.9 c 6,-12.5 21.2,-17.9 33.8,-11.8 17.2,8.3 27.1,13 27.1,13 l -0.1,-109.2 16.7,-0.1 0.1,117.1 c 0,0 57.4,24.2 83.1,40.1 3.7,2.3 10.2,6.8 12.9,14.4 2.1,6.1 2,13.1 -1,19.3 l -61,126.9 c -6.2,12.7 -21.4,18.1 -33.9,12 z" /> <g
|
||||
id="g3"
|
||||
transform="translate(-3.8,-19.6)"> <g
|
||||
id="g2"> <path
|
||||
style="fill:#609926"
|
||||
d="m 622.7,149.8 c -4.1,-4.1 -9.6,-4 -9.6,-4 0,0 -117.2,6.6 -177.9,8 -13.3,0.3 -26.5,0.6 -39.6,0.7 0,39.1 0,78.2 0,117.2 -5.5,-2.6 -11.1,-5.3 -16.6,-7.9 0,-36.4 -0.1,-109.2 -0.1,-109.2 -29,0.4 -89.2,-2.2 -89.2,-2.2 0,0 -141.4,-7.1 -156.8,-8.5 -9.8,-0.6 -22.5,-2.1 -39,1.5 -8.7,1.8 -33.5,7.4 -53.8,26.9 -45,40.1 -33.5,103.9 -32.1,113.5 1.7,11.7 6.9,44.2 31.7,72.5 45.8,56.1 144.4,54.8 144.4,54.8 0,0 12.1,28.9 30.6,55.5 25,33.1 50.7,58.9 75.7,62 63,0 188.9,-0.1 188.9,-0.1 0,0 12,0.1 28.3,-10.3 14,-8.5 26.5,-23.4 26.5,-23.4 0,0 12.9,-13.8 30.9,-45.3 5.5,-9.7 10.1,-19.1 14.1,-28 0,0 55.2,-117.1 55.2,-231.1 -1.1,-34.5 -9.6,-40.6 -11.6,-42.6 z M 125.6,353.9 c -25.9,-8.5 -36.9,-18.7 -36.9,-18.7 0,0 -19.1,-13.4 -28.7,-39.8 -16.5,-44.2 -1.4,-71.2 -1.4,-71.2 0,0 8.4,-22.5 38.5,-30 13.8,-3.7 31,-3.1 31,-3.1 0,0 7.1,59.4 15.7,94.2 7.2,29.2 24.8,77.7 24.8,77.7 0,0 -26.1,-3.1 -43,-9.1 z m 300.3,107.6 c 0,0 -6.1,14.5 -19.6,15.4 -5.8,0.4 -10.3,-1.2 -10.3,-1.2 0,0 -0.3,-0.1 -5.3,-2.1 l -112.9,-55 c 0,0 -10.9,-5.7 -12.8,-15.6 -2.2,-8.1 2.7,-18.1 2.7,-18.1 L 322,273 c 0,0 4.8,-9.7 12.2,-13 0.6,-0.3 2.3,-1 4.5,-1.5 8.1,-2.1 18,2.8 18,2.8 L 467.4,315 c 0,0 12.6,5.7 15.3,16.2 1.9,7.4 -0.5,14 -1.8,17.2 -6.3,15.4 -55,113.1 -55,113.1 z"
|
||||
id="path1" /> <path
|
||||
style="fill:#609926"
|
||||
d="m 326.8,380.1 c -8.2,0.1 -15.4,5.8 -17.3,13.8 -1.9,8 2,16.3 9.1,20 7.7,4 17.5,1.8 22.7,-5.4 5.1,-7.1 4.3,-16.9 -1.8,-23.1 l 24,-49.1 c 1.5,0.1 3.7,0.2 6.2,-0.5 4.1,-0.9 7.1,-3.6 7.1,-3.6 4.2,1.8 8.6,3.8 13.2,6.1 4.8,2.4 9.3,4.9 13.4,7.3 0.9,0.5 1.8,1.1 2.8,1.9 1.6,1.3 3.4,3.1 4.7,5.5 1.9,5.5 -1.9,14.9 -1.9,14.9 -2.3,7.6 -18.4,40.6 -18.4,40.6 -8.1,-0.2 -15.3,5 -17.7,12.5 -2.6,8.1 1.1,17.3 8.9,21.3 7.8,4 17.4,1.7 22.5,-5.3 5,-6.8 4.6,-16.3 -1.1,-22.6 1.9,-3.7 3.7,-7.4 5.6,-11.3 5,-10.4 13.5,-30.4 13.5,-30.4 0.9,-1.7 5.7,-10.3 2.7,-21.3 -2.5,-11.4 -12.6,-16.7 -12.6,-16.7 -12.2,-7.9 -29.2,-15.2 -29.2,-15.2 0,0 0,-4.1 -1.1,-7.1 -1.1,-3.1 -2.8,-5.1 -3.9,-6.3 4.7,-9.7 9.4,-19.3 14.1,-29 -4.1,-2 -8.1,-4 -12.2,-6.1 -4.8,9.8 -9.7,19.7 -14.5,29.5 -6.7,-0.1 -12.9,3.5 -16.1,9.4 -3.4,6.3 -2.7,14.1 1.9,19.8 -8.2,16.8 -16.4,33.6 -24.6,50.4 z"
|
||||
id="path2" /> </g> </g> </g><g
|
||||
id="g1"
|
||||
transform="matrix(0.50182484,0,0,0.35249319,-51.630035,18.972095)"><path
|
||||
id="path2799"
|
||||
style="fill:#7b6c52;fill-opacity:1;fill-rule:nonzero;stroke:#2d271e;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
|
||||
d="m 341.66665,225.23539 c 0,-12.89512 0,-90.69934 0,-105.23535 0,-29.072012 23.59467,-52.666688 52.66669,-52.666688 29.07201,0 52.66668,23.594676 52.66668,52.666688 L 418.05691,30.666667 H -18.056812 L -47.00002,120.00004 c 0,-29.072012 23.594674,-52.666688 52.666691,-52.666688 29.07201,0 52.66668,23.594676 52.66668,52.666688 0,14.53601 0,92.94011 0,105.23535 m 24.222179,0 c 0,-12.89512 0,-90.69934 0,-105.23535 0,-29.072012 23.59467,-52.666688 52.66669,-52.666688 29.07201,0 52.66668,23.594676 52.66668,52.666688 0,14.53601 0,92.94011 0,105.23535 m 24.22219,0 c 0,-12.89512 0,-90.69934 0,-105.23535 0,-29.072012 23.59467,-52.666688 52.66669,-52.666688 29.07201,0 52.66668,23.594676 52.66668,52.666688 0,14.53601 0,92.94011 0,105.23535"
|
||||
sodipodi:nodetypes="cssccccssccsssccsssc" /><path
|
||||
style="opacity:0.7;fill:url(#linearGradient2797);fill-opacity:1;fill-rule:evenodd;stroke:#447cc1;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m -6.6627813,217.65413 c 0,-28.37004 -13.1115797,-86.58823 0.4458511,-86.32344 84.6560832,1.65344 142.3439102,8.5 158.4814802,9.29365 32.27513,1.5873 58.20106,-4.23281 97.8836,-6.34921 39.68254,-2.1164 74.60317,3.70371 107.93651,3.17461 33.33333,-0.52911 37.43386,-3.96826 49.73545,-2.64551 24.08055,2.58931 3.8201,42.09524 3.8201,86.01059"
|
||||
id="path1884"
|
||||
sodipodi:nodetypes="csssssc" /><path
|
||||
style="fill:url(#linearGradient2832);fill-opacity:1;fill-rule:evenodd;stroke:#784e1f;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 421.31443,97.523845 c 0,45.301975 0.5609,104.044905 0.5609,134.045145 -16.37801,0 -353.393449,-0.38532 -443.099849,-0.38532 0,-56.46314 2.984043,-109.38808 2.984043,-131.793769 18.28607177,11.882619 77.988729,47.037439 100.205554,47.891979 20.738622,0.25077 67.905562,22.79584 87.636022,28.15857 27.56341,2.34862 53.84138,-12.31897 81.50416,-8.10339 24.90771,1.58959 53.62348,2.5399 72.71854,-17.45229 15.32619,-12.89213 35.5339,-14.37299 53.87064,-18.56564 13.90946,-6.12504 36.38842,-20.82213 43.61999,-33.795285 z"
|
||||
id="path1875"
|
||||
sodipodi:nodetypes="cccccccccc" /><rect
|
||||
style="opacity:1;fill:url(#pattern2864);fill-opacity:1;fill-rule:nonzero;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
id="rect2834"
|
||||
width="445.33334"
|
||||
height="10"
|
||||
x="-24.468958"
|
||||
y="17.34409" /></g></g><metadata
|
||||
id="metadata1"><rdf:RDF><cc:Work
|
||||
rdf:about=""><cc:license
|
||||
rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" /></cc:Work><cc:License
|
||||
rdf:about="http://creativecommons.org/publicdomain/zero/1.0/"><cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#Reproduction" /><cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#Distribution" /><cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#DerivativeWorks" /></cc:License></rdf:RDF></metadata></svg>
|
After Width: | Height: | Size: 10 KiB |
20
shell.nix
20
shell.nix
|
@ -1,9 +1,13 @@
|
|||
{ pkgs ? import <nixpkgs> {} }:
|
||||
let
|
||||
my-python-packages = ps: with ps; [
|
||||
requests
|
||||
gitpython
|
||||
github3_py
|
||||
{ pkgs ? import (fetchTarball "https://github.com/NixOS/nixpkgs/tarball/nixos-24.05") {} }:
|
||||
|
||||
pkgs.mkShell {
|
||||
packages = [
|
||||
(pkgs.python3.withPackages (ps: [
|
||||
ps.flask
|
||||
ps.requests
|
||||
]))
|
||||
|
||||
pkgs.curl
|
||||
pkgs.jq
|
||||
];
|
||||
my-python = pkgs.python3.withPackages my-python-packages;
|
||||
in my-python.env
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
# a ""test"" ""suite"", if it could be called that
|
||||
|
||||
This directory contains a bunch of programs for auditing the behavior of the Flask app under different requests from different services. It contains some captured verbatim websockets callbacks so I can develop on them.
|
|
@ -0,0 +1,169 @@
|
|||
{
|
||||
"action": "closed",
|
||||
"number": 1,
|
||||
"issue": {
|
||||
"id": 42,
|
||||
"url": "https://git.beepboop.systems/api/v1/repos/stupidcomputer/sadkfjasdf/issues/1",
|
||||
"html_url": "https://git.beepboop.systems/stupidcomputer/sadkfjasdf/issues/1",
|
||||
"number": 1,
|
||||
"user": {
|
||||
"id": 1,
|
||||
"login": "stupidcomputer",
|
||||
"login_name": "",
|
||||
"full_name": "stupidcomputer",
|
||||
"email": "stupidcomputer@noreply.git.beepboop.systems",
|
||||
"avatar_url": "https://secure.gravatar.com/avatar/b642b4217b34b1e8d3bd915fc65c4452?d=identicon",
|
||||
"language": "",
|
||||
"is_admin": false,
|
||||
"last_login": "0001-01-01T00:00:00Z",
|
||||
"created": "2023-06-23T22:23:01-05:00",
|
||||
"restricted": false,
|
||||
"active": false,
|
||||
"prohibit_login": false,
|
||||
"location": "",
|
||||
"website": "https://beepboop.systems",
|
||||
"description": "High schooler interested in computers, security, and reproducible systems.\r\n",
|
||||
"visibility": "public",
|
||||
"followers_count": 0,
|
||||
"following_count": 0,
|
||||
"starred_repos_count": 0,
|
||||
"username": "stupidcomputer"
|
||||
},
|
||||
"original_author": "",
|
||||
"original_author_id": 0,
|
||||
"title": "another testing issue",
|
||||
"body": "",
|
||||
"ref": "",
|
||||
"assets": [],
|
||||
"labels": [],
|
||||
"milestone": null,
|
||||
"assignee": null,
|
||||
"assignees": null,
|
||||
"state": "closed",
|
||||
"is_locked": false,
|
||||
"comments": 1,
|
||||
"created_at": "2024-10-09T01:07:19-05:00",
|
||||
"updated_at": "2024-10-09T01:27:16-05:00",
|
||||
"closed_at": "2024-10-09T01:27:16-05:00",
|
||||
"due_date": null,
|
||||
"pull_request": null,
|
||||
"repository": {
|
||||
"id": 73,
|
||||
"name": "sadkfjasdf",
|
||||
"owner": "stupidcomputer",
|
||||
"full_name": "stupidcomputer/sadkfjasdf"
|
||||
},
|
||||
"pin_order": 0
|
||||
},
|
||||
"repository": {
|
||||
"id": 73,
|
||||
"owner": {
|
||||
"id": 1,
|
||||
"login": "stupidcomputer",
|
||||
"login_name": "",
|
||||
"full_name": "stupidcomputer",
|
||||
"email": "stupidcomputer@noreply.git.beepboop.systems",
|
||||
"avatar_url": "https://secure.gravatar.com/avatar/b642b4217b34b1e8d3bd915fc65c4452?d=identicon",
|
||||
"language": "",
|
||||
"is_admin": false,
|
||||
"last_login": "0001-01-01T00:00:00Z",
|
||||
"created": "2023-06-23T22:23:01-05:00",
|
||||
"restricted": false,
|
||||
"active": false,
|
||||
"prohibit_login": false,
|
||||
"location": "",
|
||||
"website": "https://beepboop.systems",
|
||||
"description": "High schooler interested in computers, security, and reproducible systems.\r\n",
|
||||
"visibility": "public",
|
||||
"followers_count": 0,
|
||||
"following_count": 0,
|
||||
"starred_repos_count": 0,
|
||||
"username": "stupidcomputer"
|
||||
},
|
||||
"name": "sadkfjasdf",
|
||||
"full_name": "stupidcomputer/sadkfjasdf",
|
||||
"description": "",
|
||||
"empty": true,
|
||||
"private": false,
|
||||
"fork": false,
|
||||
"template": false,
|
||||
"parent": null,
|
||||
"mirror": false,
|
||||
"size": 28,
|
||||
"language": "",
|
||||
"languages_url": "https://git.beepboop.systems/api/v1/repos/stupidcomputer/sadkfjasdf/languages",
|
||||
"html_url": "https://git.beepboop.systems/stupidcomputer/sadkfjasdf",
|
||||
"url": "https://git.beepboop.systems/api/v1/repos/stupidcomputer/sadkfjasdf",
|
||||
"link": "",
|
||||
"ssh_url": "gitea@git.beepboop.systems:stupidcomputer/sadkfjasdf.git",
|
||||
"clone_url": "https://git.beepboop.systems/stupidcomputer/sadkfjasdf.git",
|
||||
"original_url": "",
|
||||
"website": "https://github.com/stupidcomputer/sadkfjasdf",
|
||||
"stars_count": 0,
|
||||
"forks_count": 0,
|
||||
"watchers_count": 1,
|
||||
"open_issues_count": 1,
|
||||
"open_pr_counter": 0,
|
||||
"release_counter": 0,
|
||||
"default_branch": "main",
|
||||
"archived": false,
|
||||
"created_at": "2024-10-08T22:47:49-05:00",
|
||||
"updated_at": "2024-10-09T01:05:10-05:00",
|
||||
"archived_at": "1969-12-31T18:00:00-06:00",
|
||||
"permissions": {
|
||||
"admin": true,
|
||||
"push": true,
|
||||
"pull": true
|
||||
},
|
||||
"has_issues": true,
|
||||
"internal_tracker": {
|
||||
"enable_time_tracker": true,
|
||||
"allow_only_contributors_to_track_time": true,
|
||||
"enable_issue_dependencies": true
|
||||
},
|
||||
"has_wiki": true,
|
||||
"has_pull_requests": true,
|
||||
"has_projects": true,
|
||||
"has_releases": true,
|
||||
"has_packages": true,
|
||||
"has_actions": false,
|
||||
"ignore_whitespace_conflicts": false,
|
||||
"allow_merge_commits": true,
|
||||
"allow_rebase": true,
|
||||
"allow_rebase_explicit": true,
|
||||
"allow_squash_merge": true,
|
||||
"allow_rebase_update": true,
|
||||
"default_delete_branch_after_merge": false,
|
||||
"default_merge_style": "merge",
|
||||
"default_allow_maintainer_edit": false,
|
||||
"avatar_url": "",
|
||||
"internal": false,
|
||||
"mirror_interval": "",
|
||||
"mirror_updated": "0001-01-01T00:00:00Z",
|
||||
"repo_transfer": null
|
||||
},
|
||||
"sender": {
|
||||
"id": 1,
|
||||
"login": "stupidcomputer",
|
||||
"login_name": "",
|
||||
"full_name": "stupidcomputer",
|
||||
"email": "stupidcomputer@noreply.git.beepboop.systems",
|
||||
"avatar_url": "https://secure.gravatar.com/avatar/b642b4217b34b1e8d3bd915fc65c4452?d=identicon",
|
||||
"language": "",
|
||||
"is_admin": false,
|
||||
"last_login": "0001-01-01T00:00:00Z",
|
||||
"created": "2023-06-23T22:23:01-05:00",
|
||||
"restricted": false,
|
||||
"active": false,
|
||||
"prohibit_login": false,
|
||||
"location": "",
|
||||
"website": "https://beepboop.systems",
|
||||
"description": "High schooler interested in computers, security, and reproducible systems.\r\n",
|
||||
"visibility": "public",
|
||||
"followers_count": 0,
|
||||
"following_count": 0,
|
||||
"starred_repos_count": 0,
|
||||
"username": "stupidcomputer"
|
||||
},
|
||||
"commit_id": ""
|
||||
}
|
|
@ -0,0 +1,203 @@
|
|||
{
|
||||
"action": "created",
|
||||
"issue": {
|
||||
"id": 42,
|
||||
"url": "https://git.beepboop.systems/api/v1/repos/stupidcomputer/sadkfjasdf/issues/1",
|
||||
"html_url": "https://git.beepboop.systems/stupidcomputer/sadkfjasdf/issues/1",
|
||||
"number": 1,
|
||||
"user": {
|
||||
"id": 1,
|
||||
"login": "stupidcomputer",
|
||||
"login_name": "",
|
||||
"full_name": "stupidcomputer",
|
||||
"email": "stupidcomputer@noreply.git.beepboop.systems",
|
||||
"avatar_url": "https://secure.gravatar.com/avatar/b642b4217b34b1e8d3bd915fc65c4452?d=identicon",
|
||||
"language": "",
|
||||
"is_admin": false,
|
||||
"last_login": "0001-01-01T00:00:00Z",
|
||||
"created": "2023-06-23T22:23:01-05:00",
|
||||
"restricted": false,
|
||||
"active": false,
|
||||
"prohibit_login": false,
|
||||
"location": "",
|
||||
"website": "https://beepboop.systems",
|
||||
"description": "High schooler interested in computers, security, and reproducible systems.\r\n",
|
||||
"visibility": "public",
|
||||
"followers_count": 0,
|
||||
"following_count": 0,
|
||||
"starred_repos_count": 0,
|
||||
"username": "stupidcomputer"
|
||||
},
|
||||
"original_author": "",
|
||||
"original_author_id": 0,
|
||||
"title": "another testing issue",
|
||||
"body": "",
|
||||
"ref": "",
|
||||
"assets": [],
|
||||
"labels": [],
|
||||
"milestone": null,
|
||||
"assignee": null,
|
||||
"assignees": null,
|
||||
"state": "open",
|
||||
"is_locked": false,
|
||||
"comments": 0,
|
||||
"created_at": "2024-10-09T01:07:19-05:00",
|
||||
"updated_at": "2024-10-09T01:13:12-05:00",
|
||||
"closed_at": null,
|
||||
"due_date": null,
|
||||
"pull_request": null,
|
||||
"repository": {
|
||||
"id": 73,
|
||||
"name": "sadkfjasdf",
|
||||
"owner": "stupidcomputer",
|
||||
"full_name": "stupidcomputer/sadkfjasdf"
|
||||
},
|
||||
"pin_order": 0
|
||||
},
|
||||
"comment": {
|
||||
"id": 155,
|
||||
"html_url": "https://git.beepboop.systems/stupidcomputer/sadkfjasdf/issues/1#issuecomment-155",
|
||||
"pull_request_url": "",
|
||||
"issue_url": "https://git.beepboop.systems/stupidcomputer/sadkfjasdf/issues/1",
|
||||
"user": {
|
||||
"id": 1,
|
||||
"login": "stupidcomputer",
|
||||
"login_name": "",
|
||||
"full_name": "stupidcomputer",
|
||||
"email": "stupidcomputer@noreply.git.beepboop.systems",
|
||||
"avatar_url": "https://secure.gravatar.com/avatar/b642b4217b34b1e8d3bd915fc65c4452?d=identicon",
|
||||
"language": "",
|
||||
"is_admin": false,
|
||||
"last_login": "0001-01-01T00:00:00Z",
|
||||
"created": "2023-06-23T22:23:01-05:00",
|
||||
"restricted": false,
|
||||
"active": false,
|
||||
"prohibit_login": false,
|
||||
"location": "",
|
||||
"website": "https://beepboop.systems",
|
||||
"description": "High schooler interested in computers, security, and reproducible systems.\r\n",
|
||||
"visibility": "public",
|
||||
"followers_count": 0,
|
||||
"following_count": 0,
|
||||
"starred_repos_count": 0,
|
||||
"username": "stupidcomputer"
|
||||
},
|
||||
"original_author": "",
|
||||
"original_author_id": 0,
|
||||
"body": "Here's another additional, helpful comment.",
|
||||
"assets": [],
|
||||
"created_at": "2024-10-09T01:13:12-05:00",
|
||||
"updated_at": "2024-10-09T01:13:12-05:00"
|
||||
},
|
||||
"repository": {
|
||||
"id": 73,
|
||||
"owner": {
|
||||
"id": 1,
|
||||
"login": "stupidcomputer",
|
||||
"login_name": "",
|
||||
"full_name": "stupidcomputer",
|
||||
"email": "stupidcomputer@noreply.git.beepboop.systems",
|
||||
"avatar_url": "https://secure.gravatar.com/avatar/b642b4217b34b1e8d3bd915fc65c4452?d=identicon",
|
||||
"language": "",
|
||||
"is_admin": false,
|
||||
"last_login": "0001-01-01T00:00:00Z",
|
||||
"created": "2023-06-23T22:23:01-05:00",
|
||||
"restricted": false,
|
||||
"active": false,
|
||||
"prohibit_login": false,
|
||||
"location": "",
|
||||
"website": "https://beepboop.systems",
|
||||
"description": "High schooler interested in computers, security, and reproducible systems.\r\n",
|
||||
"visibility": "public",
|
||||
"followers_count": 0,
|
||||
"following_count": 0,
|
||||
"starred_repos_count": 0,
|
||||
"username": "stupidcomputer"
|
||||
},
|
||||
"name": "sadkfjasdf",
|
||||
"full_name": "stupidcomputer/sadkfjasdf",
|
||||
"description": "",
|
||||
"empty": true,
|
||||
"private": false,
|
||||
"fork": false,
|
||||
"template": false,
|
||||
"parent": null,
|
||||
"mirror": false,
|
||||
"size": 28,
|
||||
"language": "",
|
||||
"languages_url": "https://git.beepboop.systems/api/v1/repos/stupidcomputer/sadkfjasdf/languages",
|
||||
"html_url": "https://git.beepboop.systems/stupidcomputer/sadkfjasdf",
|
||||
"url": "https://git.beepboop.systems/api/v1/repos/stupidcomputer/sadkfjasdf",
|
||||
"link": "",
|
||||
"ssh_url": "gitea@git.beepboop.systems:stupidcomputer/sadkfjasdf.git",
|
||||
"clone_url": "https://git.beepboop.systems/stupidcomputer/sadkfjasdf.git",
|
||||
"original_url": "",
|
||||
"website": "https://github.com/stupidcomputer/sadkfjasdf",
|
||||
"stars_count": 0,
|
||||
"forks_count": 0,
|
||||
"watchers_count": 1,
|
||||
"open_issues_count": 1,
|
||||
"open_pr_counter": 0,
|
||||
"release_counter": 0,
|
||||
"default_branch": "main",
|
||||
"archived": false,
|
||||
"created_at": "2024-10-08T22:47:49-05:00",
|
||||
"updated_at": "2024-10-09T01:05:10-05:00",
|
||||
"archived_at": "1969-12-31T18:00:00-06:00",
|
||||
"permissions": {
|
||||
"admin": true,
|
||||
"push": true,
|
||||
"pull": true
|
||||
},
|
||||
"has_issues": true,
|
||||
"internal_tracker": {
|
||||
"enable_time_tracker": true,
|
||||
"allow_only_contributors_to_track_time": true,
|
||||
"enable_issue_dependencies": true
|
||||
},
|
||||
"has_wiki": true,
|
||||
"has_pull_requests": true,
|
||||
"has_projects": true,
|
||||
"has_releases": true,
|
||||
"has_packages": true,
|
||||
"has_actions": false,
|
||||
"ignore_whitespace_conflicts": false,
|
||||
"allow_merge_commits": true,
|
||||
"allow_rebase": true,
|
||||
"allow_rebase_explicit": true,
|
||||
"allow_squash_merge": true,
|
||||
"allow_rebase_update": true,
|
||||
"default_delete_branch_after_merge": false,
|
||||
"default_merge_style": "merge",
|
||||
"default_allow_maintainer_edit": false,
|
||||
"avatar_url": "",
|
||||
"internal": false,
|
||||
"mirror_interval": "",
|
||||
"mirror_updated": "0001-01-01T00:00:00Z",
|
||||
"repo_transfer": null
|
||||
},
|
||||
"sender": {
|
||||
"id": 1,
|
||||
"login": "stupidcomputer",
|
||||
"login_name": "",
|
||||
"full_name": "stupidcomputer",
|
||||
"email": "stupidcomputer@noreply.git.beepboop.systems",
|
||||
"avatar_url": "https://secure.gravatar.com/avatar/b642b4217b34b1e8d3bd915fc65c4452?d=identicon",
|
||||
"language": "",
|
||||
"is_admin": false,
|
||||
"last_login": "0001-01-01T00:00:00Z",
|
||||
"created": "2023-06-23T22:23:01-05:00",
|
||||
"restricted": false,
|
||||
"active": false,
|
||||
"prohibit_login": false,
|
||||
"location": "",
|
||||
"website": "https://beepboop.systems",
|
||||
"description": "High schooler interested in computers, security, and reproducible systems.\r\n",
|
||||
"visibility": "public",
|
||||
"followers_count": 0,
|
||||
"following_count": 0,
|
||||
"starred_repos_count": 0,
|
||||
"username": "stupidcomputer"
|
||||
},
|
||||
"is_pull": false
|
||||
}
|
|
@ -0,0 +1,169 @@
|
|||
{
|
||||
"action": "opened",
|
||||
"number": 1,
|
||||
"issue": {
|
||||
"id": 42,
|
||||
"url": "https://git.beepboop.systems/api/v1/repos/stupidcomputer/sadkfjasdf/issues/1",
|
||||
"html_url": "https://git.beepboop.systems/stupidcomputer/sadkfjasdf/issues/1",
|
||||
"number": 1,
|
||||
"user": {
|
||||
"id": 1,
|
||||
"login": "stupidcomputer",
|
||||
"login_name": "",
|
||||
"full_name": "stupidcomputer",
|
||||
"email": "stupidcomputer@noreply.git.beepboop.systems",
|
||||
"avatar_url": "https://secure.gravatar.com/avatar/b642b4217b34b1e8d3bd915fc65c4452?d=identicon",
|
||||
"language": "",
|
||||
"is_admin": false,
|
||||
"last_login": "0001-01-01T00:00:00Z",
|
||||
"created": "2023-06-23T22:23:01-05:00",
|
||||
"restricted": false,
|
||||
"active": false,
|
||||
"prohibit_login": false,
|
||||
"location": "",
|
||||
"website": "https://beepboop.systems",
|
||||
"description": "High schooler interested in computers, security, and reproducible systems.\r\n",
|
||||
"visibility": "public",
|
||||
"followers_count": 0,
|
||||
"following_count": 0,
|
||||
"starred_repos_count": 0,
|
||||
"username": "stupidcomputer"
|
||||
},
|
||||
"original_author": "",
|
||||
"original_author_id": 0,
|
||||
"title": "another testing issue",
|
||||
"body": "",
|
||||
"ref": "",
|
||||
"assets": [],
|
||||
"labels": [],
|
||||
"milestone": null,
|
||||
"assignee": null,
|
||||
"assignees": null,
|
||||
"state": "open",
|
||||
"is_locked": false,
|
||||
"comments": 0,
|
||||
"created_at": "2024-10-09T01:07:19-05:00",
|
||||
"updated_at": "2024-10-09T01:07:19-05:00",
|
||||
"closed_at": null,
|
||||
"due_date": null,
|
||||
"pull_request": null,
|
||||
"repository": {
|
||||
"id": 73,
|
||||
"name": "sadkfjasdf",
|
||||
"owner": "stupidcomputer",
|
||||
"full_name": "stupidcomputer/sadkfjasdf"
|
||||
},
|
||||
"pin_order": 0
|
||||
},
|
||||
"repository": {
|
||||
"id": 73,
|
||||
"owner": {
|
||||
"id": 1,
|
||||
"login": "stupidcomputer",
|
||||
"login_name": "",
|
||||
"full_name": "stupidcomputer",
|
||||
"email": "stupidcomputer@noreply.git.beepboop.systems",
|
||||
"avatar_url": "https://secure.gravatar.com/avatar/b642b4217b34b1e8d3bd915fc65c4452?d=identicon",
|
||||
"language": "",
|
||||
"is_admin": false,
|
||||
"last_login": "0001-01-01T00:00:00Z",
|
||||
"created": "2023-06-23T22:23:01-05:00",
|
||||
"restricted": false,
|
||||
"active": false,
|
||||
"prohibit_login": false,
|
||||
"location": "",
|
||||
"website": "https://beepboop.systems",
|
||||
"description": "High schooler interested in computers, security, and reproducible systems.\r\n",
|
||||
"visibility": "public",
|
||||
"followers_count": 0,
|
||||
"following_count": 0,
|
||||
"starred_repos_count": 0,
|
||||
"username": "stupidcomputer"
|
||||
},
|
||||
"name": "sadkfjasdf",
|
||||
"full_name": "stupidcomputer/sadkfjasdf",
|
||||
"description": "",
|
||||
"empty": true,
|
||||
"private": false,
|
||||
"fork": false,
|
||||
"template": false,
|
||||
"parent": null,
|
||||
"mirror": false,
|
||||
"size": 28,
|
||||
"language": "",
|
||||
"languages_url": "https://git.beepboop.systems/api/v1/repos/stupidcomputer/sadkfjasdf/languages",
|
||||
"html_url": "https://git.beepboop.systems/stupidcomputer/sadkfjasdf",
|
||||
"url": "https://git.beepboop.systems/api/v1/repos/stupidcomputer/sadkfjasdf",
|
||||
"link": "",
|
||||
"ssh_url": "gitea@git.beepboop.systems:stupidcomputer/sadkfjasdf.git",
|
||||
"clone_url": "https://git.beepboop.systems/stupidcomputer/sadkfjasdf.git",
|
||||
"original_url": "",
|
||||
"website": "https://github.com/stupidcomputer/sadkfjasdf",
|
||||
"stars_count": 0,
|
||||
"forks_count": 0,
|
||||
"watchers_count": 1,
|
||||
"open_issues_count": 0,
|
||||
"open_pr_counter": 0,
|
||||
"release_counter": 0,
|
||||
"default_branch": "main",
|
||||
"archived": false,
|
||||
"created_at": "2024-10-08T22:47:49-05:00",
|
||||
"updated_at": "2024-10-09T01:05:10-05:00",
|
||||
"archived_at": "1969-12-31T18:00:00-06:00",
|
||||
"permissions": {
|
||||
"admin": true,
|
||||
"push": true,
|
||||
"pull": true
|
||||
},
|
||||
"has_issues": true,
|
||||
"internal_tracker": {
|
||||
"enable_time_tracker": true,
|
||||
"allow_only_contributors_to_track_time": true,
|
||||
"enable_issue_dependencies": true
|
||||
},
|
||||
"has_wiki": true,
|
||||
"has_pull_requests": true,
|
||||
"has_projects": true,
|
||||
"has_releases": true,
|
||||
"has_packages": true,
|
||||
"has_actions": false,
|
||||
"ignore_whitespace_conflicts": false,
|
||||
"allow_merge_commits": true,
|
||||
"allow_rebase": true,
|
||||
"allow_rebase_explicit": true,
|
||||
"allow_squash_merge": true,
|
||||
"allow_rebase_update": true,
|
||||
"default_delete_branch_after_merge": false,
|
||||
"default_merge_style": "merge",
|
||||
"default_allow_maintainer_edit": false,
|
||||
"avatar_url": "",
|
||||
"internal": false,
|
||||
"mirror_interval": "",
|
||||
"mirror_updated": "0001-01-01T00:00:00Z",
|
||||
"repo_transfer": null
|
||||
},
|
||||
"sender": {
|
||||
"id": 1,
|
||||
"login": "stupidcomputer",
|
||||
"login_name": "",
|
||||
"full_name": "stupidcomputer",
|
||||
"email": "stupidcomputer@noreply.git.beepboop.systems",
|
||||
"avatar_url": "https://secure.gravatar.com/avatar/b642b4217b34b1e8d3bd915fc65c4452?d=identicon",
|
||||
"language": "",
|
||||
"is_admin": false,
|
||||
"last_login": "0001-01-01T00:00:00Z",
|
||||
"created": "2023-06-23T22:23:01-05:00",
|
||||
"restricted": false,
|
||||
"active": false,
|
||||
"prohibit_login": false,
|
||||
"location": "",
|
||||
"website": "https://beepboop.systems",
|
||||
"description": "High schooler interested in computers, security, and reproducible systems.\r\n",
|
||||
"visibility": "public",
|
||||
"followers_count": 0,
|
||||
"following_count": 0,
|
||||
"starred_repos_count": 0,
|
||||
"username": "stupidcomputer"
|
||||
},
|
||||
"commit_id": ""
|
||||
}
|
|
@ -0,0 +1,136 @@
|
|||
{
|
||||
"action": "created",
|
||||
"repository": {
|
||||
"id": 73,
|
||||
"owner": {
|
||||
"id": 1,
|
||||
"login": "stupidcomputer",
|
||||
"login_name": "",
|
||||
"full_name": "stupidcomputer",
|
||||
"email": "stupidcomputer@noreply.git.beepboop.systems",
|
||||
"avatar_url": "https://secure.gravatar.com/avatar/b642b4217b34b1e8d3bd915fc65c4452?d=identicon",
|
||||
"language": "",
|
||||
"is_admin": false,
|
||||
"last_login": "0001-01-01T00:00:00Z",
|
||||
"created": "2023-06-23T22:23:01-05:00",
|
||||
"restricted": false,
|
||||
"active": false,
|
||||
"prohibit_login": false,
|
||||
"location": "",
|
||||
"website": "https://beepboop.systems",
|
||||
"description": "High schooler interested in computers, security, and reproducible systems.\r\n",
|
||||
"visibility": "public",
|
||||
"followers_count": 0,
|
||||
"following_count": 0,
|
||||
"starred_repos_count": 0,
|
||||
"username": "stupidcomputer"
|
||||
},
|
||||
"name": "sadkfjasdf",
|
||||
"full_name": "stupidcomputer/sadkfjasdf",
|
||||
"description": "",
|
||||
"empty": true,
|
||||
"private": false,
|
||||
"fork": false,
|
||||
"template": false,
|
||||
"parent": null,
|
||||
"mirror": false,
|
||||
"size": 0,
|
||||
"language": "",
|
||||
"languages_url": "https://git.beepboop.systems/api/v1/repos/stupidcomputer/sadkfjasdf/languages",
|
||||
"html_url": "https://git.beepboop.systems/stupidcomputer/sadkfjasdf",
|
||||
"url": "https://git.beepboop.systems/api/v1/repos/stupidcomputer/sadkfjasdf",
|
||||
"link": "",
|
||||
"ssh_url": "gitea@git.beepboop.systems:stupidcomputer/sadkfjasdf.git",
|
||||
"clone_url": "https://git.beepboop.systems/stupidcomputer/sadkfjasdf.git",
|
||||
"original_url": "",
|
||||
"website": "",
|
||||
"stars_count": 0,
|
||||
"forks_count": 0,
|
||||
"watchers_count": 0,
|
||||
"open_issues_count": 0,
|
||||
"open_pr_counter": 0,
|
||||
"release_counter": 0,
|
||||
"default_branch": "main",
|
||||
"archived": false,
|
||||
"created_at": "2024-10-08T22:47:49-05:00",
|
||||
"updated_at": "2024-10-08T22:47:49-05:00",
|
||||
"archived_at": "1969-12-31T18:00:00-06:00",
|
||||
"permissions": {
|
||||
"admin": true,
|
||||
"push": true,
|
||||
"pull": true
|
||||
},
|
||||
"has_issues": true,
|
||||
"internal_tracker": {
|
||||
"enable_time_tracker": true,
|
||||
"allow_only_contributors_to_track_time": true,
|
||||
"enable_issue_dependencies": true
|
||||
},
|
||||
"has_wiki": true,
|
||||
"has_pull_requests": true,
|
||||
"has_projects": true,
|
||||
"has_releases": true,
|
||||
"has_packages": true,
|
||||
"has_actions": false,
|
||||
"ignore_whitespace_conflicts": false,
|
||||
"allow_merge_commits": true,
|
||||
"allow_rebase": true,
|
||||
"allow_rebase_explicit": true,
|
||||
"allow_squash_merge": true,
|
||||
"allow_rebase_update": true,
|
||||
"default_delete_branch_after_merge": false,
|
||||
"default_merge_style": "merge",
|
||||
"default_allow_maintainer_edit": false,
|
||||
"avatar_url": "",
|
||||
"internal": false,
|
||||
"mirror_interval": "",
|
||||
"mirror_updated": "0001-01-01T00:00:00Z",
|
||||
"repo_transfer": null
|
||||
},
|
||||
"organization": {
|
||||
"id": 1,
|
||||
"login": "stupidcomputer",
|
||||
"login_name": "",
|
||||
"full_name": "stupidcomputer",
|
||||
"email": "stupidcomputer@noreply.git.beepboop.systems",
|
||||
"avatar_url": "https://secure.gravatar.com/avatar/b642b4217b34b1e8d3bd915fc65c4452?d=identicon",
|
||||
"language": "",
|
||||
"is_admin": false,
|
||||
"last_login": "0001-01-01T00:00:00Z",
|
||||
"created": "2023-06-23T22:23:01-05:00",
|
||||
"restricted": false,
|
||||
"active": false,
|
||||
"prohibit_login": false,
|
||||
"location": "",
|
||||
"website": "https://beepboop.systems",
|
||||
"description": "High schooler interested in computers, security, and reproducible systems.\r\n",
|
||||
"visibility": "public",
|
||||
"followers_count": 0,
|
||||
"following_count": 0,
|
||||
"starred_repos_count": 0,
|
||||
"username": "stupidcomputer"
|
||||
},
|
||||
"sender": {
|
||||
"id": 1,
|
||||
"login": "stupidcomputer",
|
||||
"login_name": "",
|
||||
"full_name": "stupidcomputer",
|
||||
"email": "stupidcomputer@noreply.git.beepboop.systems",
|
||||
"avatar_url": "https://secure.gravatar.com/avatar/b642b4217b34b1e8d3bd915fc65c4452?d=identicon",
|
||||
"language": "",
|
||||
"is_admin": false,
|
||||
"last_login": "0001-01-01T00:00:00Z",
|
||||
"created": "2023-06-23T22:23:01-05:00",
|
||||
"restricted": false,
|
||||
"active": false,
|
||||
"prohibit_login": false,
|
||||
"location": "",
|
||||
"website": "https://beepboop.systems",
|
||||
"description": "High schooler interested in computers, security, and reproducible systems.\r\n",
|
||||
"visibility": "public",
|
||||
"followers_count": 0,
|
||||
"following_count": 0,
|
||||
"starred_repos_count": 0,
|
||||
"username": "stupidcomputer"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,189 @@
|
|||
{
|
||||
"action": "closed",
|
||||
"issue": {
|
||||
"url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/issues/1",
|
||||
"repository_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf",
|
||||
"labels_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/issues/1/labels{/name}",
|
||||
"comments_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/issues/1/comments",
|
||||
"events_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/issues/1/events",
|
||||
"html_url": "https://github.com/stupidcomputer/sadkfjasdf/issues/1",
|
||||
"id": 2574858486,
|
||||
"node_id": "I_kwDOM9nmTM6ZeTj2",
|
||||
"number": 1,
|
||||
"title": "this is a test",
|
||||
"user": {
|
||||
"login": "stupidcomputer",
|
||||
"id": 108326967,
|
||||
"node_id": "U_kgDOBnTwNw",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/108326967?v=4",
|
||||
"gravatar_id": "",
|
||||
"url": "https://api.github.com/users/stupidcomputer",
|
||||
"html_url": "https://github.com/stupidcomputer",
|
||||
"followers_url": "https://api.github.com/users/stupidcomputer/followers",
|
||||
"following_url": "https://api.github.com/users/stupidcomputer/following{/other_user}",
|
||||
"gists_url": "https://api.github.com/users/stupidcomputer/gists{/gist_id}",
|
||||
"starred_url": "https://api.github.com/users/stupidcomputer/starred{/owner}{/repo}",
|
||||
"subscriptions_url": "https://api.github.com/users/stupidcomputer/subscriptions",
|
||||
"organizations_url": "https://api.github.com/users/stupidcomputer/orgs",
|
||||
"repos_url": "https://api.github.com/users/stupidcomputer/repos",
|
||||
"events_url": "https://api.github.com/users/stupidcomputer/events{/privacy}",
|
||||
"received_events_url": "https://api.github.com/users/stupidcomputer/received_events",
|
||||
"type": "User",
|
||||
"site_admin": false
|
||||
},
|
||||
"labels": [
|
||||
|
||||
],
|
||||
"state": "closed",
|
||||
"locked": false,
|
||||
"assignee": null,
|
||||
"assignees": [
|
||||
|
||||
],
|
||||
"milestone": null,
|
||||
"comments": 1,
|
||||
"created_at": "2024-10-09T06:06:39Z",
|
||||
"updated_at": "2024-10-09T06:24:04Z",
|
||||
"closed_at": "2024-10-09T06:24:04Z",
|
||||
"author_association": "OWNER",
|
||||
"active_lock_reason": null,
|
||||
"body": null,
|
||||
"reactions": {
|
||||
"url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/issues/1/reactions",
|
||||
"total_count": 0,
|
||||
"+1": 0,
|
||||
"-1": 0,
|
||||
"laugh": 0,
|
||||
"hooray": 0,
|
||||
"confused": 0,
|
||||
"heart": 0,
|
||||
"rocket": 0,
|
||||
"eyes": 0
|
||||
},
|
||||
"timeline_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/issues/1/timeline",
|
||||
"performed_via_github_app": null,
|
||||
"state_reason": "completed"
|
||||
},
|
||||
"repository": {
|
||||
"id": 869918284,
|
||||
"node_id": "R_kgDOM9nmTA",
|
||||
"name": "sadkfjasdf",
|
||||
"full_name": "stupidcomputer/sadkfjasdf",
|
||||
"private": false,
|
||||
"owner": {
|
||||
"login": "stupidcomputer",
|
||||
"id": 108326967,
|
||||
"node_id": "U_kgDOBnTwNw",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/108326967?v=4",
|
||||
"gravatar_id": "",
|
||||
"url": "https://api.github.com/users/stupidcomputer",
|
||||
"html_url": "https://github.com/stupidcomputer",
|
||||
"followers_url": "https://api.github.com/users/stupidcomputer/followers",
|
||||
"following_url": "https://api.github.com/users/stupidcomputer/following{/other_user}",
|
||||
"gists_url": "https://api.github.com/users/stupidcomputer/gists{/gist_id}",
|
||||
"starred_url": "https://api.github.com/users/stupidcomputer/starred{/owner}{/repo}",
|
||||
"subscriptions_url": "https://api.github.com/users/stupidcomputer/subscriptions",
|
||||
"organizations_url": "https://api.github.com/users/stupidcomputer/orgs",
|
||||
"repos_url": "https://api.github.com/users/stupidcomputer/repos",
|
||||
"events_url": "https://api.github.com/users/stupidcomputer/events{/privacy}",
|
||||
"received_events_url": "https://api.github.com/users/stupidcomputer/received_events",
|
||||
"type": "User",
|
||||
"site_admin": false
|
||||
},
|
||||
"html_url": "https://github.com/stupidcomputer/sadkfjasdf",
|
||||
"description": null,
|
||||
"fork": false,
|
||||
"url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf",
|
||||
"forks_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/forks",
|
||||
"keys_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/keys{/key_id}",
|
||||
"collaborators_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/collaborators{/collaborator}",
|
||||
"teams_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/teams",
|
||||
"hooks_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/hooks",
|
||||
"issue_events_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/issues/events{/number}",
|
||||
"events_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/events",
|
||||
"assignees_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/assignees{/user}",
|
||||
"branches_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/branches{/branch}",
|
||||
"tags_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/tags",
|
||||
"blobs_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/git/blobs{/sha}",
|
||||
"git_tags_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/git/tags{/sha}",
|
||||
"git_refs_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/git/refs{/sha}",
|
||||
"trees_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/git/trees{/sha}",
|
||||
"statuses_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/statuses/{sha}",
|
||||
"languages_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/languages",
|
||||
"stargazers_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/stargazers",
|
||||
"contributors_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/contributors",
|
||||
"subscribers_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/subscribers",
|
||||
"subscription_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/subscription",
|
||||
"commits_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/commits{/sha}",
|
||||
"git_commits_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/git/commits{/sha}",
|
||||
"comments_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/comments{/number}",
|
||||
"issue_comment_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/issues/comments{/number}",
|
||||
"contents_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/contents/{+path}",
|
||||
"compare_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/compare/{base}...{head}",
|
||||
"merges_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/merges",
|
||||
"archive_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/{archive_format}{/ref}",
|
||||
"downloads_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/downloads",
|
||||
"issues_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/issues{/number}",
|
||||
"pulls_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/pulls{/number}",
|
||||
"milestones_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/milestones{/number}",
|
||||
"notifications_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/notifications{?since,all,participating}",
|
||||
"labels_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/labels{/name}",
|
||||
"releases_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/releases{/id}",
|
||||
"deployments_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/deployments",
|
||||
"created_at": "2024-10-09T06:05:09Z",
|
||||
"updated_at": "2024-10-09T06:05:09Z",
|
||||
"pushed_at": "2024-10-09T06:05:09Z",
|
||||
"git_url": "git://github.com/stupidcomputer/sadkfjasdf.git",
|
||||
"ssh_url": "git@github.com:stupidcomputer/sadkfjasdf.git",
|
||||
"clone_url": "https://github.com/stupidcomputer/sadkfjasdf.git",
|
||||
"svn_url": "https://github.com/stupidcomputer/sadkfjasdf",
|
||||
"homepage": "https://git.beepboop.systems/stupidcomputer/sadkfjasdf",
|
||||
"size": 0,
|
||||
"stargazers_count": 0,
|
||||
"watchers_count": 0,
|
||||
"language": null,
|
||||
"has_issues": true,
|
||||
"has_projects": true,
|
||||
"has_downloads": true,
|
||||
"has_wiki": true,
|
||||
"has_pages": false,
|
||||
"has_discussions": false,
|
||||
"forks_count": 0,
|
||||
"mirror_url": null,
|
||||
"archived": false,
|
||||
"disabled": false,
|
||||
"open_issues_count": 0,
|
||||
"license": null,
|
||||
"allow_forking": true,
|
||||
"is_template": false,
|
||||
"web_commit_signoff_required": false,
|
||||
"topics": [
|
||||
|
||||
],
|
||||
"visibility": "public",
|
||||
"forks": 0,
|
||||
"open_issues": 0,
|
||||
"watchers": 0,
|
||||
"default_branch": "main"
|
||||
},
|
||||
"sender": {
|
||||
"login": "stupidcomputer",
|
||||
"id": 108326967,
|
||||
"node_id": "U_kgDOBnTwNw",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/108326967?v=4",
|
||||
"gravatar_id": "",
|
||||
"url": "https://api.github.com/users/stupidcomputer",
|
||||
"html_url": "https://github.com/stupidcomputer",
|
||||
"followers_url": "https://api.github.com/users/stupidcomputer/followers",
|
||||
"following_url": "https://api.github.com/users/stupidcomputer/following{/other_user}",
|
||||
"gists_url": "https://api.github.com/users/stupidcomputer/gists{/gist_id}",
|
||||
"starred_url": "https://api.github.com/users/stupidcomputer/starred{/owner}{/repo}",
|
||||
"subscriptions_url": "https://api.github.com/users/stupidcomputer/subscriptions",
|
||||
"organizations_url": "https://api.github.com/users/stupidcomputer/orgs",
|
||||
"repos_url": "https://api.github.com/users/stupidcomputer/repos",
|
||||
"events_url": "https://api.github.com/users/stupidcomputer/events{/privacy}",
|
||||
"received_events_url": "https://api.github.com/users/stupidcomputer/received_events",
|
||||
"type": "User",
|
||||
"site_admin": false
|
||||
}
|
||||
}
|
|
@ -0,0 +1,233 @@
|
|||
{
|
||||
"action": "created",
|
||||
"issue": {
|
||||
"url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/issues/1",
|
||||
"repository_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf",
|
||||
"labels_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/issues/1/labels{/name}",
|
||||
"comments_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/issues/1/comments",
|
||||
"events_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/issues/1/events",
|
||||
"html_url": "https://github.com/stupidcomputer/sadkfjasdf/issues/1",
|
||||
"id": 2574858486,
|
||||
"node_id": "I_kwDOM9nmTM6ZeTj2",
|
||||
"number": 1,
|
||||
"title": "this is a test",
|
||||
"user": {
|
||||
"login": "stupidcomputer",
|
||||
"id": 108326967,
|
||||
"node_id": "U_kgDOBnTwNw",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/108326967?v=4",
|
||||
"gravatar_id": "",
|
||||
"url": "https://api.github.com/users/stupidcomputer",
|
||||
"html_url": "https://github.com/stupidcomputer",
|
||||
"followers_url": "https://api.github.com/users/stupidcomputer/followers",
|
||||
"following_url": "https://api.github.com/users/stupidcomputer/following{/other_user}",
|
||||
"gists_url": "https://api.github.com/users/stupidcomputer/gists{/gist_id}",
|
||||
"starred_url": "https://api.github.com/users/stupidcomputer/starred{/owner}{/repo}",
|
||||
"subscriptions_url": "https://api.github.com/users/stupidcomputer/subscriptions",
|
||||
"organizations_url": "https://api.github.com/users/stupidcomputer/orgs",
|
||||
"repos_url": "https://api.github.com/users/stupidcomputer/repos",
|
||||
"events_url": "https://api.github.com/users/stupidcomputer/events{/privacy}",
|
||||
"received_events_url": "https://api.github.com/users/stupidcomputer/received_events",
|
||||
"type": "User",
|
||||
"site_admin": false
|
||||
},
|
||||
"labels": [
|
||||
|
||||
],
|
||||
"state": "open",
|
||||
"locked": false,
|
||||
"assignee": null,
|
||||
"assignees": [
|
||||
|
||||
],
|
||||
"milestone": null,
|
||||
"comments": 1,
|
||||
"created_at": "2024-10-09T06:06:39Z",
|
||||
"updated_at": "2024-10-09T06:22:06Z",
|
||||
"closed_at": null,
|
||||
"author_association": "OWNER",
|
||||
"active_lock_reason": null,
|
||||
"body": null,
|
||||
"reactions": {
|
||||
"url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/issues/1/reactions",
|
||||
"total_count": 0,
|
||||
"+1": 0,
|
||||
"-1": 0,
|
||||
"laugh": 0,
|
||||
"hooray": 0,
|
||||
"confused": 0,
|
||||
"heart": 0,
|
||||
"rocket": 0,
|
||||
"eyes": 0
|
||||
},
|
||||
"timeline_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/issues/1/timeline",
|
||||
"performed_via_github_app": null,
|
||||
"state_reason": null
|
||||
},
|
||||
"comment": {
|
||||
"url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/issues/comments/2401413724",
|
||||
"html_url": "https://github.com/stupidcomputer/sadkfjasdf/issues/1#issuecomment-2401413724",
|
||||
"issue_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/issues/1",
|
||||
"id": 2401413724,
|
||||
"node_id": "IC_kwDOM9nmTM6PIqpc",
|
||||
"user": {
|
||||
"login": "stupidcomputer",
|
||||
"id": 108326967,
|
||||
"node_id": "U_kgDOBnTwNw",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/108326967?v=4",
|
||||
"gravatar_id": "",
|
||||
"url": "https://api.github.com/users/stupidcomputer",
|
||||
"html_url": "https://github.com/stupidcomputer",
|
||||
"followers_url": "https://api.github.com/users/stupidcomputer/followers",
|
||||
"following_url": "https://api.github.com/users/stupidcomputer/following{/other_user}",
|
||||
"gists_url": "https://api.github.com/users/stupidcomputer/gists{/gist_id}",
|
||||
"starred_url": "https://api.github.com/users/stupidcomputer/starred{/owner}{/repo}",
|
||||
"subscriptions_url": "https://api.github.com/users/stupidcomputer/subscriptions",
|
||||
"organizations_url": "https://api.github.com/users/stupidcomputer/orgs",
|
||||
"repos_url": "https://api.github.com/users/stupidcomputer/repos",
|
||||
"events_url": "https://api.github.com/users/stupidcomputer/events{/privacy}",
|
||||
"received_events_url": "https://api.github.com/users/stupidcomputer/received_events",
|
||||
"type": "User",
|
||||
"site_admin": false
|
||||
},
|
||||
"created_at": "2024-10-09T06:22:06Z",
|
||||
"updated_at": "2024-10-09T06:22:06Z",
|
||||
"author_association": "OWNER",
|
||||
"body": "here is a helpful, insightful comment",
|
||||
"reactions": {
|
||||
"url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/issues/comments/2401413724/reactions",
|
||||
"total_count": 0,
|
||||
"+1": 0,
|
||||
"-1": 0,
|
||||
"laugh": 0,
|
||||
"hooray": 0,
|
||||
"confused": 0,
|
||||
"heart": 0,
|
||||
"rocket": 0,
|
||||
"eyes": 0
|
||||
},
|
||||
"performed_via_github_app": null
|
||||
},
|
||||
"repository": {
|
||||
"id": 869918284,
|
||||
"node_id": "R_kgDOM9nmTA",
|
||||
"name": "sadkfjasdf",
|
||||
"full_name": "stupidcomputer/sadkfjasdf",
|
||||
"private": false,
|
||||
"owner": {
|
||||
"login": "stupidcomputer",
|
||||
"id": 108326967,
|
||||
"node_id": "U_kgDOBnTwNw",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/108326967?v=4",
|
||||
"gravatar_id": "",
|
||||
"url": "https://api.github.com/users/stupidcomputer",
|
||||
"html_url": "https://github.com/stupidcomputer",
|
||||
"followers_url": "https://api.github.com/users/stupidcomputer/followers",
|
||||
"following_url": "https://api.github.com/users/stupidcomputer/following{/other_user}",
|
||||
"gists_url": "https://api.github.com/users/stupidcomputer/gists{/gist_id}",
|
||||
"starred_url": "https://api.github.com/users/stupidcomputer/starred{/owner}{/repo}",
|
||||
"subscriptions_url": "https://api.github.com/users/stupidcomputer/subscriptions",
|
||||
"organizations_url": "https://api.github.com/users/stupidcomputer/orgs",
|
||||
"repos_url": "https://api.github.com/users/stupidcomputer/repos",
|
||||
"events_url": "https://api.github.com/users/stupidcomputer/events{/privacy}",
|
||||
"received_events_url": "https://api.github.com/users/stupidcomputer/received_events",
|
||||
"type": "User",
|
||||
"site_admin": false
|
||||
},
|
||||
"html_url": "https://github.com/stupidcomputer/sadkfjasdf",
|
||||
"description": null,
|
||||
"fork": false,
|
||||
"url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf",
|
||||
"forks_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/forks",
|
||||
"keys_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/keys{/key_id}",
|
||||
"collaborators_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/collaborators{/collaborator}",
|
||||
"teams_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/teams",
|
||||
"hooks_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/hooks",
|
||||
"issue_events_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/issues/events{/number}",
|
||||
"events_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/events",
|
||||
"assignees_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/assignees{/user}",
|
||||
"branches_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/branches{/branch}",
|
||||
"tags_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/tags",
|
||||
"blobs_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/git/blobs{/sha}",
|
||||
"git_tags_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/git/tags{/sha}",
|
||||
"git_refs_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/git/refs{/sha}",
|
||||
"trees_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/git/trees{/sha}",
|
||||
"statuses_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/statuses/{sha}",
|
||||
"languages_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/languages",
|
||||
"stargazers_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/stargazers",
|
||||
"contributors_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/contributors",
|
||||
"subscribers_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/subscribers",
|
||||
"subscription_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/subscription",
|
||||
"commits_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/commits{/sha}",
|
||||
"git_commits_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/git/commits{/sha}",
|
||||
"comments_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/comments{/number}",
|
||||
"issue_comment_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/issues/comments{/number}",
|
||||
"contents_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/contents/{+path}",
|
||||
"compare_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/compare/{base}...{head}",
|
||||
"merges_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/merges",
|
||||
"archive_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/{archive_format}{/ref}",
|
||||
"downloads_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/downloads",
|
||||
"issues_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/issues{/number}",
|
||||
"pulls_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/pulls{/number}",
|
||||
"milestones_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/milestones{/number}",
|
||||
"notifications_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/notifications{?since,all,participating}",
|
||||
"labels_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/labels{/name}",
|
||||
"releases_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/releases{/id}",
|
||||
"deployments_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/deployments",
|
||||
"created_at": "2024-10-09T06:05:09Z",
|
||||
"updated_at": "2024-10-09T06:05:09Z",
|
||||
"pushed_at": "2024-10-09T06:05:09Z",
|
||||
"git_url": "git://github.com/stupidcomputer/sadkfjasdf.git",
|
||||
"ssh_url": "git@github.com:stupidcomputer/sadkfjasdf.git",
|
||||
"clone_url": "https://github.com/stupidcomputer/sadkfjasdf.git",
|
||||
"svn_url": "https://github.com/stupidcomputer/sadkfjasdf",
|
||||
"homepage": "https://git.beepboop.systems/stupidcomputer/sadkfjasdf",
|
||||
"size": 0,
|
||||
"stargazers_count": 0,
|
||||
"watchers_count": 0,
|
||||
"language": null,
|
||||
"has_issues": true,
|
||||
"has_projects": true,
|
||||
"has_downloads": true,
|
||||
"has_wiki": true,
|
||||
"has_pages": false,
|
||||
"has_discussions": false,
|
||||
"forks_count": 0,
|
||||
"mirror_url": null,
|
||||
"archived": false,
|
||||
"disabled": false,
|
||||
"open_issues_count": 1,
|
||||
"license": null,
|
||||
"allow_forking": true,
|
||||
"is_template": false,
|
||||
"web_commit_signoff_required": false,
|
||||
"topics": [
|
||||
|
||||
],
|
||||
"visibility": "public",
|
||||
"forks": 0,
|
||||
"open_issues": 1,
|
||||
"watchers": 0,
|
||||
"default_branch": "main"
|
||||
},
|
||||
"sender": {
|
||||
"login": "stupidcomputer",
|
||||
"id": 108326967,
|
||||
"node_id": "U_kgDOBnTwNw",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/108326967?v=4",
|
||||
"gravatar_id": "",
|
||||
"url": "https://api.github.com/users/stupidcomputer",
|
||||
"html_url": "https://github.com/stupidcomputer",
|
||||
"followers_url": "https://api.github.com/users/stupidcomputer/followers",
|
||||
"following_url": "https://api.github.com/users/stupidcomputer/following{/other_user}",
|
||||
"gists_url": "https://api.github.com/users/stupidcomputer/gists{/gist_id}",
|
||||
"starred_url": "https://api.github.com/users/stupidcomputer/starred{/owner}{/repo}",
|
||||
"subscriptions_url": "https://api.github.com/users/stupidcomputer/subscriptions",
|
||||
"organizations_url": "https://api.github.com/users/stupidcomputer/orgs",
|
||||
"repos_url": "https://api.github.com/users/stupidcomputer/repos",
|
||||
"events_url": "https://api.github.com/users/stupidcomputer/events{/privacy}",
|
||||
"received_events_url": "https://api.github.com/users/stupidcomputer/received_events",
|
||||
"type": "User",
|
||||
"site_admin": false
|
||||
}
|
||||
}
|
|
@ -0,0 +1,189 @@
|
|||
{
|
||||
"action": "opened",
|
||||
"issue": {
|
||||
"url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/issues/1",
|
||||
"repository_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf",
|
||||
"labels_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/issues/1/labels{/name}",
|
||||
"comments_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/issues/1/comments",
|
||||
"events_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/issues/1/events",
|
||||
"html_url": "https://github.com/stupidcomputer/sadkfjasdf/issues/1",
|
||||
"id": 2574858486,
|
||||
"node_id": "I_kwDOM9nmTM6ZeTj2",
|
||||
"number": 1,
|
||||
"title": "this is a test",
|
||||
"user": {
|
||||
"login": "stupidcomputer",
|
||||
"id": 108326967,
|
||||
"node_id": "U_kgDOBnTwNw",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/108326967?v=4",
|
||||
"gravatar_id": "",
|
||||
"url": "https://api.github.com/users/stupidcomputer",
|
||||
"html_url": "https://github.com/stupidcomputer",
|
||||
"followers_url": "https://api.github.com/users/stupidcomputer/followers",
|
||||
"following_url": "https://api.github.com/users/stupidcomputer/following{/other_user}",
|
||||
"gists_url": "https://api.github.com/users/stupidcomputer/gists{/gist_id}",
|
||||
"starred_url": "https://api.github.com/users/stupidcomputer/starred{/owner}{/repo}",
|
||||
"subscriptions_url": "https://api.github.com/users/stupidcomputer/subscriptions",
|
||||
"organizations_url": "https://api.github.com/users/stupidcomputer/orgs",
|
||||
"repos_url": "https://api.github.com/users/stupidcomputer/repos",
|
||||
"events_url": "https://api.github.com/users/stupidcomputer/events{/privacy}",
|
||||
"received_events_url": "https://api.github.com/users/stupidcomputer/received_events",
|
||||
"type": "User",
|
||||
"site_admin": false
|
||||
},
|
||||
"labels": [
|
||||
|
||||
],
|
||||
"state": "open",
|
||||
"locked": false,
|
||||
"assignee": null,
|
||||
"assignees": [
|
||||
|
||||
],
|
||||
"milestone": null,
|
||||
"comments": 0,
|
||||
"created_at": "2024-10-09T06:06:39Z",
|
||||
"updated_at": "2024-10-09T06:06:39Z",
|
||||
"closed_at": null,
|
||||
"author_association": "OWNER",
|
||||
"active_lock_reason": null,
|
||||
"body": null,
|
||||
"reactions": {
|
||||
"url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/issues/1/reactions",
|
||||
"total_count": 0,
|
||||
"+1": 0,
|
||||
"-1": 0,
|
||||
"laugh": 0,
|
||||
"hooray": 0,
|
||||
"confused": 0,
|
||||
"heart": 0,
|
||||
"rocket": 0,
|
||||
"eyes": 0
|
||||
},
|
||||
"timeline_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/issues/1/timeline",
|
||||
"performed_via_github_app": null,
|
||||
"state_reason": null
|
||||
},
|
||||
"repository": {
|
||||
"id": 869918284,
|
||||
"node_id": "R_kgDOM9nmTA",
|
||||
"name": "sadkfjasdf",
|
||||
"full_name": "stupidcomputer/sadkfjasdf",
|
||||
"private": false,
|
||||
"owner": {
|
||||
"login": "stupidcomputer",
|
||||
"id": 108326967,
|
||||
"node_id": "U_kgDOBnTwNw",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/108326967?v=4",
|
||||
"gravatar_id": "",
|
||||
"url": "https://api.github.com/users/stupidcomputer",
|
||||
"html_url": "https://github.com/stupidcomputer",
|
||||
"followers_url": "https://api.github.com/users/stupidcomputer/followers",
|
||||
"following_url": "https://api.github.com/users/stupidcomputer/following{/other_user}",
|
||||
"gists_url": "https://api.github.com/users/stupidcomputer/gists{/gist_id}",
|
||||
"starred_url": "https://api.github.com/users/stupidcomputer/starred{/owner}{/repo}",
|
||||
"subscriptions_url": "https://api.github.com/users/stupidcomputer/subscriptions",
|
||||
"organizations_url": "https://api.github.com/users/stupidcomputer/orgs",
|
||||
"repos_url": "https://api.github.com/users/stupidcomputer/repos",
|
||||
"events_url": "https://api.github.com/users/stupidcomputer/events{/privacy}",
|
||||
"received_events_url": "https://api.github.com/users/stupidcomputer/received_events",
|
||||
"type": "User",
|
||||
"site_admin": false
|
||||
},
|
||||
"html_url": "https://github.com/stupidcomputer/sadkfjasdf",
|
||||
"description": null,
|
||||
"fork": false,
|
||||
"url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf",
|
||||
"forks_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/forks",
|
||||
"keys_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/keys{/key_id}",
|
||||
"collaborators_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/collaborators{/collaborator}",
|
||||
"teams_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/teams",
|
||||
"hooks_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/hooks",
|
||||
"issue_events_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/issues/events{/number}",
|
||||
"events_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/events",
|
||||
"assignees_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/assignees{/user}",
|
||||
"branches_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/branches{/branch}",
|
||||
"tags_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/tags",
|
||||
"blobs_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/git/blobs{/sha}",
|
||||
"git_tags_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/git/tags{/sha}",
|
||||
"git_refs_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/git/refs{/sha}",
|
||||
"trees_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/git/trees{/sha}",
|
||||
"statuses_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/statuses/{sha}",
|
||||
"languages_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/languages",
|
||||
"stargazers_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/stargazers",
|
||||
"contributors_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/contributors",
|
||||
"subscribers_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/subscribers",
|
||||
"subscription_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/subscription",
|
||||
"commits_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/commits{/sha}",
|
||||
"git_commits_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/git/commits{/sha}",
|
||||
"comments_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/comments{/number}",
|
||||
"issue_comment_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/issues/comments{/number}",
|
||||
"contents_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/contents/{+path}",
|
||||
"compare_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/compare/{base}...{head}",
|
||||
"merges_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/merges",
|
||||
"archive_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/{archive_format}{/ref}",
|
||||
"downloads_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/downloads",
|
||||
"issues_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/issues{/number}",
|
||||
"pulls_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/pulls{/number}",
|
||||
"milestones_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/milestones{/number}",
|
||||
"notifications_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/notifications{?since,all,participating}",
|
||||
"labels_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/labels{/name}",
|
||||
"releases_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/releases{/id}",
|
||||
"deployments_url": "https://api.github.com/repos/stupidcomputer/sadkfjasdf/deployments",
|
||||
"created_at": "2024-10-09T06:05:09Z",
|
||||
"updated_at": "2024-10-09T06:05:09Z",
|
||||
"pushed_at": "2024-10-09T06:05:09Z",
|
||||
"git_url": "git://github.com/stupidcomputer/sadkfjasdf.git",
|
||||
"ssh_url": "git@github.com:stupidcomputer/sadkfjasdf.git",
|
||||
"clone_url": "https://github.com/stupidcomputer/sadkfjasdf.git",
|
||||
"svn_url": "https://github.com/stupidcomputer/sadkfjasdf",
|
||||
"homepage": "https://git.beepboop.systems/stupidcomputer/sadkfjasdf",
|
||||
"size": 0,
|
||||
"stargazers_count": 0,
|
||||
"watchers_count": 0,
|
||||
"language": null,
|
||||
"has_issues": true,
|
||||
"has_projects": true,
|
||||
"has_downloads": true,
|
||||
"has_wiki": true,
|
||||
"has_pages": false,
|
||||
"has_discussions": false,
|
||||
"forks_count": 0,
|
||||
"mirror_url": null,
|
||||
"archived": false,
|
||||
"disabled": false,
|
||||
"open_issues_count": 1,
|
||||
"license": null,
|
||||
"allow_forking": true,
|
||||
"is_template": false,
|
||||
"web_commit_signoff_required": false,
|
||||
"topics": [
|
||||
|
||||
],
|
||||
"visibility": "public",
|
||||
"forks": 0,
|
||||
"open_issues": 1,
|
||||
"watchers": 0,
|
||||
"default_branch": "main"
|
||||
},
|
||||
"sender": {
|
||||
"login": "stupidcomputer",
|
||||
"id": 108326967,
|
||||
"node_id": "U_kgDOBnTwNw",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/108326967?v=4",
|
||||
"gravatar_id": "",
|
||||
"url": "https://api.github.com/users/stupidcomputer",
|
||||
"html_url": "https://github.com/stupidcomputer",
|
||||
"followers_url": "https://api.github.com/users/stupidcomputer/followers",
|
||||
"following_url": "https://api.github.com/users/stupidcomputer/following{/other_user}",
|
||||
"gists_url": "https://api.github.com/users/stupidcomputer/gists{/gist_id}",
|
||||
"starred_url": "https://api.github.com/users/stupidcomputer/starred{/owner}{/repo}",
|
||||
"subscriptions_url": "https://api.github.com/users/stupidcomputer/subscriptions",
|
||||
"organizations_url": "https://api.github.com/users/stupidcomputer/orgs",
|
||||
"repos_url": "https://api.github.com/users/stupidcomputer/repos",
|
||||
"events_url": "https://api.github.com/users/stupidcomputer/events{/privacy}",
|
||||
"received_events_url": "https://api.github.com/users/stupidcomputer/received_events",
|
||||
"type": "User",
|
||||
"site_admin": false
|
||||
}
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
import requests
|
||||
import json
|
||||
|
||||
with open("data/gitea-issue-closed.json", "r") as file:
|
||||
data = json.loads(file.read())
|
||||
|
||||
r = requests.post("http://127.0.0.1:5000/bridge/endpoints/gitea/issue", json=data)
|
||||
print(r.text)
|
|
@ -0,0 +1,8 @@
|
|||
import requests
|
||||
import json
|
||||
|
||||
with open("data/gitea-issue-comment-created.json", "r") as file:
|
||||
data = json.loads(file.read())
|
||||
|
||||
r = requests.post("http://127.0.0.1:5000/bridge/endpoints/gitea/issue", json=data)
|
||||
print(r.text)
|
|
@ -0,0 +1,8 @@
|
|||
import requests
|
||||
import json
|
||||
|
||||
with open("data/gitea-issue-created.json", "r") as file:
|
||||
data = json.loads(file.read())
|
||||
|
||||
r = requests.post("http://127.0.0.1:5000/bridge/endpoints/gitea/issue", json=data)
|
||||
print(r.text)
|
|
@ -0,0 +1,8 @@
|
|||
import requests
|
||||
import json
|
||||
|
||||
with open("data/gitea-repo-created.json", "r") as file:
|
||||
data = json.loads(file.read())
|
||||
|
||||
r = requests.post("http://127.0.0.1:5000/bridge/endpoints/gitea/repo", json=data)
|
||||
print(r.text)
|
|
@ -0,0 +1,8 @@
|
|||
import requests
|
||||
import json
|
||||
|
||||
with open("data/github-issue-closed.json", "r") as file:
|
||||
data = json.loads(file.read())
|
||||
|
||||
r = requests.post("http://127.0.0.1:5000/bridge/endpoints/github/issue", json=data)
|
||||
print(r.text)
|
|
@ -0,0 +1,8 @@
|
|||
import requests
|
||||
import json
|
||||
|
||||
with open("data/github-issue-comment-created.json", "r") as file:
|
||||
data = json.loads(file.read())
|
||||
|
||||
r = requests.post("http://127.0.0.1:5000/bridge/endpoints/github/issue", json=data)
|
||||
print(r.text)
|
|
@ -0,0 +1,8 @@
|
|||
import requests
|
||||
import json
|
||||
|
||||
with open("data/github-issue-created.json", "r") as file:
|
||||
data = json.loads(file.read())
|
||||
|
||||
r = requests.post("http://127.0.0.1:5000/bridge/endpoints/github/issue", json=data)
|
||||
print(r.text)
|
Loading…
Reference in New Issue