2
0
Fork 0
mirror of https://github.com/Th3Whit3Wolf/Space-Gitea synced 2024-05-11 05:16:03 +02:00

Initial commit

This commit is contained in:
Th3Whit3Wolf 2020-02-15 21:26:37 +00:00
commit 138f460981
22 changed files with 2434 additions and 0 deletions

4
certs/mkcerts.sh Executable file
View File

@ -0,0 +1,4 @@
openssl req -new -text -passout pass:abcd -subj /CN=localhost -out server.req -keyout privkey.pem
openssl rsa -in privkey.pem -passin pass:abcd -out server.key
openssl req -x509 -in server.req -text -key server.key -out server.crt
chmod 600 server.key

44
docker-compose.yml Normal file
View File

@ -0,0 +1,44 @@
version: "2"
networks:
gitea:
external: false
services:
server:
image: gitea/gitea:latest
restart: always
networks:
- gitea
ports:
- "8080:8080"
- "127.0.0.1:2221:22"
environment:
- USER_UID=1000
- USER_GID=1000
- DB_TYPE=postgres
- DB_HOST=db:5432
- DB_NAME=gitea
- DB_USER=gitea
- DB_PASSWD=gitea
volumes:
- ./gitea:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
- ./ssh/authorized_keys/:/var/lib/gitea/git/.ssh/authorized_keys
db:
image: postgres:11.6-alpine
command: -c ssl=on -c ssl_cert_file=/var/lib/postgresql/server.crt -c ssl_key_file=/var/lib/postgresql/server.key
restart: always
networks:
- gitea
environment:
- POSTGRES_USER=gitea
- POSTGRES_PASSWD=gitea
- POSTGRES_DB=gitea
volumes:
- ./postgres:/var/lib/postgresql/data
- ./certs/server.crt:/var/lib/postgresql/server.crt
- ./certs/server.key:/var/lib/postgresql/server.key

89
gitea/gitea/conf/app.ini Normal file
View File

@ -0,0 +1,89 @@
APP_NAME = My Gitea Setup
RUN_MODE = prod
RUN_USER = git
[repository]
ROOT = /data/git/repositories
[repository.local]
LOCAL_COPY_PATH = /data/gitea/tmp/local-repo
[repository.upload]
TEMP_PATH = /data/gitea/uploads
[server]
APP_DATA_PATH = /data/gitea
SSH_DOMAIN = localhost
HTTP_PORT = 8080
ROOT_URL = http://localhost:8080/
DISABLE_SSH = false
SSH_PORT = 22
SSH_LISTEN_PORT = 22
LFS_START_SERVER = true
LFS_CONTENT_PATH = /data/git/lfs
DOMAIN = localhost
LFS_JWT_SECRET = FnoDQvm4Zr6ooza_A2d_iNiwNznowCbnHkVeo67rm3A
OFFLINE_MODE = false
[database]
PATH = /data/gitea/gitea.db
DB_TYPE = postgres
HOST = db:5432
NAME = gitea
USER = gitea
PASSWD = gitea
SCHEMA =
SSL_MODE = require
CHARSET = utf8
[indexer]
ISSUE_INDEXER_PATH = /data/gitea/indexers/issues.bleve
[session]
PROVIDER_CONFIG = /data/gitea/sessions
PROVIDER = file
[picture]
AVATAR_UPLOAD_PATH = /data/gitea/avatars
REPOSITORY_AVATAR_UPLOAD_PATH = /data/gitea/repo-avatars
DISABLE_GRAVATAR = false
ENABLE_FEDERATED_AVATAR = true
[attachment]
PATH = /data/gitea/attachments
[log]
ROOT_PATH = /data/gitea/log
MODE = file
LEVEL = info
[security]
INSTALL_LOCK = true
SECRET_KEY = H9MebNKUVH7Fzq4ZeGGbNrs3jBAXKNCMw1Q1fc1pcdsZqCf5GbhnqEzpsIe1yjwv
INTERNAL_TOKEN = eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYmYiOjE1ODE2MTQ4MjF9.w4AUA6JlPYpL7OCjIINflp6b5RggZW0tuFxd05yaRMU
[service]
DISABLE_REGISTRATION = false
REQUIRE_SIGNIN_VIEW = false
REGISTER_EMAIL_CONFIRM = false
ENABLE_NOTIFY_MAIL = false
ALLOW_ONLY_EXTERNAL_REGISTRATION = false
ENABLE_CAPTCHA = false
DEFAULT_KEEP_EMAIL_PRIVATE = false
DEFAULT_ALLOW_CREATE_ORGANIZATION = true
DEFAULT_ENABLE_TIMETRACKING = true
NO_REPLY_ADDRESS = noreply.localhost
[oauth2]
JWT_SECRET = TgrRL2yjGlKl-AM91BU7NUimaDM9v5iAiylFFj1DCtI
[mailer]
ENABLED = false
[openid]
ENABLE_OPENID_SIGNIN = true
ENABLE_OPENID_SIGNUP = true
[ui]
DEFAULT_THEME = arc-green
THEMES = gitea,arc-green,space

2
gitea/gitea/gitea Executable file
View File

@ -0,0 +1,2 @@
#!/bin/sh
ssh -p 2221 -o StrictHostKeyChecking=no git@127.0.0.1 "SSH_ORIGINAL_COMMAND=\"$SSH_ORIGINAL_COMMAND\" $0 $@"

View File

