🎉 初始提交 - 2026/6/8

这个提交包含在:
kozyax 2026-06-08 17:22:57 +08:00
当前提交 03dc1f08ec
共有 49 个文件被更改,包括 1431 次插入0 次删除

59
custom/conf/app.ini 普通文件
查看文件

@ -0,0 +1,59 @@
WORK_PATH = C:\Users\47353\Downloads\Git
; Gitea Configuration - Initial Setup
; مۇلازىمېتىر تەڭشىكى
[database]
DB_TYPE = sqlite3
PATH = data/gitea.db
[repository]
ROOT = data/repositories
[server]
DOMAIN = git.kozyax.vip
ROOT_URL = https://git.kozyax.vip/
HTTP_PORT = 3000
SSH_PORT = 22
SSH_DOMAIN = git.kozyax.vip
LOCAL_ROOT_URL = http://localhost:3000/
OFFLINE_MODE = false
DISABLE_SSH = false
START_SSH_SERVER = true
LFS_START_SERVER = true
LFS_JWT_SECRET = oR_zopTG614b6HRap3QZbkIGkrXGEI74DoNTDLv_6pk
[lfs]
PATH = data/lfs
[security]
INSTALL_LOCK = true
INTERNAL_TOKEN = eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYmYiOjE3ODA4OTc4NDl9.5UIy8hrw6CHNuqzI-vzEnvdiPzkFYqPEL3GJ5VzsZ7o
[service]
REGISTER_EMAIL_CONFIRM = false
ENABLE_NOTIFY_MAIL = false
DISABLE_REGISTRATION = false
ENABLE_CAPTCHA = false
REQUIRE_SIGNIN_VIEW = false
[log]
MODE = file
LEVEL = Info
ROOT_PATH = log
[i18n]
LANGS = zh-CN,en-US,zh-TW
NAMES = 简体中文,English,繁體中文
[ui]
DEFAULT_THEME = gitea
THEMES = gitea,arc-green
DEFAULT_LANGUAGE = zh-CN
[other]
SHOW_FOOTER_BRANDING = false
SHOW_FOOTER_VERSION = true
SHOW_FOOTER_TEMPLATE_LOAD_TIME = true
[oauth2]
JWT_SECRET = _HWZGBS4B1yZ74tNTNkcsOx8Vz5ZYETie1ekBwP4beg

二进制文件未显示。

之后

宽度:  |  高度:  |  大小: 4.0 KiB

二进制
data/gitea.db 普通文件

二进制文件未显示。

23
data/home/.gitconfig 普通文件
查看文件

@ -0,0 +1,23 @@
[diff]
algorithm = histogram
[core]
logallrefupdates = true
quotePath = false
commitGraph = true
longpaths = true
[gc]
reflogexpire = 90
writeCommitGraph = true
[user]
email = gitea@fake.local
name = Gitea
[receive]
advertisePushOptions = true
procReceiveRefs = refs/for
[fetch]
writeCommitGraph = true
[safe]
directory = *
[uploadpack]
allowfilter = true
allowAnySHA1InWant = true

查看文件

@ -0,0 +1 @@
{"storage":"boltdb","index_type":"scorch"}

查看文件

@ -0,0 +1 @@
{"version":5}

二进制文件未显示。

52
data/jwt/private.pem 普通文件
查看文件

@ -0,0 +1,52 @@
-----BEGIN PRIVATE KEY-----
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
lzRHwhtWzejsaizE1D6KMeiTaWo0KTbV
-----END PRIVATE KEY-----

二进制
data/queues/common/000002.ldb 普通文件

二进制文件未显示。

查看文件

查看文件

@ -0,0 +1 @@
MANIFEST-000006

查看文件

@ -0,0 +1 @@
MANIFEST-000004

0
data/queues/common/LOCK 普通文件
查看文件

25
data/queues/common/LOG 普通文件
查看文件

@ -0,0 +1,25 @@
=============== Jun 8, 2026 (CST) ===============
13:50:50.870474 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed
13:50:50.876488 db@open opening
13:50:50.877013 version@stat F·[] S·0B[] Sc·[]
13:50:50.881272 db@janitor F·2 G·0
13:50:50.881272 db@open done T·4.784ms
=============== Jun 8, 2026 (CST) ===============
13:53:53.739813 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed
13:53:53.739813 version@stat F·[] S·0B[] Sc·[]
13:53:53.739813 db@open opening
13:53:53.739813 journal@recovery F·1
13:53:53.739813 journal@recovery recovering @1
13:53:53.746589 memdb@flush created L0@2 N·28 S·574B "act..igh,v28":"web..low,v19"
13:53:53.747664 version@stat F·[1] S·574B[574B] Sc·[0.25]
13:53:53.758231 db@janitor F·3 G·0
13:53:53.758231 db@open done T·18.4185ms
=============== Jun 8, 2026 (CST) ===============
13:56:15.736815 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed
13:56:15.737818 version@stat F·[1] S·574B[574B] Sc·[0.25]
13:56:15.737818 db@open opening
13:56:15.737818 journal@recovery F·1
13:56:15.737818 journal@recovery recovering @3
13:56:15.739816 version@stat F·[1] S·574B[574B] Sc·[0.25]
13:56:15.753860 db@janitor F·3 G·0
13:56:15.753860 db@open done T·16.0425ms

二进制
data/queues/common/MANIFEST-000006 普通文件

二进制文件未显示。

查看文件

@ -0,0 +1 @@
ref: refs/heads/main

查看文件

@ -0,0 +1,6 @@
[core]
repositoryformatversion = 0
filemode = false
bare = true
symlinks = false
ignorecase = true

查看文件

@ -0,0 +1 @@
Unnamed repository; edit this file 'description' to name the repository.

查看文件

@ -0,0 +1,15 @@
#!/bin/sh
#
# An example hook script to check the commit log message taken by
# applypatch from an e-mail message.
#
# The hook should exit with non-zero status after issuing an
# appropriate message if it wants to stop the commit. The hook is
# allowed to edit the commit message file.
#
# To enable this hook, rename this file to "applypatch-msg".
. git-sh-setup
commitmsg="$(git rev-parse --git-path hooks/commit-msg)"
test -x "$commitmsg" && exec "$commitmsg" ${1+"$@"}
:

查看文件

@ -0,0 +1,74 @@
#!/bin/sh
#
# An example hook script to check the commit log message.
# Called by "git commit" with one argument, the name of the file
# that has the commit message. The hook should exit with non-zero
# status after issuing an appropriate message if it wants to stop the
# commit. The hook is allowed to edit the commit message file.
#
# To enable this hook, rename this file to "commit-msg".
# Uncomment the below to add a Signed-off-by line to the message.
# Doing this in a hook is a bad idea in general, but the prepare-commit-msg
# hook is more suited to it.
#
# SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p')
# grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1"
# This example catches duplicate Signed-off-by lines and messages that
# would confuse 'git am'.
ret=0
test "" = "$(grep '^Signed-off-by: ' "$1" |
sort | uniq -c | sed -e '/^[ ]*1[ ]/d')" || {
echo >&2 Duplicate Signed-off-by lines.
ret=1
}
comment_re="$(
{
git config --get-regexp "^core\.comment(char|string)\$" ||
echo '#'
} | sed -n -e '
${
s/^[^ ]* //
s|[][*./\]|\\&|g
s/^auto$/[#;@!$%^&|:]/
p
}'
)"
scissors_line="^${comment_re} -\{8,\} >8 -\{8,\}\$"
comment_line="^${comment_re}.*"
blank_line='^[ ]*$'
# Disallow lines starting with "diff -" or "Index: " in the body of the
# message. Stop looking if we see a scissors line.
line="$(sed -n -e "
# Skip comments and blank lines at the start of the file.
/${scissors_line}/q
/${comment_line}/d
/${blank_line}/d
# The first paragraph will become the subject header so
# does not need to be checked.
: subject
n
/${scissors_line}/q
/${blank_line}/!b subject
# Check the body of the message for problematic
# prefixes.
: body
n
/${scissors_line}/q
/${comment_line}/b body
/^diff -/{p;q;}
/^Index: /{p;q;}
b body
" "$1")"
if test -n "$line"
then
echo >&2 "Message contains a diff that will confuse 'git am'."
echo >&2 "To fix this indent the diff."
ret=1
fi
exit $ret

查看文件