@ -0,0 +1,1554 @@
.hljs {
display: block;
overflow-x: auto;
padding: .5em;
color: #bababa
}
.hljs-emphasis,
.hljs-strong {
color: #a8a8a2
}
.hljs-bullet,
.hljs-link,
.hljs-literal,
.hljs-number,
.hljs-quote,
.hljs-regexp {
color: #6896ba
}
.hljs-code,
.hljs-selector-class {
color: #a6e22e
}
.hljs-emphasis {
font-style: italic
}
.hljs-attribute,
.hljs-keyword,
.hljs-name,
.hljs-section,
.hljs-selector-tag,
.hljs-variable {
color: #cb7832
}
.hljs-params {
color: #b9b9b9
}
.hljs-string {
color: #6a8759
}
.hljs-addition,
.hljs-built_in,
.hljs-builtin-name,
.hljs-selector-attr,
.hljs-selector-id,
.hljs-selector-pseudo,
.hljs-subst,
.hljs-symbol,
.hljs-template-tag,
.hljs-template-variable,
.hljs-type {
color: #e0c46c
}
.hljs-comment,
.hljs-deletion,
.hljs-meta {
color: #7f7f7f
}
.repository .ui.segment.sub-menu .list .item,
.repository .ui.segment.sub-menu .list .item a,
.repository .ui.segment.sub-menu .list .item span.ui {
color: #cbc1d5;
}
.ui.horizontal.segments>.segment {
background-color: #212026
}
body {
background: #292b2e;
color: #b2b7b8
}
* {
scrollbar-width: thin;
scrollbar-color: #5d4d7a hsla(0, 0%, 100%, .1)
}
::-webkit-scrollbar {
-webkit-appearance: none!important;
width: 10px!important;
height: 10px!important
}
::-webkit-scrollbar-track {
border-radius: 0!important;
background: hsla(0, 0%, 100%, .1)!important
}
::-webkit-scrollbar-thumb {
cursor: pointer!important;
border-radius: 5px!important;
-webkit-transition: color .2s ease!important;
transition: color .2s ease!important
}
::-webkit-scrollbar-thumb,
::-webkit-scrollbar-thumb:window-inactive {
background: #5d4d7a!important
}
::-webkit-scrollbar-thumb:hover {
background: #5d4d7a!important
}
.ui.breadcrumb a:hover,
.ui.card>.extra a:not(.ui):hover,
.ui.cards>.card>.extra a:not(.ui):hover,
a:hover,
.repository .metas .ui.list a .text:hover,
.repository .label.list .item a:hover,
.repository .milestone.list>.item>a:hover,
.repository .milestone.list>.item .operate>a:hover,
.issue.list>.item .title:hover {
color: #915e9e
}
.repository .metas .ui.list a .text,
.ui.breadcrumb a,
.repository .label.list .item a,
.repository .milestone.list>.item>a,
a, .repository .milestone.list>.item .operate>a,
.issue.list>.item .title {
color: #5d4d7a
}
.repository.release #release-list {
border-top: 1px solid #4c505c
}
.ui.green.progress .bar {
background-color: #684
}
.ui.progress.success .bar {
background-color: #a3c293!important
}
.following.bar.light {
background: #212026;
border-bottom: 1px solid #313131
}
.ui.secondary.menu .active.item {
color: #cbc1d5;
background: #5d4d7a;
}
.ui.secondary.menu .item {
color: #b2b7b8
}
.following.bar .top.menu a.item:hover {
color: #e3dedd;
background: #915e9e;
}
.repository.view.issue .comment-list .comment .content>.bottom.segment a {
border: 1px solid #292b2e;
background-color: #292b2e
}
.ui.attached.header {
background: #292b2e;
border: 1px solid #292b2e;
color: #e3dedd;
font-size: 20px;
}
.ui.attached.table {
border: 1px solid #212026;
background: #304251
}
.feeds .list ul li:not(:last-child) {
border-bottom: 1px solid #333640
}
.feeds .list ul li.private {
background: #292b2e;
border: 1px solid #333640
}
.ui.secondary.menu .active.item:hover,
.ui.secondary.menu .dropdown.item:hover,
.ui.secondary.menu .link.item:hover,
.ui.secondary.menu a.item:hover {
color: #ededed;
background-color: #915e9e;
}
.ui.menu .ui.dropdown .menu>.item {
background: #34323e!important;
color: #9a9aba!important
}
.ui.secondary.menu .dropdown.item>.menu,
.ui.text.menu .dropdown.item>.menu {
border: 1px solid #5d4d7a;
}
footer {
background: #212026;
border-top: 1px solid #313131
}
.ui.menu .dropdown.item .menu {
background: #34323e;
}
.ui.menu .ui.dropdown .menu>.item:hover,
.ui.menu .ui.dropdown .menu>.selected.item {
color: #ededed!important
}
.ui.dropdown .menu>.header {
color: #cbc1d5
}
.ui.red.label,
.ui.red.labels .label {
background-color: #7d3434!important;
border-color: #8a2121!important
}
.ui.menu {
background: #292b2e;
border: 1px solid #292b2e
}
.ui.link.menu .item:hover,
.ui.menu .dropdown.item:hover,
.ui.menu .link.item:hover,
.ui.menu a.item:hover,
.ui.menu .active.item:hover,
.ui.vertical.menu .active.item:hover,
.ui.menu .acty.item:hover {
color: #cbc1d5;
background: #915e9e;
}
.ui.menu .active.item,
.ui.menu .acty.item {
background: #5d4d7a;
color: #cbc1d5
}
.ui.input.focus input,
.ui.input input,
.ui.input input:focus {
background: #3c3c3c;
border: 2px solid #292b2e;
color: #cbc1d5
}
.ui.accordion .title:not(.ui) {
color: #cbc1d5
}
.ui.label,
.ui.label.basic {
color: #cbc1d5;
background-color: #3c3c3c
}
.issue.list>.item {
border-bottom: 1px dashed #475767
}
.ui.basic.green.label,
.ui.green.label,
.ui.green.labels .label {
background-color: #5d4d7a !important;
border-color: #915e9e;
}
.ui.basic.green.labels a.label:hover,
a.ui.basic.green.label:hover {
background-color: #5d4d7a;
border-color: #a3c293;
color: #ededed !important;
}
.issue.list>.item .comment {
color: #129c92
}
.ui.basic.button,
.ui.basic.buttons .button {
color: #9a9aba!important;
background: #5e5079;
box-shadow: inset 0 0 0 0px #5d4d7a;
}
.ui.basic.red.active.button,
.ui.basic.red.buttons .active.button {
box-shadow: inset 0 0 0 1px #c75252!important;
color: #c75252!important
}
.ui.basic.button:focus,
.ui.basic.button:hover,
.ui.basic.buttons .button:focus,
.ui.basic.buttons .button:hover {
background-color: #915e9e !important;
color: #cbc1d5!important
}
.ui.menu .item {
background: #212026;
color: #b2b7b8
}
.ui.menu .item.disabled,
.ui.menu .item.disabled:hover {
color: #626773
}
.ui.pagination.menu .active.item {
color: #cbc1d5;
background-color: #5d4d7a
}
.repository .header-wrapper {
background-color: #292b2e
}
.ui.tabular.menu .item.acty {
background: #5d4d7a;
color: #cbc1d5;
}
.ui.tabular.menu .item {
color: #b2b7b8;
background: #212026;
}
.ui.tabular.menu .item:hover {
color: #cbc1d5;
background: #915e9e;
}
.ui.breadcrumb .divider,
.ui.header {
color: #b2b7b8
}
.repository .segment.reactions .ui.label.basic.blue,
.ui.blue.label,
.ui.blue.labels .label {
background-color: #26577b!important;
border-color: #26577b!important
}
.ui.menu .item>.label {
background: #565454
}
.ui.blue.button,
.ui.blue.buttons .button {
background-color: #5d4d7a
}
.ui.blue.button:hover,
.ui.blue.buttons .button:hover {
background-color: #915e9e
}
.ui.form input:not([type]),
.ui.form input[type=date],
.ui.form input[type=datetime-local],
.ui.form input[type=email],
.ui.form input[type=number],
.ui.form input[type=password],
.ui.form input[type=search],
.ui.form input[type=tel],
.ui.form input[type=text],
.ui.form input[type=time],
.ui.form input[type=url] {
color: #b2b7b8;
background: #3c3c3c;
border: 2px solid #292b2e;
}
.ui.form input:not([type]):focus,
.ui.form input[type=date]:focus,
.ui.form input[type=datetime-local]:focus,
.ui.form input[type=email]:focus,
.ui.form input[type=number]:focus,
.ui.form input[type=password]:focus,
.ui.form input[type=search]:focus,
.ui.form input[type=tel]:focus,
.ui.form input[type=text]:focus,
.ui.form input[type=time]:focus,
.ui.form input[type=url]:focus {
background: #2b2b2b;
border: 2px solid #2b2b2b;
color: #cbc1d5;
}
.ui.action.input:not([class*="left action"]) input:focus {
border-right-color: #4b505f!important
}
.ui.green.button,
.ui.green.buttons .button {
background-color: #5d4d7a;
}
.ui.green.button:hover,
.ui.green.buttons .button:hover {
background-color: #915e9e
}
.ui.button {
background: #292b2e;
border: 1px solid #4c505c;
color: #cbc1d5
}
.ui.labeled.button:not([class*="left labeled"])>.label,
.ui[class*="left labeled"].button>.button {
background: #34323e;
border: 1px solid #5d4d7a;
color: #5d4d7a
}
.ui.button:hover {
background-color: #3c3c3c;
color: #cbc1d5
}
.ui.table>thead>tr>th,
.ui.table thead th {
background: #212026!important;
color: #cbc1d5!important
}
.repository.file.list #repo-files-table tr {
background: #292b2e;
}
.repository.file.list #repo-files-table tr:hover {
background-color: #393d4a!important
}
.ui.table {
color: #686868 !important;
border-color: #4c505c;
background: #292b2e
}
.ui.table tbody tr {
border-color: #333640;
background: #292b2e
}
.ui .text.grey {
color: #808084!important
}
.ui.attached.table.segment {
background: #292b2e;
color: #cbc1d5!important
}
.markdown:not(code) h2 {
border-bottom: 1px solid #212026
}
.repository.wiki.new .ui.container form .ui.tabular.menu {
border-bottom: 1px solid hsla(0, 0%, 73.3%, .6)
}
.repository.wiki.new .ui.container form .ui.tabular.menu .active.item {
border-top: 1px solid hsla(0, 0%, 73.3%, .6);
border-left: 1px solid hsla(0, 0%, 73.3%, .6);
border-right: 1px solid hsla(0, 0%, 73.3%, .6)
}
.repository.wiki.new .ui.container form .ui.tabular.menu .active.item:hover {
background: #915e9e
}
.hljs,
.hljs-keyword,
.hljs-selector-tag,
.hljs-subst {
color: #9daccc
}
.markdown:not(code) .highlight pre,
.markdown:not(code) pre {
background-color: #292b2e;
border: 0px !important;
}
.markdown:not(code) table tr:nth-child(2n) {
background-color: #292b2e
}
.markdown:not(code) table tr:nth-child(2n-1) {
background-color: #3c3c3c
}
.markdown:not(code) table thead tr:nth-child(2n-1),
.markdown blockquote blockquote,
.markdown:not(code) table td,
.markdown:not(code) table th {
border: 0px !important;
}
.markdown blockquote {
background-color: #333;
}
.repository.file.editor.edit,
.repository.wiki.new .CodeMirror {
border-right: 1px solid hsla(0, 0%, 73.3%, .6);
border-left: 1px solid hsla(0, 0%, 73.3%, .6);
border-bottom: 1px solid hsla(0, 0%, 73.3%, .6)
}
.repository.file.editor.edit+.editor-preview-side,
.repository.file.editor.edit .editor-preview,
.repository.file.editor.edit .editor-preview-side,
.repository.wiki.new .CodeMirror+.editor-preview-side,
.repository.wiki.new .CodeMirror .editor-preview,
.repository.wiki.new .CodeMirror .editor-preview-side {
background: #292b2e
}
.repository.file.editor.edit+.editor-preview-side .markdown:not(code).ui.segment,
.repository.file.editor.edit .editor-preview-side .markdown:not(code).ui.segment,
.repository.file.editor.edit .editor-preview .markdown:not(code).ui.segment,
.repository.wiki.new .CodeMirror+.editor-preview-side .markdown:not(code).ui.segment,
.repository.wiki.new .CodeMirror .editor-preview-side .markdown:not(code).ui.segment,
.repository.wiki.new .CodeMirror .editor-preview .markdown:not(code).ui.segment {
border-width: 0
}
.ui.dropdown .menu {
background: #34323e;
}
.ui.dropdown .menu>.message:not(.ui) {
color: #636363
}
.ui.input {
color: #cbc1d5
}
.overflow.menu .items .item {
color: #9d9d9d
}
.overflow.menu .items .item:hover {
color: #cbc1d5
}
.ui.segment {
background: #212026;
border: 1px solid #3c3c3c
}
.ui.list>.item>.content,
.ui.segment {
color: #b2b7b8!important
}
.ui.active.button:active,
.ui.button:active,
.ui.button:focus {
background-color: #2e3e4e;
color: #cbc1d5
}
.ui.dropdown .menu .selected.item,
.ui.dropdown .menu>.item:hover,
.ui.dropdown.selected {
color: #cbc1d5
}
.ui.dropdown .menu>.item {
color: #b2b7b8
}
.ui.attached.segment {
border: 1px solid #292b2e
}
.repository.view.issue .comment-list .comment .content>.bottom.segment {
background: #292b2e
}
.repository.view.issue .comment-list .comment .content .header {
color: #cbc1d5;
background-color: #3c3c3c;
border-bottom: 1px solid #353944
}
.repository.view.issue .comment-list .comment .content .merge-section {
background-color: #3c3c3c;
border-top: 1px solid #353944
}
.repository.view.issue .comment-list .event>.svg.issue-symbol {
background: #3b4954
}
.repository.view.issue .comment-list .event>.svg:not(.issue-symbol) {
text-shadow: -2px 0 #292b2e, 0 2px #292b2e, 2px 0 #292b2e, 0 -2px #292b2e
}
.ui .text.grey a {
color: #cbc1d5!important
}
.ui.comments .comment .actions a {
color: #cbc1d5
}
.repository.view.issue .comment-list .comment .content .header:after {
border-right-color: #3c3c3c
}
.repository.new.issue .comment.form .content:after {
border-right-color: #292b2e
}
.repository.view.issue .comment-list .comment .content .header:before {
border-right-color: #3c3c3c
}
.repository.new.issue .comment.form .content:before {
border-right-color: #292b2e
}
.repository.view.issue .comment-list .timeline-line:before,
.repository.view.issue .comment-list:not(.prevent-before-timeline):before {
background-color: #3b4954
}
.repository .comment.form .content .form:after,
.repository .comment.form .content .form:before {
border-right-color: #313c47
}
.ui .text.grey a:hover {
color: #cbc1d5!important
}
.ui.basic.green.active.button,
.ui.basic.green.buttons .active.button {
color: #a3c293 !important;
box-shadow: 0 0 0 1px #a3c293 inset !important;
}
.ui.basic.green.active.button:hover,
.ui.basic.green.buttons .active.button:hover {
color: #83a273 !important;
background-color: #d3f2c3 !important;
}
.ui.form textarea,
.ui.form textarea:focus {
color: #cbc1d5;
background: #3c3c3c;
border: 2px solid #292b2e
}
.ui.form textarea:focus {
border: 1px solid #456580
}
.ui .info.segment.top {
background-color: #3c3c3c!important
}
.repository .diff-file-box .code-diff-unified tbody tr.del-code td {
background-color: #3c2626!important;
border-color: #634343!important
}
.repository .diff-file-box .code-diff-unified tbody tr.add-code td {
background-color: #283e2d!important;
border-color: #314a37!important
}
.repository .diff-file-box .code-diff tbody tr .added-code {
background-color: #3a523a
}
.hljs-section,
.hljs-selector-id,
.hljs-title {
color: #986c88
}
.hljs-doctag,
.hljs-string {
color: #8ab398
}
.repository .diff-file-box .code-diff tbody tr .removed-code {
background-color: #5f3737
}
.tag-code,
.tag-code td {
background: #242637!important;
border-color: transparent!important
}
.ui.vertical.menu .active.item {
background: #5d4d7a
}
.ui.vertical.menu .item {
background: #292b2e
}
.ui.vertical.menu .header.item {
background: #3c3c3c
}
.ui.vertical.menu {
background: #292b2e;
border: 1px solid #333640
}
.ui.repository.list .item:not(:first-child) {
border-top: 1px solid #4c505c
}
.ui .text.blue {
color: #5d4d7a!important
}
.ui.selection.active.dropdown,
.ui.selection.active.dropdown .menu,
.ui.selection.active.dropdown:hover,
.ui.selection.active.dropdown:hover .menu {
border-color: #4e5361;
box-shadow: 0 2px 3px 0 rgba(34, 36, 38, .15)
}
.ui.selection.dropdown {
background: #212026;
border: 1px solid #5d4d7a;
color: #cbc1d5
}
.ui.menu .ui.dropdown .menu>.active.item {
color: #cbc1d5!important
}
.ui.tabular.menu {
border-bottom: 1px solid #313c47
}
.ui.card,
.ui.cards>.card {
background: #292b2e;
box-shadow: 0 1px 3px 0 #4c505c, 0 0 0 1px #4c505c
}
.ui.card>.content>.header,
.ui.cards>.card>.content>.header {
color: #cbc1d5
}
.ui.card>.extra a:not(.ui),
.ui.cards>.card>.extra a:not(.ui) {
color: #5d4d7a
}
.ui .text.black {
color: #b2b7b8
}
.ui .text.black:hover {
color: #cbc1d5
}
.ui.secondary.segment {
background: #292b2e
}
.ui.secondary.pointing.menu .item {
color: #64606b;
border: 0;
background: #212026
}
.ui.secondary.pointing.menu .active.item,
.ui.secondary.pointing.menu .acty.item {
color: #cbc1d5;
border: 0;
background: #5d4d7a;
}
.ui.user.list .item:not(:first-child) {
border-top: 1px solid #4c505c
}
.ui.secondary.pointing.menu .active.item:hover,
.ui.secondary.pointing.menu .acty.item:hover {
border-color: #af8b4c;
color: #cbc1d5;
background: #915e9e;
}
.ui.secondary.pointing.menu .dropdown.item:hover,
.ui.secondary.pointing.menu .link.item:hover,
.ui.secondary.pointing.menu a.item:hover {
color: #cbc1d5;
background: #915e9e;
}
.ui.checkbox+label,
.ui.checkbox label,
.ui.form .field>label,
.ui.form .inline.field>label,
.ui.form .inline.field>p,
.ui.form .inline.fields .field>label,
.ui.form .inline.fields .field>p,
.ui.form .inline.fields>label {
color: #b2b7b8
}
.user.settings .email.list .item:not(:first-child) {
border-top: 1px solid #3f4451
}
.explore .navbar,
.ui.menu.new-menu {
background-color: #292b2e!important
}
@media only screen and (max-width:1200px) {
.ui.menu.new-menu:after {
background-image: linear-gradient(90deg, rgba(42, 46, 42, 0), #2a2e2a)
}
}
input {
background: #212026
}
.settings .key.list .item:not(:first-child) {
border-top: 1px solid #3c3c3c
}
.ui.attached.info.message,
.ui.info.message {
box-shadow: inset 0 0 0 1px #4b5e71, 0 0 0 0 transparent
}
.ui.bottom.attached.message {
background-color: #2c662d;
color: #5d4d7a
}
.ui.bottom.attached.message .pull-right {
color: #5d4d7a
}
.ui.info.message {
background-color: #2c3b4a;
color: #9ebcc5
}
.ui .warning.header {
background-color: #292b2e!important;
border-color: #292b2e
}
.ui.red.message {
background-color: #e0211d;
color: #f9cbcb;
box-shadow: inset 0 0 0 1px rgba(121, 71, 66, .5), 0 0 0 0 transparent
}
.ui.red.button,
.ui.red.buttons .button {
background-color: #e0211d
}
.ui.red.button:hover,
.ui.red.buttons .button:hover {
background-color: #984646
}
.ui.checkbox+label:hover,
.ui.checkbox label:hover {
color: #cbc1d5!important
}
.ui.checkbox input:checked~.box:after,
.ui.checkbox input:checked~label:after {
color: #7f98ad
}
.ui.checkbox input:checked~.box:before,
.ui.checkbox input:checked~label:before {
background: #212026;
opacity: 1;
color: #7f98ad;
border-color: #5d4d7a
}
.ui.checkbox .box:hover:before,
.ui.checkbox label:hover:before {
background: #212026
}
.ui.checkbox .box:before,
.ui.checkbox label:before {
background: #212026;
border: 1px solid #5d4d7a
}
.ui.checkbox label:before {
border-color: #5d4d7a
}
.ui.checkbox .box:active:before,
.ui.checkbox label:active:before {
background: #212026;
border-color: rgba(34, 36, 38, .35)
}
.ui.checkbox input:focus~.box:before,
.ui.checkbox input:focus~label:before {
border-color: #5d4d7a;
background: #212026
}
.ui.checkbox input:checked:focus~.box:before,
.ui.checkbox input:checked:focus~label:before,
.ui.checkbox input:not([type=radio]):indeterminate:focus~.box:before,
.ui.checkbox input:not([type=radio]):indeterminate:focus~label:before {
border-color: #5d4d7a;
background: #212026
}
.ui.checkbox input:checked:focus~.box:after,
.ui.checkbox input:checked:focus~label:after,
.ui.checkbox input:not([type=radio]):indeterminate:focus~.box:after,
.ui.checkbox input:not([type=radio]):indeterminate:focus~label:after {
color: #7f98ad
}
.ui.checkbox input:focus~.box:after,
.ui.checkbox input:focus~label,
.ui.checkbox input:focus~label:after {
color: #9a9a9a
}
.ui.selection.dropdown:hover {
border: 1px solid #456580
}
.ui.selection.dropdown .menu>.item {
border-top: 1px solid #313c47
}
.ui.selection.visible.dropdown>.text:not(.default) {
color: #b2b7b8
}
.ui.negative.message {
background-color: rgba(80, 23, 17, .6);
color: #f9cbcb;
box-shadow: inset 0 0 0 1px rgba(121, 71, 66, .5), 0 0 0 0 transparent
}
.ui.positive.message {
background-color: #34323e;
color: #9a9a9a;
box-shadow: 0 0 0 1px #5d4d7a inset,0 0 0 0 transparent;
}
.hljs-attribute,
.hljs-name,
.hljs-tag {
color: #ef5e77
}
.user.profile .ui.card .extra.content ul li:not(:last-child) {
border-bottom: 1px solid #4c505c
}
.hljs-literal,
.hljs-number,
.hljs-tag .hljs-attr,
.hljs-template-variable,
.hljs-variable {
color: #bd84bf
}
.ui.form .dropzone {
border: 2px dashed #4c505c
}
.ui.basic.red.button,
.ui.basic.red.buttons .button {
box-shadow: inset 0 0 0 1px #a04141!important;
color: #a04141!important
}
.ui.list .list>.item .header,
.ui.list>.item .header {
color: #dedede
}
.ui.list .list>.item .description,
.ui.list>.item .description {
color: #b2b7b8
}
.ui.user.list .item .description a {
color: #668cb1
}
.repository.file.list #repo-files-table tbody .svg.octicon-file-directory,
.repository.file.list #repo-files-table tbody .svg.octicon-file-submodule {
color: #7c9b5e
}
.ui.blue.button:focus,
.ui.blue.buttons .button:focus {
background-color: #a27558
}
.ui.basic.blue.button:focus,
.ui.basic.blue.button:hover,
.ui.basic.blue.buttons .button:focus,
.ui.basic.blue.buttons .button:hover {
box-shadow: inset 0 0 0 1px #34323e !important;
color: #9a9aba;
background-color: #453e57 !important;
}
.repository.labels .ui.basic.black.label {
background-color: #bbb!important
}
.lines-commit {
background: #212026!important
}
.bottom-line {
border-color: #4e525e!important
}
.lines-num {
background: #212026!important;
color: #b2b7b8!important;
border-color: #2d2d2d!important
}
.lines-code .hljs,
.lines-code ol,
.lines-code pre,
.lines-num .hljs,
.lines-num ol,
.lines-num pre {
background-color: #292b2e!important
}
td.blob-excerpt {
background-color: rgba(0, 0, 0, .15)
}
.code-view .active {
background: #554a00
}
a.ui.label:hover,
a.ui.labels .label:hover {
background-color: #915e9e !important;
color: #cbc1d5!important
}
.repository #commits-table td.sha .sha.label,
.repository #repo-files-table .sha.label {
border-color: #888
}
.repository #commits-table td.sha .sha.label.isSigned .detail.icon,
.repository #repo-files-table .sha.label.isSigned .detail.icon {
background: none;
border-left-color: #888
}
.repository .label.list .item {
border-bottom: 1px dashed #4c505c
}
.ui.basic.blue.button,
.ui.basic.blue.buttons .button {
box-shadow: inset 0 0 0 1px #34323e !important;
color: #9a9aba !important;
background-color: #34323e;
}
.repository .diff-file-box .code-diff-split tbody tr.add-code td:first-child,
.repository .diff-file-box .code-diff-split tbody tr.add-code td:nth-child(2),
.repository .diff-file-box .code-diff-split tbody tr.add-code td:nth-child(3),
.repository .diff-file-box .code-diff-split tbody tr.del-code td:nth-child(4),
.repository .diff-file-box .code-diff-split tbody tr.del-code td:nth-child(5),
.repository .diff-file-box .code-diff-split tbody tr.del-code td:nth-child(6) {
background-color: #292b2e
}
.repository .diff-file-box .code-diff-split tbody tr.add-code td:nth-child(4),
.repository .diff-file-box .code-diff-split tbody tr.add-code td:nth-child(5),
.repository .diff-file-box .code-diff-split tbody tr.add-code td:nth-child(6),
.repository .diff-file-box .code-diff-split tbody tr td.add-code {
background-color: #283e2d!important;
border-color: #314a37!important
}
.repository .diff-file-box .code-diff-split tbody tr.del-code td:first-child,
.repository .diff-file-box .code-diff-split tbody tr.del-code td:nth-child(2),
.repository .diff-file-box .code-diff-split tbody tr.del-code td:nth-child(3),
.repository .diff-file-box .code-diff-split tbody tr td.del-code {
background-color: #3c2626!important;
border-color: #634343!important
}
.ui.blue.button:active,
.ui.blue.buttons .button:active {
background-color: #a27558
}
#git-graph-container li .author,
#git-graph-container li a {
color: #c79575
}
.ui.header .sub.header {
color: #b2b7b8
}
.ui.dividing.header {
border-bottom: 1px solid #4c505c
}
.ui.modal>.header {
background: #3c3c3c;
color: #cbc1d5
}
.ui.modal>.actions {
background: #3c3c3c;
border-top: 1px solid #3c3c3c
}
.ui.modal>.content {
background: #292b2e
}
.editor-toolbar {
background-color: #3c3c3c
}
.editor-toolbar a {
color: #5d4d7a!important
}
.repository .diff-detail-box {
background-color: #292b2e
}
.repository .diff-detail-box .detail-files {
background-color: inherit
}
.comment-code-cloud .ui.attached.tabular.menu {
background: none transparent;
border: 0
}
.comment-code-cloud .footer .markdown-info {
color: inherit
}
.file-comment {
color: #888
}
.ui.comments .comment .author {
color: #cbc1d5
}
.ui.comments .comment .metadata {
color: #808084
}
.ui.comments .comment .text {
color: #b2b7b8
}
.xdsoft_datetimepicker {
background: #2a2e39;
border: 1px solid #4c505c;
color: #b2b7b8
}
.xdsoft_datetimepicker .xdsoft_mounthpicker {
height: 36px;
background: #464c5d;
margin: -2px -8px 2px;
padding: 2px 8px 0
}
.xdsoft_datetimepicker .xdsoft_mounthpicker button {
background-image: none;
text-indent: 0;
text-align: center;
color: #b2b7b8
}
.xdsoft_datetimepicker .xdsoft_mounthpicker button.xdsoft_prev:before {
content: "\f0d9";
font: normal normal normal 14px/1 FontAwesome, serif;
font-size: 1.7em
}
.xdsoft_datetimepicker .xdsoft_mounthpicker button.xdsoft_next:before {
content: "\f0da";
font: normal normal normal 14px/1 FontAwesome, serif;
font-size: 1.7em
}
.xdsoft_datetimepicker .xdsoft_mounthpicker button.xdsoft_today_button:before {
content: "\f015";
font: normal normal normal 14px/1 FontAwesome, serif;
font-size: 1.4em
}
.xdsoft_datetimepicker .xdsoft_mounthpicker>div.xdsoft_label {
background: #464c5d
}
.xdsoft_datetimepicker .xdsoft_mounthpicker>div.xdsoft_label i {
line-height: 14px;
background-image: none;
text-indent: 0;
text-align: center
}
.xdsoft_datetimepicker .xdsoft_mounthpicker>div.xdsoft_label i:before {
content: "\f0dd";
font: normal normal normal 14px/1 FontAwesome, serif;
font-size: .7em
}
.xdsoft_datetimepicker .xdsoft_mounthpicker>div.xdsoft_label .xdsoft_select {
background: #292b2e
}
.xdsoft_datetimepicker .xdsoft_datepicker .xdsoft_calendar td,
.xdsoft_datetimepicker .xdsoft_datepicker .xdsoft_calendar th {
border-color: #4c505c;
background-color: #2a2e39
}
.xdsoft_datetimepicker .xdsoft_datepicker .xdsoft_calendar td.xdsoft_disabled,
.xdsoft_datetimepicker .xdsoft_datepicker .xdsoft_calendar td.xdsoft_other_month {
opacity: .8;
background: #915e9e;
color: #000
}
.heatmap-color-0 {
background-color: #212026
}
.heatmap-color-1 {
background-color: #302b3b
}
.heatmap-color-2 {
background-color: #3f3750
}
.heatmap-color-3 {
background-color: #4e4265
}
.heatmap-color-4 {
background-color: #5d4d7a
}
.activity-bar-graph,
.heatmap-color-5 {
background-color: #5E5981
}
.activity-bar-graph {
color: #b2b7b8
}
.CodeMirror {
color: #9daccc;
background-color: #2b2b2b;
border-top: 0
}
.CodeMirror div.CodeMirror-cursor {
border-left: 1px solid #b2b7b8
}
.CodeMirror .CodeMirror-gutters {
background-color: #2b2b2b
}
.CodeMirror::-moz-selection {
background: #42402f!important
}
.CodeMirror .CodeMirror-selected,
.CodeMirror::-moz-selection,
.CodeMirror::selection {
background: #42402f!important
}
.CodeMirror.cm-s-default .cm-property,
.CodeMirror.cm-s-paper .cm-property {
color: #915e9e
}
.CodeMirror.cm-s-default .cm-header,
.CodeMirror.cm-s-paper .cm-header {
color: #9daccc
}
.CodeMirror.cm-s-default .cm-quote,
.CodeMirror.cm-s-paper .cm-quote {
color: #090
}
.CodeMirror.cm-s-default .cm-keyword,
.CodeMirror.cm-s-paper .cm-keyword {
color: #cc8a61
}
.CodeMirror.cm-s-default .cm-atom,
.CodeMirror.cm-s-paper .cm-atom {
color: #ef5e77
}
.CodeMirror.cm-s-default .cm-number,
.CodeMirror.cm-s-paper .cm-number {
color: #ff5656
}
.CodeMirror.cm-s-default .cm-def,
.CodeMirror.cm-s-paper .cm-def {
color: #e4e4e4
}
.CodeMirror.cm-s-default .cm-variable-2,
.CodeMirror.cm-s-paper .cm-variable-2 {
color: #00bdbf
}
.CodeMirror.cm-s-default .cm-variable-3,
.CodeMirror.cm-s-paper .cm-variable-3 {
color: #085
}
.CodeMirror.cm-s-default .cm-comment,
.CodeMirror.cm-s-paper .cm-comment {
color: #8e9ab3
}
.CodeMirror.cm-s-default .cm-string,
.CodeMirror.cm-s-paper .cm-string {
color: #a77272
}
.CodeMirror.cm-s-default .cm-string-2,
.CodeMirror.cm-s-paper .cm-string-2 {
color: #f50
}
.CodeMirror.cm-s-default .cm-meta,
.CodeMirror.cm-s-default .cm-qualifier,
.CodeMirror.cm-s-paper .cm-meta,
.CodeMirror.cm-s-paper .cm-qualifier {
color: #ffb176
}
.CodeMirror.cm-s-default .cm-builtin,
.CodeMirror.cm-s-paper .cm-builtin {
color: #b7c951
}
.CodeMirror.cm-s-default .cm-bracket,
.CodeMirror.cm-s-paper .cm-bracket {
color: #997
}
.CodeMirror.cm-s-default .cm-tag,
.CodeMirror.cm-s-paper .cm-tag {
color: #f1d273
}
.CodeMirror.cm-s-default .cm-attribute,
.CodeMirror.cm-s-paper .cm-attribute {
color: #bfcc70
}
.CodeMirror.cm-s-default .cm-hr,
.CodeMirror.cm-s-paper .cm-hr {
color: #999
}
.CodeMirror.cm-s-default .cm-url,
.CodeMirror.cm-s-paper .cm-url {
color: #c5cfd0
}
.CodeMirror.cm-s-default .cm-link,
.CodeMirror.cm-s-paper .cm-link {
color: #d8c792
}
.CodeMirror.cm-s-default .cm-error,
.CodeMirror.cm-s-paper .cm-error {
color: #dbdbeb
}
.ui.popup {
color: #b2b7b8;
border-color: #b2b7b8
}
.ui.popup,
.ui.popup.top:before {
background-color: #292b2e
}
div.secondary:nth-child(1) > a:first-of-type,
div.secondary:nth-child(1) > a:first-of-type,
.tabular > div:nth-child(7) > a:first-of-type,
.tabular > a:first-of-type,
div.secondary:nth-child(1) > a:first-of-type,
div.two:nth-child(1) > a:first-of-type,
div.tiny > a:first-of-type {
border-top-left-radius: 290486px !important;
border-bottom-left-radius: 290486px !important;
}
div.secondary:nth-child(1) > a:last-of-type,
div.secondary:nth-child(1) > a:last-of-type,
.tabular > div:nth-child(7) > a:last-of-type,
.tabular > a:last-of-type,
.pointing > a:last-of-type,
div.secondary:last-of-type > a:last-of-type,
div.two:nth-child(1) > a:last-of-type,
div.tiny > a:last-of-type {
border-top-right-radius: 290486px !important;
border-bottom-right-radius: 290486px !important;
}
.ui.form input[type="file"] {
background-color: #292b2e;
color: #686868;
}
html body div.full.height div.repository.file.list div.ui.container table#repo-files-table.ui.single.line.table tbody tr td.name.four.wide span.truncate a {
color: #4f97d7;
}
html body div.full.height div.repository.file.list div.ui.container table#repo-files-table.ui.single.line.table tbody tr td.message.nine.wide span.truncate.has-emoji a {
color: #2aa1ae;
}
#repo-clone-url {
background: #212026;
color: #b2b2b2;
border: 2px solid #212026;
}
html body div.full.height div.repository.file.list div.ui.container table#repo-files-table.ui.single.line.table thead tr.commit-list th a.ui.sha.label {
background: #34323e;
color: #9a9aba;
border: 1px solid #5d4d7a;
}
html body div.full.height div.repository.file.list div.ui.container table#repo-files-table.ui.single.line.table thead tr.commit-list th a.ui.sha.label:hover {
background: #5e5079 !important;
color: #9a9aba;
}
html body div.full.height div.repository.file.list div.ui.container div.tab-size-8.non-diff-file-content h4.file-header.ui.top.attached.header div.file-header-right div.ui.right.file-actions div.ui.buttons a.ui.button {
background: #5e5079;
color: #9a9a9a;
}
html body div.full.height div.dashboard.issues div.ui.container div.ui.stackable.grid div.four.wide.column div.ui.secondary.vertical.filter.menu,
html body div.full.height div.dashboard.issues div.ui.container div.ui.stackable.grid div.four.wide.column div.ui.secondary.vertical.filter.menu div.ui.divider {
border: 0px;
}
div.tab:nth-child(2) > h4:nth-child(1) {
color: #b2b2b2;
}
p {
color: #a1a1a1;
}
span.ui.grey.label,
div.ui.mini.circular.grey.label,
span.ui.gray.small.label {
background-color: #3c3c3c !important;
}
html body div.full.height div.repository.file.list div.ui.container table#repo-files-table.ui.single.line.table {
border: 0px;
padding-bottom: 1em;
}
html body div.full.height div.repository.file.list div.ui.container div.tab-size-8.non-diff-file-content div.ui.attached.table.unstackable.segment {
background-color: #222226;
}
html body div.full.height div.repository.file.list div.ui.container div.tab-size-8.non-diff-file-content h4.file-header.ui.top.attached.header {
padding: 1em 2em !important;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

View File

@ -0,0 +1,38 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
width="700.000000pt" height="700.000000pt" viewBox="0 0 700.000000 700.000000"
preserveAspectRatio="xMidYMid meet">
<metadata>
Created by potrace 1.11, written by Peter Selinger 2001-2013
</metadata>
<g transform="translate(0.000000,700.000000) scale(0.100000,-0.100000)"
fill="#000000" stroke="none">
<path d="M1305 5289 c-172 -23 -358 -86 -489 -163 -235 -140 -423 -400 -496
-687 -61 -236 -40 -648 44 -904 40 -121 147 -331 213 -420 194 -259 507 -453
898 -554 110 -29 220 -47 429 -71 183 -21 216 -30 216 -55 0 -28 129 -266 206
-382 117 -176 223 -305 383 -464 166 -165 287 -253 391 -285 63 -18 103 -19
1115 -18 l1050 0 90 46 c113 58 190 115 300 226 268 268 500 676 720 1267 181
488 326 1090 365 1522 17 178 8 618 -13 690 -23 78 -79 175 -117 201 -30 20
-45 22 -164 22 -73 0 -321 -9 -551 -20 -674 -32 -1174 -50 -1415 -51 -124 0
-219 -3 -212 -6 9 -4 12 -136 12 -614 l0 -609 -75 37 -75 37 0 572 0 571 -112
6 c-62 4 -178 7 -258 7 -245 0 -1044 36 -1815 81 -460 27 -556 30 -640 18z
m225 -568 c0 -34 64 -470 86 -581 53 -278 127 -559 224 -845 28 -82 55 -167
59 -187 9 -37 8 -38 -18 -38 -29 0 -200 40 -306 72 -244 73 -472 232 -589 411
-72 111 -132 293 -157 481 -44 340 146 616 471 681 77 15 230 19 230 6z m2443
-710 c64 -30 120 -57 123 -62 5 -9 -71 -167 -115 -237 -17 -28 -37 -46 -59
-53 -46 -15 -99 -64 -124 -113 -19 -38 -20 -45 -8 -122 15 -96 16 -94 -101
-324 -98 -194 -121 -227 -172 -249 -48 -21 -103 -78 -113 -117 -11 -44 2 -113
30 -152 69 -100 194 -109 273 -19 47 54 59 107 38 171 -9 28 -21 58 -25 66 -8
14 188 421 227 468 10 13 43 32 73 42 50 17 58 17 100 3 67 -22 219 -103 256
-135 69 -61 56 -128 -78 -423 -65 -142 -80 -162 -142 -189 -86 -38 -134 -116
-123 -198 7 -50 25 -77 76 -112 78 -54 173 -45 235 24 52 58 60 98 33 176 -25
76 -30 58 83 307 171 379 149 464 -164 633 -117 62 -151 93 -171 154 -14 42
-15 56 -4 87 13 40 91 209 107 231 11 16 115 -30 502 -222 358 -178 391 -203
424 -315 21 -71 20 -100 -3 -158 -38 -95 -176 -386 -372 -781 -211 -424 -231
-456 -313 -493 -58 -26 -141 -24 -218 5 -105 40 -295 129 -673 316 -437 217
-521 265 -557 323 -50 80 -61 166 -29 239 102 238 506 1054 568 1148 58 88 78
107 130 126 73 27 154 14 286 -45z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -0,0 +1,29 @@
<div class="ui secondary pointing tabular top attached borderless menu stackable new-menu navbar">
<a class="item {{if .PageIsAdminDashboard}}acty{{end}}" href="{{AppSubUrl}}/admin">
{{.i18n.Tr "admin.dashboard"}}
</a>
<a class="item {{if .PageIsAdminUsers}}acty{{end}}" href="{{AppSubUrl}}/admin/users">
{{.i18n.Tr "admin.users"}}
</a>
<a class="item {{if .PageIsAdminOrganizations}}acty{{end}}" href="{{AppSubUrl}}/admin/orgs">
{{.i18n.Tr "admin.organizations"}}
</a>
<a class="item {{if .PageIsAdminRepositories}}acty{{end}}" href="{{AppSubUrl}}/admin/repos">
{{.i18n.Tr "admin.repositories"}}
</a>
<a class="item {{if .PageIsAdminHooks}}acty{{end}}" href="{{AppSubUrl}}/admin/hooks">
{{.i18n.Tr "admin.hooks"}}
</a>
<a class="item {{if .PageIsAdminAuthentications}}acty{{end}}" href="{{AppSubUrl}}/admin/auths">
{{.i18n.Tr "admin.authentication"}}
</a>
<a class="item {{if .PageIsAdminConfig}}acty{{end}}" href="{{AppSubUrl}}/admin/config">
{{.i18n.Tr "admin.config"}}
</a>
<a class="item {{if .PageIsAdminNotices}}acty{{end}}" href="{{AppSubUrl}}/admin/notices">
{{.i18n.Tr "admin.notices"}}
</a>
<a class="item {{if .PageIsAdminMonitor}}acty{{end}}" href="{{AppSubUrl}}/admin/monitor">
{{.i18n.Tr "admin.monitor"}}
</a>
</div>

View File

@ -0,0 +1,176 @@
<!DOCTYPE html>
<html>
<head data-suburl="{{AppSubUrl}}">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>{{if .Title}}{{.Title}} - {{end}}{{AppName}}</title>
<link rel="manifest" href="{{AppSubUrl}}/manifest.json">
<script>
if ('serviceWorker' in navigator) {
window.addEventListener('load', function() {
navigator.serviceWorker.register('{{AppSubUrl}}/serviceworker.js').then(function(registration) {
// Registration was successful
console.log('ServiceWorker registration successful with scope: ', registration.scope);
}, function(err) {
// registration failed :(
console.log('ServiceWorker registration failed: ', err);
});
});
}
</script>
<meta name="theme-color" content="{{ThemeColorMetaTag}}">
<meta name="author" content="{{if .Repository}}{{.Owner.Name}}{{else}}{{MetaAuthor}}{{end}}" />
<meta name="description" content="{{if .Repository}}{{.Repository.Name}}{{if .Repository.Description}} - {{.Repository.Description}}{{end}}{{else}}{{MetaDescription}}{{end}}" />
<meta name="keywords" content="{{MetaKeywords}}">
<meta name="referrer" content="no-referrer" />
<meta name="_csrf" content="{{.CsrfToken}}" />
<meta name="_suburl" content="{{AppSubUrl}}" />
{{if .IsSigned}}
<meta name="_uid" content="{{.SignedUser.ID}}" />
{{end}}
{{if .ContextUser}}
<meta name="_context_uid" content="{{.ContextUser.ID}}" />
{{end}}
{{if .SearchLimit}}
<meta name="_search_limit" content="{{.SearchLimit}}" />
{{end}}
{{if .GoGetImport}}
<meta name="go-import" content="{{.GoGetImport}} git {{.CloneLink.HTTPS}}">
<meta name="go-source" content="{{.GoGetImport}} _ {{.GoDocDirectory}} {{.GoDocFile}}">
{{end}}
<script>
{{SafeJS `/*
@licstart The following is the entire license notice for the
JavaScript code in this page.
Copyright (c) 2016 The Gitea Authors
Copyright (c) 2015 The Gogs Authors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
---
Licensing information for additional javascript libraries can be found at:
{{AppSubUrl}}/vendor/librejs.html
@licend The above is the entire license notice
for the JavaScript code in this page.
*/`}}
</script>
<link rel="shortcut icon" href="{{AppSubUrl}}/img/favicon.png" />
<link rel="mask-icon" href="{{AppSubUrl}}/img/gitea-safari.svg" color="#609926">
<link rel="preload" href="{{AppSubUrl}}/vendor/assets/font-awesome/css/font-awesome.min.css" as="style" onload="this.rel='stylesheet'">
<noscript><link rel="stylesheet" href="{{AppSubUrl}}/vendor/assets/font-awesome/css/font-awesome.min.css"></noscript>
<link rel="stylesheet" href="{{AppSubUrl}}/vendor/assets/octicons/octicons.min.css">
{{if .RequireSimpleMDE}}
<link rel="stylesheet" href="{{AppSubUrl}}/vendor/plugins/simplemde/simplemde.min.css">
{{end}}
{{if .RequireGitGraph}}
<!-- graph -->
<link rel="stylesheet" href="{{AppSubUrl}}/vendor/plugins/gitgraph/gitgraph.css">
{{end}}
{{if .RequireTribute}}
<link rel="stylesheet" href="{{AppSubUrl}}/vendor/plugins/tribute/tribute.css">
{{end}}
<!-- Stylesheet -->
<link rel="stylesheet" href="{{AppSubUrl}}/vendor/plugins/semantic/semantic.min.css">
<link rel="stylesheet" href="{{AppSubUrl}}/css/index.css?v={{MD5 AppVer}}">
<noscript>
<style>
.dropdown:hover > .menu { display: block; }
.ui.secondary.menu .dropdown.item > .menu { margin-top: 0; }
</style>
</noscript>
{{if .RequireHighlightJS}}
<link rel="stylesheet" href="{{AppSubUrl}}/vendor/plugins/highlight/github.css">
{{end}}
{{if .RequireMinicolors}}
<link rel="stylesheet" href="{{AppSubUrl}}/vendor/plugins/jquery.minicolors/jquery.minicolors.css">
{{end}}
{{if .RequireDatetimepicker}}
<link rel="stylesheet" href="{{AppSubUrl}}/vendor/plugins/jquery.datetimepicker/jquery.datetimepicker.css">
{{end}}
{{if .RequireDropzone}}
<link rel="stylesheet" href="{{AppSubUrl}}/vendor/plugins/dropzone/dropzone.css">
{{end}}
{{if .EnableHeatmap}}
<link rel="stylesheet" href="{{AppSubUrl}}/vendor/plugins/vue-calendar-heatmap/vue-calendar-heatmap.css">
{{end}}
<style class="list-search-style"></style>
<script src="{{AppSubUrl}}/vendor/plugins/cssrelpreload/loadCSS.min.js"></script>
<script src="{{AppSubUrl}}/vendor/plugins/cssrelpreload/cssrelpreload.min.js"></script>
{{if .PageIsUserProfile}}
<meta property="og:title" content="{{.Owner.Name}}" />
<meta property="og:type" content="profile" />
<meta property="og:image" content="{{.Owner.AvatarLink}}" />
<meta property="og:url" content="{{.Owner.HTMLURL}}" />
<meta property="og:site_name" content="{{AppName}}" />
{{else if .Repository}}
<meta property="og:title" content="{{.Repository.Name}}" />
<meta property="og:type" content="object" />
<meta property="og:image" content="{{.Repository.Owner.AvatarLink}}" />
<meta property="og:url" content="{{.Repository.HTMLURL}}" />
{{if .Repository.Description}}
<meta property="og:description" content="{{.Repository.Description}}" />
{{end}}
<meta property="og:site_name" content="{{AppName}}" />
{{else}}
<meta property="og:title" content="{{AppName}}">
<meta property="og:type" content="website" />
<meta property="og:image" content="{{AppSubUrl}}/img/gitea-lg.png" />
<meta property="og:url" content="{{AppUrl}}" />
<meta property="og:description" content="{{MetaDescription}}">
{{end}}
{{if .IsSigned }}
{{ if ne .SignedUser.Theme "gitea" }}
<link rel="stylesheet" href="{{AppSubUrl}}/css/theme-{{.SignedUser.Theme}}.css">
{{end}}
{{else if ne DefaultTheme "gitea"}}
<link rel="stylesheet" href="{{AppSubUrl}}/css/theme-{{DefaultTheme}}.css">
{{end}}
{{template "custom/header" .}}
</head>
<body>
{{template "custom/body_outer_pre" .}}
<div class="full height">
<noscript>{{.i18n.Tr "enable_javascript"}}</noscript>
{{template "custom/body_inner_pre" .}}
{{if not .PageIsInstall}}
<div class="ui top secondary stackable main menu following bar light">
{{template "base/head_navbar" .}}
</div><!-- end bar -->
{{end}}
{{/*
</div>
</body>
</html>
*/}}

View File

@ -0,0 +1,16 @@
<div class="ui secondary pointing tabular top attached borderless stackable menu navbar">
<a class="item {{if .PageIsExploreRepositories}}acty{{end}}" href="{{AppSubUrl}}/explore/repos">
{{svg "octicon-repo" 16}} {{.i18n.Tr "explore.repos"}}
</a>
<a class="item {{if .PageIsExploreUsers}}acty{{end}}" href="{{AppSubUrl}}/explore/users">
{{svg "octicon-person" 16}} {{.i18n.Tr "explore.users"}}
</a>
<a class="item {{if .PageIsExploreOrganizations}}acty{{end}}" href="{{AppSubUrl}}/explore/organizations">
{{svg "octicon-organization" 16}} {{.i18n.Tr "explore.organizations"}}
</a>
{{if .IsRepoIndexerEnabled}}
<a class="item {{if .PageIsExploreCode}}acty{{end}}" href="{{AppSubUrl}}/explore/code">
{{svg "octicon-code" 16}} {{.i18n.Tr "explore.code"}}
</a>
{{end}}
</div>

View File

@ -0,0 +1,143 @@
<div class="header-wrapper">
{{with .Repository}}
<div class="ui container">
<div class="repo-header">
<div class="ui huge breadcrumb repo-title">
{{if .RelAvatarLink}}
<img class="ui avatar image" src="{{.RelAvatarLink}}">
{{else if .IsTemplate}}
{{if .IsPrivate}}
{{svg "octicon-repo-template-private" 32}}
{{else}}
{{svg "octicon-repo-template" 32}}
{{end}}
{{else}}
{{if .IsPrivate}}
{{svg "octicon-lock" 32}}
{{else if .IsMirror}}
{{svg "octicon-repo-clone" 32}}
{{else if .IsFork}}
{{svg "octicon-repo-fork" 32}}
{{else}}
{{svg "octicon-repo" 32}}
{{end}}
{{end}}
<a href="{{AppSubUrl}}/{{.Owner.Name}}">{{.Owner.Name}}</a>
<div class="divider"> / </div>
<a href="{{$.RepoLink}}">{{.Name}}</a>
{{if .RelAvatarLink}}
{{if .IsTemplate}}
{{if .IsPrivate}}
{{svg "octicon-repo-template-private" 32}}
{{else}}
{{svg "octicon-repo-template" 32}}
{{end}}
{{else}}
{{if .IsPrivate}}
{{svg "octicon-lock" 32}}
{{else if .IsMirror}}
{{svg "octicon-repo-clone" 32}}
{{else if .IsFork}}
{{svg "octicon-repo-fork" 32}}
{{else}}
{{svg "octicon-repo" 32}}
{{end}}
{{end}}
{{end}}
{{if .IsArchived}}<i class="archive icon archived-icon"></i>{{end}}
{{if .IsMirror}}<div class="fork-flag">{{$.i18n.Tr "repo.mirror_from"}} <a target="_blank" rel="noopener noreferrer" href="{{if .SanitizedOriginalURL}}{{.SanitizedOriginalURL}}{{else}}{{MirrorAddress $.Mirror}}{{end}}">{{if .SanitizedOriginalURL}}{{.SanitizedOriginalURL}}{{else}}{{MirrorAddress $.Mirror}}{{end}}</a></div>{{end}}
{{if .IsFork}}<div class="fork-flag">{{$.i18n.Tr "repo.forked_from"}} <a href="{{.BaseRepo.Link}}">{{SubStr .BaseRepo.RelLink 1 -1}}</a></div>{{end}}
{{if .IsGenerated}}<div class="fork-flag">{{$.i18n.Tr "repo.generated_from"}} <a href="{{.TemplateRepo.Link}}">{{SubStr .TemplateRepo.RelLink 1 -1}}</a></div>{{end}}
</div>
{{if not .IsBeingCreated}}
<div class="repo-buttons">
<div class="ui labeled button" tabindex="0">
<a class="ui compact basic button" href="{{$.RepoLink}}/action/{{if $.IsWatchingRepo}}un{{end}}watch?redirect_to={{$.Link}}">
<i class="icon fa-eye{{if not $.IsWatchingRepo}}-slash{{end}}"></i>{{if $.IsWatchingRepo}}{{$.i18n.Tr "repo.unwatch"}}{{else}}{{$.i18n.Tr "repo.watch"}}{{end}}
</a>
<a class="ui basic label" href="{{.Link}}/watchers">
{{.NumWatches}}
</a>
</div>
<div class="ui labeled button" tabindex="0">
<a class="ui compact basic button" href="{{$.RepoLink}}/action/{{if $.IsStaringRepo}}un{{end}}star?redirect_to={{$.Link}}">
<i class="icon star{{if not $.IsStaringRepo}} outline{{end}}"></i>{{if $.IsStaringRepo}}{{$.i18n.Tr "repo.unstar"}}{{else}}{{$.i18n.Tr "repo.star"}}{{end}}
</a>
<a class="ui basic label" href="{{.Link}}/stars">
{{.NumStars}}
</a>
</div>
{{if and (not .IsEmpty) ($.Permission.CanRead $.UnitTypeCode)}}
<div class="ui labeled button {{if and ($.IsSigned) (not $.CanSignedUserFork)}}disabled-repo-button{{end}}" tabindex="0">
<a class="ui compact basic button {{if or (not $.IsSigned) (not $.CanSignedUserFork)}}poping up{{end}}" {{if $.CanSignedUserFork}}href="{{AppSubUrl}}/repo/fork/{{.ID}}"{{else if $.IsSigned}} data-content="{{$.i18n.Tr "repo.fork_from_self"}}" {{ else }} data-content="{{$.i18n.Tr "repo.fork_guest_user" }}" rel="nofollow" href="{{AppSubUrl}}/user/login?redirect_to={{AppSubUrl}}/repo/fork/{{.ID}}" {{end}} data-position="top center" data-variation="tiny">
{{svg "octicon-repo-forked" 16}}{{$.i18n.Tr "repo.fork"}}
</a>
<a class="ui basic label" href="{{.Link}}/forks">
{{.NumForks}}
</a>
</div>
{{end}}
</div>
{{end}}
</div><!-- end grid -->
</div><!-- end container -->
{{end}}
<div class="ui tabs container">
{{if not .Repository.IsBeingCreated}}
<div class="ui tabular stackable menu navbar">
{{if .Permission.CanRead $.UnitTypeCode}}
<a class="item {{if .PageIsViewCode}}acty{{end}}" href="{{.RepoLink}}{{if (ne .BranchName .Repository.DefaultBranch)}}/src/{{.BranchNameSubURL | EscapePound}}{{end}}">
{{svg "octicon-code" 16}} {{.i18n.Tr "repo.code"}}
</a>
{{end}}
{{if .Permission.CanRead $.UnitTypeIssues}}
<a class="item {{if .PageIsIssueList}}acty{{end}}" href="{{.RepoLink}}/issues">
{{svg "octicon-issue-opened" 16}} {{.i18n.Tr "repo.issues"}} <span class="ui {{if not .Repository.NumOpenIssues}}gray{{else}}blue{{end}} small label">{{.Repository.NumOpenIssues}}</span>
</a>
{{end}}
{{if .Permission.CanRead $.UnitTypeExternalTracker}}
<a class="item {{if .PageIsIssueList}}acty{{end}}" href="{{.RepoExternalIssuesLink}}" target="_blank" rel="noopener noreferrer">
{{svg "octicon-link-external" 16}} {{.i18n.Tr "repo.issues"}} </span>
</a>
{{end}}
{{if and .Repository.CanEnablePulls (.Permission.CanRead $.UnitTypePullRequests)}}
<a class="item {{if .PageIsPullList}}acty{{end}}" href="{{.RepoLink}}/pulls">
{{svg "octicon-git-pull-request" 16}} {{.i18n.Tr "repo.pulls"}} <span class="ui {{if not .Repository.NumOpenPulls}}gray{{else}}blue{{end}} small label">{{.Repository.NumOpenPulls}}</span>
</a>
{{end}}
{{if and (.Permission.CanRead $.UnitTypeReleases) (not .IsEmptyRepo) }}
<a class="item {{if .PageIsReleaseList}}acty{{end}}" href="{{.RepoLink}}/releases">
{{svg "octicon-tag" 16}} {{.i18n.Tr "repo.releases"}} <span class="ui {{if not .Repository.NumReleases}}gray{{else}}blue{{end}} small label">{{.Repository.NumReleases}}</span>
</a>
{{end}}
{{if or (.Permission.CanRead $.UnitTypeWiki) (.Permission.CanRead $.UnitTypeExternalWiki)}}
<a class="item {{if .PageIsWiki}}acty{{end}}" href="{{.RepoLink}}/wiki" {{if (.Permission.CanRead $.UnitTypeExternalWiki)}} target="_blank" rel="noopener noreferrer" {{end}}>
{{svg "octicon-book" 16}} {{.i18n.Tr "repo.wiki"}}
</a>
{{end}}
{{if and (.Permission.CanReadAny $.UnitTypePullRequests $.UnitTypeIssues $.UnitTypeReleases) (not .IsEmptyRepo)}}
<a class="item {{if .PageIsActivity}}acty{{end}}" href="{{.RepoLink}}/activity">
{{svg "octicon-pulse" 16}} {{.i18n.Tr "repo.activity"}}
</a>
{{end}}
{{template "custom/extra_tabs" .}}
{{if .Permission.IsAdmin}}
<div class="right menu">
<a class="item {{if .PageIsSettings}}acty{{end}}" href="{{.RepoLink}}/settings">
{{svg "octicon-tools" 16}} {{.i18n.Tr "repo.settings"}}
</a>
</div>
{{end}}
</div>
{{end}}
</div>
<div class="ui tabs divider"></div>
</div>

View File

@ -0,0 +1,154 @@
{{template "base/head" .}}
<div class="repository file list">
{{template "repo/header" .}}
<div class="ui container">
{{template "base/alert" .}}
<div class="ui repo-description">
<div id="repo-desc">
{{if .Repository.DescriptionHTML}}<span class="description has-emoji">{{.Repository.DescriptionHTML}}</span>{{else if .IsRepositoryAdmin}}<span class="no-description text-italic">{{.i18n.Tr "repo.no_desc"}}</span>{{end}}
<a class="link" href="{{.Repository.Website}}">{{.Repository.Website}}</a>
</div>
{{if .RepoSearchEnabled}}
<div class="ui repo-search">
<form class="ui form ignore-dirty" action="{{.RepoLink}}/search" method="get">
<div class="field">
<div class="ui action input">
<input name="q" value="{{.Keyword}}" placeholder="{{.i18n.Tr "repo.search.search_repo"}}">
<button class="ui icon button" type="submit">
<i class="search icon"></i>
</button>
</div>
</div>
</form>
</div>
{{end}}
</div>
<div class="ui" id="repo-topics">
{{range .Topics}}<a class="ui repo-topic small label topic" href="{{AppSubUrl}}/explore/repos?q={{.Name}}&topic=1">{{.Name}}</a>{{end}}
{{if and .Permission.IsAdmin (not .Repository.IsArchived)}}<a id="manage_topic">{{.i18n.Tr "repo.topic.manage_topics"}}</a>{{end}}
</div>
{{if and .Permission.IsAdmin (not .Repository.IsArchived)}}
<div class="ui repo-topic-edit grid form segment error" id="topic_edit" style="display:none">
<div class="fourteen wide column">
<div class="field">
<div class="ui fluid multiple search selection dropdown">
<input type="hidden" name="topics" value="{{range $i, $v := .Topics}}{{.Name}}{{if lt (Add $i 1) (len $.Topics)}},{{end}}{{end}}">
{{range .Topics}}
<div class="ui small label topic transition visible" data-value="{{.Name}}" style="display: inline-block !important; cursor: default;">{{.Name}}<i class="delete icon"></i></div>
{{end}}
<div class="text"></div>
</div>
</div>
</div>
<div class="two wide column">
<a class="ui button primary" href="javascript:;" id="save_topic"
data-link="{{.RepoLink}}/topics">{{.i18n.Tr "repo.topic.done"}}</a>
</div>
</div>
{{end}}
<div class="hide" id="validate_prompt">
<span id="count_prompt">{{.i18n.Tr "repo.topic.count_prompt"}}</span>
<span id="format_prompt">{{.i18n.Tr "repo.topic.format_prompt"}}</span>
</div>
{{if .Repository.IsArchived}}
<div class="ui warning message">
{{.i18n.Tr "repo.archive.title"}}
</div>
{{end}}
{{template "repo/sub_menu" .}}
<div class="ui stackable secondary menu mobile--margin-between-items mobile--no-negative-margins">
{{template "repo/branch_dropdown" .}}
{{ $n := len .TreeNames}}
{{ $l := Subtract $n 1}}
<!-- If home page, show new PR. If not, show breadcrumb -->
{{if eq $n 0}}
{{if and .PullRequestCtx.Allowed .IsViewBranch (not .Repository.IsArchived)}}
<div class="fitted item">
<a href="{{.BaseRepo.Link}}/compare/{{.BaseRepo.DefaultBranch | EscapePound}}...{{if ne .Repository.Owner.Name .BaseRepo.Owner.Name}}{{.Repository.Owner.Name}}:{{end}}{{.BranchName | EscapePound}}">
<button id="new-pull-request" class="ui compact basic button">{{.i18n.Tr "repo.pulls.compare_changes"}}</button>
</a>
</div>
{{end}}
{{else}}
<div class="fitted item"><span class="ui breadcrumb repo-path"><a class="section" href="{{.RepoLink}}/src/{{EscapePound .BranchNameSubURL}}" title="{{.Repository.Name}}">{{EllipsisString .Repository.Name 30}}</a>{{range $i, $v := .TreeNames}}<span class="divider">/</span>{{if eq $i $l}}<span class="active section" title="{{$v}}">{{EllipsisString $v 30}}</span>{{else}}{{ $p := index $.Paths $i}}<span class="section"><a href="{{EscapePound $.BranchLink}}/{{EscapePound $p}}" title="{{$v}}">{{EllipsisString $v 30}}</a></span>{{end}}{{end}}</span></div>
{{end}}
<div class="right fitted item" id="file-buttons">
<div class="ui tiny blue buttons">
{{if .Repository.CanEnableEditor}}
{{if .CanAddFile}}
<a href="{{.RepoLink}}/_new/{{EscapePound .BranchName}}/{{EscapePound .TreePath}}" class="ui button">
{{.i18n.Tr "repo.editor.new_file"}}
</a>
{{end}}
{{if .CanUploadFile}}
<a href="{{.RepoLink}}/_upload/{{EscapePound .BranchName}}/{{EscapePound .TreePath}}" class="ui button">
{{.i18n.Tr "repo.editor.upload_file"}}
</a>
{{end}}
{{end}}
{{if and (ne $n 0) (not .IsViewFile) (not .IsBlame) }}
<a href="{{.RepoLink}}/commits/{{EscapePound .BranchNameSubURL}}/{{EscapePound .TreePath}}" class="ui button">
{{.i18n.Tr "repo.file_history"}}
</a>
{{end}}
</div>
</div>
<div class="fitted item">
{{if eq $n 0}}
{{if .Repository.IsTemplate}}
<div class="ui tiny blue buttons">
<a href="{{AppSubUrl}}/repo/create?template_id={{.Repository.ID}}" class="ui button">
{{.i18n.Tr "repo.use_template"}}
</a>
</div>
{{end}}
{{end}}
</div>
<div class="fitted item">
<!-- Only show clone panel in repository home page -->
{{if eq $n 0}}
<div class="ui action tiny input" id="clone-panel">
{{if not $.DisableHTTP}}
<button class="ui basic clone button" id="repo-clone-https" data-link="{{.CloneLink.HTTPS}}">
{{if UseHTTPS}}HTTPS{{else}}HTTP{{end}}
</button>
{{end}}
{{if and (not $.DisableSSH) (or $.IsSigned $.ExposeAnonSSH)}}
<button class="ui basic clone button" id="repo-clone-ssh" data-link="{{.CloneLink.SSH}}">
SSH
</button>
{{end}}
{{if not $.DisableHTTP}}
<input id="repo-clone-url" value="{{$.CloneLink.HTTPS}}" readonly>
{{else if and (not $.DisableSSH) (or $.IsSigned $.ExposeAnonSSH)}}
<input id="repo-clone-url" value="{{$.CloneLink.SSH}}" readonly>
{{end}}
{{if or (not $.DisableHTTP) (and (not $.DisableSSH) (or $.IsSigned $.ExposeAnonSSH))}}
<button class="ui basic icon button poping up clipboard" id="clipboard-btn" data-original="{{.i18n.Tr "repo.copy_link"}}" data-success="{{.i18n.Tr "repo.copy_link_success"}}" data-error="{{.i18n.Tr "repo.copy_link_error"}}" data-content="{{.i18n.Tr "repo.copy_link"}}" data-variation="inverted tiny" data-clipboard-target="#repo-clone-url">
{{svg "octicon-clippy" 16}}
</button>
{{end}}
<div class="ui basic jump dropdown icon button poping up" data-content="{{.i18n.Tr "repo.download_archive"}}" data-variation="tiny inverted" data-position="top right">
<i class="download icon"></i>
<div class="menu">
<a class="item" href="{{$.RepoLink}}/archive/{{EscapePound $.BranchName}}.zip">{{svg "octicon-file-zip" 16}}&nbsp;ZIP</a>
<a class="item" href="{{$.RepoLink}}/archive/{{EscapePound $.BranchName}}.tar.gz">{{svg "octicon-file-zip" 16}}&nbsp;TAR.GZ</a>
</div>
</div>
</div>
{{end}}
</div>
</div>
{{if .IsViewFile}}
{{template "repo/view_file" .}}
{{else if .IsBlame}}
{{template "repo/blame" .}}
{{else}}
{{template "repo/view_list" .}}
{{end}}
</div>
</div>
<p>{{.i18n.Tr "repo.license"}}</p>
{{template "base/footer" .}}

View File

@ -0,0 +1,29 @@
<div class="ui secondary pointing tabular top attached borderless menu stackable new-menu navbar">
<a class="item {{if .PageIsSettingsOptions}}acty{{end}}" href="{{.RepoLink}}/settings">
{{.i18n.Tr "repo.settings.options"}}
</a>
<a class="item {{if .PageIsSettingsCollaboration}}acty{{end}}" href="{{.RepoLink}}/settings/collaboration">
{{.i18n.Tr "repo.settings.collaboration"}}
</a>
{{if not .Repository.IsEmpty}}
<a class="item {{if .PageIsSettingsBranches}}acty{{end}}" href="{{.RepoLink}}/settings/branches">
{{.i18n.Tr "repo.settings.branches"}}
</a>
{{end}}
<a class="item {{if .PageIsSettingsHooks}}acty{{end}}" href="{{.RepoLink}}/settings/hooks">
{{.i18n.Tr "repo.settings.hooks"}}
</a>
{{if .SignedUser.CanEditGitHook}}
<a class="item {{if .PageIsSettingsGitHooks}}acty{{end}}" href="{{.RepoLink}}/settings/hooks/git">
{{.i18n.Tr "repo.settings.githooks"}}
</a>
{{end}}
<a class="item {{if .PageIsSettingsKeys}}acty{{end}}" href="{{.RepoLink}}/settings/keys">
{{.i18n.Tr "repo.settings.deploy_keys"}}
</a>
{{if .LFSStartServer}}
<a class="item {{if .PageIsSettingsLFS}}acty{{end}}" href="{{.RepoLink}}/settings/lfs">
{{.i18n.Tr "repo.settings.lfs"}}
</a>
{{end}}
</div>

View File

@ -0,0 +1,132 @@
{{template "base/head" .}}
<div class="dashboard feeds">
{{template "user/dashboard/navbar" .}}
<div class="ui container">
{{template "base/alert" .}}
<div class="ui mobile reversed stackable grid">
<div class="ui container ten wide column">
{{if .EnableHeatmap}}
<div id="user-heatmap" style="padding-right: 40px">
<activity-heatmap :locale="locale" :suburl="suburl" :user="heatmapUser">
<div slot="loading">
<div class="ui active centered inline indeterminate text loader" id="loading-heatmap">{{.i18n.Tr "user.heatmap.loading"}}</div>
</div>
</activity-heatmap>
<div class="ui divider"></div>
</div>
{{end}}
{{template "user/dashboard/feeds" .}}
</div>
<div id="app" class="six wide column">
<repo-search
:search-limit="searchLimit"
:suburl="suburl"
:uid="uid"
:more-repos-link="'{{.ContextUser.HomeLink}}'"
{{if not .ContextUser.IsOrganization}}
:organizations="[
{{range .ContextUser.Orgs}}
{name: '{{.Name}}', num_repos: '{{.NumRepos}}'},
{{end}}
]"
:is-organization="false"
:organizations-total-count="{{.ContextUser.GetOrganizationCount}}"
:can-create-organization="{{.SignedUser.CanCreateOrganization}}"
{{end}}
inline-template
v-cloak
>
<div>
<div v-if="!isOrganization" class="ui two item tabable menu">
<a :class="{item: true, acty: tab === 'repos'}" @click="changeTab('repos')">{{.i18n.Tr "repository"}}</a>
<a :class="{item: true, acty: tab === 'organizations'}" @click="changeTab('organizations')">{{.i18n.Tr "organization"}}</a>
</div>
<div v-show="tab === 'repos'" class="ui tab active list dashboard-repos">
<h4 class="ui top attached header">
{{.i18n.Tr "home.my_repos"}} <span class="ui grey label">${reposTotalCount}</span>
{{if or (not .ContextUser.IsOrganization) .IsOrganizationOwner}}
<div class="ui right">
<a class="poping up" :href="suburl + '/repo/create{{if .ContextUser.IsOrganization}}?org={{.ContextUser.ID}}{{end}}'" data-content="{{.i18n.Tr "new_repo"}}" data-variation="tiny inverted" data-position="left center">
<i class="plus icon"></i>
<span class="sr-only">{{.i18n.Tr "new_repo"}}</span>
</a>
</div>
{{end}}
</h4>
<div class="ui attached secondary segment repos-search">
<div class="ui fluid icon input" :class="{loading: isLoading}">
<input @input="searchRepos(reposFilter)" v-model="searchQuery" ref="search" placeholder="{{.i18n.Tr "home.search_repos"}}">
<i class="search icon"></i>
</div>
<div class="ui secondary tiny pointing borderless menu center aligned grid repos-filter">
<a class="item" :class="{acty: reposFilter === 'all'}" @click="changeReposFilter('all')">
{{.i18n.Tr "all"}}
<div v-show="reposFilter === 'all'" class="ui circular mini grey label">${repoTypeCount}</div>
</a>
<a class="item" :class="{acty: reposFilter === 'sources'}" @click="changeReposFilter('sources')">
{{.i18n.Tr "sources"}}
<div v-show="reposFilter === 'sources'" class="ui circular mini grey label">${repoTypeCount}</div>
</a>
<a class="item" :class="{acty: reposFilter === 'forks'}" @click="changeReposFilter('forks')">
{{.i18n.Tr "forks"}}
<div v-show="reposFilter === 'forks'" class="ui circular mini grey label">${repoTypeCount}</div>
</a>
<a class="item" :class="{acty: reposFilter === 'mirrors'}" @click="changeReposFilter('mirrors')">
{{.i18n.Tr "mirrors"}}
<div v-show="reposFilter === 'mirrors'" class="ui circular mini grey label">${repoTypeCount}</div>
</a>
<a class="item" :class="{acty: reposFilter === 'collaborative'}" @click="changeReposFilter('collaborative')">
{{.i18n.Tr "collaborative"}}
<div v-show="reposFilter === 'collaborative'" class="ui circular mini grey label">${repoTypeCount}</div>
</a>
</div>
</div>
<div class="ui attached table segment">
<ul class="repo-owner-name-list">
<li v-for="repo in repos" :class="{'private': repo.private}" v-show="showRepo(repo, reposFilter)">
<a :href="suburl + '/' + repo.full_name">
<svg :class="'svg ' + repoClass(repo)" width="16" height="16" aria-hidden="true"><use :xlink:href="staticPrefix + '/img/svg/icons.svg#' + repoClass(repo)" /></svg>
<strong class="text truncate item-name">${repo.full_name}</strong>
<i v-if="repo.archived" class="archive icon archived-icon"></i>
<span class="ui right text light grey">
${repo.stars_count} <span class="rear">{{svg "octicon-star" 16}}</span>
</span>
</a>
</li>
<li v-if="showMoreReposLink">
<a :href="moreReposLink">{{.i18n.Tr "home.show_more_repos"}}</a>
</li>
</ul>
</div>
</div>
<div v-if="!isOrganization" v-show="tab === 'organizations'" class="ui tab active list">
<h4 class="ui top attached header">
{{.i18n.Tr "home.my_orgs"}} <span class="ui grey label">${organizationsTotalCount}</span>
<div v-if="canCreateOrganization" class="ui right">
<a class="poping up" :href="suburl + '/org/create'" data-content="{{.i18n.Tr "new_org"}}" data-variation="tiny inverted" data-position="left center">
<i class="plus icon"></i>
<span class="sr-only">{{.i18n.Tr "new_org"}}</span>
</a>
</div>
</h4>
<div class="ui attached table segment">
<ul class="repo-owner-name-list">
<li v-for="org in organizations">
<a :href="suburl + '/' + org.name">
{{svg "octicon-organization" 16}}
<strong class="text truncate item-name">${org.name}</strong>
<span class="ui right text light grey">
${org.num_repos} <span class="rear">{{svg "octicon-repo" 16}}</span>
</span>
</a>
</li>
</ul>
</div>
</div>
</div>
</repo-search>
</div>
</div>
</div>
</div>
{{template "base/footer" .}}

View File

@ -0,0 +1,23 @@
<div class="ui secondary pointing tabular top attached borderless menu stackable new-menu navbar">
<a class="item {{if .PageIsSettingsProfile}}acty{{end}}" href="{{AppSubUrl}}/user/settings">
{{.i18n.Tr "settings.profile"}}
</a>
<a class="item {{if .PageIsSettingsAccount}}acty{{end}}" href="{{AppSubUrl}}/user/settings/account">
{{.i18n.Tr "settings.account"}}
</a>
<a class="item {{if .PageIsSettingsSecurity}}acty{{end}}" href="{{AppSubUrl}}/user/settings/security">
{{.i18n.Tr "settings.security"}}
</a>
<a class="item {{if .PageIsSettingsApplications}}acty{{end}}" href="{{AppSubUrl}}/user/settings/applications">
{{.i18n.Tr "settings.applications"}}
</a>
<a class="item {{if .PageIsSettingsKeys}}acty{{end}}" href="{{AppSubUrl}}/user/settings/keys">
{{.i18n.Tr "settings.ssh_gpg_keys"}}
</a>
<a class="item {{if .PageIsSettingsOrganization}}acty{{end}}" href="{{AppSubUrl}}/user/settings/organization">
{{.i18n.Tr "settings.organization"}}
</a>
<a class="item {{if .PageIsSettingsRepos}}acty{{end}}" href="{{AppSubUrl}}/user/settings/repos">
{{.i18n.Tr "settings.repos"}}
</a>
</div>