@ -0,0 +1,168 @@
#!/usr/bin/perl
use strict;
use warnings;
use IPC::Open2;
# An example hook script to integrate Watchman
# (https://facebook.github.io/watchman/) with git to speed up detecting
# new and modified files.
#
# The hook is passed a version (currently 2) and last update token
# formatted as a string and outputs to stdout a new update token and
# all files that have been modified since the update token. Paths must
# be relative to the root of the working tree and separated by a single NUL.
#
# To enable this hook, rename this file to "query-watchman" and set
# 'git config core.fsmonitor .git/hooks/query-watchman'
#
my ($version, $last_update_token) = @ARGV;
# Uncomment for debugging
# print STDERR "$0 $version $last_update_token\n";
# Check the hook interface version
if ($version ne 2) {
die "Unsupported query-fsmonitor hook version '$version'.\n" .
"Falling back to scanning...\n";
}
my $git_work_tree = get_working_dir();
my $json_pkg;
eval {
require JSON::XS;
$json_pkg = "JSON::XS";
1;
} or do {
require JSON::PP;
$json_pkg = "JSON::PP";
};
launch_watchman();
sub launch_watchman {
my $o = watchman_query();
if (is_work_tree_watched($o)) {
output_result($o->{clock}, @{$o->{files}});
}
}
sub output_result {
my ($clockid, @files) = @_;
# Uncomment for debugging watchman output
# open (my $fh, ">", ".git/watchman-output.out");
# binmode $fh, ":utf8";
# print $fh "$clockid\n@files\n";
# close $fh;
binmode STDOUT, ":utf8";
print $clockid;
print "\0";
local $, = "\0";
print @files;
}
sub watchman_clock {
my $response = qx/watchman clock "$git_work_tree"/;
die "Failed to get clock id on '$git_work_tree'.\n" .
"Falling back to scanning...\n" if $? != 0;
return $json_pkg->new->utf8->decode($response);
}
sub watchman_query {
my $pid = open2(\*CHLD_OUT, \*CHLD_IN, 'watchman -j --no-pretty')
or die "open2() failed: $!\n" .
"Falling back to scanning...\n";
# In the query expression below we're asking for names of files that
# changed since $last_update_token but not from the .git folder.
#
# To accomplish this, we're using the "since" generator to use the
# recency index to select candidate nodes and "fields" to limit the
# output to file names only. Then we're using the "expression" term to
# further constrain the results.
my $last_update_line = "";
if (substr($last_update_token, 0, 1) eq "c") {
$last_update_token = "\"$last_update_token\"";
$last_update_line = qq[\n"since": $last_update_token,];
}
my $query = <<" END";
["query", "$git_work_tree", {$last_update_line
"fields": ["name"],
"expression": ["not", ["dirname", ".git"]]
}]
END
# Uncomment for debugging the watchman query
# open (my $fh, ">", ".git/watchman-query.json");
# print $fh $query;
# close $fh;
print CHLD_IN $query;
close CHLD_IN;
my $response = do {local $/; <CHLD_OUT>};
# Uncomment for debugging the watch response
# open ($fh, ">", ".git/watchman-response.json");
# print $fh $response;
# close $fh;
die "Watchman: command returned no output.\n" .
"Falling back to scanning...\n" if $response eq "";
die "Watchman: command returned invalid output: $response\n" .
"Falling back to scanning...\n" unless $response =~ /^\{/;
return $json_pkg->new->utf8->decode($response);
}
sub is_work_tree_watched {
my ($output) = @_;
my $error = $output->{error};
if ($error and $error =~ m/unable to resolve root .* directory (.*) is not watched/) {
my $response = qx/watchman watch "$git_work_tree"/;
die "Failed to make watchman watch '$git_work_tree'.\n" .
"Falling back to scanning...\n" if $? != 0;
$output = $json_pkg->new->utf8->decode($response);
$error = $output->{error};
die "Watchman: $error.\n" .
"Falling back to scanning...\n" if $error;
# Uncomment for debugging watchman output
# open (my $fh, ">", ".git/watchman-output.out");
# close $fh;
# Watchman will always return all files on the first query so
# return the fast "everything is dirty" flag to git and do the
# Watchman query just to get it over with now so we won't pay
# the cost in git to look up each individual file.
my $o = watchman_clock();
$error = $o->{error};
die "Watchman: $error.\n" .
"Falling back to scanning...\n" if $error;
output_result($o->{clock}, ("/"));
return 0;
}
die "Watchman: $error.\n" .
"Falling back to scanning...\n" if $error;
return 1;
}
sub get_working_dir {
my $working_dir;
if ($^O =~ 'msys' || $^O =~ 'cygwin') {
$working_dir = Win32::GetCwd();
$working_dir =~ tr/\\/\//;
} else {
require Cwd;
$working_dir = Cwd::cwd();
}
return $working_dir;
}

查看文件

@ -0,0 +1,16 @@
#!/usr/bin/env bash
# AUTO GENERATED BY GITEA, DO NOT MODIFY
data=$(cat)
exitcodes=""
hookname=$(basename $0)
GIT_DIR=${GIT_DIR:-$(dirname $0)/..}
for hook in ${GIT_DIR}/hooks/${hookname}.d/*; do
test -x "${hook}" && test -f "${hook}" || continue
echo "${data}" | "${hook}"
exitcodes="${exitcodes} $?"
done
for i in ${exitcodes}; do
[ ${i} -eq 0 ] || exit ${i}
done

查看文件

@ -0,0 +1,3 @@
#!/usr/bin/env bash
# AUTO GENERATED BY GITEA, DO NOT MODIFY
C:/Users/47353/Downloads/Git/gitea.exe hook --config="C:\\Users\\47353\\Downloads\\Git\\custom\\conf\\app.ini" post-receive

查看文件

@ -0,0 +1,8 @@
#!/bin/sh
#
# An example hook script to prepare a packed repository for use over
# dumb transports.
#
# To enable this hook, rename this file to "post-update".
exec git update-server-info

查看文件

@ -0,0 +1,14 @@
#!/bin/sh
#
# An example hook script to verify what is about to be committed
# by applypatch from an e-mail message.
#
# The hook should exit with non-zero status after issuing an
# appropriate message if it wants to stop the commit.
#
# To enable this hook, rename this file to "pre-applypatch".
. git-sh-setup
precommit="$(git rev-parse --git-path hooks/pre-commit)"
test -x "$precommit" && exec "$precommit" ${1+"$@"}
:

查看文件

@ -0,0 +1,49 @@
#!/bin/sh
#
# An example hook script to verify what is about to be committed.
# Called by "git commit" with no arguments. The hook should
# exit with non-zero status after issuing an appropriate message if
# it wants to stop the commit.
#
# To enable this hook, rename this file to "pre-commit".
if git rev-parse --verify HEAD >/dev/null 2>&1
then
against=HEAD
else
# Initial commit: diff against an empty tree object
against=$(git hash-object -t tree /dev/null)
fi
# If you want to allow non-ASCII filenames set this variable to true.
allownonascii=$(git config --type=bool hooks.allownonascii)
# Redirect output to stderr.
exec 1>&2
# Cross platform projects tend to avoid non-ASCII filenames; prevent
# them from being added to the repository. We exploit the fact that the
# printable range starts at the space character and ends with tilde.
if [ "$allownonascii" != "true" ] &&
# Note that the use of brackets around a tr range is ok here, (it's
# even required, for portability to Solaris 10's /usr/bin/tr), since
# the square bracket bytes happen to fall in the designated range.
test $(git diff-index --cached --name-only --diff-filter=A -z $against |
LC_ALL=C tr -d '[ -~]\0' | wc -c) != 0
then
cat <<\EOF
Error: Attempt to add a non-ASCII file name.
This can cause problems if you want to work with people on other platforms.
To be portable it is advisable to rename the file.
If you know what you are doing you can disable this check using:
git config hooks.allownonascii true
EOF
exit 1
fi
# If there are whitespace errors, print the offending file names and fail.
exec git diff-index --check --cached $against --

查看文件

@ -0,0 +1,13 @@
#!/bin/sh
#
# An example hook script to verify what is about to be committed.
# Called by "git merge" with no arguments. The hook should
# exit with non-zero status after issuing an appropriate message to
# stderr if it wants to stop the merge commit.
#
# To enable this hook, rename this file to "pre-merge-commit".
. git-sh-setup
test -x "$GIT_DIR/hooks/pre-commit" &&
exec "$GIT_DIR/hooks/pre-commit"
:

查看文件

@ -0,0 +1,53 @@
#!/bin/sh
# An example hook script to verify what is about to be pushed. Called by "git
# push" after it has checked the remote status, but before anything has been
# pushed. If this script exits with a non-zero status nothing will be pushed.
#
# This hook is called with the following parameters:
#
# $1 -- Name of the remote to which the push is being done
# $2 -- URL to which the push is being done
#
# If pushing without using a named remote those arguments will be equal.
#
# Information about the commits which are being pushed is supplied as lines to
# the standard input in the form:
#
# <local ref> <local oid> <remote ref> <remote oid>
#
# This sample shows how to prevent push of commits where the log message starts
# with "WIP" (work in progress).
remote="$1"
url="$2"
zero=$(git hash-object --stdin </dev/null | tr '[0-9a-f]' '0')
while read local_ref local_oid remote_ref remote_oid
do
if test "$local_oid" = "$zero"
then
# Handle delete
:
else
if test "$remote_oid" = "$zero"
then
# New branch, examine all commits
range="$local_oid"
else
# Update to existing branch, examine new commits
range="$remote_oid..$local_oid"
fi
# Check for WIP commit
commit=$(git rev-list -n 1 --grep '^WIP' "$range")
if test -n "$commit"
then
echo >&2 "Found WIP commit in $local_ref, not pushing"
exit 1
fi
fi
done
exit 0

查看文件

@ -0,0 +1,169 @@
#!/bin/sh
#
# Copyright (c) 2006, 2008 Junio C Hamano
#
# The "pre-rebase" hook is run just before "git rebase" starts doing
# its job, and can prevent the command from running by exiting with
# non-zero status.
#
# The hook is called with the following parameters:
#
# $1 -- the upstream the series was forked from.
# $2 -- the branch being rebased (or empty when rebasing the current branch).
#
# This sample shows how to prevent topic branches that are already
# merged to 'next' branch from getting rebased, because allowing it
# would result in rebasing already published history.
publish=next
basebranch="$1"
if test "$#" = 2
then
topic="refs/heads/$2"
else
topic=`git symbolic-ref HEAD` ||
exit 0 ;# we do not interrupt rebasing detached HEAD
fi
case "$topic" in
refs/heads/??/*)
;;
*)
exit 0 ;# we do not interrupt others.
;;
esac
# Now we are dealing with a topic branch being rebased
# on top of master. Is it OK to rebase it?
# Does the topic really exist?
git show-ref -q "$topic" || {
echo >&2 "No such branch $topic"
exit 1
}
# Is topic fully merged to master?
not_in_master=`git rev-list --pretty=oneline ^master "$topic"`
if test -z "$not_in_master"
then
echo >&2 "$topic is fully merged to master; better remove it."
exit 1 ;# we could allow it, but there is no point.
fi
# Is topic ever merged to next? If so you should not be rebasing it.
only_next_1=`git rev-list ^master "^$topic" ${publish} | sort`
only_next_2=`git rev-list ^master ${publish} | sort`
if test "$only_next_1" = "$only_next_2"
then
not_in_topic=`git rev-list "^$topic" master`
if test -z "$not_in_topic"
then
echo >&2 "$topic is already up to date with master"
exit 1 ;# we could allow it, but there is no point.
else
exit 0
fi
else
not_in_next=`git rev-list --pretty=oneline ^${publish} "$topic"`
/usr/bin/perl -e '
my $topic = $ARGV[0];
my $msg = "* $topic has commits already merged to public branch:\n";
my (%not_in_next) = map {
/^([0-9a-f]+) /;
($1 => 1);
} split(/\n/, $ARGV[1]);
for my $elem (map {
/^([0-9a-f]+) (.*)$/;
[$1 => $2];
} split(/\n/, $ARGV[2])) {
if (!exists $not_in_next{$elem->[0]}) {
if ($msg) {
print STDERR $msg;
undef $msg;
}
print STDERR " $elem->[1]\n";
}
}
' "$topic" "$not_in_next" "$not_in_master"
exit 1
fi
<<\DOC_END
This sample hook safeguards topic branches that have been
published from being rewound.
The workflow assumed here is:
* Once a topic branch forks from "master", "master" is never
merged into it again (either directly or indirectly).
* Once a topic branch is fully cooked and merged into "master",
it is deleted. If you need to build on top of it to correct
earlier mistakes, a new topic branch is created by forking at
the tip of the "master". This is not strictly necessary, but
it makes it easier to keep your history simple.
* Whenever you need to test or publish your changes to topic
branches, merge them into "next" branch.
The script, being an example, hardcodes the publish branch name
to be "next", but it is trivial to make it configurable via
$GIT_DIR/config mechanism.
With this workflow, you would want to know:
(1) ... if a topic branch has ever been merged to "next". Young
topic branches can have stupid mistakes you would rather
clean up before publishing, and things that have not been
merged into other branches can be easily rebased without
affecting other people. But once it is published, you would
not want to rewind it.
(2) ... if a topic branch has been fully merged to "master".
Then you can delete it. More importantly, you should not
build on top of it -- other people may already want to
change things related to the topic as patches against your
"master", so if you need further changes, it is better to
fork the topic (perhaps with the same name) afresh from the
tip of "master".
Let's look at this example:
o---o---o---o---o---o---o---o---o---o "next"
/ / / /
/ a---a---b A / /
/ / / /
/ / c---c---c---c B /
/ / / \ /
/ / / b---b C \ /
/ / / / \ /
---o---o---o---o---o---o---o---o---o---o---o "master"
A, B and C are topic branches.
* A has one fix since it was merged up to "next".
* B has finished. It has been fully merged up to "master" and "next",
and is ready to be deleted.
* C has not merged to "next" at all.
We would want to allow C to be rebased, refuse A, and encourage
B to be deleted.
To compute (1):
git rev-list ^master ^topic next
git rev-list ^master next
if these match, topic has not merged in next at all.
To compute (2):
git rev-list master..topic
if this is empty, it is fully merged to "master".
DOC_END

查看文件

@ -0,0 +1,16 @@
#!/usr/bin/env bash
# AUTO GENERATED BY GITEA, DO NOT MODIFY
data=$(cat)
exitcodes=""
hookname=$(basename $0)
GIT_DIR=${GIT_DIR:-$(dirname $0)/..}
for hook in ${GIT_DIR}/hooks/${hookname}.d/*; do
test -x "${hook}" && test -f "${hook}" || continue
echo "${data}" | "${hook}"
exitcodes="${exitcodes} $?"
done
for i in ${exitcodes}; do
[ ${i} -eq 0 ] || exit ${i}
done

查看文件

@ -0,0 +1,3 @@
#!/usr/bin/env bash
# AUTO GENERATED BY GITEA, DO NOT MODIFY
C:/Users/47353/Downloads/Git/gitea.exe hook --config="C:\\Users\\47353\\Downloads\\Git\\custom\\conf\\app.ini" pre-receive

查看文件

@ -0,0 +1,24 @@
#!/bin/sh
#
# An example hook script to make use of push options.
# The example simply echoes all push options that start with 'echoback='
# and rejects all pushes when the "reject" push option is used.
#
# To enable this hook, rename this file to "pre-receive".
if test -n "$GIT_PUSH_OPTION_COUNT"
then
i=0
while test "$i" -lt "$GIT_PUSH_OPTION_COUNT"
do
eval "value=\$GIT_PUSH_OPTION_$i"
case "$value" in
echoback=*)
echo "echo from the pre-receive-hook: ${value#*=}" >&2
;;
reject)
exit 1
esac
i=$((i + 1))
done
fi

查看文件

@ -0,0 +1,42 @@
#!/bin/sh
#
# An example hook script to prepare the commit log message.
# Called by "git commit" with the name of the file that has the
# commit message, followed by the description of the commit
# message's source. The hook's purpose is to edit the commit
# message file. If the hook fails with a non-zero status,
# the commit is aborted.
#
# To enable this hook, rename this file to "prepare-commit-msg".
# This hook includes three examples. The first one removes the
# "# Please enter the commit message..." help message.
#
# The second includes the output of "git diff --name-status -r"
# into the message, just before the "git status" output. It is
# commented because it doesn't cope with --amend or with squashed
# commits.
#
# The third example adds a Signed-off-by line to the message, that can
# still be edited. This is rarely a good idea.
COMMIT_MSG_FILE=$1
COMMIT_SOURCE=$2
SHA1=$3
/usr/bin/perl -i.bak -ne 'print unless(m/^. Please enter the commit message/..m/^#$/)' "$COMMIT_MSG_FILE"
# case "$COMMIT_SOURCE,$SHA1" in
# ,|template,)
# /usr/bin/perl -i.bak -pe '
# print "\n" . `git diff --cached --name-status -r`
# if /^#/ && $first++ == 0' "$COMMIT_MSG_FILE" ;;
# *) ;;
# esac
# SOB=$(git var GIT_COMMITTER_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p')
# git interpret-trailers --in-place --trailer "$SOB" "$COMMIT_MSG_FILE"
# if test -z "$COMMIT_SOURCE"
# then
# /usr/bin/perl -i.bak -pe 'print "\n" if !$first_line++' "$COMMIT_MSG_FILE"
# fi

查看文件

@ -0,0 +1,3 @@
#!/usr/bin/env bash
# AUTO GENERATED BY GITEA, DO NOT MODIFY
C:/Users/47353/Downloads/Git/gitea.exe hook --config="C:\\Users\\47353\\Downloads\\Git\\custom\\conf\\app.ini" proc-receive

查看文件

@ -0,0 +1,78 @@
#!/bin/sh
# An example hook script to update a checked-out tree on a git push.
#
# This hook is invoked by git-receive-pack(1) when it reacts to git
# push and updates reference(s) in its repository, and when the push
# tries to update the branch that is currently checked out and the
# receive.denyCurrentBranch configuration variable is set to
# updateInstead.
#
# By default, such a push is refused if the working tree and the index
# of the remote repository has any difference from the currently
# checked out commit; when both the working tree and the index match
# the current commit, they are updated to match the newly pushed tip
# of the branch. This hook is to be used to override the default
# behaviour; however the code below reimplements the default behaviour
# as a starting point for convenient modification.
#
# The hook receives the commit with which the tip of the current
# branch is going to be updated:
commit=$1
# It can exit with a non-zero status to refuse the push (when it does
# so, it must not modify the index or the working tree).
die () {
echo >&2 "$*"
exit 1
}
# Or it can make any necessary changes to the working tree and to the
# index to bring them to the desired state when the tip of the current
# branch is updated to the new commit, and exit with a zero status.
#
# For example, the hook can simply run git read-tree -u -m HEAD "$1"
# in order to emulate git fetch that is run in the reverse direction
# with git push, as the two-tree form of git read-tree -u -m is
# essentially the same as git switch or git checkout that switches
# branches while keeping the local changes in the working tree that do
# not interfere with the difference between the branches.
# The below is a more-or-less exact translation to shell of the C code
# for the default behaviour for git's push-to-checkout hook defined in
# the push_to_deploy() function in builtin/receive-pack.c.
#
# Note that the hook will be executed from the repository directory,
# not from the working tree, so if you want to perform operations on
# the working tree, you will have to adapt your code accordingly, e.g.
# by adding "cd .." or using relative paths.
if ! git update-index -q --ignore-submodules --refresh
then
die "Up-to-date check failed"
fi
if ! git diff-files --quiet --ignore-submodules --
then
die "Working directory has unstaged changes"
fi
# This is a rough translation of:
#
# head_has_history() ? "HEAD" : EMPTY_TREE_SHA1_HEX
if git cat-file -e HEAD 2>/dev/null
then
head=HEAD
else
head=$(git hash-object -t tree --stdin </dev/null)
fi
if ! git diff-index --quiet --cached --ignore-submodules $head --
then
die "Working directory has staged changes"
fi
if ! git read-tree -u -m "$commit"
then
die "Could not update working tree to new HEAD"
fi

查看文件

@ -0,0 +1,77 @@
#!/bin/sh
# An example hook script to validate a patch (and/or patch series) before
# sending it via email.
#
# The hook should exit with non-zero status after issuing an appropriate
# message if it wants to prevent the email(s) from being sent.
#
# To enable this hook, rename this file to "sendemail-validate".
#
# By default, it will only check that the patch(es) can be applied on top of
# the default upstream branch without conflicts in a secondary worktree. After
# validation (successful or not) of the last patch of a series, the worktree
# will be deleted.
#
# The following config variables can be set to change the default remote and
# remote ref that are used to apply the patches against:
#
# sendemail.validateRemote (default: origin)
# sendemail.validateRemoteRef (default: HEAD)
#
# Replace the TODO placeholders with appropriate checks according to your
# needs.
validate_cover_letter () {
file="$1"
# TODO: Replace with appropriate checks (e.g. spell checking).
true
}
validate_patch () {
file="$1"
# Ensure that the patch applies without conflicts.
git am -3 "$file" || return
# TODO: Replace with appropriate checks for this patch
# (e.g. checkpatch.pl).
true
}
validate_series () {
# TODO: Replace with appropriate checks for the whole series
# (e.g. quick build, coding style checks, etc.).
true
}
# main -------------------------------------------------------------------------
if test "$GIT_SENDEMAIL_FILE_COUNTER" = 1
then
remote=$(git config --default origin --get sendemail.validateRemote) &&
ref=$(git config --default HEAD --get sendemail.validateRemoteRef) &&
worktree=$(mktemp --tmpdir -d sendemail-validate.XXXXXXX) &&
git worktree add -fd --checkout "$worktree" "refs/remotes/$remote/$ref" &&
git config --replace-all sendemail.validateWorktree "$worktree"
else
worktree=$(git config --get sendemail.validateWorktree)
fi || {
echo "sendemail-validate: error: failed to prepare worktree" >&2
exit 1
}
unset GIT_DIR GIT_WORK_TREE
cd "$worktree" &&
if grep -q "^diff --git " "$1"
then
validate_patch "$1"
else
validate_cover_letter "$1"
fi &&
if test "$GIT_SENDEMAIL_FILE_COUNTER" = "$GIT_SENDEMAIL_FILE_TOTAL"
then
git config --unset-all sendemail.validateWorktree &&
trap 'git worktree remove -ff "$worktree"' EXIT &&
validate_series
fi

查看文件

@ -0,0 +1,15 @@
#!/usr/bin/env bash
# AUTO GENERATED BY GITEA, DO NOT MODIFY
exitcodes=""
hookname=$(basename $0)
GIT_DIR=${GIT_DIR:-$(dirname $0/..)}
for hook in ${GIT_DIR}/hooks/${hookname}.d/*; do
test -x "${hook}" && test -f "${hook}" || continue
"${hook}" $1 $2 $3
exitcodes="${exitcodes} $?"
done
for i in ${exitcodes}; do
[ ${i} -eq 0 ] || exit ${i}
done

查看文件

@ -0,0 +1,3 @@
#!/usr/bin/env bash
# AUTO GENERATED BY GITEA, DO NOT MODIFY
C:/Users/47353/Downloads/Git/gitea.exe hook --config="C:\\Users\\47353\\Downloads\\Git\\custom\\conf\\app.ini" update $1 $2 $3

查看文件

@ -0,0 +1,128 @@
#!/bin/sh
#
# An example hook script to block unannotated tags from entering.
# Called by "git receive-pack" with arguments: refname sha1-old sha1-new
#
# To enable this hook, rename this file to "update".
#
# Config
# ------
# hooks.allowunannotated
# This boolean sets whether unannotated tags will be allowed into the
# repository. By default they won't be.
# hooks.allowdeletetag
# This boolean sets whether deleting tags will be allowed in the
# repository. By default they won't be.
# hooks.allowmodifytag
# This boolean sets whether a tag may be modified after creation. By default
# it won't be.
# hooks.allowdeletebranch
# This boolean sets whether deleting branches will be allowed in the
# repository. By default they won't be.
# hooks.denycreatebranch
# This boolean sets whether remotely creating branches will be denied
# in the repository. By default this is allowed.
#
# --- Command line
refname="$1"
oldrev="$2"
newrev="$3"
# --- Safety check
if [ -z "$GIT_DIR" ]; then
echo "Don't run this script from the command line." >&2
echo " (if you want, you could supply GIT_DIR then run" >&2
echo " $0 <ref> <oldrev> <newrev>)" >&2
exit 1
fi
if [ -z "$refname" -o -z "$oldrev" -o -z "$newrev" ]; then
echo "usage: $0 <ref> <oldrev> <newrev>" >&2
exit 1
fi
# --- Config
allowunannotated=$(git config --type=bool hooks.allowunannotated)
allowdeletebranch=$(git config --type=bool hooks.allowdeletebranch)
denycreatebranch=$(git config --type=bool hooks.denycreatebranch)
allowdeletetag=$(git config --type=bool hooks.allowdeletetag)
allowmodifytag=$(git config --type=bool hooks.allowmodifytag)
# check for no description
projectdesc=$(sed -e '1q' "$GIT_DIR/description")
case "$projectdesc" in
"Unnamed repository"* | "")
echo "*** Project description file hasn't been set" >&2
exit 1
;;
esac
# --- Check types
# if $newrev is 0000...0000, it's a commit to delete a ref.
zero=$(git hash-object --stdin </dev/null | tr '[0-9a-f]' '0')
if [ "$newrev" = "$zero" ]; then
newrev_type=delete
else
newrev_type=$(git cat-file -t $newrev)
fi
case "$refname","$newrev_type" in
refs/tags/*,commit)
# un-annotated tag
short_refname=${refname##refs/tags/}
if [ "$allowunannotated" != "true" ]; then
echo "*** The un-annotated tag, $short_refname, is not allowed in this repository" >&2
echo "*** Use 'git tag [ -a | -s ]' for tags you want to propagate." >&2
exit 1
fi
;;
refs/tags/*,delete)
# delete tag
if [ "$allowdeletetag" != "true" ]; then
echo "*** Deleting a tag is not allowed in this repository" >&2
exit 1
fi
;;
refs/tags/*,tag)
# annotated tag
if [ "$allowmodifytag" != "true" ] && git rev-parse $refname > /dev/null 2>&1
then
echo "*** Tag '$refname' already exists." >&2
echo "*** Modifying a tag is not allowed in this repository." >&2
exit 1
fi
;;
refs/heads/*,commit)
# branch
if [ "$oldrev" = "$zero" -a "$denycreatebranch" = "true" ]; then
echo "*** Creating a branch is not allowed in this repository" >&2
exit 1
fi
;;
refs/heads/*,delete)
# delete branch
if [ "$allowdeletebranch" != "true" ]; then
echo "*** Deleting a branch is not allowed in this repository" >&2
exit 1
fi
;;
refs/remotes/*,commit)
# tracking branch
;;
refs/remotes/*,delete)
# delete tracking branch
if [ "$allowdeletebranch" != "true" ]; then
echo "*** Deleting a tracking branch is not allowed in this repository" >&2
exit 1
fi
;;
*)
# Anything else (is there anything else?)
echo "*** Update hook: unknown type of update to ref $refname of type $newrev_type" >&2
exit 1
;;
esac
# --- Finished
exit 0

查看文件

@ -0,0 +1,6 @@
# git ls-files --others --exclude-from=.git/info/exclude
# Lines that start with '#' are comments.
# For a project mostly in C, the following would be a good set of
# exclude patterns (uncomment them if you want to use them):
# *.[oa]
# *~

查看文件

@ -0,0 +1 @@

51
data/ssh/gitea.rsa 普通文件
查看文件

@ -0,0 +1,51 @@
-----BEGIN RSA PRIVATE KEY-----
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
-----END RSA PRIVATE KEY-----

1
data/ssh/gitea.rsa.pub 普通文件
查看文件

@ -0,0 +1 @@
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCn81WrX5SLlg48SnP94pBS6cFkwKCptH7TQLwR9yngmnL2Zxs3b7KcGBCMoTT8nHe0wcxhQ+drA2srB2JQYvC8f/1LHBcSV/S+GcHwzAYaF5lol18y9kNi4e5SAffCgDPdxYdllw+pLIpeWG58hQLIAipILN4zQTgeuDDPPGqWMSlQ9fG6ockjGwuJXzvjiF0Ro0DL/s/RR/iHQFelWDMNzbmbD2d4x8iKPxUzIaItH4lLP0WdQvb6teIwRuAIs0ZUMg2jwrNAOUpSUr7qebDsYX/KS6aOrqenyrgNhUIDhkc50fFX+W46gn+VhGx13q8kv/pgYvS29gu1tsaWXtO8CBQ5T6TiaU1X+XfuTwW01llkO5BXjXLuRPVpjh+zoFVurYa06f+TcwJbwLZRV5TDy25NPr6cKIMwr390bdtsNe57auMkSNGA0mOK7hRcOtKaGMyu0vnlvQZwL0TjU7UPt7V/jyjlvVLw4T3hUT8xMD81G9lpZ9AK+uZTJhOk7M11utDwYjGGrPcqAuK8bRscrvj1fKtjUKvfnRVJLMLHMAseAejLX7Q0b/PpQgggRFYHQwLi2OyJaodLMCSeSse1+gPJCmNYBGUJpq3I4Z6YQGaw0uQ31xnjQEdLXyRu/5TDKimvYnPUkaMlk5Hy8owptl8SmfohdjthOA/BAs8tQw==

二进制
gitea.exe 普通文件

二进制文件未显示。

229
log/gitea.log 普通文件
查看文件

@ -0,0 +1,229 @@
2026/06/08 13:50:50 ...s/storage/storage.go:176:initAttachments() [I] Initialising Attachment storage with type: local
2026/06/08 13:50:50 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at C:\Users\47353\Downloads\Git\data\attachments
2026/06/08 13:50:50 ...s/storage/storage.go:166:initAvatars() [I] Initialising Avatar storage with type: local
2026/06/08 13:50:50 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at C:\Users\47353\Downloads\Git\data\avatars
2026/06/08 13:50:50 ...s/storage/storage.go:192:initRepoAvatars() [I] Initialising Repository Avatar storage with type: local
2026/06/08 13:50:50 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at C:\Users\47353\Downloads\Git\data\repo-avatars
2026/06/08 13:50:50 ...s/storage/storage.go:186:initLFS() [I] Initialising LFS storage with type: local
2026/06/08 13:50:50 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at C:\Users\47353\Downloads\Git\data\data\lfs
2026/06/08 13:50:50 ...s/storage/storage.go:198:initRepoArchives() [I] Initialising Repository Archive storage with type: local
2026/06/08 13:50:50 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at C:\Users\47353\Downloads\Git\data\repo-archive
2026/06/08 13:50:50 ...s/storage/storage.go:208:initPackages() [I] Initialising Packages storage with type: local
2026/06/08 13:50:50 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at C:\Users\47353\Downloads\Git\data\packages
2026/06/08 13:50:50 ...s/storage/storage.go:219:initActions() [I] Initialising Actions storage with type: local
2026/06/08 13:50:50 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at C:\Users\47353\Downloads\Git\data\actions_log
2026/06/08 13:50:50 ...s/storage/storage.go:223:initActions() [I] Initialising ActionsArtifacts storage with type: local
2026/06/08 13:50:50 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at C:\Users\47353\Downloads\Git\data\actions_artifacts
2026/06/08 13:50:50 routers/init.go:139:InitWebInstalled() [I] SQLite3 support is enabled
2026/06/08 13:50:50 routers/common/db.go:23:InitDBEngine() [I] Beginning ORM engine initialization.
2026/06/08 13:50:50 routers/common/db.go:30:InitDBEngine() [I] ORM engine initialization attempt #1/10...
2026/06/08 13:50:50 cmd/web.go:205:serveInstalled() [I] PING DATABASE sqlite3
2026/06/08 13:50:54 routers/init.go:145:InitWebInstalled() [I] ORM engine initialization successful!
2026/06/08 13:50:54 ...er/issues/indexer.go:76:func1() [I] PID 18396: Initializing Issue Indexer: bleve
2026/06/08 13:50:54 ...xer/stats/indexer.go:41:populateRepoIndexer() [I] Populating the repo stats indexer with existing repositories
2026/06/08 13:50:54 routers/init.go:86:syncAppConfForGit() [I] AppPath changed from '' to 'C:/Users/47353/Downloads/Git/gitea.exe'
2026/06/08 13:50:54 routers/init.go:91:syncAppConfForGit() [I] CustomConf changed from '' to 'C:\Users\47353\Downloads\Git\custom\conf\app.ini'
2026/06/08 13:50:54 routers/init.go:97:syncAppConfForGit() [I] re-sync repository hooks ...
2026/06/08 13:50:54 routers/init.go:100:syncAppConfForGit() [I] re-write ssh public keys ...
2026/06/08 13:50:54 ...er/issues/indexer.go:153:func2() [I] Issue Indexer Initialization took 14.903ms
2026/06/08 13:50:55 modules/ssh/ssh.go:385:Listen() [I] Adding SSH host key: C:\Users\47353\Downloads\Git\data\ssh\gitea.rsa
2026/06/08 13:50:55 modules/ssh/init.go:26:Init() [I] SSH server started on :22. Cipher list ([chacha20-poly1305@openssh.com aes128-ctr aes192-ctr aes256-ctr aes128-gcm@openssh.com aes256-gcm@openssh.com]), key exchange algorithms ([curve25519-sha256 ecdh-sha2-nistp256 ecdh-sha2-nistp384 ecdh-sha2-nistp521 diffie-hellman-group14-sha256 diffie-hellman-group14-sha1]), MACs ([hmac-sha2-256-etm@openssh.com hmac-sha2-256 hmac-sha1])
2026/06/08 13:50:55 ...s/graceful/server.go:50:NewServer() [I] Starting new SSH server: tcp::22 on PID: 18396
2026/06/08 13:50:56 cmd/web.go:315:listen() [I] Listen: http://0.0.0.0:3000
2026/06/08 13:50:56 cmd/web.go:319:listen() [I] AppURL(ROOT_URL): http://localhost:3000/
2026/06/08 13:50:56 cmd/web.go:322:listen() [I] LFS server enabled
2026/06/08 13:50:56 ...s/graceful/server.go:50:NewServer() [I] Starting new Web server: tcp:0.0.0.0:3000 on PID: 18396
2026/06/08 13:51:08 ...eb/routing/logger.go:102:func1() [I] router: completed GET / for [::1]:51681, 200 OK in 4.2ms @ web/home.go:32(web.Home)
2026/06/08 13:51:14 ...eb/routing/logger.go:102:func1() [I] router: completed GET /user/sign_up for [::1]:51683, 200 OK in 1.6ms @ auth/auth.go:412(auth.SignUp)
2026/06/08 13:51:15 ...eb/routing/logger.go:102:func1() [I] router: completed GET /user/sign_up for [::1]:51683, 200 OK in 1.8ms @ auth/auth.go:412(auth.SignUp)
2026/06/08 13:51:15 ...eb/routing/logger.go:102:func1() [I] router: completed GET /user/sign_up for [::1]:51683, 200 OK in 1.1ms @ auth/auth.go:412(auth.SignUp)
2026/06/08 13:51:47 ...eb/routing/logger.go:102:func1() [I] router: completed POST /user/sign_up for [::1]:51683, 303 See Other in 44.0ms @ auth/auth.go:440(auth.SignUpPost)
2026/06/08 13:51:47 ...eb/routing/logger.go:102:func1() [I] router: completed GET / for [::1]:51683, 200 OK in 27.5ms @ web/home.go:32(web.Home)
2026/06/08 13:51:47 ...eb/routing/logger.go:102:func1() [I] router: completed GET /repo/search?count_only=1&uid=1&team_id=undefined&q=&page=1&mode= for [::1]:51683, 200 OK in 1.1ms @ repo/repo.go:573(repo.SearchRepo)
2026/06/08 13:51:47 ...eb/routing/logger.go:102:func1() [I] router: completed GET /repo/search?sort=updated&order=desc&uid=1&team_id=undefined&q=&page=1&limit=15&mode=&archived=false for [::1]:51681, 200 OK in 3.2ms @ repo/repo.go:573(repo.SearchRepo)
2026/06/08 13:51:47 ...eb/routing/logger.go:102:func1() [I] router: completed GET /avatars/3c4c941990c3da451702be28ee30b547?size=48 for [::1]:51683, 200 OK in 33.5ms @ web/base.go:22(avatars)
2026/06/08 13:51:51 ...eb/routing/logger.go:68:func1() [I] router: polling GET /user/events for [::1]:51682, elapsed 3930.0ms @ events/events.go:18(events.Events)
2026/06/08 13:52:28 ...eb/routing/logger.go:102:func1() [I] router: completed GET /user/events for [::1]:51682, 200 OK in 40687.5ms @ events/events.go:18(events.Events)
2026/06/08 13:52:28 ...eb/routing/logger.go:102:func1() [I] router: completed GET /kozyax for [::1]:51683, 200 OK in 9.7ms @ user/home.go:716(user.UsernameSubRoute)
2026/06/08 13:52:28 ...eb/routing/logger.go:102:func1() [I] router: completed GET /avatars/3c4c941990c3da451702be28ee30b547?size=512 for [::1]:51683, 200 OK in 0.0ms @ web/base.go:22(avatars)
2026/06/08 13:52:29 ...eb/routing/logger.go:102:func1() [I] router: completed GET /user/events for [::1]:51683, 200 OK in 1342.8ms @ events/events.go:18(events.Events)
2026/06/08 13:52:29 ...eb/routing/logger.go:102:func1() [I] router: completed GET /user/settings for [::1]:51681, 200 OK in 3.9ms @ setting/profile.go:45(setting.Profile)
2026/06/08 13:52:33 ...eb/routing/logger.go:68:func1() [I] router: polling GET /user/events for [::1]:51681, elapsed 3787.7ms @ events/events.go:18(events.Events)
2026/06/08 13:52:43 ...eb/routing/logger.go:102:func1() [I] router: completed GET /user/events for [::1]:51681, 200 OK in 13197.3ms @ events/events.go:18(events.Events)
2026/06/08 13:52:43 ...eb/routing/logger.go:102:func1() [I] router: completed GET /user/settings/account for [::1]:51937, 200 OK in 3.4ms @ setting/account.go:36(setting.Account)
2026/06/08 13:52:45 ...eb/routing/logger.go:102:func1() [I] router: completed GET /user/events for [::1]:51937, 200 OK in 1952.3ms @ events/events.go:18(events.Events)
2026/06/08 13:52:45 ...eb/routing/logger.go:102:func1() [I] router: completed GET /user/settings/appearance for [::1]:51940, 200 OK in 4.0ms @ setting/profile.go:338(setting.Appearance)
2026/06/08 13:52:45 ...eb/routing/logger.go:102:func1() [I] router: completed GET /user/events for [::1]:51940, 200 OK in 868.9ms @ events/events.go:18(events.Events)
2026/06/08 13:52:45 ...eb/routing/logger.go:102:func1() [I] router: completed GET /user/settings/security for [::1]:51943, 200 OK in 3.4ms @ security/security.go:27(security.Security)
2026/06/08 13:52:46 ...eb/routing/logger.go:102:func1() [I] router: completed GET /user/events for [::1]:51943, 200 OK in 978.3ms @ events/events.go:18(events.Events)
2026/06/08 13:52:46 ...eb/routing/logger.go:102:func1() [I] router: completed GET /user/settings/blocked_users for [::1]:51946, 200 OK in 3.1ms @ setting/block.go:20(setting.BlockedUsers)
2026/06/08 13:52:47 ...eb/routing/logger.go:102:func1() [I] router: completed GET /user/events for [::1]:51946, 200 OK in 810.1ms @ events/events.go:18(events.Events)
2026/06/08 13:52:47 ...eb/routing/logger.go:102:func1() [I] router: completed GET /user/settings/keys for [::1]:51949, 200 OK in 4.6ms @ setting/keys.go:27(setting.Keys)
2026/06/08 13:52:48 ...eb/routing/logger.go:102:func1() [I] router: completed GET /user/events for [::1]:51949, 200 OK in 567.3ms @ events/events.go:18(events.Events)
2026/06/08 13:52:48 ...eb/routing/logger.go:102:func1() [I] router: completed GET /user/settings/applications for [::1]:51951, 200 OK in 5.0ms @ setting/applications.go:25(setting.Applications)
2026/06/08 13:52:51 ...eb/routing/logger.go:102:func1() [I] router: completed GET /user/events for [::1]:51951, 200 OK in 2801.3ms @ events/events.go:18(events.Events)
2026/06/08 13:52:51 ...eb/routing/logger.go:102:func1() [I] router: completed GET /user/settings/packages for [::1]:51958, 200 OK in 2.6ms @ setting/packages.go:25(setting.Packages)
2026/06/08 13:52:51 ...eb/routing/logger.go:102:func1() [I] router: completed GET /user/events for [::1]:51958, 200 OK in 705.9ms @ events/events.go:18(events.Events)
2026/06/08 13:52:52 ...eb/routing/logger.go:102:func1() [I] router: completed GET /user/settings/hooks for [::1]:51961, 200 OK in 5.1ms @ setting/webhooks.go:22(setting.Webhooks)
2026/06/08 13:52:52 ...eb/routing/logger.go:102:func1() [I] router: completed GET /user/events for [::1]:51965, 200 OK in 692.4ms @ events/events.go:18(events.Events)
2026/06/08 13:52:52 ...eb/routing/logger.go:102:func1() [I] router: completed GET /user/settings/organization for [::1]:51963, 200 OK in 3.3ms @ setting/profile.go:199(setting.Organization)
2026/06/08 13:52:54 ...eb/routing/logger.go:102:func1() [I] router: completed GET /user/events for [::1]:51963, 200 OK in 1303.7ms @ events/events.go:18(events.Events)
2026/06/08 13:52:54 ...eb/routing/logger.go:102:func1() [I] router: completed GET /user/settings/repos for [::1]:51964, 200 OK in 3.3ms @ setting/profile.go:231(setting.Repos)
2026/06/08 13:52:57 ...eb/routing/logger.go:68:func1() [I] router: polling GET /user/events for [::1]:51964, elapsed 3491.8ms @ events/events.go:18(events.Events)
2026/06/08 13:53:53 ...s/storage/storage.go:176:initAttachments() [I] Initialising Attachment storage with type: local
2026/06/08 13:53:53 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at C:\Users\47353\Downloads\Git\data\attachments
2026/06/08 13:53:53 ...s/storage/storage.go:166:initAvatars() [I] Initialising Avatar storage with type: local
2026/06/08 13:53:53 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at C:\Users\47353\Downloads\Git\data\avatars
2026/06/08 13:53:53 ...s/storage/storage.go:192:initRepoAvatars() [I] Initialising Repository Avatar storage with type: local
2026/06/08 13:53:53 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at C:\Users\47353\Downloads\Git\data\repo-avatars
2026/06/08 13:53:53 ...s/storage/storage.go:186:initLFS() [I] Initialising LFS storage with type: local
2026/06/08 13:53:53 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at C:\Users\47353\Downloads\Git\data\data\lfs
2026/06/08 13:53:53 ...s/storage/storage.go:198:initRepoArchives() [I] Initialising Repository Archive storage with type: local
2026/06/08 13:53:53 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at C:\Users\47353\Downloads\Git\data\repo-archive
2026/06/08 13:53:53 ...s/storage/storage.go:208:initPackages() [I] Initialising Packages storage with type: local
2026/06/08 13:53:53 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at C:\Users\47353\Downloads\Git\data\packages
2026/06/08 13:53:53 ...s/storage/storage.go:219:initActions() [I] Initialising Actions storage with type: local
2026/06/08 13:53:53 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at C:\Users\47353\Downloads\Git\data\actions_log
2026/06/08 13:53:53 ...s/storage/storage.go:223:initActions() [I] Initialising ActionsArtifacts storage with type: local
2026/06/08 13:53:53 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at C:\Users\47353\Downloads\Git\data\actions_artifacts
2026/06/08 13:53:53 routers/init.go:139:InitWebInstalled() [I] SQLite3 support is enabled
2026/06/08 13:53:53 routers/common/db.go:23:InitDBEngine() [I] Beginning ORM engine initialization.
2026/06/08 13:53:53 routers/common/db.go:30:InitDBEngine() [I] ORM engine initialization attempt #1/10...
2026/06/08 13:53:53 cmd/web.go:205:serveInstalled() [I] PING DATABASE sqlite3
2026/06/08 13:53:53 cmd/web.go:205:serveInstalled() [W] Table system_setting Column version db default is , struct default is 1
2026/06/08 13:53:53 routers/init.go:145:InitWebInstalled() [I] ORM engine initialization successful!
2026/06/08 13:53:53 ...xer/stats/indexer.go:41:populateRepoIndexer() [I] Populating the repo stats indexer with existing repositories
2026/06/08 13:53:53 ...er/issues/indexer.go:76:func1() [I] PID 18064: Initializing Issue Indexer: bleve
2026/06/08 13:53:53 modules/ssh/ssh.go:385:Listen() [I] Adding SSH host key: C:\Users\47353\Downloads\Git\data\ssh\gitea.rsa
2026/06/08 13:53:53 modules/ssh/init.go:26:Init() [I] SSH server started on :22. Cipher list ([chacha20-poly1305@openssh.com aes128-ctr aes192-ctr aes256-ctr aes128-gcm@openssh.com aes256-gcm@openssh.com]), key exchange algorithms ([curve25519-sha256 ecdh-sha2-nistp256 ecdh-sha2-nistp384 ecdh-sha2-nistp521 diffie-hellman-group14-sha256 diffie-hellman-group14-sha1]), MACs ([hmac-sha2-256-etm@openssh.com hmac-sha2-256 hmac-sha1])
2026/06/08 13:53:53 ...s/graceful/server.go:50:NewServer() [I] Starting new SSH server: tcp::22 on PID: 18064
2026/06/08 13:53:53 ...er/issues/indexer.go:153:func2() [I] Issue Indexer Initialization took 2.3724ms
2026/06/08 13:53:54 cmd/web.go:315:listen() [I] Listen: http://0.0.0.0:3000
2026/06/08 13:53:54 cmd/web.go:319:listen() [I] AppURL(ROOT_URL): http://localhost:3000/
2026/06/08 13:53:54 cmd/web.go:322:listen() [I] LFS server enabled
2026/06/08 13:53:54 ...s/graceful/server.go:50:NewServer() [I] Starting new Web server: tcp:0.0.0.0:3000 on PID: 18064
2026/06/08 13:53:58 ...eb/routing/logger.go:102:func1() [I] router: completed GET / for [::1]:56738, 200 OK in 3.5ms @ web/home.go:32(web.Home)
2026/06/08 13:54:02 ...eb/routing/logger.go:102:func1() [I] router: completed GET / for [::1]:60336, 200 OK in 1.1ms @ web/home.go:32(web.Home)
2026/06/08 13:54:03 ...eb/routing/logger.go:102:func1() [I] router: completed GET /explore/repos for [::1]:60336, 200 OK in 4.0ms @ explore/repo.go:167(explore.Repos)
2026/06/08 13:54:06 ...eb/routing/logger.go:102:func1() [I] router: completed GET /user/login?redirect_to=%2fexplore%2frepos for [::1]:60336, 200 OK in 2.2ms @ auth/auth.go:180(auth.SignIn)
2026/06/08 13:54:23 ...eb/routing/logger.go:102:func1() [I] router: completed POST /user/login for [::1]:60336, 303 See Other in 24.6ms @ auth/auth.go:193(auth.SignInPost)
2026/06/08 13:54:23 .../go/src/sync/once.go:76:doSlow() [E] No theme candidate in asset files, but Gitea requires there should be at least one usable theme
2026/06/08 13:54:23 ...eb/routing/logger.go:102:func1() [I] router: completed GET /explore/repos for [::1]:60336, 200 OK in 3.8ms @ explore/repo.go:167(explore.Repos)
2026/06/08 13:54:23 ...eb/routing/logger.go:102:func1() [I] router: completed GET /avatars/3c4c941990c3da451702be28ee30b547?size=48 for [::1]:60336, 200 OK in 56.8ms @ web/base.go:22(avatars)
2026/06/08 13:54:26 ...eb/routing/logger.go:68:func1() [I] router: polling GET /user/events for [::1]:60336, elapsed 3390.9ms @ events/events.go:18(events.Events)
2026/06/08 13:54:27 ...eb/routing/logger.go:102:func1() [I] router: completed GET /user/events for [::1]:60336, 200 OK in 4787.0ms @ events/events.go:18(events.Events)
2026/06/08 13:54:28 ...eb/routing/logger.go:102:func1() [I] router: completed GET /explore/repos for [::1]:56738, 200 OK in 4.2ms @ explore/repo.go:167(explore.Repos)
2026/06/08 13:54:29 ...eb/routing/logger.go:102:func1() [I] router: completed GET /user/events for [::1]:56738, 200 OK in 953.5ms @ events/events.go:18(events.Events)
2026/06/08 13:54:29 ...eb/routing/logger.go:102:func1() [I] router: completed GET /explore/repos for [::1]:56162, 200 OK in 5.0ms @ explore/repo.go:167(explore.Repos)
2026/06/08 13:54:32 ...eb/routing/logger.go:102:func1() [I] router: completed GET /user/events for [::1]:56162, 200 OK in 3236.9ms @ events/events.go:18(events.Events)
2026/06/08 13:54:32 ...eb/routing/logger.go:102:func1() [I] router: completed GET /kozyax?tab=stars for [::1]:54697, 200 OK in 10.7ms @ user/home.go:716(user.UsernameSubRoute)
2026/06/08 13:54:32 ...eb/routing/logger.go:102:func1() [I] router: completed GET /avatars/3c4c941990c3da451702be28ee30b547?size=512 for [::1]:54697, 200 OK in 0.0ms @ web/base.go:22(avatars)
2026/06/08 13:54:34 ...eb/routing/logger.go:102:func1() [I] router: completed GET /user/events for [::1]:54697, 200 OK in 1643.8ms @ events/events.go:18(events.Events)
2026/06/08 13:54:34 ...eb/routing/logger.go:102:func1() [I] router: completed GET /kozyax?tab=repositories for [::1]:62995, 200 OK in 6.6ms @ user/home.go:716(user.UsernameSubRoute)
2026/06/08 13:54:37 ...eb/routing/logger.go:68:func1() [I] router: polling GET /user/events for [::1]:62995, elapsed 3541.7ms @ events/events.go:18(events.Events)
2026/06/08 13:54:37 ...eb/routing/logger.go:102:func1() [I] router: completed GET /user/events for [::1]:62995, 200 OK in 3898.9ms @ events/events.go:18(events.Events)
2026/06/08 13:54:37 ...eb/routing/logger.go:102:func1() [I] router: completed GET /kozyax for [::1]:55604, 200 OK in 6.5ms @ user/home.go:716(user.UsernameSubRoute)
2026/06/08 13:54:41 ...eb/routing/logger.go:68:func1() [I] router: polling GET /user/events for [::1]:55604, elapsed 3589.5ms @ events/events.go:18(events.Events)
2026/06/08 13:54:42 ...eb/routing/logger.go:102:func1() [I] router: completed GET /user/events for [::1]:55604, 200 OK in 4010.1ms @ events/events.go:18(events.Events)
2026/06/08 13:54:42 ...eb/routing/logger.go:102:func1() [I] router: completed GET /kozyax for [::1]:59247, 200 OK in 6.9ms @ user/home.go:716(user.UsernameSubRoute)
2026/06/08 13:54:45 ...eb/routing/logger.go:102:func1() [I] router: completed GET /user/events for [::1]:59247, 200 OK in 3283.3ms @ events/events.go:18(events.Events)
2026/06/08 13:54:45 ...eb/routing/logger.go:102:func1() [I] router: completed GET /user/settings for [::1]:64367, 200 OK in 2.7ms @ setting/profile.go:45(setting.Profile)
2026/06/08 13:54:48 ...eb/routing/logger.go:68:func1() [I] router: polling GET /user/events for [::1]:64367, elapsed 3189.1ms @ events/events.go:18(events.Events)
2026/06/08 13:54:55 ...eb/routing/logger.go:102:func1() [I] router: completed POST /user/settings/avatar/delete for [::1]:64758, 200 OK in 10.9ms @ setting/profile.go:190(setting.DeleteAvatar)
2026/06/08 13:54:55 ...eb/routing/logger.go:102:func1() [I] router: completed GET /user/events for [::1]:64367, 200 OK in 10029.7ms @ events/events.go:18(events.Events)
2026/06/08 13:54:58 ...eb/routing/logger.go:102:func1() [I] router: completed POST /-/fetch-redirect for [::1]:64758, 303 See Other in 0.0ms @ common/redirect.go:13(common.FetchRedirectDelegate)
2026/06/08 13:54:58 ...eb/routing/logger.go:102:func1() [I] router: completed GET /user/settings for [::1]:64758, 200 OK in 27.2ms @ setting/profile.go:45(setting.Profile)
2026/06/08 13:55:01 ...eb/routing/logger.go:102:func1() [I] router: completed GET /user/events for [::1]:64758, 200 OK in 3050.2ms @ events/events.go:18(events.Events)
2026/06/08 13:55:01 ...eb/routing/logger.go:102:func1() [I] router: completed POST /user/settings/avatar for [::1]:64629, 303 See Other in 9.2ms @ setting/profile.go:178(setting.AvatarPost)
2026/06/08 13:55:01 ...eb/routing/logger.go:102:func1() [I] router: completed GET /user/settings for [::1]:64629, 200 OK in 7.4ms @ setting/profile.go:45(setting.Profile)
2026/06/08 13:55:02 ...eb/routing/logger.go:102:func1() [I] router: completed GET /user/events for [::1]:64629, 200 OK in 1199.9ms @ events/events.go:18(events.Events)
2026/06/08 13:55:02 ...eb/routing/logger.go:102:func1() [I] router: completed POST /user/settings/avatar for [::1]:51228, 303 See Other in 11.7ms @ setting/profile.go:178(setting.AvatarPost)
2026/06/08 13:55:02 ...eb/routing/logger.go:102:func1() [I] router: completed GET /user/settings for [::1]:51228, 200 OK in 3.3ms @ setting/profile.go:45(setting.Profile)
2026/06/08 13:55:03 ...eb/routing/logger.go:102:func1() [I] router: completed GET /user/events for [::1]:51228, 200 OK in 312.9ms @ events/events.go:18(events.Events)
2026/06/08 13:55:03 ...eb/routing/logger.go:102:func1() [I] router: completed POST /user/settings/avatar for [::1]:52348, 303 See Other in 9.4ms @ setting/profile.go:178(setting.AvatarPost)
2026/06/08 13:55:03 ...eb/routing/logger.go:102:func1() [I] router: completed GET /user/settings for [::1]:52348, 200 OK in 2.7ms @ setting/profile.go:45(setting.Profile)
2026/06/08 13:55:06 ...eb/routing/logger.go:68:func1() [I] router: polling GET /user/events for [::1]:52348, elapsed 3388.1ms @ events/events.go:18(events.Events)
2026/06/08 13:56:00 ...eb/routing/logger.go:102:func1() [I] router: completed GET /user/events for [::1]:52348, 200 OK in 57030.3ms @ events/events.go:18(events.Events)
2026/06/08 13:56:01 ...eb/routing/logger.go:102:func1() [I] router: completed GET /user/settings for [::1]:56527, 200 OK in 4.6ms @ setting/profile.go:45(setting.Profile)
2026/06/08 13:56:15 ...s/storage/storage.go:176:initAttachments() [I] Initialising Attachment storage with type: local
2026/06/08 13:56:15 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at C:\Users\47353\Downloads\Git\data\attachments
2026/06/08 13:56:15 ...s/storage/storage.go:166:initAvatars() [I] Initialising Avatar storage with type: local
2026/06/08 13:56:15 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at C:\Users\47353\Downloads\Git\data\avatars
2026/06/08 13:56:15 ...s/storage/storage.go:192:initRepoAvatars() [I] Initialising Repository Avatar storage with type: local
2026/06/08 13:56:15 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at C:\Users\47353\Downloads\Git\data\repo-avatars
2026/06/08 13:56:15 ...s/storage/storage.go:186:initLFS() [I] Initialising LFS storage with type: local
2026/06/08 13:56:15 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at C:\Users\47353\Downloads\Git\data\data\lfs
2026/06/08 13:56:15 ...s/storage/storage.go:198:initRepoArchives() [I] Initialising Repository Archive storage with type: local
2026/06/08 13:56:15 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at C:\Users\47353\Downloads\Git\data\repo-archive
2026/06/08 13:56:15 ...s/storage/storage.go:208:initPackages() [I] Initialising Packages storage with type: local
2026/06/08 13:56:15 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at C:\Users\47353\Downloads\Git\data\packages
2026/06/08 13:56:15 ...s/storage/storage.go:219:initActions() [I] Initialising Actions storage with type: local
2026/06/08 13:56:15 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at C:\Users\47353\Downloads\Git\data\actions_log
2026/06/08 13:56:15 ...s/storage/storage.go:223:initActions() [I] Initialising ActionsArtifacts storage with type: local
2026/06/08 13:56:15 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at C:\Users\47353\Downloads\Git\data\actions_artifacts
2026/06/08 13:56:15 routers/init.go:139:InitWebInstalled() [I] SQLite3 support is enabled
2026/06/08 13:56:15 routers/common/db.go:23:InitDBEngine() [I] Beginning ORM engine initialization.
2026/06/08 13:56:15 routers/common/db.go:30:InitDBEngine() [I] ORM engine initialization attempt #1/10...
2026/06/08 13:56:15 cmd/web.go:205:serveInstalled() [I] PING DATABASE sqlite3
2026/06/08 13:56:15 cmd/web.go:205:serveInstalled() [W] Table system_setting Column version db default is , struct default is 1
2026/06/08 13:56:15 routers/init.go:145:InitWebInstalled() [I] ORM engine initialization successful!
2026/06/08 13:56:15 ...er/issues/indexer.go:76:func1() [I] PID 8964: Initializing Issue Indexer: bleve
2026/06/08 13:56:15 ...xer/stats/indexer.go:41:populateRepoIndexer() [I] Populating the repo stats indexer with existing repositories
2026/06/08 13:56:15 modules/ssh/ssh.go:385:Listen() [I] Adding SSH host key: C:\Users\47353\Downloads\Git\data\ssh\gitea.rsa
2026/06/08 13:56:15 modules/ssh/init.go:26:Init() [I] SSH server started on :22. Cipher list ([chacha20-poly1305@openssh.com aes128-ctr aes192-ctr aes256-ctr aes128-gcm@openssh.com aes256-gcm@openssh.com]), key exchange algorithms ([curve25519-sha256 ecdh-sha2-nistp256 ecdh-sha2-nistp384 ecdh-sha2-nistp521 diffie-hellman-group14-sha256 diffie-hellman-group14-sha1]), MACs ([hmac-sha2-256-etm@openssh.com hmac-sha2-256 hmac-sha1])
2026/06/08 13:56:15 ...er/issues/indexer.go:153:func2() [I] Issue Indexer Initialization took 997.9µs
2026/06/08 13:56:15 ...s/graceful/server.go:50:NewServer() [I] Starting new SSH server: tcp::22 on PID: 8964
2026/06/08 13:56:16 cmd/web.go:315:listen() [I] Listen: http://0.0.0.0:3000
2026/06/08 13:56:16 cmd/web.go:319:listen() [I] AppURL(ROOT_URL): http://localhost:3000/
2026/06/08 13:56:16 cmd/web.go:322:listen() [I] LFS server enabled
2026/06/08 13:56:16 ...s/graceful/server.go:50:NewServer() [I] Starting new Web server: tcp:0.0.0.0:3000 on PID: 8964
2026/06/08 13:56:17 ...eb/routing/logger.go:102:func1() [I] router: completed GET /user/events for [::1]:63664, 200 OK in 0.5ms @ events/events.go:18(events.Events)
2026/06/08 13:56:23 ...eb/routing/logger.go:102:func1() [I] router: completed GET /user/settings for [::1]:63664, 303 See Other in 0.5ms @ web/web.go:139(web.registerWebRoutes.verifyAuthWithOptions)
2026/06/08 13:56:23 ...eb/routing/logger.go:102:func1() [I] router: completed GET /user/login for [::1]:63664, 200 OK in 2.8ms @ auth/auth.go:180(auth.SignIn)
2026/06/08 13:56:25 ...eb/routing/logger.go:102:func1() [I] router: completed POST /user/login for [::1]:63664, 303 See Other in 34.5ms @ auth/auth.go:193(auth.SignInPost)
2026/06/08 13:56:25 .../go/src/sync/once.go:76:doSlow() [E] No theme candidate in asset files, but Gitea requires there should be at least one usable theme
2026/06/08 13:56:25 ...eb/routing/logger.go:102:func1() [I] router: completed GET /user/settings for [::1]:63664, 200 OK in 6.4ms @ setting/profile.go:45(setting.Profile)
2026/06/08 13:56:26 ...eb/routing/logger.go:102:func1() [I] router: completed GET /user/events for [::1]:63664, 200 OK in 1455.6ms @ events/events.go:18(events.Events)
2026/06/08 13:56:26 ...eb/routing/logger.go:102:func1() [I] router: completed GET /issues for [::1]:61308, 200 OK in 7.5ms @ user/home.go:355(user.Issues)
2026/06/08 13:56:28 ...eb/routing/logger.go:102:func1() [I] router: completed GET /user/events for [::1]:61308, 200 OK in 1807.4ms @ events/events.go:18(events.Events)
2026/06/08 13:56:28 ...eb/routing/logger.go:102:func1() [I] router: completed GET / for [::1]:51320, 200 OK in 8.2ms @ web/home.go:32(web.Home)
2026/06/08 13:56:28 ...eb/routing/logger.go:102:func1() [I] router: completed GET /repo/search?count_only=1&uid=1&team_id=undefined&q=&page=1&mode= for [::1]:51320, 200 OK in 2.8ms @ repo/repo.go:573(repo.SearchRepo)
2026/06/08 13:56:28 ...eb/routing/logger.go:102:func1() [I] router: completed GET /repo/search?sort=updated&order=desc&uid=1&team_id=undefined&q=&page=1&limit=15&mode=&archived=false for [::1]:51320, 200 OK in 6.5ms @ repo/repo.go:573(repo.SearchRepo)
2026/06/08 13:56:28 ...eb/routing/logger.go:102:func1() [I] router: completed GET /user/events for [::1]:51320, 200 OK in 59.8ms @ events/events.go:18(events.Events)
2026/06/08 13:56:28 ...eb/routing/logger.go:102:func1() [I] router: completed GET / for [::1]:51788, 200 OK in 5.9ms @ web/home.go:32(web.Home)
2026/06/08 13:56:28 ...eb/routing/logger.go:102:func1() [I] router: completed GET /repo/search?count_only=1&uid=1&team_id=undefined&q=&page=1&mode= for [::1]:51788, 200 OK in 2.7ms @ repo/repo.go:573(repo.SearchRepo)
2026/06/08 13:56:28 ...eb/routing/logger.go:102:func1() [I] router: completed GET /repo/search?sort=updated&order=desc&uid=1&team_id=undefined&q=&page=1&limit=15&mode=&archived=false for [::1]:51788, 200 OK in 3.7ms @ repo/repo.go:573(repo.SearchRepo)
2026/06/08 13:56:32 ...eb/routing/logger.go:68:func1() [I] router: polling GET /user/events for [::1]:51788, elapsed 3616.1ms @ events/events.go:18(events.Events)
2026/06/08 13:56:33 ...eb/routing/logger.go:102:func1() [I] router: completed GET /user/events for [::1]:51788, 200 OK in 4494.6ms @ events/events.go:18(events.Events)
2026/06/08 13:56:33 ...eb/routing/logger.go:102:func1() [I] router: completed GET / for [::1]:58213, 200 OK in 3.8ms @ web/home.go:32(web.Home)
2026/06/08 13:56:33 ...eb/routing/logger.go:102:func1() [I] router: completed GET /repo/search?count_only=1&uid=1&team_id=undefined&q=&page=1&mode= for [::1]:58213, 200 OK in 1.0ms @ repo/repo.go:573(repo.SearchRepo)
2026/06/08 13:56:33 ...eb/routing/logger.go:102:func1() [I] router: completed GET /repo/search?sort=updated&order=desc&uid=1&team_id=undefined&q=&page=1&limit=15&mode=&archived=false for [::1]:58213, 200 OK in 3.6ms @ repo/repo.go:573(repo.SearchRepo)
2026/06/08 13:56:36 ...eb/routing/logger.go:68:func1() [I] router: polling GET /user/events for [::1]:54613, elapsed 3075.6ms @ events/events.go:18(events.Events)
2026/06/08 13:56:51 ...eb/routing/logger.go:102:func1() [I] router: completed GET / for [::1]:58213, 200 OK in 6.6ms @ web/home.go:32(web.Home)
2026/06/08 13:56:51 ...eb/routing/logger.go:102:func1() [I] router: completed GET /repo/search?count_only=1&uid=1&team_id=undefined&q=&page=1&mode= for [::1]:58213, 200 OK in 1.6ms @ repo/repo.go:573(repo.SearchRepo)
2026/06/08 13:56:51 ...eb/routing/logger.go:102:func1() [I] router: completed GET /repo/search?sort=updated&order=desc&uid=1&team_id=undefined&q=&page=1&limit=15&mode=&archived=false for [::1]:58213, 200 OK in 3.0ms @ repo/repo.go:573(repo.SearchRepo)
2026/06/08 13:56:52 ...eb/routing/logger.go:102:func1() [I] router: completed GET / for [::1]:54416, 200 OK in 1.6ms @ web/home.go:32(web.Home)
2026/06/08 13:56:54 ...eb/routing/logger.go:102:func1() [I] router: completed GET / for [::1]:54416, 200 OK in 1.0ms @ web/home.go:32(web.Home)
2026/06/08 13:56:54 ...eb/routing/logger.go:102:func1() [I] router: completed GET / for [::1]:54416, 200 OK in 0.5ms @ web/home.go:32(web.Home)
2026/06/08 13:56:54 ...eb/routing/logger.go:102:func1() [I] router: completed GET / for [::1]:54416, 200 OK in 0.5ms @ web/home.go:32(web.Home)
2026/06/08 13:56:54 ...eb/routing/logger.go:102:func1() [I] router: completed GET / for [::1]:54416, 200 OK in 0.5ms @ web/home.go:32(web.Home)
2026/06/08 13:57:20 ...eb/routing/logger.go:102:func1() [I] router: completed GET /user/settings for [::1]:58213, 200 OK in 2.9ms @ setting/profile.go:45(setting.Profile)
2026/06/08 13:57:31 ...eb/routing/logger.go:102:func1() [I] router: completed GET /?lang=zh-CN for [::1]:58213, 200 OK in 5.8ms @ web/home.go:32(web.Home)
2026/06/08 13:57:31 ...eb/routing/logger.go:102:func1() [I] router: completed GET /user/settings for [::1]:58213, 200 OK in 3.8ms @ setting/profile.go:45(setting.Profile)
2026/06/08 13:57:44 ...eb/routing/logger.go:102:func1() [I] router: completed GET /user/settings/appearance for [::1]:58213, 200 OK in 7.9ms @ setting/profile.go:338(setting.Appearance)
2026/06/08 13:58:24 ...eb/routing/logger.go:102:func1() [I] router: completed POST /user/settings/appearance/language for [::1]:58213, 303 See Other in 9.4ms @ setting/profile.go:396(setting.UpdateUserLang)
2026/06/08 13:58:24 ...eb/routing/logger.go:102:func1() [I] router: completed GET /user/settings/appearance for [::1]:58213, 200 OK in 11.2ms @ setting/profile.go:338(setting.Appearance)
2026/06/08 13:58:41 ...eb/routing/logger.go:102:func1() [I] router: completed GET / for [::1]:58213, 200 OK in 8.6ms @ web/home.go:32(web.Home)
2026/06/08 13:58:41 ...eb/routing/logger.go:102:func1() [I] router: completed GET /repo/search?count_only=1&uid=1&team_id=undefined&q=&page=1&mode= for [::1]:58213, 200 OK in 1.6ms @ repo/repo.go:573(repo.SearchRepo)
2026/06/08 13:58:41 ...eb/routing/logger.go:102:func1() [I] router: completed GET /repo/search?sort=updated&order=desc&uid=1&team_id=undefined&q=&page=1&limit=15&mode=&archived=false for [::1]:58213, 200 OK in 4.9ms @ repo/repo.go:573(repo.SearchRepo)
2026/06/08 13:59:22 ...eb/routing/logger.go:102:func1() [I] router: completed GET /repo/create for [::1]:58213, 200 OK in 15.5ms @ repo/repo.go:152(repo.Create)
2026/06/08 13:59:22 ...eb/routing/logger.go:102:func1() [I] router: completed GET /avatars/3c4c941990c3da451702be28ee30b547?size=56 for [::1]:58213, 200 OK in 128.6ms @ web/base.go:22(avatars)
2026/06/08 13:59:36 ...eb/routing/logger.go:102:func1() [I] router: completed GET /repo/search?q=&template=true&priority_owner_id=1&_=1780898362592 for [::1]:58213, 200 OK in 6.2ms @ repo/repo.go:573(repo.SearchRepo)
2026/06/08 13:59:36 ...eb/routing/logger.go:102:func1() [I] router: completed GET /repo/search?q=&template=true&priority_owner_id=1&_=1780898362593 for [::1]:58213, 200 OK in 9.8ms @ repo/repo.go:573(repo.SearchRepo)
2026/06/08 13:59:37 ...eb/routing/logger.go:102:func1() [I] router: completed GET /repo/search?q=&template=true&priority_owner_id=1&_=1780898362594 for [::1]:58213, 200 OK in 3.8ms @ repo/repo.go:573(repo.SearchRepo)
2026/06/08 13:59:38 ...eb/routing/logger.go:102:func1() [I] router: completed GET /repo/search?q=&template=true&priority_owner_id=1&_=1780898362595 for [::1]:58213, 200 OK in 3.5ms @ repo/repo.go:573(repo.SearchRepo)
2026/06/08 13:59:43 ...eb/routing/logger.go:102:func1() [I] router: completed POST /repo/create for [::1]:58213, 200 OK in 6.9ms @ repo/repo.go:222(repo.CreatePost)
2026/06/08 13:59:51 ...eb/routing/logger.go:102:func1() [I] router: completed POST /repo/create for [::1]:58213, 303 See Other in 503.2ms @ repo/repo.go:222(repo.CreatePost)
2026/06/08 13:59:51 ...eb/routing/logger.go:102:func1() [I] router: completed GET /kozyax/sinak for [::1]:58213, 200 OK in 70.9ms @ repo/view_home.go:332(repo.Home)
2026/06/08 14:00:01 ...eb/routing/logger.go:102:func1() [I] router: completed GET /kozyax/sinak/packages for [::1]:58213, 200 OK in 10.6ms @ repo/packages.go:23(repo.Packages)
2026/06/08 14:00:02 ...eb/routing/logger.go:102:func1() [I] router: completed GET /kozyax/sinak for [::1]:58213, 200 OK in 38.1ms @ repo/view_home.go:332(repo.Home)

1
vscode-auto-git 子模块

@ -0,0 +1 @@
Subproject commit c05e688a04ebe0dce1f7c720feed9a165b79db27