Compare commits
73 Commits
release/v1
...
master
Author | SHA1 | Date | |
---|---|---|---|
|
d0fef4395f | ||
|
344dc07239 | ||
|
ba358ecbf5 | ||
|
ae9dd239fb | ||
|
ec43e5619b | ||
|
bed623600d | ||
|
5fa403c874 | ||
|
0bb1c84208 | ||
|
b174817b6a | ||
|
cc9fa062e6 | ||
|
0c59edaafa | ||
|
1e2da5d396 | ||
|
492ec97a46 | ||
|
d1337299e2 | ||
|
9ca8aaecb4 | ||
|
91373901f6 | ||
|
fe78154895 | ||
|
1bff02de55 | ||
|
7be5935c55 | ||
|
ef6813abc9 | ||
|
55d9ddf24a | ||
|
ca474af3c6 | ||
|
8e103d3e76 | ||
|
a7c5e58635 | ||
|
ca8c7bb2b5 | ||
|
aa27cbf229 | ||
|
6813640d2f | ||
|
e95417ea2c | ||
|
659bc727bd | ||
|
e6b51200ab | ||
|
a7f90905df | ||
|
8afd500c48 | ||
|
8b21cdba78 | ||
|
3e950ef112 | ||
|
c55caeaf0c | ||
|
d84490a0df | ||
|
c2ec38f9b7 | ||
|
61f4ad2fc5 | ||
|
c9687c036d | ||
|
3e445cce06 | ||
|
80169460ec | ||
|
efd202f40f | ||
|
ab55ca7ebd | ||
|
1675fc4301 | ||
|
61b40520ba | ||
|
f1d6a1fffc | ||
|
28c1c90230 | ||
|
2a60e72fcd | ||
|
cfb76cd99e | ||
|
7c943b1cad | ||
|
5bc8782d33 | ||
|
e07d3ad0fc | ||
|
f035dcd4f2 | ||
|
54fedd4070 | ||
|
07063e3e11 | ||
|
69e2ab1611 | ||
|
4eae810d63 | ||
|
4a8ee0b5cc | ||
|
b46066f17c | ||
|
95f0f62ea4 | ||
|
74f9f98f78 | ||
|
2e3475f02c | ||
|
df77ad31d5 | ||
|
c3bbf43970 | ||
|
fc53f95f23 | ||
|
823318bfbe | ||
|
5676f60cba | ||
|
3fed13b0ee | ||
|
51ba3df5ff | ||
|
4b654ad17f | ||
|
5d1a6382b6 | ||
|
c71ee33057 | ||
|
9d4c1ddfa1 |
28
.drone.yml
28
.drone.yml
|
@ -75,7 +75,7 @@ pipeline:
|
|||
- make lint
|
||||
- make fmt-check
|
||||
- make swagger-check
|
||||
- make swagger-validate
|
||||
# - make swagger-validate
|
||||
- make misspell-check
|
||||
- make test-vendor
|
||||
- make build
|
||||
|
@ -203,7 +203,7 @@ pipeline:
|
|||
when:
|
||||
event: [ push, tag ]
|
||||
|
||||
build_docs:
|
||||
build-docs:
|
||||
image: webhippie/hugo:latest
|
||||
pull: true
|
||||
commands:
|
||||
|
@ -212,26 +212,12 @@ pipeline:
|
|||
- make clean
|
||||
- make build
|
||||
|
||||
docker_docs:
|
||||
image: plugins/docker:17.05
|
||||
publish-docs:
|
||||
image: lucap/drone-netlify:latest
|
||||
pull: true
|
||||
secrets: [ docker_username, docker_password ]
|
||||
repo: gitea/docs
|
||||
context: docs
|
||||
dockerfile: docs/Dockerfile
|
||||
tags: [ '${DRONE_BRANCH##release/v}' ]
|
||||
when:
|
||||
event: [ push ]
|
||||
branch: [ release/* ]
|
||||
|
||||
docker_docs:
|
||||
image: plugins/docker:17.05
|
||||
pull: true
|
||||
secrets: [ docker_username, docker_password ]
|
||||
repo: gitea/docs
|
||||
context: docs
|
||||
dockerfile: docs/Dockerfile
|
||||
tags: [ 'latest' ]
|
||||
secrets: [ netlify_token ]
|
||||
site_id: d2260bae-7861-4c02-8646-8f6440b12672
|
||||
path: docs/public/
|
||||
when:
|
||||
event: [ push ]
|
||||
branch: [ master ]
|
||||
|
|
51
BSDmakefile
Normal file
51
BSDmakefile
Normal file
|
@ -0,0 +1,51 @@
|
|||
# GNU makefile proxy script for BSD make
|
||||
# Written and maintained by Mahmoud Al-Qudsi <mqudsi@neosmart.net>
|
||||
# Copyright NeoSmart Technologies <https://neosmart.net/> 2014-2018
|
||||
# Obtain updates from <https://github.com/neosmart/gmake-proxy>
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are met:
|
||||
#
|
||||
# 1. Redistributions of source code must retain the above copyright notice, this
|
||||
# list of conditions and the following disclaimer.
|
||||
#
|
||||
# 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
# this list of conditions and the following disclaimer in the documentation
|
||||
# and/or other materials provided with the distribution.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
||||
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
JARG =
|
||||
GMAKE = "gmake"
|
||||
#When gmake is called from another make instance, -w is automatically added
|
||||
#which causes extraneous messages about directory changes to be emitted.
|
||||
#--no-print-directory silences these messages.
|
||||
GARGS = "--no-print-directory"
|
||||
|
||||
.if "$(.MAKE.JOBS)" != ""
|
||||
JARG = -j$(.MAKE.JOBS)
|
||||
.endif
|
||||
|
||||
#by default bmake will cd into ./obj first
|
||||
.OBJDIR: ./
|
||||
|
||||
.PHONY: FRC
|
||||
$(.TARGETS): FRC
|
||||
$(GMAKE) $(GARGS) $(.TARGETS:S,.DONE,,) $(JARG)
|
||||
|
||||
.DONE .DEFAULT: .SILENT
|
||||
$(GMAKE) $(GARGS) $(.TARGETS:S,.DONE,,) $(JARG)
|
||||
|
||||
.ERROR: .SILENT
|
||||
if ! which $(GMAKE) > /dev/null; then \
|
||||
echo "GNU Make is required!"; \
|
||||
fi
|
|
@ -58,3 +58,4 @@ CMD ["/bin/s6-svscan", "/etc/s6"]
|
|||
|
||||
COPY docker /
|
||||
COPY --from=build-env /go/src/code.gitea.io/gitea/gitea /app/gitea/gitea
|
||||
RUN ln -s /app/gitea/gitea /usr/local/bin/gitea
|
||||
|
|
186
Gopkg.lock
generated
186
Gopkg.lock
generated
|
@ -11,7 +11,7 @@
|
|||
branch = "master"
|
||||
name = "code.gitea.io/sdk"
|
||||
packages = ["gitea"]
|
||||
revision = "b2308e3f700875a3642a78bd3f6e5db8ef6f974d"
|
||||
revision = "ec80752c9512cf07fc62ddc42565118183743942"
|
||||
|
||||
[[projects]]
|
||||
name = "github.com/PuerkitoBio/goquery"
|
||||
|
@ -143,17 +143,6 @@
|
|||
packages = ["."]
|
||||
revision = "098da33fde5f9220736531b3cb26a2dec86a8367"
|
||||
|
||||
[[projects]]
|
||||
name = "github.com/coreos/etcd"
|
||||
packages = ["error"]
|
||||
revision = "01c303113d0a3d5a8075864321c3aedb72035bdd"
|
||||
|
||||
[[projects]]
|
||||
branch = "master"
|
||||
name = "github.com/coreos/go-etcd"
|
||||
packages = ["etcd"]
|
||||
revision = "003851be7bb0694fe3cc457a49529a19388ee7cf"
|
||||
|
||||
[[projects]]
|
||||
branch = "master"
|
||||
name = "github.com/couchbase/vellum"
|
||||
|
@ -294,27 +283,24 @@
|
|||
[[projects]]
|
||||
name = "github.com/go-sql-driver/mysql"
|
||||
packages = ["."]
|
||||
revision = "ce924a41eea897745442daaa1739089b0f3f561d"
|
||||
revision = "d523deb1b23d913de5bdada721a6071e71283618"
|
||||
|
||||
[[projects]]
|
||||
name = "github.com/go-xorm/builder"
|
||||
packages = ["."]
|
||||
revision = "488224409dd8aa2ce7a5baf8d10d55764a913738"
|
||||
revision = "dc8bf48f58fab2b4da338ffd25191905fd741b8f"
|
||||
version = "v0.3.0"
|
||||
|
||||
[[projects]]
|
||||
name = "github.com/go-xorm/core"
|
||||
packages = ["."]
|
||||
revision = "cb1d0ca71f42d3ee1bf4aba7daa16099bc31a7e9"
|
||||
|
||||
[[projects]]
|
||||
name = "github.com/go-xorm/tidb"
|
||||
packages = ["."]
|
||||
revision = "21e49190ce47a766fa741cf7edc831a30c12c6ac"
|
||||
revision = "c10e21e7e1cec20e09398f2dfae385e58c8df555"
|
||||
version = "v0.6.0"
|
||||
|
||||
[[projects]]
|
||||
name = "github.com/go-xorm/xorm"
|
||||
packages = ["."]
|
||||
revision = "d4149d1eee0c2c488a74a5863fd9caf13d60fd03"
|
||||
revision = "ad69f7d8f0861a29438154bb0a20b60501298480"
|
||||
|
||||
[[projects]]
|
||||
branch = "master"
|
||||
|
@ -370,11 +356,6 @@
|
|||
packages = ["."]
|
||||
revision = "8fb95d837f7d6db1913fecfd7bcc5333e6499596"
|
||||
|
||||
[[projects]]
|
||||
name = "github.com/juju/errors"
|
||||
packages = ["."]
|
||||
revision = "b2c7a7da5b2995941048f60146e67702a292e468"
|
||||
|
||||
[[projects]]
|
||||
name = "github.com/kballard/go-shellquote"
|
||||
packages = ["."]
|
||||
|
@ -497,134 +478,12 @@
|
|||
packages = ["."]
|
||||
revision = "891127d8d1b52734debe1b3c3d7e747502b6c366"
|
||||
|
||||
[[projects]]
|
||||
name = "github.com/ngaut/deadline"
|
||||
packages = ["."]
|
||||
revision = "fae8f9dfd7048de16575b9d4c255278e38c28a4f"
|
||||
|
||||
[[projects]]
|
||||
branch = "master"
|
||||
name = "github.com/ngaut/go-zookeeper"
|
||||
packages = ["zk"]
|
||||
revision = "9c3719e318c7cfd072e41eb48cb71fcaa49d5e05"
|
||||
|
||||
[[projects]]
|
||||
name = "github.com/ngaut/log"
|
||||
packages = ["."]
|
||||
revision = "d2af3a61f64d093457fb23b25d20f4ce3cd551ce"
|
||||
|
||||
[[projects]]
|
||||
branch = "master"
|
||||
name = "github.com/ngaut/pools"
|
||||
packages = ["."]
|
||||
revision = "b7bc8c42aac787667ba45adea78233f53f548443"
|
||||
|
||||
[[projects]]
|
||||
branch = "master"
|
||||
name = "github.com/ngaut/sync2"
|
||||
packages = ["."]
|
||||
revision = "7a24ed77b2efb460c1468b7dc917821c66e80e55"
|
||||
|
||||
[[projects]]
|
||||
branch = "master"
|
||||
name = "github.com/ngaut/tso"
|
||||
packages = [
|
||||
"client",
|
||||
"proto",
|
||||
"util"
|
||||
]
|
||||
revision = "118f6c141d58f1e72577ff61f43f649bf39355ee"
|
||||
|
||||
[[projects]]
|
||||
branch = "master"
|
||||
name = "github.com/ngaut/zkhelper"
|
||||
packages = ["."]
|
||||
revision = "6738bdc138d469112c6687fbfcfe049ccabd6a0a"
|
||||
|
||||
[[projects]]
|
||||
branch = "master"
|
||||
name = "github.com/petar/GoLLRB"
|
||||
packages = ["llrb"]
|
||||
revision = "53be0d36a84c2a886ca057d34b6aa4468df9ccb4"
|
||||
|
||||
[[projects]]
|
||||
name = "github.com/philhofer/fwd"
|
||||
packages = ["."]
|
||||
revision = "bb6d471dc95d4fe11e432687f8b70ff496cf3136"
|
||||
version = "v1.0.0"
|
||||
|
||||
[[projects]]
|
||||
name = "github.com/pingcap/go-hbase"
|
||||
packages = [
|
||||
".",
|
||||
"iohelper",
|
||||
"proto"
|
||||
]
|
||||
revision = "7a98d1fe4e9e115de8c77ae0e158c0d08732c550"
|
||||
|
||||
[[projects]]
|
||||
branch = "master"
|
||||
name = "github.com/pingcap/go-themis"
|
||||
packages = [
|
||||
".",
|
||||
"oracle",
|
||||
"oracle/oracles"
|
||||
]
|
||||
revision = "dbb996606c1d1fe8571fd9ac6da2254c76d2c5c9"
|
||||
|
||||
[[projects]]
|
||||
name = "github.com/pingcap/tidb"
|
||||
packages = [
|
||||
".",
|
||||
"ast",
|
||||
"column",
|
||||
"context",
|
||||
"ddl",
|
||||
"domain",
|
||||
"evaluator",
|
||||
"executor",
|
||||
"infoschema",
|
||||
"inspectkv",
|
||||
"kv",
|
||||
"kv/memkv",
|
||||
"meta",
|
||||
"meta/autoid",
|
||||
"model",
|
||||
"mysql",
|
||||
"optimizer",
|
||||
"optimizer/plan",
|
||||
"parser",
|
||||
"parser/opcode",
|
||||
"perfschema",
|
||||
"privilege",
|
||||
"privilege/privileges",
|
||||
"sessionctx",
|
||||
"sessionctx/autocommit",
|
||||
"sessionctx/db",
|
||||
"sessionctx/forupdate",
|
||||
"sessionctx/variable",
|
||||
"store/hbase",
|
||||
"store/localstore",
|
||||
"store/localstore/boltdb",
|
||||
"store/localstore/engine",
|
||||
"store/localstore/goleveldb",
|
||||
"structure",
|
||||
"table",
|
||||
"table/tables",
|
||||
"terror",
|
||||
"util",
|
||||
"util/bytes",
|
||||
"util/charset",
|
||||
"util/codec",
|
||||
"util/distinct",
|
||||
"util/hack",
|
||||
"util/segmentmap",
|
||||
"util/sqlexec",
|
||||
"util/stringutil",
|
||||
"util/types"
|
||||
]
|
||||
revision = "33197485abe227dcb254644cf5081c9a3c281669"
|
||||
|
||||
[[projects]]
|
||||
name = "github.com/pmezard/go-difflib"
|
||||
packages = ["difflib"]
|
||||
|
@ -673,24 +532,6 @@
|
|||
revision = "12b6f73e6084dad08a7c6e575284b177ecafbc71"
|
||||
version = "v1.2.1"
|
||||
|
||||
[[projects]]
|
||||
name = "github.com/syndtr/goleveldb"
|
||||
packages = [
|
||||
"leveldb",
|
||||
"leveldb/cache",
|
||||
"leveldb/comparer",
|
||||
"leveldb/errors",
|
||||
"leveldb/filter",
|
||||
"leveldb/iterator",
|
||||
"leveldb/journal",
|
||||
"leveldb/memdb",
|
||||
"leveldb/opt",
|
||||
"leveldb/storage",
|
||||
"leveldb/table",
|
||||
"leveldb/util"
|
||||
]
|
||||
revision = "917f41c560270110ceb73c5b38be2a9127387071"
|
||||
|
||||
[[projects]]
|
||||
branch = "master"
|
||||
name = "github.com/tinylib/msgp"
|
||||
|
@ -703,17 +544,6 @@
|
|||
packages = ["."]
|
||||
revision = "d21a03e0b1d9fc1df59ff54e7a513655c1748b0c"
|
||||
|
||||
[[projects]]
|
||||
name = "github.com/twinj/uuid"
|
||||
packages = ["."]
|
||||
revision = "89173bcdda19db0eb88aef1e1cb1cb2505561d31"
|
||||
version = "0.10.0"
|
||||
|
||||
[[projects]]
|
||||
name = "github.com/ugorji/go"
|
||||
packages = ["codec"]
|
||||
revision = "c062049c1793b01a3cc3fe786108edabbaf7756b"
|
||||
|
||||
[[projects]]
|
||||
name = "github.com/urfave/cli"
|
||||
packages = ["."]
|
||||
|
@ -873,6 +703,6 @@
|
|||
[solve-meta]
|
||||
analyzer-name = "dep"
|
||||
analyzer-version = 1
|
||||
inputs-digest = "036b8c882671cf8d2c5e2fdbe53b1bdfbd39f7ebd7765bd50276c7c4ecf16687"
|
||||
inputs-digest = "5ae18d543bbb8186589c003422b333097d67bb5fed8b4c294be70c012ccffc94"
|
||||
solver-name = "gps-cdcl"
|
||||
solver-version = 1
|
||||
|
|
11
Gopkg.toml
11
Gopkg.toml
|
@ -30,15 +30,14 @@ ignored = ["google.golang.org/appengine*"]
|
|||
revision = "f2499483f923065a842d38eb4c7f1927e6fc6e6d"
|
||||
name = "golang.org/x/net"
|
||||
|
||||
[[constraint]]
|
||||
#version = "v1.0.0"
|
||||
revision = "33197485abe227dcb254644cf5081c9a3c281669"
|
||||
name = "github.com/pingcap/tidb"
|
||||
|
||||
[[override]]
|
||||
name = "github.com/go-xorm/xorm"
|
||||
#version = "0.6.5"
|
||||
revision = "d4149d1eee0c2c488a74a5863fd9caf13d60fd03"
|
||||
revision = "ad69f7d8f0861a29438154bb0a20b60501298480"
|
||||
|
||||
[[override]]
|
||||
name = "github.com/go-sql-driver/mysql"
|
||||
revision = "d523deb1b23d913de5bdada721a6071e71283618"
|
||||
|
||||
[[override]]
|
||||
name = "github.com/gorilla/mux"
|
||||
|
|
28
Makefile
28
Makefile
|
@ -21,7 +21,19 @@ GOFMT ?= gofmt -s
|
|||
GOFLAGS := -i -v
|
||||
EXTRA_GOFLAGS ?=
|
||||
|
||||
LDFLAGS := -X "main.Version=$(shell git describe --tags --always | sed 's/-/+/' | sed 's/^v//')" -X "main.Tags=$(TAGS)"
|
||||
ifneq ($(DRONE_TAG),)
|
||||
VERSION ?= $(subst v,,$(DRONE_TAG))
|
||||
GITEA_VERSION := $(VERSION)
|
||||
else
|
||||
ifneq ($(DRONE_BRANCH),)
|
||||
VERSION ?= $(subst release/v,,$(DRONE_BRANCH))
|
||||
else
|
||||
VERSION ?= master
|
||||
endif
|
||||
GITEA_VERSION := $(shell git describe --tags --always | sed 's/-/+/' | sed 's/^v//')
|
||||
endif
|
||||
|
||||
LDFLAGS := -X "main.Version=$(GITEA_VERSION)" -X "main.Tags=$(TAGS)"
|
||||
|
||||
PACKAGES ?= $(filter-out code.gitea.io/gitea/integrations,$(shell $(GO) list ./... | grep -v /vendor/))
|
||||
SOURCES ?= $(shell find . -name "*.go" -type f)
|
||||
|
@ -45,15 +57,8 @@ else
|
|||
EXECUTABLE := gitea
|
||||
endif
|
||||
|
||||
ifneq ($(DRONE_TAG),)
|
||||
VERSION ?= $(subst v,,$(DRONE_TAG))
|
||||
else
|
||||
ifneq ($(DRONE_BRANCH),)
|
||||
VERSION ?= $(subst release/v,,$(DRONE_BRANCH))
|
||||
else
|
||||
VERSION ?= master
|
||||
endif
|
||||
endif
|
||||
# $(call strip-suffix,filename)
|
||||
strip-suffix = $(firstword $(subst ., ,$(1)))
|
||||
|
||||
.PHONY: all
|
||||
all: build
|
||||
|
@ -301,7 +306,7 @@ public/js/index.js: $(JAVASCRIPTS)
|
|||
|
||||
.PHONY: stylesheets-check
|
||||
stylesheets-check: generate-stylesheets
|
||||
@diff=$$(git diff public/css/index.css); \
|
||||
@diff=$$(git diff public/css/*); \
|
||||
if [ -n "$$diff" ]; then \
|
||||
echo "Please run 'make generate-stylesheets' and commit the result:"; \
|
||||
echo "$${diff}"; \
|
||||
|
@ -311,6 +316,7 @@ stylesheets-check: generate-stylesheets
|
|||
.PHONY: generate-stylesheets
|
||||
generate-stylesheets:
|
||||
node_modules/.bin/lessc --clean-css public/less/index.less public/css/index.css
|
||||
$(foreach file, $(filter-out public/less/themes/_base.less, $(wildcard public/less/themes/*)),node_modules/.bin/lessc --clean-css public/less/themes/$(notdir $(file)) > public/css/theme-$(notdir $(call strip-suffix,$(file))).css;)
|
||||
|
||||
.PHONY: swagger-ui
|
||||
swagger-ui:
|
||||
|
|
|
@ -90,6 +90,10 @@ Support this project by becoming a sponsor. Your logo will show up here with a l
|
|||
|
||||
Gitea is pronounced [/ɡɪ’ti:/](https://youtu.be/EM71-2uDAoY) as in "gi-tea" with a hard g.
|
||||
|
||||
**Why is this not hosted on a Gitea instance?**
|
||||
|
||||
We're [working on it](https://github.com/go-gitea/gitea/issues/1029).
|
||||
|
||||
## License
|
||||
|
||||
This project is licensed under the MIT License.
|
||||
|
|
|
@ -67,6 +67,8 @@ EXPLORE_PAGING_NUM = 20
|
|||
ISSUE_PAGING_NUM = 10
|
||||
; Number of maximum commits displayed in one activity feed
|
||||
FEED_MAX_COMMIT_NUM = 5
|
||||
; Number of maximum commits displayed in commit graph.
|
||||
GRAPH_MAX_COMMIT_NUM = 100
|
||||
; Value of `theme-color` meta tag, used by Android >= 5.0
|
||||
; An invalid color like "none" or "disable" will have the default style
|
||||
; More info: https://developers.google.com/web/updates/2014/11/Support-for-theme-color-in-Chrome-39-for-Android
|
||||
|
@ -75,6 +77,8 @@ THEME_COLOR_META_TAG = `#6cc644`
|
|||
MAX_DISPLAY_FILE_SIZE = 8388608
|
||||
; Whether the email of the user should be shown in the Explore Users page
|
||||
SHOW_USER_EMAIL = true
|
||||
; Set the default theme for the Gitea install
|
||||
DEFAULT_THEME = gitea
|
||||
|
||||
[ui.admin]
|
||||
; Number of users that are displayed on one page
|
||||
|
@ -301,13 +305,22 @@ ENABLE_NOTIFY_MAIL = false
|
|||
ENABLE_REVERSE_PROXY_AUTHENTICATION = false
|
||||
ENABLE_REVERSE_PROXY_AUTO_REGISTRATION = false
|
||||
; Enable captcha validation for registration
|
||||
ENABLE_CAPTCHA = true
|
||||
ENABLE_CAPTCHA = false
|
||||
; Type of captcha you want to use. Options: image, recaptcha
|
||||
CAPTCHA_TYPE = image
|
||||
; Enable recaptcha to use Google's recaptcha service
|
||||
; Go to https://www.google.com/recaptcha/admin to sign up for a key
|
||||
RECAPTCHA_SECRET =
|
||||
RECAPTCHA_SITEKEY =
|
||||
; Default value for KeepEmailPrivate
|
||||
; Each new user will get the value of this setting copied into their profile
|
||||
DEFAULT_KEEP_EMAIL_PRIVATE = false
|
||||
; Default value for AllowCreateOrganization
|
||||
; Every new user will have rights set to create organizations depending on this setting
|
||||
DEFAULT_ALLOW_CREATE_ORGANIZATION = true
|
||||
; Default value for EnableDependencies
|
||||
; Repositories will use depencies by default depending on this setting
|
||||
DEFAULT_ENABLE_DEPENDENCIES = true
|
||||
; Enable Timetracking
|
||||
ENABLE_TIMETRACKING = true
|
||||
; Default value for EnableTimetracking
|
||||
|
|
|
@ -4,6 +4,9 @@ RUN_MODE = $RUN_MODE
|
|||
[repository]
|
||||
ROOT = /data/git/repositories
|
||||
|
||||
[repository.local]
|
||||
LOCAL_COPY_PATH = /data/gitea/tmp/local-repo
|
||||
|
||||
[repository.upload]
|
||||
TEMP_PATH = /data/gitea/uploads
|
||||
|
||||
|
@ -14,6 +17,7 @@ HTTP_PORT = $HTTP_PORT
|
|||
ROOT_URL = $ROOT_URL
|
||||
DISABLE_SSH = $DISABLE_SSH
|
||||
SSH_PORT = $SSH_PORT
|
||||
LFS_CONTENT_PATH = /data/git/lfs
|
||||
|
||||
[database]
|
||||
PATH = /data/gitea/gitea.db
|
||||
|
@ -23,6 +27,9 @@ NAME = $DB_NAME
|
|||
USER = $DB_USER
|
||||
PASSWD = $DB_PASSWD
|
||||
|
||||
[indexer]
|
||||
ISSUE_INDEXER_PATH = /data/gitea/indexers/issues.bleve
|
||||
|
||||
[session]
|
||||
PROVIDER_CONFIG = /data/gitea/sessions
|
||||
|
||||
|
|
|
@ -1,22 +0,0 @@
|
|||
# build stage
|
||||
FROM golang:alpine AS build-env
|
||||
|
||||
RUN apk add --no-cache git
|
||||
RUN go get -d -v github.com/mholt/caddy/caddy github.com/pedronasser/caddy-search github.com/simia-tech/caddy-locale
|
||||
WORKDIR /go/src/github.com/mholt/caddy/caddy
|
||||
|
||||
RUN sed -i '/This is where other plugins get plugged in (imported)/a _ "github.com/pedronasser/caddy-search"' caddymain/run.go \
|
||||
&& sed -i '/This is where other plugins get plugged in (imported)/a _ "github.com/simia-tech/caddy-locale"' caddymain/run.go \
|
||||
&& go install -v . \
|
||||
&& /go/bin/caddy -version
|
||||
|
||||
FROM alpine:edge
|
||||
EXPOSE 80
|
||||
|
||||
RUN apk add --no-cache wget mailcap ca-certificates
|
||||
COPY --from=build-env /go/bin/caddy /usr/sbin/caddy
|
||||
|
||||
COPY docker/caddy.conf /etc/caddy.conf
|
||||
COPY public /srv/www
|
||||
|
||||
CMD ["/usr/sbin/caddy", "-conf", "/etc/caddy.conf"]
|
|
@ -31,7 +31,7 @@ menu:
|
|||
post: active
|
||||
- name: API
|
||||
url: https://try.gitea.io/api/swagger
|
||||
weight: 25
|
||||
weight: 45
|
||||
pre: plug
|
||||
- name: Blog
|
||||
url: https://blog.gitea.io/
|
||||
|
@ -79,7 +79,7 @@ languages:
|
|||
post: active
|
||||
- name: API
|
||||
url: https://try.gitea.io/api/swagger
|
||||
weight: 25
|
||||
weight: 45
|
||||
pre: plug
|
||||
- name: 博客
|
||||
url: https://blog.gitea.io/
|
||||
|
@ -122,7 +122,7 @@ languages:
|
|||
post: active
|
||||
- name: API
|
||||
url: https://try.gitea.io/api/swagger
|
||||
weight: 25
|
||||
weight: 45
|
||||
pre: plug
|
||||
- name: 部落格
|
||||
url: https://blog.gitea.io/
|
||||
|
@ -165,7 +165,7 @@ languages:
|
|||
post: active
|
||||
- name: API
|
||||
url: https://try.gitea.io/api/swagger
|
||||
weight: 25
|
||||
weight: 45
|
||||
pre: plug
|
||||
- name: Blog
|
||||
url: https://blog.gitea.io/
|
||||
|
@ -208,7 +208,7 @@ languages:
|
|||
post: active
|
||||
- name: API
|
||||
url: https://try.gitea.io/api/swagger
|
||||
weight: 25
|
||||
weight: 45
|
||||
pre: plug
|
||||
- name: Blog
|
||||
url: https://blog.gitea.io/
|
||||
|
@ -241,17 +241,17 @@ languages:
|
|||
menu:
|
||||
page:
|
||||
- name: Site
|
||||
url: /fr-fr/
|
||||
url: https://gitea.io/en-us/
|
||||
weight: 10
|
||||
pre: home
|
||||
post: active
|
||||
- name: Documentation
|
||||
url: https://docs.gitea.io/fr-fr/
|
||||
url: /fr-fr/
|
||||
weight: 20
|
||||
pre: question
|
||||
- name: API
|
||||
url: https://try.gitea.io/api/swagger
|
||||
weight: 25
|
||||
weight: 45
|
||||
pre: plug
|
||||
- name: Blog
|
||||
url: https://blog.gitea.io/
|
||||
|
|
|
@ -68,6 +68,8 @@ Values containing `#` or `;` must be quoted using `` ` `` or `"""`.
|
|||
- `EXPLORE_PAGING_NUM`: **20**: Number of repositories that are shown in one explore page.
|
||||
- `ISSUE_PAGING_NUM`: **10**: Number of issues that are shown in one page (for all pages that list issues).
|
||||
- `FEED_MAX_COMMIT_NUM`: **5**: Number of maximum commits shown in one activity feed.
|
||||
- `GRAPH_MAX_COMMIT_NUM`: **100**: Number of maximum commits shown in the commit graph.
|
||||
- `DEFAULT_THEME`: **gitea**: \[gitea, arc-green\]: Set the default theme for the Gitea install.
|
||||
|
||||
### UI - Admin (`ui.admin`)
|
||||
|
||||
|
@ -177,7 +179,11 @@ Values containing `#` or `;` must be quoted using `` ` `` or `"""`.
|
|||
- `ENABLE_REVERSE_PROXY_AUTHENTICATION`: **false**: Enable this to allow reverse proxy authentication.
|
||||
- `ENABLE_REVERSE_PROXY_AUTO_REGISTRATION`: **false**: Enable this to allow auto-registration
|
||||
for reverse authentication.
|
||||
- `ENABLE_CAPTCHA`: **true**: Enable this to use captcha validation for registration.
|
||||
- `ENABLE_CAPTCHA`: **false**: Enable this to use captcha validation for registration.
|
||||
- `CAPTCHA_TYPE`: **image**: \[image, recaptcha\]
|
||||
- `RECAPTCHA_SECRET`: **""**: Go to https://www.google.com/recaptcha/admin to get a secret for recaptcha
|
||||
- `RECAPTCHA_SITEKEY`: **""**: Go to https://www.google.com/recaptcha/admin to get a sitekey for recaptcha
|
||||
- `DEFAULT_ENABLE_DEPENDENCIES`: **true** Enable this to have dependencies enabled by default.
|
||||
|
||||
## Webhook (`webhook`)
|
||||
|
||||
|
@ -279,6 +285,13 @@ Values containing `#` or `;` must be quoted using `` ` `` or `"""`.
|
|||
- `MAX_GIT_DIFF_FILES`: **100**: Max number of files shown in diff view.
|
||||
- `GC_ARGS`: **\<empty\>**: Arguments for command `git gc`, e.g. `--aggressive --auto`.
|
||||
|
||||
## Git - Timeout settings (`git.timeout`)
|
||||
- `MIGRATE`: **600**: Migrate external repositories timeout seconds.
|
||||
- `MIRROR`: **300**: Mirror external repositories timeout seconds.
|
||||
- `CLONE`: **300**: Git clone from internal repositories timeout seconds.
|
||||
- `PULL`: **300**: Git pull from internal repositories timeout seconds.
|
||||
- `GC`: **60**: Git repository GC timeout seconds.
|
||||
|
||||
## API (`api`)
|
||||
|
||||
- `ENABLE_SWAGGER_ENDPOINT`: **true**: Enables /api/swagger, /api/v1/swagger etc. endpoints. True or false; default is true.
|
||||
|
|
|
@ -187,6 +187,13 @@ menu:
|
|||
- `MAX_GIT_DIFF_FILES`: 比较视图中的最大现实文件数目。
|
||||
- `GC_ARGS`: 执行 `git gc` 命令的参数, 比如: `--aggressive --auto`。
|
||||
|
||||
## Git - 超时设置 (`git.timeout`)
|
||||
- `MIGRATE`: **600**: 迁移外部仓库时的超时时间,单位秒
|
||||
- `MIRROR`: **300**: 镜像外部仓库的超时时间,单位秒
|
||||
- `CLONE`: **300**: 内部仓库间克隆的超时时间,单位秒
|
||||
- `PULL`: **300**: 内部仓库间拉取的超时时间,单位秒
|
||||
- `GC`: **60**: git仓库GC的超时时间,单位秒
|
||||
|
||||
## markup (`markup`)
|
||||
|
||||
外部渲染工具支持,你可以用你熟悉的文档渲染工具. 比如一下将新增一个名字为 `asciidoc` 的渲染工具which is followed `markup.` ini section. And there are some config items below.
|
||||
|
|
|
@ -91,3 +91,7 @@ Apart from `extra_links.tmpl` and `extra_tabs.tmpl`, there are other useful temp
|
|||
## Customizing gitignores, labels, licenses, locales, and readmes.
|
||||
|
||||
Place custom files in corresponding sub-folder under `custom/options`.
|
||||
|
||||
## Customizing the look of Gitea
|
||||
|
||||
Gitea has two built-in themes, the default theme `gitea`, and a dark theme `arc-green`. To change the look of your Gitea install change the value of `DEFAULT_THEME` in the [ui](https://docs.gitea.io/en-us/config-cheat-sheet/#ui-ui) section of `app.ini` to another one of the available options.
|
||||
|
|
|
@ -21,10 +21,18 @@ the destination platform from the [downloads page](https://dl.gitea.io/gitea), c
|
|||
the URL and replace the URL within the commands below:
|
||||
|
||||
```sh
|
||||
wget -O gitea https://dl.gitea.io/gitea/1.4.2/gitea-1.4.2-linux-amd64
|
||||
wget -O gitea https://dl.gitea.io/gitea/1.4.3/gitea-1.4.3-linux-amd64
|
||||
chmod +x gitea
|
||||
```
|
||||
|
||||
## Verify GPG signature
|
||||
Gitea signs all binaries with a [GPG key](https://pgp.mit.edu/pks/lookup?op=vindex&fingerprint=on&search=0x2D9AE806EC1592E2) to prevent against unwanted modification of binaries. To validate the binary download the signature file which ends in `.asc` for the binary you downloaded and use the gpg command line tool.
|
||||
|
||||
```sh
|
||||
gpg --keyserver pgp.mit.edu --recv 0x2D9AE806EC1592E2
|
||||
gpg --verify gitea-1.5.0-linux-amd64.asc gitea-1.5.0-linux-amd64
|
||||
```
|
||||
|
||||
## Test
|
||||
|
||||
After getting a binary, it can be tested with `./gitea web` or moved to a permanent
|
||||
|
|
|
@ -1,44 +0,0 @@
|
|||
:80 {
|
||||
root /srv/www
|
||||
|
||||
locale en-US zh-CN zh-TW pt-BR nl-NL fr-FR {
|
||||
detect header
|
||||
}
|
||||
|
||||
redir 301 {
|
||||
if {path} match ^/$
|
||||
/ /{>Detected-Locale}/
|
||||
}
|
||||
|
||||
rewrite /en-US/ {
|
||||
regexp (.*)
|
||||
to /en-us/{1}
|
||||
}
|
||||
|
||||
rewrite /zh-CN/ {
|
||||
regexp (.*)
|
||||
to /zh-cn/{1}
|
||||
}
|
||||
|
||||
rewrite /zh-TW/ {
|
||||
regexp (.*)
|
||||
to /zh-tw/{1}
|
||||
}
|
||||
|
||||
rewrite /pt-BR/ {
|
||||
regexp (.*)
|
||||
to /pt-br/{1}
|
||||
}
|
||||
|
||||
rewrite /nl-NL/ {
|
||||
regexp (.*)
|
||||
to /nl-nl/{1}
|
||||
}
|
||||
|
||||
rewrite /fr-FR/ {
|
||||
regexp (.*)
|
||||
to /fr-fr/{1}
|
||||
}
|
||||
|
||||
header / Vary "Accept-Language"
|
||||
}
|
0
docs/static/.gitkeep
vendored
0
docs/static/.gitkeep
vendored
6
docs/static/_headers
vendored
Normal file
6
docs/static/_headers
vendored
Normal file
|
@ -0,0 +1,6 @@
|
|||
/*
|
||||
Content-Security-Policy: default-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self' https://fonts.googleapis.com https://cdnjs.cloudflare.com; font-src 'self' data: https://cdnjs.cloudflare.com https://fonts.gstatic.com
|
||||
X-Frame-Options: DENY
|
||||
X-Xss-Protection: 1; mode=block
|
||||
X-Content-Type-Options: nosniff
|
||||
Referrer-Policy: strict-origin-when-cross-origin
|
8
docs/static/_redirects
vendored
Normal file
8
docs/static/_redirects
vendored
Normal file
|
@ -0,0 +1,8 @@
|
|||
https://gitea-docs.netlify.com/* https://docs.gitea.io/:splat 302!
|
||||
|
||||
/ /fr-fr/ 302! Language=fr
|
||||
/ /nl-nl/ 302! Language=nl
|
||||
/ /pt-br/ 302! Language=pt-br
|
||||
/ /zh-cn/ 302! Language=zh-cn
|
||||
/ /zh-tw/ 302! Language=zh-tw
|
||||
/ /en-us/ 302!
|
|
@ -235,3 +235,53 @@ func TestAPIGetRepoByIDUnauthorized(t *testing.T) {
|
|||
req := NewRequestf(t, "GET", "/api/v1/repositories/2")
|
||||
sess.MakeRequest(t, req, http.StatusNotFound)
|
||||
}
|
||||
|
||||
func TestAPIRepoMigrate(t *testing.T) {
|
||||
testCases := []struct {
|
||||
ctxUserID, userID int64
|
||||
cloneURL, repoName string
|
||||
expectedStatus int
|
||||
}{
|
||||
{ctxUserID: 1, userID: 2, cloneURL: "https://github.com/go-gitea/git.git", repoName: "git-admin", expectedStatus: http.StatusCreated},
|
||||
{ctxUserID: 2, userID: 2, cloneURL: "https://github.com/go-gitea/git.git", repoName: "git-own", expectedStatus: http.StatusCreated},
|
||||
{ctxUserID: 2, userID: 1, cloneURL: "https://github.com/go-gitea/git.git", repoName: "git-bad", expectedStatus: http.StatusForbidden},
|
||||
{ctxUserID: 2, userID: 3, cloneURL: "https://github.com/go-gitea/git.git", repoName: "git-org", expectedStatus: http.StatusCreated},
|
||||
{ctxUserID: 2, userID: 6, cloneURL: "https://github.com/go-gitea/git.git", repoName: "git-bad-org", expectedStatus: http.StatusForbidden},
|
||||
}
|
||||
|
||||
prepareTestEnv(t)
|
||||
for _, testCase := range testCases {
|
||||
user := models.AssertExistsAndLoadBean(t, &models.User{ID: testCase.ctxUserID}).(*models.User)
|
||||
session := loginUser(t, user.Name)
|
||||
|
||||
req := NewRequestWithJSON(t, "POST", "/api/v1/repos/migrate", &api.MigrateRepoOption{
|
||||
CloneAddr: testCase.cloneURL,
|
||||
UID: int(testCase.userID),
|
||||
RepoName: testCase.repoName,
|
||||
})
|
||||
session.MakeRequest(t, req, testCase.expectedStatus)
|
||||
}
|
||||
}
|
||||
|
||||
func TestAPIOrgRepoCreate(t *testing.T) {
|
||||
testCases := []struct {
|
||||
ctxUserID int64
|
||||
orgName, repoName string
|
||||
expectedStatus int
|
||||
}{
|
||||
{ctxUserID: 1, orgName: "user3", repoName: "repo-admin", expectedStatus: http.StatusCreated},
|
||||
{ctxUserID: 2, orgName: "user3", repoName: "repo-own", expectedStatus: http.StatusCreated},
|
||||
{ctxUserID: 2, orgName: "user6", repoName: "repo-bad-org", expectedStatus: http.StatusForbidden},
|
||||
}
|
||||
|
||||
prepareTestEnv(t)
|
||||
for _, testCase := range testCases {
|
||||
user := models.AssertExistsAndLoadBean(t, &models.User{ID: testCase.ctxUserID}).(*models.User)
|
||||
session := loginUser(t, user.Name)
|
||||
|
||||
req := NewRequestWithJSON(t, "POST", fmt.Sprintf("/api/v1/org/%s/repos", testCase.orgName), &api.CreateRepoOption{
|
||||
Name: testCase.repoName,
|
||||
})
|
||||
session.MakeRequest(t, req, testCase.expectedStatus)
|
||||
}
|
||||
}
|
||||
|
|
50
integrations/api_token_test.go
Normal file
50
integrations/api_token_test.go
Normal file
|
@ -0,0 +1,50 @@
|
|||
// Copyright 2018 The Gitea Authors. All rights reserved.
|
||||
// Use of this source code is governed by a MIT-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
package integrations
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
"testing"
|
||||
|
||||
"code.gitea.io/gitea/models"
|
||||
api "code.gitea.io/sdk/gitea"
|
||||
)
|
||||
|
||||
// TestAPICreateAndDeleteToken tests that token that was just created can be deleted
|
||||
func TestAPICreateAndDeleteToken(t *testing.T) {
|
||||
prepareTestEnv(t)
|
||||
user := models.AssertExistsAndLoadBean(t, &models.User{ID: 1}).(*models.User)
|
||||
|
||||
req := NewRequestWithJSON(t, "POST", "/api/v1/users/user1/tokens", map[string]string{
|
||||
"name": "test-key-1",
|
||||
})
|
||||
req = AddBasicAuthHeader(req, user.Name)
|
||||
resp := MakeRequest(t, req, http.StatusCreated)
|
||||
|
||||
var newAccessToken api.AccessToken
|
||||
DecodeJSON(t, resp, &newAccessToken)
|
||||
models.AssertExistsAndLoadBean(t, &models.AccessToken{
|
||||
ID: newAccessToken.ID,
|
||||
Name: newAccessToken.Name,
|
||||
Sha1: newAccessToken.Sha1,
|
||||
UID: user.ID,
|
||||
})
|
||||
|
||||
req = NewRequestf(t, "DELETE", "/api/v1/users/user1/tokens/%d", newAccessToken.ID)
|
||||
req = AddBasicAuthHeader(req, user.Name)
|
||||
MakeRequest(t, req, http.StatusNoContent)
|
||||
|
||||
models.AssertNotExistsBean(t, &models.AccessToken{ID: newAccessToken.ID})
|
||||
}
|
||||
|
||||
// TestAPIDeleteMissingToken ensures that error is thrown when token not found
|
||||
func TestAPIDeleteMissingToken(t *testing.T) {
|
||||
prepareTestEnv(t)
|
||||
user := models.AssertExistsAndLoadBean(t, &models.User{ID: 1}).(*models.User)
|
||||
|
||||
req := NewRequestf(t, "DELETE", "/api/v1/users/user1/tokens/%d", models.NonexistentID)
|
||||
req = AddBasicAuthHeader(req, user.Name)
|
||||
MakeRequest(t, req, http.StatusNotFound)
|
||||
}
|
|
@ -256,6 +256,11 @@ func NewRequestWithBody(t testing.TB, method, urlStr string, body io.Reader) *ht
|
|||
return request
|
||||
}
|
||||
|
||||
func AddBasicAuthHeader(request *http.Request, username string) *http.Request {
|
||||
request.SetBasicAuth(username, userPassword)
|
||||
return request
|
||||
}
|
||||
|
||||
const NoExpectedStatus = -1
|
||||
|
||||
func MakeRequest(t testing.TB, req *http.Request, expectedStatus int) *httptest.ResponseRecorder {
|
||||
|
|
1
main.go
1
main.go
|
@ -14,6 +14,7 @@ import (
|
|||
"code.gitea.io/gitea/modules/log"
|
||||
"code.gitea.io/gitea/modules/setting"
|
||||
// register supported doc types
|
||||
_ "code.gitea.io/gitea/modules/markup/csv"
|
||||
_ "code.gitea.io/gitea/modules/markup/markdown"
|
||||
_ "code.gitea.io/gitea/modules/markup/orgmode"
|
||||
|
||||
|
|
|
@ -122,6 +122,12 @@ func (a *Action) loadRepo() {
|
|||
}
|
||||
}
|
||||
|
||||
// GetActFullName gets the action's user full name.
|
||||
func (a *Action) GetActFullName() string {
|
||||
a.loadActUser()
|
||||
return a.ActUser.FullName
|
||||
}
|
||||
|
||||
// GetActUserName gets the action's user name.
|
||||
func (a *Action) GetActUserName() string {
|
||||
a.loadActUser()
|
||||
|
@ -471,6 +477,10 @@ func UpdateIssuesCommit(doer *User, repo *Repository, commits []*PushCommit) err
|
|||
}
|
||||
|
||||
if err = issue.ChangeStatus(doer, repo, true); err != nil {
|
||||
// Don't return an error when dependencies are open as this would let the push fail
|
||||
if IsErrDependenciesLeft(err) {
|
||||
return nil
|
||||
}
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1259,3 +1259,88 @@ func IsErrU2FRegistrationNotExist(err error) bool {
|
|||
_, ok := err.(ErrU2FRegistrationNotExist)
|
||||
return ok
|
||||
}
|
||||
|
||||
// .___ ________ .___ .__
|
||||
// | | ______ ________ __ ____ \______ \ ____ ______ ____ ____ __| _/____ ____ ____ |__| ____ ______
|
||||
// | |/ ___// ___/ | \_/ __ \ | | \_/ __ \\____ \_/ __ \ / \ / __ |/ __ \ / \_/ ___\| |/ __ \ / ___/
|
||||
// | |\___ \ \___ \| | /\ ___/ | ` \ ___/| |_> > ___/| | \/ /_/ \ ___/| | \ \___| \ ___/ \___ \
|
||||
// |___/____ >____ >____/ \___ >_______ /\___ > __/ \___ >___| /\____ |\___ >___| /\___ >__|\___ >____ >
|
||||
// \/ \/ \/ \/ \/|__| \/ \/ \/ \/ \/ \/ \/ \/
|
||||
|
||||
// ErrDependencyExists represents a "DependencyAlreadyExists" kind of error.
|
||||
type ErrDependencyExists struct {
|
||||
IssueID int64
|
||||
DependencyID int64
|
||||
}
|
||||
|
||||
// IsErrDependencyExists checks if an error is a ErrDependencyExists.
|
||||
func IsErrDependencyExists(err error) bool {
|
||||
_, ok := err.(ErrDependencyExists)
|
||||
return ok
|
||||
}
|
||||
|
||||
func (err ErrDependencyExists) Error() string {
|
||||
return fmt.Sprintf("issue dependency does already exist [issue id: %d, dependency id: %d]", err.IssueID, err.DependencyID)
|
||||
}
|
||||
|
||||
// ErrDependencyNotExists represents a "DependencyAlreadyExists" kind of error.
|
||||
type ErrDependencyNotExists struct {
|
||||
IssueID int64
|
||||
DependencyID int64
|
||||
}
|
||||
|
||||
// IsErrDependencyNotExists checks if an error is a ErrDependencyExists.
|
||||
func IsErrDependencyNotExists(err error) bool {
|
||||
_, ok := err.(ErrDependencyNotExists)
|
||||
return ok
|
||||
}
|
||||
|
||||
func (err ErrDependencyNotExists) Error() string {
|
||||
return fmt.Sprintf("issue dependency does not exist [issue id: %d, dependency id: %d]", err.IssueID, err.DependencyID)
|
||||
}
|
||||
|
||||
// ErrCircularDependency represents a "DependencyCircular" kind of error.
|
||||
type ErrCircularDependency struct {
|
||||
IssueID int64
|
||||
DependencyID int64
|
||||
}
|
||||
|
||||
// IsErrCircularDependency checks if an error is a ErrCircularDependency.
|
||||
func IsErrCircularDependency(err error) bool {
|
||||
_, ok := err.(ErrCircularDependency)
|
||||
return ok
|
||||
}
|
||||
|
||||
func (err ErrCircularDependency) Error() string {
|
||||
return fmt.Sprintf("circular dependencies exists (two issues blocking each other) [issue id: %d, dependency id: %d]", err.IssueID, err.DependencyID)
|
||||
}
|
||||
|
||||
// ErrDependenciesLeft represents an error where the issue you're trying to close still has dependencies left.
|
||||
type ErrDependenciesLeft struct {
|
||||
IssueID int64
|
||||
}
|
||||
|
||||
// IsErrDependenciesLeft checks if an error is a ErrDependenciesLeft.
|
||||
func IsErrDependenciesLeft(err error) bool {
|
||||
_, ok := err.(ErrDependenciesLeft)
|
||||
return ok
|
||||
}
|
||||
|
||||
func (err ErrDependenciesLeft) Error() string {
|
||||
return fmt.Sprintf("issue has open dependencies [issue id: %d]", err.IssueID)
|
||||
}
|
||||
|
||||
// ErrUnknownDependencyType represents an error where an unknown dependency type was passed
|
||||
type ErrUnknownDependencyType struct {
|
||||
Type DependencyType
|
||||
}
|
||||
|
||||
// IsErrUnknownDependencyType checks if an error is ErrUnknownDependencyType
|
||||
func IsErrUnknownDependencyType(err error) bool {
|
||||
_, ok := err.(ErrUnknownDependencyType)
|
||||
return ok
|
||||
}
|
||||
|
||||
func (err ErrUnknownDependencyType) Error() string {
|
||||
return fmt.Sprintf("unknown dependency type [type: %d]", err.Type)
|
||||
}
|
||||
|
|
|
@ -9,6 +9,7 @@ import (
|
|||
"strings"
|
||||
|
||||
"code.gitea.io/git"
|
||||
"code.gitea.io/gitea/modules/setting"
|
||||
)
|
||||
|
||||
// GraphItem represent one commit, or one relation in timeline
|
||||
|
@ -41,7 +42,7 @@ func GetCommitGraph(r *git.Repository) (GraphItems, error) {
|
|||
"--all",
|
||||
"-C",
|
||||
"-M",
|
||||
"-n 100",
|
||||
fmt.Sprintf("-n %d", setting.UI.GraphMaxCommitNum),
|
||||
"--date=iso",
|
||||
fmt.Sprintf("--pretty=format:%s", format),
|
||||
)
|
||||
|
@ -66,7 +67,7 @@ func graphItemFromString(s string, r *git.Repository) (GraphItem, error) {
|
|||
|
||||
var ascii string
|
||||
var data = "|||||||"
|
||||
lines := strings.Split(s, "DATA:")
|
||||
lines := strings.SplitN(s, "DATA:", 2)
|
||||
|
||||
switch len(lines) {
|
||||
case 1:
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
package models
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"testing"
|
||||
|
||||
"code.gitea.io/git"
|
||||
|
@ -43,3 +44,32 @@ func BenchmarkParseCommitString(b *testing.B) {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestCommitStringParsing(t *testing.T) {
|
||||
dataFirstPart := "* DATA:||4e61bacab44e9b4730e44a6615d04098dd3a8eaf|2016-12-20 21:10:41 +0100|Author|user@mail.something|4e61bac|"
|
||||
tests := []struct {
|
||||
shouldPass bool
|
||||
testName string
|
||||
commitMessage string
|
||||
}{
|
||||
{true, "normal", "not a fancy message"},
|
||||
{true, "extra pipe", "An extra pipe: |"},
|
||||
{true, "extra 'Data:'", "DATA: might be trouble"},
|
||||
}
|
||||
|
||||
for _, test := range tests {
|
||||
|
||||
t.Run(test.testName, func(t *testing.T) {
|
||||
testString := fmt.Sprintf("%s%s", dataFirstPart, test.commitMessage)
|
||||
graphItem, err := graphItemFromString(testString, nil)
|
||||
if err != nil && test.shouldPass {
|
||||
t.Errorf("Could not parse %s", testString)
|
||||
return
|
||||
}
|
||||
|
||||
if test.commitMessage != graphItem.Subject {
|
||||
t.Errorf("%s does not match %s", test.commitMessage, graphItem.Subject)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
|
|
@ -649,6 +649,20 @@ func (issue *Issue) changeStatus(e *xorm.Session, doer *User, repo *Repository,
|
|||
if issue.IsClosed == isClosed {
|
||||
return nil
|
||||
}
|
||||
|
||||
// Check for open dependencies
|
||||
if isClosed && issue.Repo.IsDependenciesEnabled() {
|
||||
// only check if dependencies are enabled and we're about to close an issue, otherwise reopening an issue would fail when there are unsatisfied dependencies
|
||||
noDeps, err := IssueNoDependenciesLeft(issue)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if !noDeps {
|
||||
return ErrDependenciesLeft{issue.ID}
|
||||
}
|
||||
}
|
||||
|
||||
issue.IsClosed = isClosed
|
||||
if isClosed {
|
||||
issue.ClosedUnix = util.TimeStampNow()
|
||||
|
@ -1283,7 +1297,7 @@ func getParticipantsByIssueID(e Engine, issueID int64) ([]*User, error) {
|
|||
And("`comment`.type = ?", CommentTypeComment).
|
||||
And("`user`.is_active = ?", true).
|
||||
And("`user`.prohibit_login = ?", false).
|
||||
Join("INNER", "user", "`user`.id = `comment`.poster_id").
|
||||
Join("INNER", "`user`", "`user`.id = `comment`.poster_id").
|
||||
Distinct("poster_id").
|
||||
Find(&userIDs); err != nil {
|
||||
return nil, fmt.Errorf("get poster IDs: %v", err)
|
||||
|
@ -1598,3 +1612,33 @@ func UpdateIssueDeadline(issue *Issue, deadlineUnix util.TimeStamp, doer *User)
|
|||
|
||||
return sess.Commit()
|
||||
}
|
||||
|
||||
// Get Blocked By Dependencies, aka all issues this issue is blocked by.
|
||||
func (issue *Issue) getBlockedByDependencies(e Engine) (issueDeps []*Issue, err error) {
|
||||
return issueDeps, e.
|
||||
Table("issue_dependency").
|
||||
Select("issue.*").
|
||||
Join("INNER", "issue", "issue.id = issue_dependency.dependency_id").
|
||||
Where("issue_id = ?", issue.ID).
|
||||
Find(&issueDeps)
|
||||
}
|
||||
|
||||
// Get Blocking Dependencies, aka all issues this issue blocks.
|
||||
func (issue *Issue) getBlockingDependencies(e Engine) (issueDeps []*Issue, err error) {
|
||||
return issueDeps, e.
|
||||
Table("issue_dependency").
|
||||
Select("issue.*").
|
||||
Join("INNER", "issue", "issue.id = issue_dependency.issue_id").
|
||||
Where("dependency_id = ?", issue.ID).
|
||||
Find(&issueDeps)
|
||||
}
|
||||
|
||||
// BlockedByDependencies finds all Dependencies an issue is blocked by
|
||||
func (issue *Issue) BlockedByDependencies() ([]*Issue, error) {
|
||||
return issue.getBlockedByDependencies(x)
|
||||
}
|
||||
|
||||
// BlockingDependencies returns all blocking dependencies, aka all other issues a given issue blocks
|
||||
func (issue *Issue) BlockingDependencies() ([]*Issue, error) {
|
||||
return issue.getBlockingDependencies(x)
|
||||
}
|
||||
|
|
|
@ -66,6 +66,10 @@ const (
|
|||
CommentTypeModifiedDeadline
|
||||
// Removed a due date
|
||||
CommentTypeRemovedDeadline
|
||||
// Dependency added
|
||||
CommentTypeAddDependency
|
||||
//Dependency removed
|
||||
CommentTypeRemoveDependency
|
||||
)
|
||||
|
||||
// CommentTag defines comment tag type
|
||||
|
@ -98,6 +102,8 @@ type Comment struct {
|
|||
Assignee *User `xorm:"-"`
|
||||
OldTitle string
|
||||
NewTitle string
|
||||
DependentIssueID int64
|
||||
DependentIssue *Issue `xorm:"-"`
|
||||
|
||||
CommitID int64
|
||||
Line int64
|
||||
|
@ -281,6 +287,15 @@ func (c *Comment) LoadAssigneeUser() error {
|
|||
return nil
|
||||
}
|
||||
|
||||
// LoadDepIssueDetails loads Dependent Issue Details
|
||||
func (c *Comment) LoadDepIssueDetails() (err error) {
|
||||
if c.DependentIssueID <= 0 || c.DependentIssue != nil {
|
||||
return nil
|
||||
}
|
||||
c.DependentIssue, err = getIssueByID(x, c.DependentIssueID)
|
||||
return err
|
||||
}
|
||||
|
||||
// MailParticipants sends new comment emails to repository watchers
|
||||
// and mentioned people.
|
||||
func (c *Comment) MailParticipants(e Engine, opType ActionType, issue *Issue) (err error) {
|
||||
|
@ -332,6 +347,7 @@ func createComment(e *xorm.Session, opts *CreateCommentOptions) (_ *Comment, err
|
|||
if opts.Label != nil {
|
||||
LabelID = opts.Label.ID
|
||||
}
|
||||
|
||||
comment := &Comment{
|
||||
Type: opts.Type,
|
||||
PosterID: opts.Doer.ID,
|
||||
|
@ -348,6 +364,7 @@ func createComment(e *xorm.Session, opts *CreateCommentOptions) (_ *Comment, err
|
|||
Content: opts.Content,
|
||||
OldTitle: opts.OldTitle,
|
||||
NewTitle: opts.NewTitle,
|
||||
DependentIssueID: opts.DependentIssueID,
|
||||
}
|
||||
if _, err = e.Insert(comment); err != nil {
|
||||
return nil, err
|
||||
|
@ -549,6 +566,39 @@ func createDeleteBranchComment(e *xorm.Session, doer *User, repo *Repository, is
|
|||
})
|
||||
}
|
||||
|
||||
// Creates issue dependency comment
|
||||
func createIssueDependencyComment(e *xorm.Session, doer *User, issue *Issue, dependentIssue *Issue, add bool) (err error) {
|
||||
cType := CommentTypeAddDependency
|
||||
if !add {
|
||||
cType = CommentTypeRemoveDependency
|
||||
}
|
||||
|
||||
// Make two comments, one in each issue
|
||||
_, err = createComment(e, &CreateCommentOptions{
|
||||
Type: cType,
|
||||
Doer: doer,
|
||||
Repo: issue.Repo,
|
||||
Issue: issue,
|
||||
DependentIssueID: dependentIssue.ID,
|
||||
})
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
_, err = createComment(e, &CreateCommentOptions{
|
||||
Type: cType,
|
||||
Doer: doer,
|
||||
Repo: issue.Repo,
|
||||
Issue: dependentIssue,
|
||||
DependentIssueID: issue.ID,
|
||||
})
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
// CreateCommentOptions defines options for creating comment
|
||||
type CreateCommentOptions struct {
|
||||
Type CommentType
|
||||
|
@ -557,6 +607,7 @@ type CreateCommentOptions struct {
|
|||
Issue *Issue
|
||||
Label *Label
|
||||
|
||||
DependentIssueID int64
|
||||
OldMilestoneID int64
|
||||
MilestoneID int64
|
||||
AssigneeID int64
|
||||
|
|
137
models/issue_dependency.go
Normal file
137
models/issue_dependency.go
Normal file
|
@ -0,0 +1,137 @@
|
|||
// Copyright 2018 The Gitea Authors. All rights reserved.
|
||||
// Use of this source code is governed by a MIT-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
package models
|
||||
|
||||
import (
|
||||
"code.gitea.io/gitea/modules/log"
|
||||
"code.gitea.io/gitea/modules/setting"
|
||||
"code.gitea.io/gitea/modules/util"
|
||||
)
|
||||
|
||||
// IssueDependency represents an issue dependency
|
||||
type IssueDependency struct {
|
||||
ID int64 `xorm:"pk autoincr"`
|
||||
UserID int64 `xorm:"NOT NULL"`
|
||||
IssueID int64 `xorm:"UNIQUE(issue_dependency) NOT NULL"`
|
||||
DependencyID int64 `xorm:"UNIQUE(issue_dependency) NOT NULL"`
|
||||
CreatedUnix util.TimeStamp `xorm:"created"`
|
||||
UpdatedUnix util.TimeStamp `xorm:"updated"`
|
||||
}
|
||||
|
||||
// DependencyType Defines Dependency Type Constants
|
||||
type DependencyType int
|
||||
|
||||
// Define Dependency Types
|
||||
const (
|
||||
DependencyTypeBlockedBy DependencyType = iota
|
||||
DependencyTypeBlocking
|
||||
)
|
||||
|
||||
// CreateIssueDependency creates a new dependency for an issue
|
||||
func CreateIssueDependency(user *User, issue, dep *Issue) error {
|
||||
sess := x.NewSession()
|
||||
defer sess.Close()
|
||||
if err := sess.Begin(); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// Check if it aleready exists
|
||||
exists, err := issueDepExists(sess, issue.ID, dep.ID)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if exists {
|
||||
return ErrDependencyExists{issue.ID, dep.ID}
|
||||
}
|
||||
// And if it would be circular
|
||||
circular, err := issueDepExists(sess, dep.ID, issue.ID)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if circular {
|
||||
return ErrCircularDependency{issue.ID, dep.ID}
|
||||
}
|
||||
|
||||
if _, err := sess.Insert(&IssueDependency{
|
||||
UserID: user.ID,
|
||||
IssueID: issue.ID,
|
||||
DependencyID: dep.ID,
|
||||
}); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// Add comment referencing the new dependency
|
||||
if err = createIssueDependencyComment(sess, user, issue, dep, true); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return sess.Commit()
|
||||
}
|
||||
|
||||
// RemoveIssueDependency removes a dependency from an issue
|
||||
func RemoveIssueDependency(user *User, issue *Issue, dep *Issue, depType DependencyType) (err error) {
|
||||
sess := x.NewSession()
|
||||
defer sess.Close()
|
||||
if err = sess.Begin(); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
var issueDepToDelete IssueDependency
|
||||
|
||||
switch depType {
|
||||
case DependencyTypeBlockedBy:
|
||||
issueDepToDelete = IssueDependency{IssueID: issue.ID, DependencyID: dep.ID}
|
||||
case DependencyTypeBlocking:
|
||||
issueDepToDelete = IssueDependency{IssueID: dep.ID, DependencyID: issue.ID}
|
||||
default:
|
||||
return ErrUnknownDependencyType{depType}
|
||||
}
|
||||
|
||||
affected, err := sess.Delete(&issueDepToDelete)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// If we deleted nothing, the dependency did not exist
|
||||
if affected <= 0 {
|
||||
return ErrDependencyNotExists{issue.ID, dep.ID}
|
||||
}
|
||||
|
||||
// Add comment referencing the removed dependency
|
||||
if err = createIssueDependencyComment(sess, user, issue, dep, false); err != nil {
|
||||
return err
|
||||
}
|
||||
return sess.Commit()
|
||||
}
|
||||
|
||||
// Check if the dependency already exists
|
||||
func issueDepExists(e Engine, issueID int64, depID int64) (bool, error) {
|
||||
return e.Where("(issue_id = ? AND dependency_id = ?)", issueID, depID).Exist(&IssueDependency{})
|
||||
}
|
||||
|
||||
// IssueNoDependenciesLeft checks if issue can be closed
|
||||
func IssueNoDependenciesLeft(issue *Issue) (bool, error) {
|
||||
|
||||
exists, err := x.
|
||||
Table("issue_dependency").
|
||||
Select("issue.*").
|
||||
Join("INNER", "issue", "issue.id = issue_dependency.dependency_id").
|
||||
Where("issue_dependency.issue_id = ?", issue.ID).
|
||||
And("issue.is_closed = ?", "0").
|
||||
Exist(&Issue{})
|
||||
|
||||
return !exists, err
|
||||
}
|
||||
|
||||
// IsDependenciesEnabled returns if dependecies are enabled and returns the default setting if not set.
|
||||
func (repo *Repository) IsDependenciesEnabled() bool {
|
||||
var u *RepoUnit
|
||||
var err error
|
||||
if u, err = repo.GetUnit(UnitTypeIssues); err != nil {
|
||||
log.Trace("%s", err)
|
||||
return setting.Service.DefaultEnableDependencies
|
||||
}
|
||||
return u.IssuesConfig().EnableDependencies
|
||||
}
|
57
models/issue_dependency_test.go
Normal file
57
models/issue_dependency_test.go
Normal file
|
@ -0,0 +1,57 @@
|
|||
// Copyright 2018 The Gitea Authors. All rights reserved.
|
||||
// Use of this source code is governed by a MIT-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
package models
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
func TestCreateIssueDependency(t *testing.T) {
|
||||
// Prepare
|
||||
assert.NoError(t, PrepareTestDatabase())
|
||||
|
||||
user1, err := GetUserByID(1)
|
||||
assert.NoError(t, err)
|
||||
|
||||
issue1, err := GetIssueByID(1)
|
||||
assert.NoError(t, err)
|
||||
issue2, err := GetIssueByID(2)
|
||||
assert.NoError(t, err)
|
||||
|
||||
// Create a dependency and check if it was successful
|
||||
err = CreateIssueDependency(user1, issue1, issue2)
|
||||
assert.NoError(t, err)
|
||||
|
||||
// Do it again to see if it will check if the dependency already exists
|
||||
err = CreateIssueDependency(user1, issue1, issue2)
|
||||
assert.Error(t, err)
|
||||
assert.True(t, IsErrDependencyExists(err))
|
||||
|
||||
// Check for circular dependencies
|
||||
err = CreateIssueDependency(user1, issue2, issue1)
|
||||
assert.Error(t, err)
|
||||
assert.True(t, IsErrCircularDependency(err))
|
||||
|
||||
_ = AssertExistsAndLoadBean(t, &Comment{Type: CommentTypeAddDependency, PosterID: user1.ID, IssueID: issue1.ID})
|
||||
|
||||
// Check if dependencies left is correct
|
||||
left, err := IssueNoDependenciesLeft(issue1)
|
||||
assert.NoError(t, err)
|
||||
assert.False(t, left)
|
||||
|
||||
// Close #2 and check again
|
||||
err = issue2.ChangeStatus(user1, issue2.Repo, true)
|
||||
assert.NoError(t, err)
|
||||
|
||||
left, err = IssueNoDependenciesLeft(issue1)
|
||||
assert.NoError(t, err)
|
||||
assert.True(t, left)
|
||||
|
||||
// Test removing the dependency
|
||||
err = RemoveIssueDependency(user1, issue1, issue2, DependencyTypeBlockedBy)
|
||||
assert.NoError(t, err)
|
||||
}
|
|
@ -166,7 +166,7 @@ func (issues IssueList) loadAssignees(e Engine) error {
|
|||
|
||||
var assignees = make(map[int64][]*User, len(issues))
|
||||
rows, err := e.Table("issue_assignees").
|
||||
Join("INNER", "user", "`user`.id = `issue_assignees`.assignee_id").
|
||||
Join("INNER", "`user`", "`user`.id = `issue_assignees`.assignee_id").
|
||||
In("`issue_assignees`.issue_id", issues.getIssueIDs()).
|
||||
Rows(new(AssigneeIssue))
|
||||
if err != nil {
|
||||
|
|
|
@ -67,7 +67,7 @@ func getIssueWatchers(e Engine, issueID int64) (watches []*IssueWatch, err error
|
|||
Where("`issue_watch`.issue_id = ?", issueID).
|
||||
And("`user`.is_active = ?", true).
|
||||
And("`user`.prohibit_login = ?", false).
|
||||
Join("INNER", "user", "`user`.id = `issue_watch`.user_id").
|
||||
Join("INNER", "`user`", "`user`.id = `issue_watch`.user_id").
|
||||
Find(&watches)
|
||||
return
|
||||
}
|
||||
|
|
|
@ -192,6 +192,8 @@ var migrations = []Migration{
|
|||
NewMigration("Reformat and remove incorrect topics", reformatAndRemoveIncorrectTopics),
|
||||
// v69 -> v70
|
||||
NewMigration("move team units to team_unit table", moveTeamUnitsToTeamUnitTable),
|
||||
// v70 -> v71
|
||||
NewMigration("add issue_dependencies", addIssueDependencies),
|
||||
}
|
||||
|
||||
// Migrate database to current version
|
||||
|
|
|
@ -34,7 +34,7 @@ func releaseAddColumnIsTagAndSyncTags(x *xorm.Engine) error {
|
|||
pageSize := models.RepositoryListDefaultPageSize
|
||||
for {
|
||||
repos := make([]*models.Repository, 0, pageSize)
|
||||
if err := x.Table("repository").Asc("id").Limit(pageSize, offset).Find(&repos); err != nil {
|
||||
if err := x.Table("repository").Cols("id", "name", "owner_id").Asc("id").Limit(pageSize, offset).Find(&repos); err != nil {
|
||||
return fmt.Errorf("select repos [offset: %d]: %v", offset, err)
|
||||
}
|
||||
for _, repo := range repos {
|
||||
|
|
|
@ -120,6 +120,14 @@ func addMultipleAssignees(x *xorm.Engine) error {
|
|||
}
|
||||
}
|
||||
|
||||
// Commit and begin new transaction for dropping columns
|
||||
if err := sess.Commit(); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := sess.Begin(); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if err := dropTableColumns(sess, "issue", "assignee_id"); err != nil {
|
||||
return err
|
||||
}
|
||||
|
|
|
@ -73,6 +73,14 @@ func moveTeamUnitsToTeamUnitTable(x *xorm.Engine) error {
|
|||
}
|
||||
}
|
||||
|
||||
// Commit and begin new transaction for dropping columns
|
||||
if err := sess.Commit(); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := sess.Begin(); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if err := dropTableColumns(sess, "team", "unit_types"); err != nil {
|
||||
return err
|
||||
}
|
||||
|
|
100
models/migrations/v70.go
Normal file
100
models/migrations/v70.go
Normal file
|
@ -0,0 +1,100 @@
|
|||
// Copyright 2018 The Gitea Authors. All rights reserved.
|
||||
// Use of this source code is governed by a MIT-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
package migrations
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
"code.gitea.io/gitea/modules/setting"
|
||||
|
||||
"github.com/go-xorm/xorm"
|
||||
)
|
||||
|
||||
func addIssueDependencies(x *xorm.Engine) (err error) {
|
||||
|
||||
type IssueDependency struct {
|
||||
ID int64 `xorm:"pk autoincr"`
|
||||
UserID int64 `xorm:"NOT NULL"`
|
||||
IssueID int64 `xorm:"NOT NULL"`
|
||||
DependencyID int64 `xorm:"NOT NULL"`
|
||||
Created time.Time `xorm:"-"`
|
||||
CreatedUnix int64 `xorm:"created"`
|
||||
Updated time.Time `xorm:"-"`
|
||||
UpdatedUnix int64 `xorm:"updated"`
|
||||
}
|
||||
|
||||
if err = x.Sync(new(IssueDependency)); err != nil {
|
||||
return fmt.Errorf("Error creating issue_dependency_table column definition: %v", err)
|
||||
}
|
||||
|
||||
// Update Comment definition
|
||||
// This (copied) struct does only contain fields used by xorm as the only use here is to update the database
|
||||
|
||||
// CommentType defines the comment type
|
||||
type CommentType int
|
||||
|
||||
// TimeStamp defines a timestamp
|
||||
type TimeStamp int64
|
||||
|
||||
type Comment struct {
|
||||
ID int64 `xorm:"pk autoincr"`
|
||||
Type CommentType
|
||||
PosterID int64 `xorm:"INDEX"`
|
||||
IssueID int64 `xorm:"INDEX"`
|
||||
LabelID int64
|
||||
OldMilestoneID int64
|
||||
MilestoneID int64
|
||||
OldAssigneeID int64
|
||||
AssigneeID int64
|
||||
OldTitle string
|
||||
NewTitle string
|
||||
DependentIssueID int64
|
||||
|
||||
CommitID int64
|
||||
Line int64
|
||||
Content string `xorm:"TEXT"`
|
||||
|
||||
CreatedUnix TimeStamp `xorm:"INDEX created"`
|
||||
UpdatedUnix TimeStamp `xorm:"INDEX updated"`
|
||||
|
||||
// Reference issue in commit message
|
||||
CommitSHA string `xorm:"VARCHAR(40)"`
|
||||
}
|
||||
|
||||
if err = x.Sync(new(Comment)); err != nil {
|
||||
return fmt.Errorf("Error updating issue_comment table column definition: %v", err)
|
||||
}
|
||||
|
||||
// RepoUnit describes all units of a repository
|
||||
type RepoUnit struct {
|
||||
ID int64
|
||||
RepoID int64 `xorm:"INDEX(s)"`
|
||||
Type int `xorm:"INDEX(s)"`
|
||||
Config map[string]interface{} `xorm:"JSON"`
|
||||
CreatedUnix int64 `xorm:"INDEX CREATED"`
|
||||
Created time.Time `xorm:"-"`
|
||||
}
|
||||
|
||||
//Updating existing issue units
|
||||
units := make([]*RepoUnit, 0, 100)
|
||||
err = x.Where("`type` = ?", V16UnitTypeIssues).Find(&units)
|
||||
if err != nil {
|
||||
return fmt.Errorf("Query repo units: %v", err)
|
||||
}
|
||||
for _, unit := range units {
|
||||
if unit.Config == nil {
|
||||
unit.Config = make(map[string]interface{})
|
||||
}
|
||||
if _, ok := unit.Config["EnableDependencies"]; !ok {
|
||||
unit.Config["EnableDependencies"] = setting.Service.DefaultEnableDependencies
|
||||
}
|
||||
if _, err := x.ID(unit.ID).Cols("config").Update(unit); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
return err
|
||||
}
|
|
@ -118,6 +118,7 @@ func init() {
|
|||
new(TrackedTime),
|
||||
new(DeletedBranch),
|
||||
new(RepoIndexerStatus),
|
||||
new(IssueDependency),
|
||||
new(LFSLock),
|
||||
new(Reaction),
|
||||
new(IssueAssignees),
|
||||
|
|
|
@ -1,18 +0,0 @@
|
|||
// +build tidb
|
||||
|
||||
// Copyright 2015 The Gogs Authors. All rights reserved.
|
||||
// Use of this source code is governed by a MIT-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
package models
|
||||
|
||||
import (
|
||||
_ "github.com/go-xorm/tidb"
|
||||
"github.com/ngaut/log"
|
||||
_ "github.com/pingcap/tidb"
|
||||
)
|
||||
|
||||
func init() {
|
||||
EnableTiDB = true
|
||||
log.SetLevelByString("error")
|
||||
}
|
|
@ -383,7 +383,7 @@ func GetOwnedOrgsByUserIDDesc(userID int64, desc string) ([]*User, error) {
|
|||
func GetOrgUsersByUserID(uid int64, all bool) ([]*OrgUser, error) {
|
||||
ous := make([]*OrgUser, 0, 10)
|
||||
sess := x.
|
||||
Join("LEFT", "user", "`org_user`.org_id=`user`.id").
|
||||
Join("LEFT", "`user`", "`org_user`.org_id=`user`.id").
|
||||
Where("`org_user`.uid=?", uid)
|
||||
if !all {
|
||||
// Only show public organizations
|
||||
|
@ -575,7 +575,7 @@ func (org *User) getUserTeams(e Engine, userID int64, cols ...string) ([]*Team,
|
|||
return teams, e.
|
||||
Where("`team_user`.org_id = ?", org.ID).
|
||||
Join("INNER", "team_user", "`team_user`.team_id = team.id").
|
||||
Join("INNER", "user", "`user`.id=team_user.uid").
|
||||
Join("INNER", "`user`", "`user`.id=team_user.uid").
|
||||
And("`team_user`.uid = ?", userID).
|
||||
Asc("`user`.name").
|
||||
Cols(cols...).
|
||||
|
|
|
@ -781,7 +781,7 @@ var (
|
|||
// DescriptionHTML does special handles to description and return HTML string.
|
||||
func (repo *Repository) DescriptionHTML() template.HTML {
|
||||
sanitize := func(s string) string {
|
||||
return fmt.Sprintf(`<a href="%[1]s" target="_blank" rel="noopener">%[1]s</a>`, s)
|
||||
return fmt.Sprintf(`<a href="%[1]s" target="_blank" rel="noopener noreferrer">%[1]s</a>`, s)
|
||||
}
|
||||
return template.HTML(descPattern.ReplaceAllStringFunc(markup.Sanitize(repo.Description), sanitize))
|
||||
}
|
||||
|
@ -1345,7 +1345,17 @@ func createRepository(e *xorm.Session, doer, u *User, repo *Repository) (err err
|
|||
units = append(units, RepoUnit{
|
||||
RepoID: repo.ID,
|
||||
Type: tp,
|
||||
Config: &IssuesConfig{EnableTimetracker: setting.Service.DefaultEnableTimetracking, AllowOnlyContributorsToTrackTime: setting.Service.DefaultAllowOnlyContributorsToTrackTime},
|
||||
Config: &IssuesConfig{
|
||||
EnableTimetracker: setting.Service.DefaultEnableTimetracking,
|
||||
AllowOnlyContributorsToTrackTime: setting.Service.DefaultAllowOnlyContributorsToTrackTime,
|
||||
EnableDependencies: setting.Service.DefaultEnableDependencies,
|
||||
},
|
||||
})
|
||||
} else if tp == UnitTypePullRequests {
|
||||
units = append(units, RepoUnit{
|
||||
RepoID: repo.ID,
|
||||
Type: tp,
|
||||
Config: &PullRequestsConfig{AllowMerge: true, AllowRebase: true, AllowSquash: true},
|
||||
})
|
||||
} else {
|
||||
units = append(units, RepoUnit{
|
||||
|
@ -1948,7 +1958,7 @@ func DeleteRepository(doer *User, uid, repoID int64) error {
|
|||
func GetRepositoryByOwnerAndName(ownerName, repoName string) (*Repository, error) {
|
||||
var repo Repository
|
||||
has, err := x.Select("repository.*").
|
||||
Join("INNER", "user", "`user`.id = repository.owner_id").
|
||||
Join("INNER", "`user`", "`user`.id = repository.owner_id").
|
||||
Where("repository.lower_name = ?", strings.ToLower(repoName)).
|
||||
And("`user`.lower_name = ?", strings.ToLower(ownerName)).
|
||||
Get(&repo)
|
||||
|
|
|
@ -73,6 +73,7 @@ func (cfg *ExternalTrackerConfig) ToDB() ([]byte, error) {
|
|||
type IssuesConfig struct {
|
||||
EnableTimetracker bool
|
||||
AllowOnlyContributorsToTrackTime bool
|
||||
EnableDependencies bool
|
||||
}
|
||||
|
||||
// FromDB fills up a IssuesConfig from serialized format.
|
||||
|
@ -165,7 +166,6 @@ func (r *RepoUnit) IssuesConfig() *IssuesConfig {
|
|||
func (r *RepoUnit) ExternalTrackerConfig() *ExternalTrackerConfig {
|
||||
return r.Config.(*ExternalTrackerConfig)
|
||||
}
|
||||
|
||||
func getUnitsByRepoID(e Engine, repoID int64) (units []*RepoUnit, err error) {
|
||||
return units, e.Where("repo_id = ?", repoID).Find(&units)
|
||||
}
|
||||
|
|
|
@ -54,7 +54,7 @@ func getWatchers(e Engine, repoID int64) ([]*Watch, error) {
|
|||
return watches, e.Where("`watch`.repo_id=?", repoID).
|
||||
And("`user`.is_active=?", true).
|
||||
And("`user`.prohibit_login=?", false).
|
||||
Join("INNER", "user", "`user`.id = `watch`.user_id").
|
||||
Join("INNER", "`user`", "`user`.id = `watch`.user_id").
|
||||
Find(&watches)
|
||||
}
|
||||
|
||||
|
|
|
@ -374,9 +374,9 @@ func (u *User) GetFollowers(page int) ([]*User, error) {
|
|||
Limit(ItemsPerPage, (page-1)*ItemsPerPage).
|
||||
Where("follow.follow_id=?", u.ID)
|
||||
if setting.UsePostgreSQL {
|
||||
sess = sess.Join("LEFT", "follow", `"user".id=follow.user_id`)
|
||||
sess = sess.Join("LEFT", "follow", "`user`.id=follow.user_id")
|
||||
} else {
|
||||
sess = sess.Join("LEFT", "follow", "user.id=follow.user_id")
|
||||
sess = sess.Join("LEFT", "follow", "`user`.id=follow.user_id")
|
||||
}
|
||||
return users, sess.Find(&users)
|
||||
}
|
||||
|
@ -393,9 +393,9 @@ func (u *User) GetFollowing(page int) ([]*User, error) {
|
|||
Limit(ItemsPerPage, (page-1)*ItemsPerPage).
|
||||
Where("follow.user_id=?", u.ID)
|
||||
if setting.UsePostgreSQL {
|
||||
sess = sess.Join("LEFT", "follow", `"user".id=follow.follow_id`)
|
||||
sess = sess.Join("LEFT", "follow", "`user`.id=follow.follow_id")
|
||||
} else {
|
||||
sess = sess.Join("LEFT", "follow", "user.id=follow.follow_id")
|
||||
sess = sess.Join("LEFT", "follow", "`user`.id=follow.follow_id")
|
||||
}
|
||||
return users, sess.Find(&users)
|
||||
}
|
||||
|
@ -956,7 +956,7 @@ func deleteUser(e *xorm.Session, u *User) error {
|
|||
Where("watch.user_id = ?", u.ID).Find(&watchedRepoIDs); err != nil {
|
||||
return fmt.Errorf("get all watches: %v", err)
|
||||
}
|
||||
if _, err = e.Decr("num_watches").In("id", watchedRepoIDs).Update(new(Repository)); err != nil {
|
||||
if _, err = e.Decr("num_watches").In("id", watchedRepoIDs).NoAutoTime().Update(new(Repository)); err != nil {
|
||||
return fmt.Errorf("decrease repository num_watches: %v", err)
|
||||
}
|
||||
// ***** END: Watch *****
|
||||
|
@ -966,7 +966,7 @@ func deleteUser(e *xorm.Session, u *User) error {
|
|||
if err = e.Table("star").Cols("star.repo_id").
|
||||
Where("star.uid = ?", u.ID).Find(&starredRepoIDs); err != nil {
|
||||
return fmt.Errorf("get all stars: %v", err)
|
||||
} else if _, err = e.Decr("num_stars").In("id", starredRepoIDs).Update(new(Repository)); err != nil {
|
||||
} else if _, err = e.Decr("num_stars").In("id", starredRepoIDs).NoAutoTime().Update(new(Repository)); err != nil {
|
||||
return fmt.Errorf("decrease repository num_stars: %v", err)
|
||||
}
|
||||
// ***** END: Star *****
|
||||
|
|
|
@ -113,6 +113,7 @@ type RepoSettingForm struct {
|
|||
PullsAllowSquash bool
|
||||
EnableTimetracker bool
|
||||
AllowOnlyContributorsToTrackTime bool
|
||||
EnableIssueDependencies bool
|
||||
|
||||
// Admin settings
|
||||
EnableHealthCheck bool
|
||||
|
|
|
@ -76,6 +76,7 @@ type RegisterForm struct {
|
|||
Email string `binding:"Required;Email;MaxSize(254)"`
|
||||
Password string `binding:"Required;MaxSize(255)"`
|
||||
Retype string
|
||||
GRecaptchaResponse string `form:"g-recaptcha-response"`
|
||||
}
|
||||
|
||||
// Validate valideates the fields
|
||||
|
|
|
@ -24,6 +24,7 @@ func (f *SignInOpenIDForm) Validate(ctx *macaron.Context, errs binding.Errors) b
|
|||
type SignUpOpenIDForm struct {
|
||||
UserName string `binding:"Required;AlphaDashDot;MaxSize(35)"`
|
||||
Email string `binding:"Required;Email;MaxSize(254)"`
|
||||
GRecaptchaResponse string `form:"g-recaptcha-response"`
|
||||
}
|
||||
|
||||
// Validate valideates the fields
|
||||
|
|
|
@ -104,6 +104,11 @@ func (r *Repository) CanUseTimetracker(issue *models.Issue, user *models.User) b
|
|||
r.IsWriter() || issue.IsPoster(user.ID) || isAssigned)
|
||||
}
|
||||
|
||||
// CanCreateIssueDependencies returns whether or not a user can create dependencies.
|
||||
func (r *Repository) CanCreateIssueDependencies(user *models.User) bool {
|
||||
return r.Repository.IsDependenciesEnabled() && r.IsWriter()
|
||||
}
|
||||
|
||||
// GetCommitsCount returns cached commit count for current view
|
||||
func (r *Repository) GetCommitsCount() (int64, error) {
|
||||
var contextName string
|
||||
|
|
|
@ -85,9 +85,12 @@ type link struct {
|
|||
|
||||
var oidRegExp = regexp.MustCompile(`^[A-Fa-f0-9]+$`)
|
||||
|
||||
func isOidValid(oid string) bool {
|
||||
return oidRegExp.MatchString(oid)
|
||||
}
|
||||
|
||||
// ObjectOidHandler is the main request routing entry point into LFS server functions
|
||||
func ObjectOidHandler(ctx *context.Context) {
|
||||
|
||||
if !setting.LFS.StartServer {
|
||||
writeStatus(ctx, 404)
|
||||
return
|
||||
|
@ -110,6 +113,11 @@ func ObjectOidHandler(ctx *context.Context) {
|
|||
}
|
||||
|
||||
func getAuthenticatedRepoAndMeta(ctx *context.Context, rv *RequestVars, requireWrite bool) (*models.LFSMetaObject, *models.Repository) {
|
||||
if !isOidValid(rv.Oid) {
|
||||
writeStatus(ctx, 404)
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
repository, err := models.GetRepositoryByOwnerAndName(rv.User, rv.Repo)
|
||||
if err != nil {
|
||||
log.Debug("Could not find repository: %s/%s - %s", rv.User, rv.Repo, err)
|
||||
|
@ -222,7 +230,7 @@ func PostHandler(ctx *context.Context) {
|
|||
return
|
||||
}
|
||||
|
||||
if !oidRegExp.MatchString(rv.Oid) {
|
||||
if !isOidValid(rv.Oid) {
|
||||
writeStatus(ctx, 404)
|
||||
return
|
||||
}
|
||||
|
@ -249,7 +257,6 @@ func PostHandler(ctx *context.Context) {
|
|||
|
||||
// BatchHandler provides the batch api
|
||||
func BatchHandler(ctx *context.Context) {
|
||||
|
||||
if !setting.LFS.StartServer {
|
||||
writeStatus(ctx, 404)
|
||||
return
|
||||
|
@ -266,6 +273,10 @@ func BatchHandler(ctx *context.Context) {
|
|||
|
||||
// Create a response object
|
||||
for _, object := range bv.Objects {
|
||||
if !isOidValid(object.Oid) {
|
||||
continue
|
||||
}
|
||||
|
||||
repository, err := models.GetRepositoryByOwnerAndName(object.User, object.Repo)
|
||||
|
||||
if err != nil {
|
||||
|
@ -292,14 +303,12 @@ func BatchHandler(ctx *context.Context) {
|
|||
continue
|
||||
}
|
||||
|
||||
if oidRegExp.MatchString(object.Oid) {
|
||||
// Object is not found
|
||||
meta, err = models.NewLFSMetaObject(&models.LFSMetaObject{Oid: object.Oid, Size: object.Size, RepositoryID: repository.ID})
|
||||
if err == nil {
|
||||
responseObjects = append(responseObjects, Represent(object, meta, meta.Existing, !contentStore.Exists(meta)))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ctx.Resp.Header().Set("Content-Type", metaMediaType)
|
||||
|
||||
|
|
58
modules/markup/csv/csv.go
Normal file
58
modules/markup/csv/csv.go
Normal file
|
@ -0,0 +1,58 @@
|
|||
// Copyright 2018 The Gitea Authors. All rights reserved.
|
||||
// Use of this source code is governed by a MIT-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
package markup
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"encoding/csv"
|
||||
"html"
|
||||
"io"
|
||||
|
||||
"code.gitea.io/gitea/modules/markup"
|
||||
)
|
||||
|
||||
func init() {
|
||||
markup.RegisterParser(Parser{})
|
||||
}
|
||||
|
||||
// Parser implements markup.Parser for orgmode
|
||||
type Parser struct {
|
||||
}
|
||||
|
||||
// Name implements markup.Parser
|
||||
func (Parser) Name() string {
|
||||
return "csv"
|
||||
}
|
||||
|
||||
// Extensions implements markup.Parser
|
||||
func (Parser) Extensions() []string {
|
||||
return []string{".csv"}
|
||||
}
|
||||
|
||||
// Render implements markup.Parser
|
||||
func (Parser) Render(rawBytes []byte, urlPrefix string, metas map[string]string, isWiki bool) []byte {
|
||||
rd := csv.NewReader(bytes.NewReader(rawBytes))
|
||||
var tmpBlock bytes.Buffer
|
||||
tmpBlock.WriteString(`<table class="table">`)
|
||||
for {
|
||||
fields, err := rd.Read()
|
||||
if err == io.EOF {
|
||||
break
|
||||
}
|
||||
if err != nil {
|
||||
continue
|
||||
}
|
||||
tmpBlock.WriteString("<tr>")
|
||||
for _, field := range fields {
|
||||
tmpBlock.WriteString("<td>")
|
||||
tmpBlock.WriteString(html.EscapeString(field))
|
||||
tmpBlock.WriteString("</td>")
|
||||
}
|
||||
tmpBlock.WriteString("<tr>")
|
||||
}
|
||||
tmpBlock.WriteString("</table>")
|
||||
|
||||
return tmpBlock.Bytes()
|
||||
}
|
25
modules/markup/csv/csv_test.go
Normal file
25
modules/markup/csv/csv_test.go
Normal file
|
@ -0,0 +1,25 @@
|
|||
// Copyright 2018 The Gitea Authors. All rights reserved.
|
||||
// Use of this source code is governed by a MIT-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
package markup
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
func TestRenderCSV(t *testing.T) {
|
||||
var parser Parser
|
||||
var kases = map[string]string{
|
||||
"a": "<table class=\"table\"><tr><td>a</td><tr></table>",
|
||||
"1,2": "<table class=\"table\"><tr><td>1</td><td>2</td><tr></table>",
|
||||
"<br/>": "<table class=\"table\"><tr><td><br/></td><tr></table>",
|
||||
}
|
||||
|
||||
for k, v := range kases {
|
||||
res := parser.Render([]byte(k), "", nil, false)
|
||||
assert.EqualValues(t, v, string(res))
|
||||
}
|
||||
}
|
|
@ -101,7 +101,7 @@ var (
|
|||
func (r *Renderer) Image(out *bytes.Buffer, link []byte, title []byte, alt []byte) {
|
||||
prefix := r.URLPrefix
|
||||
if r.IsWiki {
|
||||
prefix = util.URLJoin(prefix, "wiki", "src")
|
||||
prefix = util.URLJoin(prefix, "wiki", "raw")
|
||||
}
|
||||
prefix = strings.Replace(prefix, "/src/", "/raw/", 1)
|
||||
if len(link) > 0 {
|
||||
|
|
47
modules/recaptcha/recaptcha.go
Normal file
47
modules/recaptcha/recaptcha.go
Normal file
|
@ -0,0 +1,47 @@
|
|||
// Copyright 2018 The Gitea Authors. All rights reserved.
|
||||
// Use of this source code is governed by a MIT-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
package recaptcha
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"net/http"
|
||||
"net/url"
|
||||
"time"
|
||||
|
||||
"code.gitea.io/gitea/modules/setting"
|
||||
)
|
||||
|
||||
// Response is the structure of JSON returned from API
|
||||
type Response struct {
|
||||
Success bool `json:"success"`
|
||||
ChallengeTS time.Time `json:"challenge_ts"`
|
||||
Hostname string `json:"hostname"`
|
||||
ErrorCodes []string `json:"error-codes"`
|
||||
}
|
||||
|
||||
const apiURL = "https://www.google.com/recaptcha/api/siteverify"
|
||||
|
||||
// Verify calls Google Recaptcha API to verify token
|
||||
func Verify(response string) (bool, error) {
|
||||
resp, err := http.PostForm(apiURL,
|
||||
url.Values{"secret": {setting.Service.RecaptchaSecret}, "response": {response}})
|
||||
if err != nil {
|
||||
return false, fmt.Errorf("Failed to send CAPTCHA response: %s", err)
|
||||
}
|
||||
defer resp.Body.Close()
|
||||
body, err := ioutil.ReadAll(resp.Body)
|
||||
if err != nil {
|
||||
return false, fmt.Errorf("Failed to read CAPTCHA response: %s", err)
|
||||
}
|
||||
var jsonResponse Response
|
||||
err = json.Unmarshal(body, &jsonResponse)
|
||||
if err != nil {
|
||||
return false, fmt.Errorf("Failed to parse CAPTCHA response: %s", err)
|
||||
}
|
||||
|
||||
return jsonResponse.Success, nil
|
||||
}
|
|
@ -75,6 +75,12 @@ const (
|
|||
RepoCreatingPublic = "public"
|
||||
)
|
||||
|
||||
// enumerates all the types of captchas
|
||||
const (
|
||||
ImageCaptcha = "image"
|
||||
ReCaptcha = "recaptcha"
|
||||
)
|
||||
|
||||
// settings
|
||||
var (
|
||||
// AppVer settings
|
||||
|
@ -270,10 +276,12 @@ var (
|
|||
IssuePagingNum int
|
||||
RepoSearchPagingNum int
|
||||
FeedMaxCommitNum int
|
||||
GraphMaxCommitNum int
|
||||
ReactionMaxUserNum int
|
||||
ThemeColorMetaTag string
|
||||
MaxDisplayFileSize int64
|
||||
ShowUserEmail bool
|
||||
DefaultTheme string
|
||||
|
||||
Admin struct {
|
||||
UserPagingNum int
|
||||
|
@ -294,9 +302,11 @@ var (
|
|||
IssuePagingNum: 10,
|
||||
RepoSearchPagingNum: 10,
|
||||
FeedMaxCommitNum: 5,
|
||||
GraphMaxCommitNum: 100,
|
||||
ReactionMaxUserNum: 10,
|
||||
ThemeColorMetaTag: `#6cc644`,
|
||||
MaxDisplayFileSize: 8388608,
|
||||
DefaultTheme: `gitea`,
|
||||
Admin: struct {
|
||||
UserPagingNum int
|
||||
RepoPagingNum int
|
||||
|
@ -1165,10 +1175,14 @@ var Service struct {
|
|||
EnableReverseProxyAuth bool
|
||||
EnableReverseProxyAutoRegister bool
|
||||
EnableCaptcha bool
|
||||
CaptchaType string
|
||||
RecaptchaSecret string
|
||||
RecaptchaSitekey string
|
||||
DefaultKeepEmailPrivate bool
|
||||
DefaultAllowCreateOrganization bool
|
||||
EnableTimetracking bool
|
||||
DefaultEnableTimetracking bool
|
||||
DefaultEnableDependencies bool
|
||||
DefaultAllowOnlyContributorsToTrackTime bool
|
||||
NoReplyAddress string
|
||||
|
||||
|
@ -1189,13 +1203,17 @@ func newService() {
|
|||
Service.RequireSignInView = sec.Key("REQUIRE_SIGNIN_VIEW").MustBool()
|
||||
Service.EnableReverseProxyAuth = sec.Key("ENABLE_REVERSE_PROXY_AUTHENTICATION").MustBool()
|
||||
Service.EnableReverseProxyAutoRegister = sec.Key("ENABLE_REVERSE_PROXY_AUTO_REGISTRATION").MustBool()
|
||||
Service.EnableCaptcha = sec.Key("ENABLE_CAPTCHA").MustBool()
|
||||
Service.EnableCaptcha = sec.Key("ENABLE_CAPTCHA").MustBool(false)
|
||||
Service.CaptchaType = sec.Key("CAPTCHA_TYPE").MustString(ImageCaptcha)
|
||||
Service.RecaptchaSecret = sec.Key("RECAPTCHA_SECRET").MustString("")
|
||||
Service.RecaptchaSitekey = sec.Key("RECAPTCHA_SITEKEY").MustString("")
|
||||
Service.DefaultKeepEmailPrivate = sec.Key("DEFAULT_KEEP_EMAIL_PRIVATE").MustBool()
|
||||
Service.DefaultAllowCreateOrganization = sec.Key("DEFAULT_ALLOW_CREATE_ORGANIZATION").MustBool(true)
|
||||
Service.EnableTimetracking = sec.Key("ENABLE_TIMETRACKING").MustBool(true)
|
||||
if Service.EnableTimetracking {
|
||||
Service.DefaultEnableTimetracking = sec.Key("DEFAULT_ENABLE_TIMETRACKING").MustBool(true)
|
||||
}
|
||||
Service.DefaultEnableDependencies = sec.Key("DEFAULT_ENABLE_DEPENDENCIES").MustBool(true)
|
||||
Service.DefaultAllowOnlyContributorsToTrackTime = sec.Key("DEFAULT_ALLOW_ONLY_CONTRIBUTORS_TO_TRACK_TIME").MustBool(true)
|
||||
Service.NoReplyAddress = sec.Key("NO_REPLY_ADDRESS").MustString("noreply.example.org")
|
||||
|
||||
|
|
|
@ -186,6 +186,9 @@ func NewFuncMap() []template.FuncMap {
|
|||
"ParseDeadline": func(deadline string) []string {
|
||||
return strings.Split(deadline, "|")
|
||||
},
|
||||
"DefaultTheme": func() string {
|
||||
return setting.UI.DefaultTheme
|
||||
},
|
||||
}}
|
||||
}
|
||||
|
||||
|
|
|
@ -56,6 +56,7 @@ Morten Sørensen <klim8d AT gmail DOT com>
|
|||
Muhammad Fawwaz Orabi <mfawwaz93 AT gmail DOT com>
|
||||
Nakao Takamasa <at.mattenn AT gmail DOT com>
|
||||
Natan Albuquerque <natanalbuquerque5 AT gmail DOT com>
|
||||
Niclas Kroon <niclas DOT kroon AT gmail DOT com>
|
||||
Odilon Junior <odilon DOT junior93 AT gmail DOT com>
|
||||
Pablo Saavedra <psaavedra AT igalia DOT com>
|
||||
Richard Bukovansky <richard DOT bukovansky @ gmail DOT com>
|
||||
|
|
|
@ -569,7 +569,6 @@ total=Общо: %d
|
|||
dashboard.operation_name=Име на операцията
|
||||
dashboard.operation_switch=Превключи
|
||||
dashboard.operation_run=Изпълни
|
||||
dashboard.delete_inactivate_accounts=Изтрий всички неактивни профили
|
||||
dashboard.server_uptime=Операционно време
|
||||
dashboard.current_goroutine=Текущи Goroutines
|
||||
dashboard.current_memory_usage=Текущо използвана памет
|
||||
|
|
|
@ -508,7 +508,6 @@ total=Celkem: %d
|
|||
dashboard.operation_name=Název operace
|
||||
dashboard.operation_switch=Přepnout
|
||||
dashboard.operation_run=Spustit
|
||||
dashboard.delete_inactivate_accounts=Smazat všechny neaktivní účty
|
||||
dashboard.server_uptime=Doba provozu serveru
|
||||
dashboard.current_goroutine=Aktuální Goroutines
|
||||
dashboard.current_memory_usage=Aktuální využití paměti
|
||||
|
|
|
@ -32,16 +32,16 @@ twofa_scratch=Zwei-Faktor-Einmalpasswort
|
|||
passcode=PIN
|
||||
|
||||
u2f_insert_key=Hardware-Sicherheitsschlüssel einstecken
|
||||
u2f_sign_in=Drücke den Knopf auf deinem Sicherheitsschlüssel. Wenn deiner keinen Knopf hat, stecke ihn erneut ein.
|
||||
u2f_sign_in=Drücke den Knopf auf deinem Sicherheitsschlüssel. Wenn dein Sicherheitsschlüssel keinen Knopf hat, stecke ihn erneut ein.
|
||||
u2f_press_button=Drücke den Knopf auf deinem Sicherheitsschlüssel…
|
||||
u2f_use_twofa=Zwei-Faktor-Authentifizierung via Handy verwenden
|
||||
u2f_error=Wir können deinen Hardware-Sicherheitsschlüssel nicht lesen!
|
||||
u2f_unsupported_browser=Dein Browser unterstützt keine U2F-Geräte. Bitte benutze einen anderen Browser.
|
||||
u2f_error=Dein Sicherheitsschlüssel konnte nicht gelesen werden.
|
||||
u2f_unsupported_browser=Dein Browser unterstützt keine U2F-Sicherheitsschlüssel.
|
||||
u2f_error_1=Ein unbekannter Fehler ist aufgetreten. Bitte versuche es erneut.
|
||||
u2f_error_2=Stelle sicher, dass du einen verschlüsselte Verbindung (https://) benutzt und die richtige URL eingeben hast.
|
||||
u2f_error_3=Der Server kann deine Anfrage nicht bearbeiten.
|
||||
u2f_error_4=Dieser Sicherheitsschlüssel ist nicht berechtigt. Wenn du versuchst, einen neuen Sicherheitsschlüssel zu registrieren, stelle bitte sicher, dass du ihn nicht bereits registriert hast.
|
||||
u2f_error_5=Das Zeitlimit wurde erreicht bevor dein Schlüssel gelesen werden konnte. Bitte lade die Seite neu.
|
||||
u2f_error_2=Bitte stell sicher, dass die korrekte verschlüsselte URL benutzt wird (https://).
|
||||
u2f_error_3=Der Server konnte deine Anfrage nicht bearbeiten.
|
||||
u2f_error_4=Für diese Anfrage ist der Sicherheitsschlüssel nicht erlaubt. Bitte stell sicher, dass er nicht bereits registriert ist.
|
||||
u2f_error_5=Das Zeitlimit wurde erreicht, bevor dein Schlüssel gelesen werden konnte. Bitte lade die Seite erneut.
|
||||
u2f_reload=Neu laden
|
||||
|
||||
repository=Repository
|
||||
|
@ -75,7 +75,7 @@ cancel=Abbrechen
|
|||
[install]
|
||||
install=Installation
|
||||
title=Erstkonfiguration
|
||||
docker_helper=Wenn du Gitea in einem Docker-Container nutzt, lies bitte die <a target="_blank" rel="noopener" href="%s">Dokumentation</a>, bevor du irgendwelche Einstellungen veränderst.
|
||||
docker_helper=Wenn du Gitea in einem Docker-Container nutzt, lies bitte die <a target="_blank" rel="noopener noreferrer" href="%s">Dokumentation</a>, bevor du irgendwelche Einstellungen veränderst.
|
||||
requite_db_desc=Gitea benötigt MySQL, PostgreSQL, MSSQL, SQLite3 oder TiDB.
|
||||
db_title=Datenbankeinstellungen
|
||||
db_type=Datenbanktyp
|
||||
|
@ -130,7 +130,7 @@ federated_avatar_lookup=Föderierte Profilbilder einschalten
|
|||
federated_avatar_lookup_popup=Föderierte Profilbilder via Libravatar aktivieren.
|
||||
disable_registration=Registrierung deaktivieren
|
||||
disable_registration_popup=Registrierung neuer Benutzer deaktivieren. Nur Administratoren werden neue Benutzerkonten anlegen können.
|
||||
allow_only_external_registration_popup=Registrierung nur über externe Services aktiveren.
|
||||
allow_only_external_registration_popup=Registrierung nur über externe Services erlauben
|
||||
openid_signin=OpenID-Anmeldung aktivieren
|
||||
openid_signin_popup=Benutzeranmeldung via OpenID aktivieren.
|
||||
openid_signup=OpenID-Selbstregistrierung aktivieren
|
||||
|
@ -463,13 +463,13 @@ then_enter_passcode=Und gebe dann die angezeigte PIN der Anwendung ein:
|
|||
passcode_invalid=Die PIN ist falsch. Probiere es erneut.
|
||||
twofa_enrolled=Die Zwei-Faktor-Authentifizierung wurde für dein Konto aktiviert. Bewahre dein Einmalpasswort (%s) an einem sicheren Ort auf, da es nicht wieder angezeigt werden wird.
|
||||
|
||||
u2f_desc=Hardware-Sicherheitsschlüssel sind Geräte, die kryptografische Schlüssel beinhalten. Diese können für die Zwei-Faktor-Authentifizierung verwendet werden. Der Sicherheitsschlüssel muss den Standard <a href="https://fidoalliance.org/">FIDO U2F</a> unterstützen.
|
||||
u2f_require_twofa=Du musst die Zwei-Faktor-Authentifizierung aktivieren, um Hardware-Sicherheitsschlüssel nutzen zu können.
|
||||
u2f_desc=Sicherheitsschlüssel sind Geräte, die kryptografische Schlüssel beeinhalten. Diese können für die Zwei-Faktor-Authentifizierung verwendet werden. Der Sicherheitsschlüssel muss den Standard „<a href="https://fidoalliance.org/">FIDO U2F</a>“ unterstützen.
|
||||
u2f_require_twofa=Du musst die Zwei-Faktor-Authentifizierung für deinen Account aktivieren, um Sicherheitsschlüssel benutzen zu können.
|
||||
u2f_register_key=Sicherheitsschlüssel hinzufügen
|
||||
u2f_nickname=Nickname
|
||||
u2f_press_button=Drücke den Knopf auf deinem Sicherheitsschlüssel, um diesen zu registrieren.
|
||||
u2f_delete_key=Sicherheitsschlüssel entfernen
|
||||
u2f_delete_key_desc=Wenn du den Sicherheitsschlüssel entfernst, kannst du dich nicht mehr mit diesem einloggen. Bist du sicher?
|
||||
u2f_delete_key_desc=Wenn du einen Sicherheitsschlüssel entfernst, kannst du dich nicht mehr mit ihm anmelden. Fortfahren?
|
||||
|
||||
manage_account_links=Verknüpfte Accounts verwalten
|
||||
manage_account_links_desc=Diese externen Accounts sind mit deinem Gitea-Account verknüpft.
|
||||
|
@ -492,13 +492,13 @@ owner=Besitzer
|
|||
repo_name=Repository-Name
|
||||
repo_name_helper=Ein guter Repository-Name besteht normalerweise aus kurzen, unvergesslichen und einzigartigen Schlagwörtern.
|
||||
visibility=Sichtbarkeit
|
||||
visiblity_helper=privates Repository
|
||||
visiblity_helper_forced=Auf dieser Gitea-Instanz können nur private Repositories angelegt werden.
|
||||
visiblity_fork_helper=(Eine Änderung dieses Wertes wirkt sich auf alle Forks aus)
|
||||
clone_helper=Brauchst du Hilfe beim Klonen? Öffne die <a target="_blank" rel="noopener" href="%s">Hilfe</a>.
|
||||
visibility_helper=Markiere das Repository als privat
|
||||
visibility_helper_forced=Auf dieser Gitea-Instanz können nur private Repositories angelegt werden.
|
||||
visibility_fork_helper=(Eine Änderung dieses Wertes wirkt sich auf alle Forks aus)
|
||||
clone_helper=Benötigst du Hilfe beim Klonen? Öffne die <a target="_blank" rel="noopener noreferrer" href="%s">Hilfe</a>.
|
||||
fork_repo=Repository forken
|
||||
fork_from=Fork von
|
||||
fork_visiblity_helper=Die Sichtbarkeit einer geforkten Repository kann nicht geändert werden.
|
||||
fork_visibility_helper=Die Sichtbarkeit eines geforkten Repositorys kann nicht geändert werden.
|
||||
repo_desc=Beschreibung
|
||||
repo_lang=Sprache
|
||||
repo_gitignore_helper=Wähle eine .gitignore-Vorlage aus.
|
||||
|
@ -613,7 +613,7 @@ editor.directory_is_a_file=Der Verzeichnisname „%s“ wird bereits als Dateina
|
|||
editor.file_is_a_symlink='%s' ist ein symolischer Link. Symbolische Links können mit dem Web Editor nicht bearbeitet werden.
|
||||
editor.filename_is_a_directory=Der Dateiname „%s“ wird bereits als Verzeichnisname in diesem Repository verwendet.
|
||||
editor.file_editing_no_longer_exists=Die bearbeitete Datei „%s“ existiert nicht mehr in diesem Repository.
|
||||
editor.file_changed_while_editing=Der Inhalt der Datei hat sich seit dem Beginn der Bearbeitung geändert. <a target="_blank" rel="noopener" href="%s">Hier klicken</a>, um die Änderungen anzusehen, oder <strong>Änderungen erneut comitten</strong>, um sie zu überschreiben.
|
||||
editor.file_changed_while_editing=Der Inhalt der Datei hat sich seit dem Beginn der Bearbeitung geändert. <a target="_blank" rel="noopener noreferrer" href="%s">Hier klicken</a>, um die Änderungen anzusehen, oder <strong>Änderungen erneut comitten</strong>, um sie zu überschreiben.
|
||||
editor.file_already_exists=Eine Datei mit dem Namen „%s“ ist bereits in diesem Repository vorhanden.
|
||||
editor.no_changes_to_show=Keine Änderungen vorhanden.
|
||||
editor.fail_to_update_file=Fehler beim Ändern/Erstellen der Datei „%s“. Fehler: %v
|
||||
|
@ -650,7 +650,7 @@ issues.new.open_milestone=Offene Meilensteine
|
|||
issues.new.closed_milestone=Geschlossene Meilensteine
|
||||
issues.new.assignees=Zuständig
|
||||
issues.new.clear_assignees=Zuständige entfernen
|
||||
issues.new.no_assignees=Niemand zugewiesen
|
||||
issues.new.no_assignees=Niemand zuständig
|
||||
issues.no_ref=Keine Branch/Tag angegeben
|
||||
issues.create=Issue erstellen
|
||||
issues.new_label=Neues Label
|
||||
|
@ -669,7 +669,7 @@ issues.change_milestone_at=`hat den Meilenstein %[3]s von <b>%[1]s</b> zu <b>%[2
|
|||
issues.remove_milestone_at=`hat diesen Issue %[2]s vom <b>%[1]s</b> Meilenstein entfernt`
|
||||
issues.deleted_milestone=`(gelöscht)`
|
||||
issues.self_assign_at=`hat sich das Issue %s selbst zugewiesen`
|
||||
issues.add_assignee_at=`wurde %[1]s zugewiesen von <b>%[2]s</b>`
|
||||
issues.add_assignee_at=`wurde von <b>%s</b> %s zugewiesen`
|
||||
issues.remove_assignee_at=`hat seine Zuweisung %s entfernt`
|
||||
issues.change_title_at=`Titel von <b>%s</b> nach <b>%s</b> %s geändert`
|
||||
issues.delete_branch_at=`löschte die Branch <b>%s</b> %s`
|
||||
|
@ -759,7 +759,7 @@ issues.stop_tracking_history=hat die Zeiterfassung %s angehalten
|
|||
issues.add_time=Zeit manuell hinzufügen
|
||||
issues.add_time_short=Zeit hinzufügen
|
||||
issues.add_time_cancel=Abbrechen
|
||||
issues.add_time_history=hat %s gearbeitete Zeit hinzugefügt
|
||||
issues.add_time_history=`hat %s gearbeitete Zeit hinzugefügt`
|
||||
issues.add_time_hours=Stunden
|
||||
issues.add_time_minutes=Minuten
|
||||
issues.add_time_sum_to_small=Es wurde keine Zeit eingegeben.
|
||||
|
@ -781,6 +781,33 @@ issues.due_date_added=hat %[2]s das Fälligkeitsdatum %[1]s hinzugefügt
|
|||
issues.due_date_modified=hat %[3]s das Fälligkeitsdatum von %[2]s zu %[1]s geändert
|
||||
issues.due_date_remove=hat %[2]s das Fälligkeitsdatum %[1]s entfernt
|
||||
issues.due_date_overdue=Überfällig
|
||||
issues.due_date_invalid=Das Fälligkeitsdatum ist ungültig oder außerhalb des zulässigen Bereichs. Bitte verwende das Format „jjjj-mm-tt“.
|
||||
issues.dependency.title=Abhängigkeiten
|
||||
issues.dependency.issue_no_dependencies=Dieses Issue hat momentan keine Abhängigkeiten.
|
||||
issues.dependency.pr_no_dependencies=Dieser Pull-Request hat momentan keine Abhängigkeiten.
|
||||
issues.dependency.add=Abhängigkeit hinzufügen…
|
||||
issues.dependency.cancel=Abbrechen
|
||||
issues.dependency.remove=Entfernen
|
||||
issues.dependency.added_dependency=`<a href="%[1]s">%[2]s</a> hat %[3]s eine neue Abhängigkeit hinzugefügt`
|
||||
issues.dependency.removed_dependency=`<a href="%[1]s">%[2]s</a> hat %[3]s eine Abhängigkeit entfernt`
|
||||
issues.dependency.issue_closing_blockedby=Das Schließen dieses Pull-Requests wird von den folgenden Issues blockiert
|
||||
issues.dependency.pr_closing_blockedby=Das Schließen dieses Issues wird von den folgenden Issues blockiert
|
||||
issues.dependency.issue_close_blocks=Dieses Issue blockiert die Schließung der folgenden Issues
|
||||
issues.dependency.pr_close_blocks=Dieser Pull-Request blockiert die Schließung der folgenden Issues
|
||||
issues.dependency.issue_close_blocked=Du musst alle Issues, die dieses Issue blockieren, schließen, bevor du es schließen kannst.
|
||||
issues.dependency.pr_close_blocked=Du musst alle Issues, die diesen Pull-Request blockieren, schließen, bevor du ihn mergen kannst.
|
||||
issues.dependency.blocks_short=Blockiert
|
||||
issues.dependency.blocked_by_short=Abhängig von
|
||||
issues.dependency.remove_header=Abhängigkeit löschen
|
||||
issues.dependency.issue_remove_text=Dies entfernt die Abhängigkeit von diesem Issue. Fortfahren?
|
||||
issues.dependency.pr_remove_text=Dies entfernt die Abhängigkeit von diesem Pull-Request. Fortfahren?
|
||||
issues.dependency.setting=Abhängigkeiten für Issues und Pull-Requests aktivieren
|
||||
issues.dependency.add_error_same_issue=Du kannst ein Issue nicht von sich selbst abhängig machen.
|
||||
issues.dependency.add_error_dep_issue_not_exist=Abhängiges Issue existiert nicht.
|
||||
issues.dependency.add_error_dep_not_exist=Abhängigkeit existiert nicht.
|
||||
issues.dependency.add_error_dep_exists=Abhängigkeit existiert bereits.
|
||||
issues.dependency.add_error_cannot_create_circular=Du kannst keine Abhängigkeit erstellen, bei welcher sich zwei Issues gegenseitig blockieren.
|
||||
issues.dependency.add_error_dep_not_same_repo=Beide Issues müssen sich im selben Repository befinden.
|
||||
|
||||
pulls.desc=Merge-Requests und Code-Reviews aktivieren.
|
||||
pulls.new=Neuer Pull-Request
|
||||
|
@ -994,7 +1021,7 @@ settings.search_user_placeholder=Benutzer suchen…
|
|||
settings.org_not_allowed_to_be_collaborator=Organisationen können nicht als Mitarbeiter hinzugefügt werden.
|
||||
settings.user_is_org_member=Der Benutzer ist ein Organisationsmitglied und kann nicht als Mitarbeiter hinzugefügt werden.
|
||||
settings.add_webhook=Webhook hinzufügen
|
||||
settings.hooks_desc=Webhooks senden bei bestimmten Gitea-Events automatisch „HTTP POST“-Anfragen an einen Server. Lies mehr in unserer <a target="_blank" rel="noopener" href="%s">Anleitung zu Webhooks (auf Englisch)</a>.
|
||||
settings.hooks_desc=Webhooks senden bei bestimmten Gitea-Events automatisch „HTTP POST“-Anfragen an einen Server. Lies mehr in unserer <a target="_blank" rel="noopener noreferrer" href="%s">Anleitung zu Webhooks (auf Englisch)</a>.
|
||||
settings.webhook_deletion=Webhook löschen
|
||||
settings.webhook_deletion_desc=Das Entfernen eines Webhooks löscht seine Einstellungen und Zustellungsverlauf. Fortfahren?
|
||||
settings.webhook_deletion_success=Webhook wurde entfernt.
|
||||
|
@ -1011,7 +1038,7 @@ settings.githook_edit_desc=Wenn ein Hook nicht aktiv ist, wird der Standardinhal
|
|||
settings.githook_name=Hook-Name
|
||||
settings.githook_content=Hook-Inhalt
|
||||
settings.update_githook=Hook aktualisieren
|
||||
settings.add_webhook_desc=Gitea sendet einen <code>POST</code>-Request mit festgelegtem Content-Type an die Ziel-URL. Mehr Informationen findest du in der <a target="_blank" rel="noopener" href="%s">Anleitung zu Webhooks (Englisch)</a>.
|
||||
settings.add_webhook_desc=Gitea sendet einen <code>POST</code>-Request mit festgelegtem Content-Type an die Ziel-URL. Mehr Informationen findest du in der <a target="_blank" rel="noopener noreferrer" href="%s">Anleitung zu Webhooks (Englisch)</a>.
|
||||
settings.payload_url=Ziel-URL
|
||||
settings.content_type=POST-Content-Type
|
||||
settings.secret=Secret
|
||||
|
@ -1097,6 +1124,7 @@ settings.protected_branch_deletion_desc=Wenn du den Branch-Schutz deaktivierst,
|
|||
settings.default_branch_desc=Wähle einen Standardbranch für Pull-Requests und Code-Commits:
|
||||
settings.choose_branch=Wähle einen Branch …
|
||||
settings.no_protected_branch=Es gibt keine geschützten Branches.
|
||||
settings.edit_protected_branch=Bearbeiten
|
||||
|
||||
diff.browse_source=Quellcode durchsuchen
|
||||
diff.parent=Ursprung
|
||||
|
@ -1168,7 +1196,7 @@ branch.protected_deletion_failed=Branch „%s“ ist geschützt und kann nicht g
|
|||
topic.manage_topics=Themen verwalten
|
||||
topic.done=Fertig
|
||||
topic.count_prompt=Du kannst nicht mehr als 25 Themen auswählen
|
||||
topic.format_prompt=Themen müssen mit einem Buchstaben oder einer Zahl beginnen. Sie können Bindestriche (-) enthalten und dürfen nicht länger als 35 Zeichen sein
|
||||
topic.format_prompt=Themen müssen mit entweder einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.
|
||||
|
||||
[org]
|
||||
org_name_holder=Name der Organisation
|
||||
|
@ -1273,8 +1301,8 @@ dashboard.operation_switch=Wechseln
|
|||
dashboard.operation_run=Ausführen
|
||||
dashboard.clean_unbind_oauth=Nicht verbundene OAuth-Verbindungen löschen
|
||||
dashboard.clean_unbind_oauth_success=Alle unverbundene OAuth-Verbindungen wurden gelöscht.
|
||||
dashboard.delete_inactivate_accounts=Deaktivierte Konten löschen
|
||||
dashboard.delete_inactivate_accounts_success=Alle deaktivierten Konten wurden erfolgreich gelöscht.
|
||||
dashboard.delete_inactivate_accounts=Alle nicht aktivierten Accounts löschen
|
||||
dashboard.delete_inactivate_accounts_success=Alle nicht aktivierten Accounts wurden gelöscht.
|
||||
dashboard.delete_repo_archives=Alle Repository-Archive löschen
|
||||
dashboard.delete_repo_archives_success=Alle Repository-Archive wurden gelöscht.
|
||||
dashboard.delete_missing_repos=Alle Repository-Datensätze mit verlorenen gegangenen Git-Dateien löschen
|
||||
|
@ -1482,7 +1510,7 @@ config.db_path=Verzeichnis
|
|||
config.service_config=Service-Konfiguration
|
||||
config.register_email_confirm=E-Mail-Bestätigung benötigt zum Registrieren
|
||||
config.disable_register=Selbstegistrierung deaktivieren
|
||||
config.allow_only_external_registration=Registrierung nur über externe Services aktiveren
|
||||
config.allow_only_external_registration=Registrierung nur über externe Services erlauben
|
||||
config.enable_openid_signup=OpenID-Selbstregistrierung aktivieren
|
||||
config.enable_openid_signin=OpenID-Anmeldung aktivieren
|
||||
config.show_registration_button=Schaltfläche zum Registrieren anzeigen
|
||||
|
@ -1498,6 +1526,7 @@ config.enable_timetracking=Zeiterfassung aktivieren
|
|||
config.default_enable_timetracking=Zeiterfassung standardmäßig aktivieren
|
||||
config.default_allow_only_contributors_to_track_time=Nur Mitarbeitern erlauben, die Zeiterfassung zu nutzen
|
||||
config.no_reply_address=Versteckte E-Mail-Domain
|
||||
config.default_enable_dependencies=Issue-Abhängigkeiten standardmäßig aktivieren
|
||||
|
||||
config.webhook_config=Webhook-Konfiguration
|
||||
config.queue_length=Warteschlangenlänge
|
||||
|
|
|
@ -32,16 +32,16 @@ twofa_scratch = Two-Factor Scratch Code
|
|||
passcode = Passcode
|
||||
|
||||
u2f_insert_key = Insert your security key
|
||||
u2f_sign_in = Press the button on your security key. If you can't find a button, re-insert it.
|
||||
u2f_sign_in = Press the button on your security key. If your security key has no button, re-insert it.
|
||||
u2f_press_button = Please press the button on your security key…
|
||||
u2f_use_twofa = Use a two-factor code from your phone
|
||||
u2f_error = We can't read your security key!
|
||||
u2f_unsupported_browser = Your browser don't support U2F keys. Please try another browser.
|
||||
u2f_error_1 = An unknown error occured. Please retry.
|
||||
u2f_error_2 = Please make sure that you're using an encrypted connection (https://) and visiting the correct URL.
|
||||
u2f_error_3 = The server could not proceed your request.
|
||||
u2f_error_4 = The presented key is not eligible for this request. If you try to register it, make sure that the key isn't already registered.
|
||||
u2f_error_5 = Timeout reached before your key could be read. Please reload to retry.
|
||||
u2f_error = Could not read your security key.
|
||||
u2f_unsupported_browser = Your browser does not support U2F security keys.
|
||||
u2f_error_1 = An unknown error occurred. Please retry.
|
||||
u2f_error_2 = Please make sure to use the correct, encrypted (https://) URL.
|
||||
u2f_error_3 = The server could not process your request.
|
||||
u2f_error_4 = The security key is not permitted for this request. Please make sure that the key is not already registered.
|
||||
u2f_error_5 = Timeout reached before your key could be read. Please reload this page and retry.
|
||||
u2f_reload = Reload
|
||||
|
||||
repository = Repository
|
||||
|
@ -75,7 +75,7 @@ cancel = Cancel
|
|||
[install]
|
||||
install = Installation
|
||||
title = Initial Configuration
|
||||
docker_helper = If you run Gitea inside Docker, please read the <a target="_blank" rel="noopener" href="%s">documentation</a> before changing any settings.
|
||||
docker_helper = If you run Gitea inside Docker, please read the <a target="_blank" rel="noopener noreferrer" href="%s">documentation</a> before changing any settings.
|
||||
requite_db_desc = Gitea requires MySQL, PostgreSQL, MSSQL, SQLite3 or TiDB.
|
||||
db_title = Database Settings
|
||||
db_type = Database Type
|
||||
|
@ -130,7 +130,7 @@ federated_avatar_lookup = Enable Federated Avatars
|
|||
federated_avatar_lookup_popup = Enable federated avatar lookup using Libravatar.
|
||||
disable_registration = Disable Self-Registration
|
||||
disable_registration_popup = Disable user self-registration. Only administrators will be able to create new user accounts.
|
||||
allow_only_external_registration_popup=Enable the registration only through external services.
|
||||
allow_only_external_registration_popup = Allow Registration Only Through External Services
|
||||
openid_signin = Enable OpenID Sign-In
|
||||
openid_signin_popup = Enable user sign-in via OpenID.
|
||||
openid_signup = Enable OpenID Self-Registration
|
||||
|
@ -463,13 +463,13 @@ then_enter_passcode = And enter the passcode shown in the application:
|
|||
passcode_invalid = The passcode is incorrect. Try again.
|
||||
twofa_enrolled = Your account has been enrolled into two-factor authentication. Store your scratch token (%s) in a safe place as it is only shown once!
|
||||
|
||||
u2f_desc = Security keys are hardware devices containing cryptographic keys. They could be used for two factor authentication. The security key must support the <a href="https://fidoalliance.org/">FIDO U2F</a> standard.
|
||||
u2f_require_twofa = Two-Factor-Authentication must be enrolled in order to use security keys.
|
||||
u2f_desc = Security keys are hardware devices containing cryptographic keys. They can be used for two-factor authentication. Security keys must support the <a rel="noreferrer" href="https://fidoalliance.org/">FIDO U2F</a> standard.
|
||||
u2f_require_twofa = Your account must be enrolled in two-factor authentication to use security keys.
|
||||
u2f_register_key = Add Security Key
|
||||
u2f_nickname = Nickname
|
||||
u2f_press_button = Press the button on your security key to register it.
|
||||
u2f_delete_key = Remove Security Key
|
||||
u2f_delete_key_desc= If you remove a security key you cannot login with it anymore. Are you sure?
|
||||
u2f_delete_key_desc = If you remove a security key you can no longer sign in with it. Continue?
|
||||
|
||||
manage_account_links = Manage Linked Accounts
|
||||
manage_account_links_desc = These external accounts are linked to your Gitea account.
|
||||
|
@ -492,13 +492,13 @@ owner = Owner
|
|||
repo_name = Repository Name
|
||||
repo_name_helper = Good repository names use short, memorable and unique keywords.
|
||||
visibility = Visibility
|
||||
visiblity_helper = Make Repository Private
|
||||
visiblity_helper_forced = Your site administrator forces new repositories to be private.
|
||||
visiblity_fork_helper = (Changing this will affect all forks.)
|
||||
clone_helper = Need help cloning? Visit <a target="_blank" rel="noopener" href="%s">Help</a>.
|
||||
visibility_helper = Make Repository Private
|
||||
visibility_helper_forced = Your site administrator forces new repositories to be private.
|
||||
visibility_fork_helper = (Changing this will affect all forks.)
|
||||
clone_helper = Need help cloning? Visit <a target="_blank" rel="noopener noreferrer" href="%s">Help</a>.
|
||||
fork_repo = Fork Repository
|
||||
fork_from = Fork From
|
||||
fork_visiblity_helper = The visibility of a forked repository cannot be changed.
|
||||
fork_visibility_helper = The visibility of a forked repository cannot be changed.
|
||||
repo_desc = Description
|
||||
repo_lang = Language
|
||||
repo_gitignore_helper = Select .gitignore templates.
|
||||
|
@ -613,7 +613,7 @@ editor.directory_is_a_file = Directory name '%s' is already used as a filename i
|
|||
editor.file_is_a_symlink = '%s' is a symbolic link. Symbolic links cannot be edited in the web editor
|
||||
editor.filename_is_a_directory = Filename '%s' is already used as a directory name in this repository.
|
||||
editor.file_editing_no_longer_exists = The file being edited, '%s', no longer exists in this repository.
|
||||
editor.file_changed_while_editing = The file contents have changed since you started editing. <a target="_blank" rel="noopener" href="%s">Click here</a> to see them or <strong>Commit Changes again</strong> to overwrite them.
|
||||
editor.file_changed_while_editing = The file contents have changed since you started editing. <a target="_blank" rel="noopener noreferrer" href="%s">Click here</a> to see them or <strong>Commit Changes again</strong> to overwrite them.
|
||||
editor.file_already_exists = A file named '%s' already exists in this repository.
|
||||
editor.no_changes_to_show = There are no changes to show.
|
||||
editor.fail_to_update_file = Failed to update/create file '%s' with error: %v
|
||||
|
@ -650,7 +650,7 @@ issues.new.open_milestone = Open Milestones
|
|||
issues.new.closed_milestone = Closed Milestones
|
||||
issues.new.assignees = Assignees
|
||||
issues.new.clear_assignees = Clear assignees
|
||||
issues.new.no_assignees = Nobody assigned
|
||||
issues.new.no_assignees = No Assignees
|
||||
issues.no_ref = No Branch/Tag Specified
|
||||
issues.create = Create Issue
|
||||
issues.new_label = New Label
|
||||
|
@ -781,6 +781,33 @@ issues.due_date_added = "added the due date %s %s"
|
|||
issues.due_date_modified = "modified the due date to %s from %s %s"
|
||||
issues.due_date_remove = "removed the due date %s %s"
|
||||
issues.due_date_overdue = "Overdue"
|
||||
issues.due_date_invalid = "The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'."
|
||||
issues.dependency.title = Dependencies
|
||||
issues.dependency.issue_no_dependencies = This issue currently doesn't have any dependencies.
|
||||
issues.dependency.pr_no_dependencies = This pull request currently doesn't have any dependencies.
|
||||
issues.dependency.add = Add dependency...
|
||||
issues.dependency.cancel = Cancel
|
||||
issues.dependency.remove = Remove
|
||||
issues.dependency.added_dependency = `<a href="%[1]s">%[2]s</a> added a new dependency %[3]s`
|
||||
issues.dependency.removed_dependency = `<a href="%[1]s">%[2]s</a> removed a dependency %[3]s`
|
||||
issues.dependency.issue_closing_blockedby = Closing this pull request is blocked by the following issues
|
||||
issues.dependency.pr_closing_blockedby = Closing this issue is blocked by the following issues
|
||||
issues.dependency.issue_close_blocks = This issue blocks closing of the following issues
|
||||
issues.dependency.pr_close_blocks = This pull request blocks closing of the following issues
|
||||
issues.dependency.issue_close_blocked = You need to close all issues blocking this issue before you can close it.
|
||||
issues.dependency.pr_close_blocked = You need to close all issues blocking this pull request before you can merge it.
|
||||
issues.dependency.blocks_short = Blocks
|
||||
issues.dependency.blocked_by_short = Depends on
|
||||
issues.dependency.remove_header = Remove Dependency
|
||||
issues.dependency.issue_remove_text = This will remove the dependency from this issue. Continue?
|
||||
issues.dependency.pr_remove_text = This will remove the dependency from this pull request. Continue?
|
||||
issues.dependency.setting = Enable Dependencies For Issues and Pull Requests
|
||||
issues.dependency.add_error_same_issue = You cannot make an issue depend on itself.
|
||||
issues.dependency.add_error_dep_issue_not_exist = Dependent issue does not exist.
|
||||
issues.dependency.add_error_dep_not_exist = Dependency does not exist.
|
||||
issues.dependency.add_error_dep_exists = Dependency already exists.
|
||||
issues.dependency.add_error_cannot_create_circular = You cannot create a dependency with two issues blocking each other.
|
||||
issues.dependency.add_error_dep_not_same_repo = Both issues must be in the same repository.
|
||||
|
||||
pulls.desc = Enable merge requests and code reviews.
|
||||
pulls.new = New Pull Request
|
||||
|
@ -994,7 +1021,7 @@ settings.search_user_placeholder = Search user…
|
|||
settings.org_not_allowed_to_be_collaborator = Organizations cannot be added as a collaborator.
|
||||
settings.user_is_org_member = The user is an organization member who cannot be added as a collaborator.
|
||||
settings.add_webhook = Add Webhook
|
||||
settings.hooks_desc = Webhooks automatically make HTTP POST requests to a server when certain Gitea events trigger. Read more in the <a target="_blank" rel="noopener" href="%s">webhooks guide</a>.
|
||||
settings.hooks_desc = Webhooks automatically make HTTP POST requests to a server when certain Gitea events trigger. Read more in the <a target="_blank" rel="noopener noreferrer" href="%s">webhooks guide</a>.
|
||||
settings.webhook_deletion = Remove Webhook
|
||||
settings.webhook_deletion_desc = Removing a webhook deletes its settings and delivery history. Continue?
|
||||
settings.webhook_deletion_success = The webhook has been removed.
|
||||
|
@ -1011,7 +1038,7 @@ settings.githook_edit_desc = If the hook is inactive, sample content will be pre
|
|||
settings.githook_name = Hook Name
|
||||
settings.githook_content = Hook Content
|
||||
settings.update_githook = Update Hook
|
||||
settings.add_webhook_desc = Gitea will send <code>POST</code> requests with a specified content type to the target URL. Read more in the <a target="_blank" rel="noopener" href="%s">webhooks guide</a>.
|
||||
settings.add_webhook_desc = Gitea will send <code>POST</code> requests with a specified content type to the target URL. Read more in the <a target="_blank" rel="noopener noreferrer" href="%s">webhooks guide</a>.
|
||||
settings.payload_url = Target URL
|
||||
settings.content_type = POST Content Type
|
||||
settings.secret = Secret
|
||||
|
@ -1097,6 +1124,7 @@ settings.protected_branch_deletion_desc = Disabling branch protection allows use
|
|||
settings.default_branch_desc = Select a default repository branch for pull requests and code commits:
|
||||
settings.choose_branch = Choose a branch…
|
||||
settings.no_protected_branch = There are no protected branches.
|
||||
settings.edit_protected_branch = Edit
|
||||
|
||||
diff.browse_source = Browse Source
|
||||
diff.parent = parent
|
||||
|
@ -1167,8 +1195,8 @@ branch.protected_deletion_failed = Branch '%s' is protected. It cannot be delete
|
|||
|
||||
topic.manage_topics = Manage Topics
|
||||
topic.done = Done
|
||||
topic.count_prompt = You can't select more than 25 topics
|
||||
topic.format_prompt = Topics must start with a letter or number, can include hyphens(-) and must be no more than 35 characters long
|
||||
topic.count_prompt = You can not select more than 25 topics
|
||||
topic.format_prompt = Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
||||
|
||||
[org]
|
||||
org_name_holder = Organization Name
|
||||
|
@ -1273,8 +1301,8 @@ dashboard.operation_switch = Switch
|
|||
dashboard.operation_run = Run
|
||||
dashboard.clean_unbind_oauth = Clean unbound OAuth connections
|
||||
dashboard.clean_unbind_oauth_success = All unbound OAuth connections have been deleted.
|
||||
dashboard.delete_inactivate_accounts = Delete all inactive accounts
|
||||
dashboard.delete_inactivate_accounts_success = All inactive accounts have been deleted.
|
||||
dashboard.delete_inactivate_accounts = Delete all unactivated accounts
|
||||
dashboard.delete_inactivate_accounts_success = All unactivated accounts have been deleted.
|
||||
dashboard.delete_repo_archives = Delete all repository archives
|
||||
dashboard.delete_repo_archives_success = All repository archives have been deleted.
|
||||
dashboard.delete_missing_repos = Delete all repositories missing their Git files
|
||||
|
@ -1482,7 +1510,7 @@ config.db_path = Path
|
|||
config.service_config = Service Configuration
|
||||
config.register_email_confirm = Require Email Confirmation to Register
|
||||
config.disable_register = Disable Self-Registration
|
||||
config.allow_only_external_registration = Enable the registration only through external services
|
||||
config.allow_only_external_registration = Allow Registration Only Through External Services
|
||||
config.enable_openid_signup = Enable OpenID Self-Registration
|
||||
config.enable_openid_signin = Enable OpenID Sign-In
|
||||
config.show_registration_button = Show Register Button
|
||||
|
@ -1498,6 +1526,7 @@ config.enable_timetracking = Enable Time Tracking
|
|||
config.default_enable_timetracking = Enable Time Tracking by Default
|
||||
config.default_allow_only_contributors_to_track_time = Let Only Contributors Track Time
|
||||
config.no_reply_address = Hidden Email Domain
|
||||
config.default_enable_dependencies = Enable Issue Dependencies by Default
|
||||
|
||||
config.webhook_config = Webhook Configuration
|
||||
config.queue_length = Queue Length
|
||||
|
|
|
@ -27,16 +27,11 @@ email=Correo electrónico
|
|||
password=Contraseña
|
||||
re_type=Vuelva a escribir la contraseña
|
||||
captcha=CAPTCHA
|
||||
twofa=Autenticación de dos factores
|
||||
twofa=Autenticación en dos pasos
|
||||
passcode=Contraseña
|
||||
|
||||
u2f_insert_key=Inserte su clave de seguridad
|
||||
u2f_use_twofa=Use un código de dos factores de su celular
|
||||
u2f_error=No podemos leer su llave de seguridad!
|
||||
u2f_unsupported_browser=Su navegador no soporta llaves U2F. Por favor utilicé otro navegador.
|
||||
u2f_error_1=Un error desconocido ha ocurrido. Por favor vuelva a intentarlo.
|
||||
u2f_error_2=Por favor asegúrese de que está utilizando una conexión cifrada (https://) y que esta visitando la dirección URL correcta.
|
||||
u2f_error_3=El servidor no pudo procesar su petición.
|
||||
u2f_reload=Recargar
|
||||
|
||||
repository=Repositorio
|
||||
|
@ -69,7 +64,6 @@ cancel=Cancelar
|
|||
[install]
|
||||
install=Instalación
|
||||
title=Configuración inicial
|
||||
docker_helper=Si esta ejecutando Gitea dentro de un contenedor Docker, por favor lea la <a target="_blank" rel="noopener" href="%s">documentaciónn</a> antes de realizar cambios a la configuración.
|
||||
requite_db_desc=Gitea requiere una base de datos MySQL, PostgreSQL, MSSQL, SQLite3 o TiDB.
|
||||
db_title=Configuración de base de datos
|
||||
db_type=Tipo de base de datos
|
||||
|
@ -728,8 +722,6 @@ dashboard.operation_name=Nombre de la operación
|
|||
dashboard.operation_switch=Interruptor
|
||||
dashboard.operation_run=Ejecutar
|
||||
dashboard.clean_unbind_oauth_success=Se han eliminado las conexiones de OAuth no vinculadas.
|
||||
dashboard.delete_inactivate_accounts=Eliminar todas las cuentas inactivas
|
||||
dashboard.delete_inactivate_accounts_success=Todas las cuentas inactivas han sido eliminadas.
|
||||
dashboard.resync_all_sshkeys=Actualizar el archivo '.ssh/authorized_keys' con las claves SSH de Gitea (no es necesario para el servidor SSH incorporado).
|
||||
dashboard.reinit_missing_repos=Reiniciar todos los repositorios Git faltantes de los que existen registros
|
||||
dashboard.reinit_missing_repos_success=Todos los repositorios Git faltantes para los que existen registros se han reinicializado.
|
||||
|
|
|
@ -63,7 +63,6 @@ cancel=Peruuta
|
|||
[install]
|
||||
install=Asennus
|
||||
title=Alkuperäiset asetukset
|
||||
docker_helper=Jos ajat Giteaa Dockerissa, tutustuthan <a target="_blank" rel="noopener" href="%s">dokumentaatioon</a> ennen asetusten muuttamista.
|
||||
requite_db_desc=Gitea tarvitsee toimiakseen MySQL-, PostgreSQL-, MSSQL-, SQLite3 tai TiDB-tietokannan.
|
||||
db_title=Tietokanta asetukset
|
||||
db_type=Tietokanta tyyppi
|
||||
|
@ -589,7 +588,6 @@ total=Yhteensä: %d
|
|||
dashboard.operation_name=Toiminnon nimi
|
||||
dashboard.operation_switch=Vaihda
|
||||
dashboard.operation_run=Suorita
|
||||
dashboard.delete_inactivate_accounts=Poista kaikki passiiviset tunnukset
|
||||
dashboard.server_uptime=Palvelimen Uptime
|
||||
dashboard.current_goroutine=Nykyiset Goroutinet
|
||||
dashboard.current_memory_usage=Nykyinen muistinkäyttö
|
||||
|
|
|
@ -32,16 +32,8 @@ twofa_scratch=Code de secours pour l'authentification à deux facteurs
|
|||
passcode=Code d'accès
|
||||
|
||||
u2f_insert_key=Insérez votre clef de sécurité
|
||||
u2f_sign_in=Appuyez sur le bouton de votre clef de sécurité. Si vous ne voyez pas de bouton, ré-insérez là.
|
||||
u2f_press_button=Veuillez appuyer sur le bouton de votre clef de sécurité…
|
||||
u2f_use_twofa=Utilisez l'authentification à deux facteurs avec votre téléphone
|
||||
u2f_error=Nous ne pouvons pas lire votre clé de sécurité !
|
||||
u2f_unsupported_browser=Votre navigateur n'est pas compatible avec les clefs U2F. Veuillez réessayer avec un autre navigateur.
|
||||
u2f_error_1=Une erreur inconnue s'est produite. Veuillez réessayer.
|
||||
u2f_error_2=Veuillez vous assurer que vous utilisez une connexion chiffrée (https) et que vous visitez la bonne adresse.
|
||||
u2f_error_3=Le serveur n'a pas pu répondre à votre requête.
|
||||
u2f_error_4=Cette clef n'est pas compatible avec votre requête. Si vous êtes en train de l'enregistrer, veuillez vous assurer que cette clef n'est pas déjà enregistrée.
|
||||
u2f_error_5=Le délai d'attente imparti a été atteint avant que votre clef ne puisse être lue. Veuillez recharger la page pour réessayer.
|
||||
u2f_reload=Recharger
|
||||
|
||||
repository=Dépôt
|
||||
|
@ -75,7 +67,6 @@ cancel=Annuler
|
|||
[install]
|
||||
install=Installation
|
||||
title=Configuration initiale
|
||||
docker_helper=Si vous utilisez Gitea avec Docker, veuillez lire la <a target="_blank" rel="noopener" href="%s">documentation</a> avant de modifier les paramètres.
|
||||
requite_db_desc=Gitea requiert MySQL, PostgreSQL, MSSQL, SQLite3 ou TiDB.
|
||||
db_title=Paramètres de la base de données
|
||||
db_type=Type de base de données
|
||||
|
@ -130,7 +121,6 @@ federated_avatar_lookup=Activer les avatars unifiés
|
|||
federated_avatar_lookup_popup=Activer la recherche unifiée d'avatars en utilisant le service open source unifié basé sur libravatar.
|
||||
disable_registration=Désactiver le formulaire d'inscription
|
||||
disable_registration_popup=Désactiver les nouvelles inscriptions. Seuls les administrateurs pourront créer de nouveaux comptes utilisateurs.
|
||||
allow_only_external_registration_popup=N'autoriser l'inscription qu'à partir des services externes.
|
||||
openid_signin=Activer l'inscription OpenID
|
||||
openid_signin_popup=Activer l'authentification via OpenID.
|
||||
openid_signup=Activer l'inscription OpenID
|
||||
|
@ -463,13 +453,10 @@ then_enter_passcode=Et entrez le mot de passe s'affichant dans l'application :
|
|||
passcode_invalid=Le mot de passe est invalide. Réessayez.
|
||||
twofa_enrolled=L'authentification à deux facteurs a été activée pour votre compte. Gardez votre jeton de secours (%s) en lieu sûr car il ne vous sera montré qu'une seule fois !
|
||||
|
||||
u2f_desc=Les clefs de sécurité sont des dispositifs matériels contenant des clefs cryptographiques. Elles peuvent être utilisées pour l'authentification à deux facteurs. La clef de sécurité doit supporter le standard <a href="https://fidoalliance.org/">FIDO U2F</a>.
|
||||
u2f_require_twofa=L'authentification à deux facteurs doit être activée afin d'utiliser une clef de sécurité.
|
||||
u2f_register_key=Ajouter une clef de sécurité
|
||||
u2f_nickname=Pseudonyme
|
||||
u2f_press_button=Appuyer sur le bouton de votre clef de sécurité pour l'enregistrer.
|
||||
u2f_delete_key=Supprimer une clef de sécurité
|
||||
u2f_delete_key_desc=Si vous supprimez une clef de sécurité vous ne pourrez plus l'utiliser pour vous connecter. Continuer?
|
||||
|
||||
manage_account_links=Gérer les comptes liés
|
||||
manage_account_links_desc=Ces comptes externes sont liés à votre compte Gitea.
|
||||
|
@ -492,13 +479,8 @@ owner=Propriétaire
|
|||
repo_name=Nom du dépôt
|
||||
repo_name_helper=Idéalement, le nom d'un dépôt devrait être court, mémorisable et unique.
|
||||
visibility=Visibilité
|
||||
visiblity_helper=Rendre le dépôt privé
|
||||
visiblity_helper_forced=L'administrateur de votre site impose que les nouveaux dépôts soient privés.
|
||||
visiblity_fork_helper=(Les changement de cette valeur affecteront toutes les bifurcations.)
|
||||
clone_helper=Besoin d'aide pour dupliquer ? Visitez <a target="_blank" rel="noopener" href="%s">l'aide</a>.
|
||||
fork_repo=Créer une bifurcation du dépôt
|
||||
fork_from=Bifurquer depuis
|
||||
fork_visiblity_helper=La visibilité d'un dépôt bifurqué ne peut être changée.
|
||||
repo_desc=Description
|
||||
repo_lang=Langue
|
||||
repo_gitignore_helper=Choisissez un modèle de fichier .gitignore.
|
||||
|
@ -613,7 +595,6 @@ editor.directory_is_a_file=Le nom de dossier '%s' est déjà utilisé comme nom
|
|||
editor.file_is_a_symlink='%s' est un lien symbolique. Les liens symboliques ne peuvent être édités dans l'interface web
|
||||
editor.filename_is_a_directory=Le nom de fichier '%s' est déjà utilisé comme nom de dossier dans ce dépôt.
|
||||
editor.file_editing_no_longer_exists=Le fichier en cours d'édition, '%s', n'existe plus dans ce dépôt.
|
||||
editor.file_changed_while_editing=Le contenu de ce fichier a changé depuis le début de l'édition. <a target="_blank" rel="noopener" href="%s">Cliquez ici</a> pour voir les changements ou <strong>soumettez de nouveau</strong> pour écraser ces changements.
|
||||
editor.file_already_exists=Un fichier nommé '%s' existe déjà dans ce dépôt.
|
||||
editor.no_changes_to_show=Il n’y a aucun changement à afficher.
|
||||
editor.fail_to_update_file=Échec lors de la mise à jour/création du fichier '%s' avec l’erreur : %v
|
||||
|
@ -650,7 +631,6 @@ issues.new.open_milestone=Ouvrir un jalon
|
|||
issues.new.closed_milestone=Jalons fermés
|
||||
issues.new.assignees=Affecté à
|
||||
issues.new.clear_assignees=Supprimer les affectations
|
||||
issues.new.no_assignees=Aucune affectation
|
||||
issues.no_ref=Aucune branche/tag spécifiés
|
||||
issues.create=Créer un ticket
|
||||
issues.new_label=Nouvelle étiquette
|
||||
|
@ -994,7 +974,6 @@ settings.search_user_placeholder=Rechercher un utilisateur…
|
|||
settings.org_not_allowed_to_be_collaborator=Les organisations ne peuvent être ajoutées en tant que collaborateur.
|
||||
settings.user_is_org_member=L'utilisateur est un membre d'organisation qui ne peut être ajouté comme collaborateur.
|
||||
settings.add_webhook=Ajouter un déclencheur Web
|
||||
settings.hooks_desc=Les webhooks envoient automatiquement des requêtes HTTP POST vers un serveur lorsque certains événements Gitea sont déclenchés. Apprenez-en plus dans le <a target="_blank" rel="noopener" href="%s">guide webhooks</a>.
|
||||
settings.webhook_deletion=Retirer le Webhook
|
||||
settings.webhook_deletion_desc=Supprimer un webhook supprime ses paramètres et son historique. Continuer ?
|
||||
settings.webhook_deletion_success=Le webhook a été supprimé.
|
||||
|
@ -1011,7 +990,6 @@ settings.githook_edit_desc=Si un Hook est inactif, un exemple de contenu vous se
|
|||
settings.githook_name=Nom du Hook
|
||||
settings.githook_content=Contenu du Hook
|
||||
settings.update_githook=Mettre le Hook à jour
|
||||
settings.add_webhook_desc=Gitea enverra des requêtes <code>POST</code> avec un type de contenu donné à l'URL cible. Apprenez-en plus dans le <a target="_blank" rel="noopener" href="%s">guide webhooks</a>.
|
||||
settings.payload_url=URL cible
|
||||
settings.content_type=Type de contenu POST
|
||||
settings.secret=Confidentiel
|
||||
|
@ -1167,8 +1145,6 @@ branch.protected_deletion_failed=La branche '%s' est protégé. Il ne peut pas
|
|||
|
||||
topic.manage_topics=Gérer les sujets
|
||||
topic.done=Terminé
|
||||
topic.count_prompt=Vous ne pouvez pas sélectionner plus de 25 sujets
|
||||
topic.format_prompt=Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets (-), sans dépasser 35 caractères
|
||||
|
||||
[org]
|
||||
org_name_holder=Nom de l'organisation
|
||||
|
@ -1273,8 +1249,6 @@ dashboard.operation_switch=Basculer
|
|||
dashboard.operation_run=Exécuter
|
||||
dashboard.clean_unbind_oauth=Effacer les connexions OAuth associées
|
||||
dashboard.clean_unbind_oauth_success=Toutes les connexions OAuth associées ont été supprimées.
|
||||
dashboard.delete_inactivate_accounts=Supprimer tous les comptes inactifs
|
||||
dashboard.delete_inactivate_accounts_success=Tous les comptes inactifs ont été supprimés.
|
||||
dashboard.delete_repo_archives=Supprimer toutes les archives du dépôt
|
||||
dashboard.delete_repo_archives_success=Toutes les archives du dépôt ont été supprimées.
|
||||
dashboard.delete_missing_repos=Supprimer tous les dépôts dont les fichiers Git sont manquants
|
||||
|
@ -1482,7 +1456,6 @@ config.db_path=Emplacement
|
|||
config.service_config=Configuration du service
|
||||
config.register_email_confirm=Exiger la confirmation de l'e-mail lors de l'inscription
|
||||
config.disable_register=Désactiver le formulaire d'inscription
|
||||
config.allow_only_external_registration=N'autoriser l'inscription qu'à partir des services externes
|
||||
config.enable_openid_signup=Activer l'inscription avec OpenID
|
||||
config.enable_openid_signin=Activer la connexion avec OpenID
|
||||
config.show_registration_button=Afficher le bouton d'enregistrement
|
||||
|
|
|
@ -708,8 +708,6 @@ dashboard.operation_switch=Váltás
|
|||
dashboard.operation_run=Futtatás
|
||||
dashboard.clean_unbind_oauth=Megszüntetett OAuth kapcsolatok törlése
|
||||
dashboard.clean_unbind_oauth_success=Az összes megszüntetett OAuth kapcsolat törölve.
|
||||
dashboard.delete_inactivate_accounts=Minden inaktív fiók törlése
|
||||
dashboard.delete_inactivate_accounts_success=Minden inaktív fiók törölve.
|
||||
dashboard.reinit_missing_repos=Az összes Git tároló újra-inicializálása amihez léteznek bejegyzések
|
||||
dashboard.reinit_missing_repos_success=Az összes Git tároló amihez létezett bejegyzés újra lett iniciaizálva.
|
||||
dashboard.sync_external_users=Külső felhasználói adatok szinkronizálása
|
||||
|
|
|
@ -32,16 +32,8 @@ twofa_scratch=Kode Awal Dua Faktor
|
|||
passcode=Kode Akses
|
||||
|
||||
u2f_insert_key=Masukkan kunci keamanan anda
|
||||
u2f_sign_in=Tekan tombol pada kunci keamanan anda. Jika anda tidak menemukan tombol, masukkan kembali.
|
||||
u2f_press_button=Silahkan tekan tombol pada kunci keamanan anda…
|
||||
u2f_use_twofa=Menggunakan kode dua faktor dari telepon anda
|
||||
u2f_error=Kami tidak bisa membaca kunci keamanan anda!
|
||||
u2f_unsupported_browser=Browser anda tidak mendukung kunci U2F. Silakan mencoba browser lain.
|
||||
u2f_error_1=Terdapat kesalahan yang tidak diketahui. Mohon coba lagi.
|
||||
u2f_error_2=Pastikan bahwa anda menggunakan koneksi terenkripsi (https://) dan mengunjungi URL yang benar.
|
||||
u2f_error_3=Server tidak bisa melanjutkan permintaan anda.
|
||||
u2f_error_4=Kunci tidak layak untuk permintaan ini. Jika Anda mencoba untuk mendaftarkanya, pastikan bahwa kunci sudah tidak terdaftar.
|
||||
u2f_error_5=Timeout tercapai sebelum kunci anda bisa terbaca. Silahkan muat ulang untuk mencoba kembali.
|
||||
u2f_reload=Muat Ulang
|
||||
|
||||
repository=Repositori
|
||||
|
@ -75,7 +67,6 @@ cancel=Batal
|
|||
[install]
|
||||
install=Pemasangan
|
||||
title=Konfigurasi Awal
|
||||
docker_helper=Jika Anda menjalankan Gitea di dalam Docker, baca <a target="_blank" rel="noopener" href="%s">dokumentasi </a> sebelum mengubah pengaturan.
|
||||
requite_db_desc=Gitea memerlukan MySQL, PostgreSQL, MSSQL, SQLite3 atau TiDB.
|
||||
db_title=Pengaturan Basis Data
|
||||
db_type=Tipe Basis Data
|
||||
|
@ -789,8 +780,6 @@ dashboard.operation_switch=Beralih
|
|||
dashboard.operation_run=Lari
|
||||
dashboard.clean_unbind_oauth=Bersihkan koneksi OAuth yang tidak terikat
|
||||
dashboard.clean_unbind_oauth_success=Semua koneksi OAuth yang tidak terikat telah dihapus.
|
||||
dashboard.delete_inactivate_accounts=Hapus semua akun yang tidak aktif
|
||||
dashboard.delete_inactivate_accounts_success=Semua akun yang tidak aktif telah dihapus.
|
||||
dashboard.reinit_missing_repos=Menginstal kembali semua repositori Git yang hilang dimana ada catatan
|
||||
dashboard.reinit_missing_repos_success=Semua repositori Git yang hilang yang catatannya dan telah diinisialisasi ulang.
|
||||
dashboard.sync_external_users=Sinkronkan data pengguna eksternal
|
||||
|
|
|
@ -32,16 +32,8 @@ twofa_scratch=Codice di recupero per la verifica in due passaggi
|
|||
passcode=Codice di sicurezza
|
||||
|
||||
u2f_insert_key=Inserisci la chiave di sicurezza
|
||||
u2f_sign_in=Premi il pulsante sulla tua chiave di sicurezza. Se non riesci a trovare alcun pulsante, reinseriscilo.
|
||||
u2f_press_button=Si prega di premere il pulsante sulla tua chiave di sicurezza…
|
||||
u2f_use_twofa=Usa un codice di verifica in due passaggi dal tuo telefono
|
||||
u2f_error=Non riusciamo a leggere la tua chiave di sicurezza!
|
||||
u2f_unsupported_browser=Il tuo browser non supporta le chiavi U2F. Si prega di provare un altro browser.
|
||||
u2f_error_1=Si è verificato un errore sconosciuto. Si prega di riprovare.
|
||||
u2f_error_2=Si prega di assicurarsi che si sta utilizza una connessione crittografata (https://) e visitando l'URL corretto.
|
||||
u2f_error_3=Il server non ha potuto eseguire la richiesta.
|
||||
u2f_error_4=La chiave data non è idonea per questa richiesta. Se stai provando a registrarla, assicurati che la chiave non sia già stata registrata.
|
||||
u2f_error_5=Timeout raggiunto prima che la tua chiave potesse essere letta. Si prega di ricaricare per riprovare.
|
||||
u2f_reload=Ricarica
|
||||
|
||||
repository=Repository
|
||||
|
@ -75,7 +67,6 @@ cancel=Annulla
|
|||
[install]
|
||||
install=Installazione
|
||||
title=Configurazione Iniziale
|
||||
docker_helper=Se stai usando Gitea con Docker, si prega di leggere <a target="_blank" rel="noopener" href="%s">la documentazione</a> prima di cambiare qualsiasi impostazione.
|
||||
requite_db_desc=Gitea necessita di MySQL, PostgreSQL, MSSQL, SQLite3 o TiDB.
|
||||
db_title=Impostazioni Database
|
||||
db_type=Tipo di database
|
||||
|
@ -130,7 +121,6 @@ federated_avatar_lookup=Attiva i Federated Avatar
|
|||
federated_avatar_lookup_popup=Enable federated avatars lookup to use federated open source service based on libravatar.
|
||||
disable_registration=Disattiva Self-Registration
|
||||
disable_registration_popup=Disattiva la user self-registration. Solo gli amministratori saranno in grado di creare account.
|
||||
allow_only_external_registration_popup=Attiva la registrazione solo tramite servizi esterni.
|
||||
openid_signin=Attiva l'accesso OpenID
|
||||
openid_signin_popup=Attiva registrazione utente via OpenID.
|
||||
openid_signup=Attiva OpenID Self-Registration
|
||||
|
@ -463,14 +453,10 @@ then_enter_passcode=E immetti il codice di accesso indicato nell'applicazione:
|
|||
passcode_invalid=Il codice di accesso non è corretto. Riprova.
|
||||
twofa_enrolled=Il tuo account è stato registrato alla verifica in due passaggi. Conserva il token di sicurezza (%s) in un luogo sicuro in quanto viene visualizzato sono una volta!
|
||||
|
||||
u2f_desc=Le chiavi di sicurezza sono dispositivi hardware contenenti chiavi crittografiche. Potrebbero essere usate per la verifica in due passaggi.
|
||||
La chiave di sicurezza deve supportare lo standard <a href="https://fidoalliance.org/">FIDO U2F</a>.
|
||||
u2f_require_twofa=La verifica in due passaggi deve essere attiva per poter utilizzare le chiavi di protezione.
|
||||
u2f_register_key=Aggiungi chiave di sicurezza
|
||||
u2f_nickname=Nickname
|
||||
u2f_press_button=Premi il pulsante sulla tua chiave di sicurezza per registrarla.
|
||||
u2f_delete_key=Rimuovi chiave di sicurezza
|
||||
u2f_delete_key_desc=Se si rimuove una chiave di sicurezza non sarà più possibile effettuare l'accesso con essa. Sei sicuro?
|
||||
|
||||
manage_account_links=Gestisci gli account collegati
|
||||
manage_account_links_desc=Questi account esterni sono collegati al tuo account Gitea.
|
||||
|
@ -493,13 +479,8 @@ owner=Proprietario
|
|||
repo_name=Nome Repository
|
||||
repo_name_helper=Un buon nome per un repository è costituito da parole chiave corte, facili da ricordare e uniche.
|
||||
visibility=Visibilità
|
||||
visiblity_helper=Rendi il repository privato
|
||||
visiblity_helper_forced=L'amministratore del sito impone che le nuove repositories siano private.
|
||||
visiblity_fork_helper=(Questa modifica avrà effetto su tutti i fork)
|
||||
clone_helper=Hai bisogno di aiuto per la clonazione? Visita <a target="_blank" rel="noopener" href="%s">Aiuto</a>.
|
||||
fork_repo=Forka Repository
|
||||
fork_from=Forka da
|
||||
fork_visiblity_helper=La visibilità di un repository forkato non può essere modificata.
|
||||
repo_desc=Descrizione
|
||||
repo_lang=Lingua
|
||||
repo_gitignore_helper=Seleziona i templates di .gitignore.
|
||||
|
@ -614,7 +595,6 @@ editor.directory_is_a_file=Il nome di directory '%s' è già utilizzato come nom
|
|||
editor.file_is_a_symlink='%s' è un collegamento simbolico. I collegamenti simbolici non possono essere modificati nell'editor web
|
||||
editor.filename_is_a_directory=Il nome di file '%s' è già utilizzato come nome di una directory in questo repository.
|
||||
editor.file_editing_no_longer_exists=Il file in fase di modifica, '%s', non esiste più in questo repository.
|
||||
editor.file_changed_while_editing=I contenuti di questo file hanno subito dei cambiamento da quando hai iniziato la modifica. <a target="_blank" rel="noopener" href="%s">Clicca qui</a> per visualizzarli o <strong>Committa nuovemente i Cambiamenti</strong> per sovrascriverli.
|
||||
editor.file_already_exists=Un file di nome '%s' esiste già in questo repository.
|
||||
editor.no_changes_to_show=Non ci sono cambiamenti da mostrare.
|
||||
editor.fail_to_update_file=Errore durante l'aggiornamento/ creazione del file '%s' con errore: %v
|
||||
|
@ -651,7 +631,6 @@ issues.new.open_milestone=Apri Milestone
|
|||
issues.new.closed_milestone=Milestone chiuse
|
||||
issues.new.assignees=Assegnatari
|
||||
issues.new.clear_assignees=Cancella assegnatari
|
||||
issues.new.no_assignees=Nessuno assegnato
|
||||
issues.no_ref=Nessun Branch/Tag specificato
|
||||
issues.create=Crea Problema
|
||||
issues.new_label=Nuova etichetta
|
||||
|
@ -995,7 +974,6 @@ settings.search_user_placeholder=Ricerca utente…
|
|||
settings.org_not_allowed_to_be_collaborator=Le organizzazioni non possono essere aggiunte come un collaboratore.
|
||||
settings.user_is_org_member=L'utente è un membro di organizzazione che non può essere aggiunto come un collaboratore.
|
||||
settings.add_webhook=Aggiungi Webhook
|
||||
settings.hooks_desc=I Webhook effettuano automaticamente richieste HTTP POST ad un server quando si verificano determinati eventi Gitea. Per saperne di più leggi la <a target="_blank" rel="noopener" href="%s">guida ai webhooks</a>.
|
||||
settings.webhook_deletion=Rimuovi Webhook
|
||||
settings.webhook_deletion_desc=Rimuovere un webhook rimuove le sue impostazioni e la sua cronologia di consegna. Continuare?
|
||||
settings.webhook_deletion_success=Il webhook è stato rimosso.
|
||||
|
@ -1012,7 +990,6 @@ settings.githook_edit_desc=Se l'hook è inattivo, sarà presentato un contenuto
|
|||
settings.githook_name=Nome hook
|
||||
settings.githook_content=Contenuto hook
|
||||
settings.update_githook=Aggiorna Hook
|
||||
settings.add_webhook_desc=Gitea enverra des requêtes <code>POST</code> avec un type de contenu donné à l'URL cible. Apprenez-en plus dans le <a target="_blank" rel="noopener noreferrer" href="%s">guide webhooks</a>.
|
||||
settings.payload_url=URL di destinazione
|
||||
settings.content_type=Tipo di contenuto POST
|
||||
settings.secret=Segreto
|
||||
|
@ -1168,8 +1145,6 @@ branch.protected_deletion_failed=Il branch '%s' è protetto. Non può essere eli
|
|||
|
||||
topic.manage_topics=Gestisci argomenti
|
||||
topic.done=Fatto
|
||||
topic.count_prompt=Non puoi selezione più di 25 argomenti
|
||||
topic.format_prompt=Gli argomenti devono iniziare con una lettera o un numero, possono includere il carattere hiphens(-) e non possono essere più lunghi di 35 caratteri
|
||||
|
||||
[org]
|
||||
org_name_holder=Nome dell'Organizzazione
|
||||
|
@ -1274,8 +1249,6 @@ dashboard.operation_switch=Cambia
|
|||
dashboard.operation_run=Esegui
|
||||
dashboard.clean_unbind_oauth=Elimina connessione OAuth slegate
|
||||
dashboard.clean_unbind_oauth_success=Tutte le connessione OAuth slegate sono state eliminate.
|
||||
dashboard.delete_inactivate_accounts=Elimina tutti gli account inattivi
|
||||
dashboard.delete_inactivate_accounts_success=Tutti gli account inattivi sono stati eliminati.
|
||||
dashboard.delete_repo_archives=Elimina tutti gli archivi dei repository
|
||||
dashboard.delete_repo_archives_success=Tutti gli archivi del repository sono stati eliminati.
|
||||
dashboard.delete_missing_repos=Elimina tutti i repository mancanti dei loro file Git
|
||||
|
@ -1483,7 +1456,6 @@ config.db_path=Percorso
|
|||
config.service_config=Configurazione Servizio
|
||||
config.register_email_confirm=Richiedere la conferma Email per registrarsi
|
||||
config.disable_register=Disattiva Self-Registration
|
||||
config.allow_only_external_registration=Attiva la registrazione solo tramite servizi esterni
|
||||
config.enable_openid_signup=Attiva OpenID Self-Registration
|
||||
config.enable_openid_signin=Attiva l'accesso tramite OpenID
|
||||
config.show_registration_button=Mostra Pulsane Registrazione
|
||||
|
|
|
@ -708,8 +708,6 @@ dashboard.operation_switch=スイッチ
|
|||
dashboard.operation_run=実行
|
||||
dashboard.clean_unbind_oauth=関連付けられていないOAuth接続を削除
|
||||
dashboard.clean_unbind_oauth_success=すべての関連付けられていないOAuth接続は削除されました。
|
||||
dashboard.delete_inactivate_accounts=非アクティブのアカウントをすべて削除
|
||||
dashboard.delete_inactivate_accounts_success=すべての非アクティブなアカウントは削除されました。
|
||||
dashboard.reinit_missing_repos=レコードが存在するが見当たらないすべてのGitリポジトリを再初期化する
|
||||
dashboard.reinit_missing_repos_success=レコードが存在するが見当たらないすべてのGitリポジトリが再初期化されました。
|
||||
dashboard.sync_external_users=外部ユーザーデータの同期
|
||||
|
|
|
@ -591,7 +591,6 @@ total=총: %d
|
|||
dashboard.operation_name=작업 명
|
||||
dashboard.operation_switch=스위치
|
||||
dashboard.operation_run=실행
|
||||
dashboard.delete_inactivate_accounts=활성화되지 않은 모든 계정을 삭제합니다.
|
||||
dashboard.server_uptime=서버를 켠 시간
|
||||
dashboard.current_goroutine=현재 Go루틴
|
||||
dashboard.current_memory_usage=현재 메모리 사용율
|
||||
|
|
|
@ -32,16 +32,8 @@ twofa_scratch=Divu faktoru vienreizējais kods
|
|||
passcode=Kods
|
||||
|
||||
u2f_insert_key=Ievietojiet Jūsu drošības atslēgu
|
||||
u2f_sign_in=Nospiediet drošības atslēgas pogu. Ja nevarat to atrast, ievietojiet atkārtoti.
|
||||
u2f_press_button=Nospiediet drošības atslēgas pogu…
|
||||
u2f_use_twofa=Izmantot divu faktoru kodu no tālruņa
|
||||
u2f_error=Nav iespējams nolasīt drošības atslēgu!
|
||||
u2f_unsupported_browser=Jūsu pārlūks neatbalsta U2F atslēgas. Izmantojiet citu pārlūku.
|
||||
u2f_error_1=Notikusi nezināma kļūda. Atkārtojiet darbību vēlreiz.
|
||||
u2f_error_2=Pārliecinieties, ka izmantojat šifrētu savienojumu (https://) un apmeklējat pareizo URL.
|
||||
u2f_error_3=Serveris nevar apstrādāt Jūsu pieprasījumu.
|
||||
u2f_error_4=Nav iespējams izmantot atslēgu šim pieprasījumam. Ja mēģināt to reģistrēt, pārliecinieties, ka atslēga jau nav reģistrēta.
|
||||
u2f_error_5=Iestājusies noildze nolasot atslēgu. Pārlādējiet lapu, lai atkārtotu vēlreiz.
|
||||
u2f_reload=Pārlādēt
|
||||
|
||||
repository=Repozitorijs
|
||||
|
@ -75,7 +67,7 @@ cancel=Atcelt
|
|||
[install]
|
||||
install=Instalācija
|
||||
title=Sākotnējā konfigurācija
|
||||
docker_helper=Ja Gitea ir uzstādīts Docker konteinerī, izlasiet <a target="_blank" rel="noopener" href="%s">vadlīninas</a> pirms maināt iestatījumus.
|
||||
docker_helper=Ja Gitea ir uzstādīts Docker konteinerī, izlasiet <a target="_blank" rel="noopener noreferrer" href="%s">vadlīninas</a> pirms maināt iestatījumus.
|
||||
requite_db_desc=Gitea nepieciešams MySQL, PostgreSQL, MSSQL, SQLite3 vai TiDB.
|
||||
db_title=Datu bāzes iestatījumi
|
||||
db_type=Datu bāzes veids
|
||||
|
@ -130,7 +122,6 @@ federated_avatar_lookup=Iespējot apvienotās profila bildes
|
|||
federated_avatar_lookup_popup=Iespējot apvienoto profila bilžu meklētāju, lai izmantotu atvērtā koda apvienoto servisu balstītu uz libravatar.
|
||||
disable_registration=Atspējot lietotāju reģistrāciju
|
||||
disable_registration_popup=Atspējot iespēju reģistrēties. Tikai administratori varēs izveidot jaunus kontus.
|
||||
allow_only_external_registration_popup=Ļaut reģistrēties tikai izmantojot ārējos pakalpojumus.
|
||||
openid_signin=Iespējot OpenID autorizāciju
|
||||
openid_signin_popup=Iespējot lietotāju autorizāciju ar OpenID.
|
||||
openid_signup=Iespējot reģistrāciju, izmantojot OpenID
|
||||
|
@ -463,13 +454,10 @@ then_enter_passcode=Ievadiet piekļuves kodu no lietojumprogrammas:
|
|||
passcode_invalid=Nederīgs piekļuves kods. Mēģiniet ievadīt atkārtoti.
|
||||
twofa_enrolled=Kontam tagad ir ieslēgta divu faktoru autentifikācija. Saglabājiet savu vienreizējo kodu (%s), jo tas vairāk netiks parādīts!
|
||||
|
||||
u2f_desc=Drošības atslēgas ir aparatūras ierīces, kas satur kriptogrāfiskās atslēgas. Tās var tikt izmantotas, lai nodrošinātu divu faktoru autentifikāciju. Drošības atslēgām ir jāatbalsta <a href="https://fidoalliance.org/">FIDO U2F</a> standarts.
|
||||
u2f_require_twofa=Jābūt iespējotai divu faktoru autentifikācija, lai varētu izmantot drošības atslēgas.
|
||||
u2f_register_key=Pievienot drošības atslēgu
|
||||
u2f_nickname=Segvārds
|
||||
u2f_press_button=Nospiediet pogu uz Jūsu drošības atslēgas, lai to reģistrētu.
|
||||
u2f_delete_key=Noņemt drošības atslēgu
|
||||
u2f_delete_key_desc=Noņemot drošības atslēgu ar to vairs nebūs iespējams autorizēties. Vai turpināt?
|
||||
|
||||
manage_account_links=Pārvaldīt saistītos kontus
|
||||
manage_account_links_desc=Šādi ārējie konti ir piesaistīti Jūsu Gitea kontam.
|
||||
|
@ -492,13 +480,9 @@ owner=Īpašnieks
|
|||
repo_name=Repozitorija nosaukums
|
||||
repo_name_helper=Labi repozitorija nosaukumi ir īsi, unikāli un tādi, ko viegli atcerēties.
|
||||
visibility=Redzamība
|
||||
visiblity_helper=Padarīt repozitoriju privātu
|
||||
visiblity_helper_forced=Jūsu sistēmas administrators ir noteicis, ka visiem no jauna izveidotajiem repozitorijiem ir jābūt privātiem.
|
||||
visiblity_fork_helper=(Šīs vērtības maiņa ietekmēs arī visus atdalītos repozitorijus)
|
||||
clone_helper=Nepieciešama palīdzība kā veikt klonēšana? Apmeklējiet <a target="_blank" rel="noopener" href="%s">Palīdzība</a> lapu.
|
||||
clone_helper=Nepieciešama palīdzība klonēšanā? Apmeklē <a target="_blank" rel="noopener noreferrer" href="%s">palīdzības</a> sadaļu.
|
||||
fork_repo=Atdalīt repozitoriju
|
||||
fork_from=Atdalīt no
|
||||
fork_visiblity_helper=Atdalītam repozitorijam nav iespējams nomainīt tā redzamību.
|
||||
repo_desc=Apraksts
|
||||
repo_lang=Valoda
|
||||
repo_gitignore_helper=Izvēlieties .gitignore sagatavi.
|
||||
|
@ -613,7 +597,7 @@ editor.directory_is_a_file=Ieraksts '%s' vecāka ceļā ir fails nevis direktori
|
|||
editor.file_is_a_symlink=Fails '%s' ir norāde, kuru nav iespējams labot no tīmekļa redaktora
|
||||
editor.filename_is_a_directory=Faila nosaukums '%s' sakrīt ar direktorijas nosaukumu šajā repozitorijā.
|
||||
editor.file_editing_no_longer_exists=Fails '%s', ko labojat, vairs neeksistē šajā repozitorijā.
|
||||
editor.file_changed_while_editing=Faila saturs ir mainījies kopš sākāt to labot. Noklikšķiniet <a target="_blank" rel="noopener" href="%s">šeit</a>, lai apskatītu, vai <strong>Nosūtiet izmaiņas atkārtoti</strong>, lai pārrakstītu.
|
||||
editor.file_changed_while_editing=Faila saturs ir mainījies kopš sākāt to labot. Noklikšķiniet <a target="_blank" rel="noopener noreferrer" href="%s">šeit</a>, lai apskatītu, vai <strong>Nosūtiet izmaiņas atkārtoti</strong>, lai pārrakstītu.
|
||||
editor.file_already_exists=Fails ar nosaukumu '%s' šajā repozitorijā jau eksistē.
|
||||
editor.no_changes_to_show=Nav izmaiņu, ko rādīt.
|
||||
editor.fail_to_update_file=Neizdevās izmainīt/izveidot failu '%s', kļūda: %v
|
||||
|
@ -650,7 +634,6 @@ issues.new.open_milestone=Atvērtie atskaites punktus
|
|||
issues.new.closed_milestone=Aizvērtie atskaites punkti
|
||||
issues.new.assignees=Atbildīgie
|
||||
issues.new.clear_assignees=Noņemt atbildīgo
|
||||
issues.new.no_assignees=Nav atbildīgā
|
||||
issues.no_ref=Nav norādīts atzars/tags
|
||||
issues.create=Pieteikt problēmu
|
||||
issues.new_label=Jauna etiķete
|
||||
|
@ -994,7 +977,7 @@ settings.search_user_placeholder=Meklēt lietotāju…
|
|||
settings.org_not_allowed_to_be_collaborator=Organizācijas nevar tikt pievienotas kā līdzstrādnieki.
|
||||
settings.user_is_org_member=Lietotājs ir organizācijas biedrs, kas nevar tikt pievienots kā līdzstrādnieks.
|
||||
settings.add_webhook=Pievienot tīmekļa āķi
|
||||
settings.hooks_desc=Tīmekļa āķi ļauj paziņot ārējiem servisiem par noteiktiem notikumiem, kas notiek Gitea. Kad iestāsies kāds notikums, katram ārējā servisa URL tiks nosūtīts POST pieprasījums. Lai uzzinātu sīkāk skatieties <a target="_blank" rel="noopener" href="%s">tīmekļa āķu rokasgrāmatā</a>.
|
||||
settings.hooks_desc=Tīmekļa āķi ļauj paziņot ārējiem servisiem par noteiktiem notikumiem, kas notiek Gitea. Kad iestāsies kāds notikums, katram ārējā servisa URL tiks nosūtīts POST pieprasījums. Lai uzzinātu sīkāk skatieties <a target="_blank" rel="noopener noreferrer" href="%s">tīmekļa āķu rokasgrāmatā</a>.
|
||||
settings.webhook_deletion=Noņemt tīmekļa āķi
|
||||
settings.webhook_deletion_desc=Noņemot tīmekļa āķi, tiks dzēsti visi tā iestatījumi un piegādes vēsture. Vai turpināt?
|
||||
settings.webhook_deletion_success=Tīmekļa āķis tika noņemts.
|
||||
|
@ -1011,7 +994,7 @@ settings.githook_edit_desc=Ja āķis nav aktīvs, tiks attēlots piemērs kā to
|
|||
settings.githook_name=Āķa nosaukums
|
||||
settings.githook_content=Āķa saturs
|
||||
settings.update_githook=Labot āķi
|
||||
settings.add_webhook_desc=Uz norādīto URL tiks nosūtīts <code>POST</code> pieprasījums ar notikuma datiem. Detalizētāku informāciju ir iespējams uzzināt <a target="_blank" rel="noopener" href="%s">tīmekļa āķu rokasgrāmatā</a>.
|
||||
settings.add_webhook_desc=Uz norādīto URL tiks nosūtīts <code>POST</code> pieprasījums ar notikuma datiem. Detalizētāku informāciju ir iespējams uzzināt <a target="_blank" rel="noopener noreferrer" href="%s">tīmekļa āķu rokasgrāmatā</a>.
|
||||
settings.payload_url=Saņēmēja URL
|
||||
settings.content_type=POST satura tips
|
||||
settings.secret=Noslēpums
|
||||
|
@ -1167,8 +1150,6 @@ branch.protected_deletion_failed=Atzars '%s' ir aizsargāts. To nevar izdzēst.
|
|||
|
||||
topic.manage_topics=Pārvaldīt tēmas
|
||||
topic.done=Gatavs
|
||||
topic.count_prompt=Nevar pievienot vairāk kā 25 tēmas
|
||||
topic.format_prompt=Tēmas nosaukumam ir jāsākas ar burtu vai ciparu, tas var saturēt defisi(-), kā arī tas nevar būt garāks par 35 simboliem
|
||||
|
||||
[org]
|
||||
org_name_holder=Organizācijas nosaukums
|
||||
|
@ -1273,8 +1254,6 @@ dashboard.operation_switch=Pārslēgt
|
|||
dashboard.operation_run=Palaist
|
||||
dashboard.clean_unbind_oauth=Notīrīt nepiesaistītos OAuth savienojumus
|
||||
dashboard.clean_unbind_oauth_success=Visi nepiesaistītie OAuth savienojumu tika izdzēsti.
|
||||
dashboard.delete_inactivate_accounts=Dzēst visus neaktīvos kontus
|
||||
dashboard.delete_inactivate_accounts_success=Visi neaktīvie konti tika izdzēsti.
|
||||
dashboard.delete_repo_archives=Dzēst visu repozitoriju arhīvus
|
||||
dashboard.delete_repo_archives_success=Visu repozitoriju arhīvi tika izdzēsti.
|
||||
dashboard.delete_missing_repos=Dzēst visus repozitorijus, kam trūkst Git failu
|
||||
|
@ -1482,7 +1461,6 @@ config.db_path=Ceļš
|
|||
config.service_config=Pakalpojuma konfigurācija
|
||||
config.register_email_confirm=Reģistrējoties pieprasīt apstiprināt e-pasta adresi
|
||||
config.disable_register=Atspējot lietotāju reģistrāciju
|
||||
config.allow_only_external_registration=Ļaut reģistrēties tikai izmantojot ārējos pakalpojumus
|
||||
config.enable_openid_signup=Iespējot reģistrāciju, izmantojot OpenID
|
||||
config.enable_openid_signin=Iespējot OpenID autorizāciju
|
||||
config.show_registration_button=Rādīt reģistrēšanās pogu
|
||||
|
|
|
@ -32,14 +32,16 @@ twofa_scratch=Eenmalige twee factor authenticatie code
|
|||
passcode=PIN
|
||||
|
||||
u2f_insert_key=Uw beveiligingssleutel invoegen
|
||||
u2f_sign_in=Druk op de knop op uw beveiligingssleutel. Als u een knop niet kunt vinden, deze opnieuw invoegen.
|
||||
u2f_sign_in=Druk op de knop op uw beveiligingssleutel. Als u geen knop kunt vinden, voeg deze opnieuw in.
|
||||
u2f_press_button=Druk op de knop op uw beveiligingssleutel…
|
||||
u2f_use_twofa=Gebruik een twee-factor code van uw telefoon
|
||||
u2f_error=Wij kunnen niet uw beveiligingssleutel lezen!
|
||||
u2f_unsupported_browser=Uw browser geen ondersteund U2F keys. Probeer een andere browser.
|
||||
u2f_error=Wij kunnen uw beveiligingssleutel niet lezen.
|
||||
u2f_unsupported_browser=Uw browser ondersteunt geen U2F beveiligingssleutels.
|
||||
u2f_error_1=Er is een onbekende fout opgetreden. Probeer het opnieuw.
|
||||
u2f_error_2=Zorg voor een versleutelde verbinding (https://) en een bezoek aan de juiste URL.
|
||||
u2f_error_3=De server kan uw aanvraag niet verhandelen.
|
||||
u2f_error_2=Zorg ervoor dat u de juiste URL (https://) gebruikt.
|
||||
u2f_error_3=De server kan uw aanvraag niet verwerken.
|
||||
u2f_error_4=De beveiligingssleutel is niet toegestaan voor dit verzoek. Gelieve ervoor te zorgen dat de sleutel niet al is geregistreerd.
|
||||
u2f_error_5=Timeout bereikt voordat uw sleutel kon worden gelezen. Gelieve deze pagina opnieuw laden en probeer opnieuw.
|
||||
u2f_reload=Herladen
|
||||
|
||||
repository=Repository
|
||||
|
@ -51,9 +53,11 @@ new_mirror=Nieuwe kopie
|
|||
new_fork=Nieuwe Repository Fork
|
||||
new_org=Nieuwe organisatie
|
||||
manage_org=Beheer organisaties
|
||||
admin_panel=Website Administratie
|
||||
account_settings=Accountinstellingen
|
||||
settings=Instellingen
|
||||
your_profile=Profiel
|
||||
your_starred=Favoriet
|
||||
your_settings=Instellingen
|
||||
|
||||
all=Alles
|
||||
|
@ -71,7 +75,7 @@ cancel=Annuleren
|
|||
[install]
|
||||
install=Installatie
|
||||
title=Initiële configuratie
|
||||
docker_helper=Als u gebruik maakt van Gitea in Docker, lees dan de <a target="_blank" rel="noopener" href="%s">documentatie</a> voordat u iets verandert op deze pagina.
|
||||
docker_helper=Als je gitea draait in Docker, Lees eerst de <a target="_blank" rel="noopener noreferrer" href="%s">documentatie</a> voordat je een instelling aanpast.
|
||||
requite_db_desc=Gitea vereist MySQL, PostgreSQL, MSSQL, SQLite3 of TiDB.
|
||||
db_title=Database-instellingen
|
||||
db_type=Database-type
|
||||
|
@ -79,32 +83,65 @@ host=Server
|
|||
user=Gebruikersnaam
|
||||
password=Wachtwoord
|
||||
db_name=Database naam
|
||||
db_helper=Opmerking voor MySQL-gebruikers: gebruik het InnoDB opslagsysteem en de "utf8_general_ci" tekenset.
|
||||
ssl_mode=SSL
|
||||
path=Pad
|
||||
sqlite_helper=Bestandspad voor de SQLite3 of TiDB database.<br>Vul een volledig pad in als je Gitea als een service runt.
|
||||
err_empty_db_path=Het SQLite3 of TiDB database pad mag niet leeg zijn.
|
||||
err_invalid_tidb_name=De naam van de database van de TiDB mag geen '.' en '-' tekens bevatten.
|
||||
no_admin_and_disable_registration=U kunt zelf-registratie van de gebruiker niet uitschakelen zonder het maken van een administrator-account.
|
||||
err_empty_admin_password=Het administrator-wachtwoord mag niet leeg zijn.
|
||||
|
||||
general_title=Algemene Instellingen
|
||||
app_name=Naam site
|
||||
app_name_helper=U kan de naam van uw bedrijf hier invullen.
|
||||
repo_path=Repositories basis map
|
||||
repo_path_helper=Externe git repositories worden opgeslagen in deze map.
|
||||
lfs_path=Git LFS root pad
|
||||
lfs_path_helper=Bestanden bijgehouden door Git LFS zullenworden opgeslagen in deze map. Laat leeg om uit te schakelen.
|
||||
run_user=Uitvoeren als gebruiker
|
||||
run_user_helper=Geef de gebruikersnaam van het besturingssysteem waarop Gitea wordt uitgevoerd. Realiseer u dat deze gebruiker toegang tot het pad van de hoofdmap moet hebben.
|
||||
domain=SSH server-domein
|
||||
domain_helper=Domein of ip-adres voor SSH kloon URLs.
|
||||
ssh_port=SSH server-poort
|
||||
ssh_port_helper=Nummer van de poort die uw SSH-server gebruikt. Laat dit veld leeg om de SSH functie uit te schakelen.
|
||||
http_port=Gitea HTTP-poort
|
||||
http_port_helper=De poort waar de web server van Gitea naar gaat luisteren.
|
||||
app_url=Gitea base URL
|
||||
app_url_helper=Basisadres voor HTTP(S) kloon URL's en e-mailmeldingen.
|
||||
log_root_path=Log-pad
|
||||
log_root_path_helper=Logboekbestanden worden geschreven naar deze map.
|
||||
|
||||
optional_title=Optionele instellingen
|
||||
email_title=E-mail instellingen
|
||||
smtp_host=SMTP host
|
||||
smtp_from=E-mails versturen als
|
||||
smtp_from_helper=E-mailadres dat Gitea gaat gebruiken. Voer een gewoon e-mailadres in of gebruik de "Naam" <email@example.com> -indeling.
|
||||
mailer_user=SMTP gebruikersnaam
|
||||
mailer_password=SMTP wachtwoord
|
||||
register_confirm=E-mailbevestiging vereist bij registreren
|
||||
mail_notify=Activeer e-mailnotificaties
|
||||
server_service_title=Server en Third-Party Service-instellingen
|
||||
offline_mode=Lokale modus inschakelen
|
||||
offline_mode_popup=Schakel third-party content uit en gebruik alleen lokale middelen.
|
||||
disable_gravatar=Gravatar uitschakelen
|
||||
disable_gravatar_popup=Gravatar en derden avatar bronnen uitschakelen. Een standaard avatar zal worden gebruikt, tenzij een gebruiker een lokale avatar uploadt.
|
||||
federated_avatar_lookup=Federated Avatars toestaan
|
||||
federated_avatar_lookup_popup=Enable federated avatars lookup to use federated open source service based on libravatar.
|
||||
disable_registration=Schakel zelf registratie uit
|
||||
disable_registration_popup=Schakel zelfregistratie uit, alleen admins kunnen accounts maken.
|
||||
openid_signin=OpenID-inloggen inschakelen
|
||||
enable_captcha_popup=Vereis captcha validatie voor zelf-registratie van gebruiker.
|
||||
admin_name=Admin gebruikersnaam
|
||||
admin_password=Wachtwoord
|
||||
confirm_password=Verifieer wachtwoord
|
||||
admin_email=E-mail adres
|
||||
install_btn_confirm=Installeer Gitea
|
||||
test_git_failed=Git test niet gelukt: 'git' commando %v
|
||||
invalid_db_setting=De database instelling zijn niet correct: %v
|
||||
save_config_failed=Kan de configuratie niet opslaan: %v
|
||||
invalid_log_root_path=Ongeldig log-pad: %v
|
||||
default_keep_email_private=Verberg standaard alle e-mailadressen
|
||||
|
||||
[home]
|
||||
password_holder=Wachtwoord
|
||||
|
@ -146,6 +183,7 @@ scratch_code=Eenmalige code
|
|||
use_scratch_code=Gebruik een eenmalige code
|
||||
twofa_scratch_used=Je hebt je eenmalige code gebruikt. Je wordt omgeleid naar de tweeledige-authenticatie instellingen pagina zodat je de inschrijving van het apparaat kan verwijderen of een nieuwe eenmalige code kan genereren.
|
||||
twofa_scratch_token_incorrect=Je eenmalige code is onjuist.
|
||||
login_userpass=Inloggen
|
||||
login_openid=OpenID
|
||||
openid_connect_submit=Verbinden
|
||||
openid_connect_title=Verbind met een bestaand account
|
||||
|
@ -161,6 +199,7 @@ register_notify=Welkom bij Gitea
|
|||
[modal]
|
||||
yes=Ja
|
||||
no=Nee
|
||||
modify=Update
|
||||
|
||||
[form]
|
||||
UserName=Gebruikersnaam
|
||||
|
@ -200,6 +239,7 @@ auth_failed=Verificatie mislukt: %v
|
|||
target_branch_not_exist=Doel branch bestaat niet
|
||||
|
||||
[user]
|
||||
change_avatar=Wijzig je profielfoto…
|
||||
join_on=Aangemeld op
|
||||
repositories=repositories
|
||||
activity=Openbare activiteit
|
||||
|
@ -212,14 +252,17 @@ form.name_reserved=De gebruikersnaam '%s' is gereserveerd.
|
|||
|
||||
[settings]
|
||||
profile=Profiel
|
||||
account=Account
|
||||
password=Wachtwoord
|
||||
security=Beveiliging
|
||||
avatar=Profielfoto
|
||||
ssh_gpg_keys=SSH / GPG sleutels
|
||||
social=Sociale netwerk-accounts
|
||||
orgs=Beheer organisaties
|
||||
repos=Repositories
|
||||
delete=Verwijder account
|
||||
twofa=Twee factor authenticatie
|
||||
organization=Orgranisaties
|
||||
uid=uid
|
||||
|
||||
public_profile=Openbaar profiel
|
||||
|
@ -231,19 +274,27 @@ update_profile_success=Je profiel is bijgewerkt.
|
|||
change_username=Je gebruikersnaam is gewijzigd.
|
||||
continue=Doorgaan
|
||||
cancel=Annuleren
|
||||
language=Taal
|
||||
|
||||
federated_avatar_lookup=Gefedereerde Avatars inschakelen
|
||||
enable_custom_avatar=Aangepaste avatar inschakelen
|
||||
choose_new_avatar=Kies een nieuwe avatar
|
||||
update_avatar=Update Avatar
|
||||
delete_current_avatar=Verwijder huidige avatar
|
||||
|
||||
change_password=Wachtwoord bijwerken
|
||||
old_password=Huidige wachtwoord
|
||||
new_password=Nieuw wachtwoord
|
||||
retype_new_password=Herhaal Nieuw Wachtwoord
|
||||
|
||||
emails=E-mailadressen
|
||||
email_desc=Uw primaire e-mailadres zal worden gebruikt voor meldingen en andere administratieve taken.
|
||||
primary=Primair
|
||||
delete_email=Verwijder
|
||||
email_deletion=Verwijder e-mailadres
|
||||
add_new_email=Nieuw e-mailadres toevoegen
|
||||
add_openid=Voeg OpenID URL toe
|
||||
keep_email_private=Verberg e-mailadres
|
||||
|
||||
manage_ssh_keys=Beheer SSH sleutels
|
||||
manage_gpg_keys=Beheer GPG sleutels
|
||||
|
@ -256,6 +307,7 @@ subkeys=Subkeys
|
|||
key_id=Key-ID
|
||||
key_name=Sleutel naam
|
||||
key_content=Inhoud
|
||||
delete_key=Verwijder
|
||||
add_on=Toegevoegd op
|
||||
valid_until=Geldig tot en met
|
||||
valid_forever=Voor altijd geldig
|
||||
|
@ -281,6 +333,7 @@ twofa_disabled=Two-factor authenticatie is uitgeschakeld.
|
|||
scan_this_image=Scan deze afbeelding met je authenticatie applicatie:
|
||||
or_enter_secret=Of voer deze geheime code in: %s
|
||||
|
||||
u2f_nickname=Gebruikersnaam
|
||||
|
||||
|
||||
orgs_none=U bent geen lid van een organisatie.
|
||||
|
@ -288,6 +341,7 @@ repos_none=U bezit geen repositories
|
|||
|
||||
delete_account=Verwijder uw account
|
||||
confirm_delete_account=Bevestig verwijdering
|
||||
delete_account_title=Verwijder gebruikers account
|
||||
|
||||
[repo]
|
||||
owner=Eigenaar
|
||||
|
@ -325,6 +379,7 @@ watch=Volgen
|
|||
unstar=Ontster
|
||||
star=Ster
|
||||
fork=Vork
|
||||
download_archive=Download repository
|
||||
|
||||
no_desc=Geen omschrijving
|
||||
quick_guide=Snelstart gids
|
||||
|
@ -351,10 +406,17 @@ file_history=Geschiedenis
|
|||
file_view_raw=Weergave ruw bestand
|
||||
file_permalink=Permalink
|
||||
stored_lfs=Opgeslagen met Git LFS
|
||||
commit_graph=Commit grafiek
|
||||
|
||||
editor.new_file=Nieuw bestand
|
||||
editor.upload_file=Upload bestand
|
||||
editor.edit_file=Bewerk bestand
|
||||
editor.preview_changes=Voorbeeld tonen
|
||||
editor.edit_this_file=Bewerk bestand
|
||||
editor.delete_this_file=Verwijder bestand
|
||||
editor.name_your_file=Bestandsnaam…
|
||||
editor.or=of
|
||||
editor.cancel_lower=Annuleer
|
||||
editor.commit_changes=Wijzigingen doorvoeren
|
||||
editor.add_tmpl='%s/<filename>' toevoegen
|
||||
editor.add='%s' toevoegen
|
||||
|
@ -370,7 +432,9 @@ editor.fail_to_update_file=Update/maken van bestand '%s' is mislukt: %v
|
|||
editor.upload_files_to_dir=Bestanden uploaden naar '%s'
|
||||
|
||||
commits.commits=Commits
|
||||
commits.search=Zoek commits…
|
||||
commits.find=Zoek
|
||||
commits.search_all=Alle branches
|
||||
commits.author=Auteur
|
||||
commits.message=Bericht
|
||||
commits.date=Datum
|
||||
|
@ -391,9 +455,12 @@ issues.new.closed_milestone=Gesloten mijlpalen
|
|||
issues.no_ref=Geen Branch/Tag gespecificeerd
|
||||
issues.create=Maak probleem
|
||||
issues.new_label=Nieuw Label
|
||||
issues.new_label_placeholder=Labelnaam
|
||||
issues.new_label_desc_placeholder=Beschrijving
|
||||
issues.create_label=Maak label
|
||||
issues.label_templates.title=Laad een vooraf gedefinieerde set labels
|
||||
issues.label_templates.helper=Selecteer een labelset
|
||||
issues.label_templates.use=Label Set gebruiken
|
||||
issues.change_milestone_at='mijlpaal bewerkt van <b>%s</b> <b>%s</b> %s'
|
||||
issues.remove_milestone_at=' %s is verwijderd uit de <b>%s</b> mijlpaal'
|
||||
issues.deleted_milestone=` (verwijderd)`
|
||||
|
@ -402,6 +469,7 @@ issues.change_title_at='titel aangepast van <b>%s</b> naar <b>%s</b> %s'
|
|||
issues.open_tab=%d Open
|
||||
issues.close_tab=%d gesloten
|
||||
issues.filter_label=Label
|
||||
issues.filter_label_no_select=Alle labels
|
||||
issues.filter_milestone=Mijlpaal
|
||||
issues.filter_assignee=Aangewezene
|
||||
issues.filter_type=Type
|
||||
|
@ -435,6 +503,7 @@ issues.delete_comment_confirm=Weet u zeker dat u deze reactie wilt verwijderen?
|
|||
issues.no_content=Er is nog geen inhoud.
|
||||
issues.close_issue=Sluit
|
||||
issues.reopen_issue=Heropen
|
||||
issues.reopen_comment_issue=Heropen en geef commentaar
|
||||
issues.create_comment=Reageer
|
||||
issues.closed_at=`gesloten om <a id="%[1]s" href="#%[1]s">%[2]s</a>`
|
||||
issues.reopened_at=`heropend om <a id="%[1]s" href="#%[1]s">%[2]s</a>`
|
||||
|
@ -451,6 +520,8 @@ issues.label_count=%d labels
|
|||
issues.label_open_issues=%d geopende problemen
|
||||
issues.label_edit=Bewerken
|
||||
issues.label_delete=Verwijder
|
||||
issues.label_modify=Label bewerken
|
||||
issues.label_deletion=Verwijder label
|
||||
issues.label.filter_sort.alphabetically=Alfabetisch
|
||||
issues.label.filter_sort.reverse_alphabetically=Omgekeerd alfabetisch
|
||||
issues.label.filter_sort.by_size=Grootte
|
||||
|
@ -465,6 +536,7 @@ issues.start_tracking_history=`%s is begonnen`
|
|||
issues.tracking_already_started=Je houd al tijd bij voor dit <a href="%s">issue</a>!`
|
||||
issues.stop_tracking=Stop
|
||||
issues.stop_tracking_history=`gestopt met werken aan %s`
|
||||
issues.add_time_short=Timer toevoegen
|
||||
issues.add_time_cancel=Annuleren
|
||||
issues.add_time_history=`heeft besteedde tijd toegevoegd: %s`
|
||||
issues.add_time_hours=Uren
|
||||
|
@ -480,6 +552,7 @@ pulls.title_desc=wil %[1]d commits van <code>%[2]s</code> samenvoegen met <code>
|
|||
pulls.merged_title_desc=heeft %[1]d commits samengevoegd van <code>%[2]s</code> naar <code>%[3]s</code> %[4]s
|
||||
pulls.tab_conversation=Discussie
|
||||
pulls.tab_commits=Commits
|
||||
pulls.tab_files=Bestanden gewijzigd
|
||||
pulls.reopen_to_merge=Heropen dit pull request aub om een een merge actie uit te voeren.
|
||||
pulls.merged=Samengevoegd
|
||||
pulls.can_auto_merge_desc=Dit pull-request kan automatisch samengevoegd worden.
|
||||
|
@ -510,6 +583,7 @@ milestones.filter_sort.least_issues=Minste problemen
|
|||
wiki=Wiki
|
||||
wiki.page=Pagina
|
||||
wiki.filter_page=Filter pagina
|
||||
wiki.new_page=Pagina
|
||||
wiki.default_commit_message=Schrijf een notitie over deze aanpassing (optioneel).
|
||||
wiki.save_page=Pagina opslaan
|
||||
wiki.last_commit_info=%s heeft deze pagina aangepast %s
|
||||
|
@ -558,6 +632,8 @@ search.search_repo=Zoek repository
|
|||
search.results=Zoek resultaat voor "%s" in <a href="%s">%s</a>
|
||||
|
||||
settings=Instellingen
|
||||
settings.options=Repository
|
||||
settings.collaboration.admin=Beheerder
|
||||
settings.collaboration.write=Schrijf
|
||||
settings.collaboration.read=Lees
|
||||
settings.collaboration.undefined=Ongedefinieerd
|
||||
|
@ -565,6 +641,7 @@ settings.hooks=Webhooks
|
|||
settings.githooks=Git-hooks
|
||||
settings.basic_settings=Basis instellingen
|
||||
settings.mirror_settings=Kopie Settings
|
||||
settings.site=Website
|
||||
settings.update_settings=Instellingen bewerken
|
||||
settings.advanced_settings=Geavanceerde opties
|
||||
settings.external_wiki_url=Externe wiki-URL
|
||||
|
@ -573,28 +650,38 @@ settings.tracker_issue_style.numeric=Nummeriek
|
|||
settings.tracker_issue_style.alphanumeric=Alfanummeriek
|
||||
settings.danger_zone=Gevaren zone
|
||||
settings.new_owner_has_same_repo=De nieuwe eigenaar heeft al een repository met deze naam
|
||||
settings.convert_confirm=Converteer Repository
|
||||
settings.transfer=Eigendom overdragen
|
||||
settings.delete=Verwijder deze repository
|
||||
settings.delete_notices_1=- Deze bewerking kan <strong>NIET</strong> ongedaan gemaakt worden.
|
||||
settings.transfer_owner=Nieuwe eigenaar
|
||||
settings.confirm_delete=Verwijder repository
|
||||
settings.delete_collaborator=Verwijder
|
||||
settings.search_user_placeholder=Zoek gebruiker…
|
||||
settings.add_webhook=Webhook toevoegen
|
||||
settings.webhook.test_delivery=Test-bezorging
|
||||
settings.webhook.request=Verzoek
|
||||
settings.webhook.response=Antwoord
|
||||
settings.webhook.headers=Headers
|
||||
settings.webhook.payload=Inhoud
|
||||
settings.webhook.body=Inhoud
|
||||
settings.githook_edit_desc=Als haak niet actief is, zal monster inhoud worden gepresenteerd. Verlof inhoud leeg zal deze haak uitschakelen.
|
||||
settings.githook_name=Haak naam
|
||||
settings.githook_content=Haak inhoud
|
||||
settings.update_githook=Haak bijwerken
|
||||
settings.payload_url=Doel URL
|
||||
settings.secret=Geheim
|
||||
settings.slack_username=Gebruikersnaam
|
||||
settings.slack_icon_url=Icoon URL
|
||||
settings.discord_username=Gebruikersnaam
|
||||
settings.discord_icon_url=Icoon URL
|
||||
settings.slack_color=Kleur
|
||||
settings.event_send_everything=Alle gebeurtenissen
|
||||
settings.event_create=Creëer
|
||||
settings.event_delete=Verwijder
|
||||
settings.event_fork=Fork
|
||||
settings.event_fork_desc=Repository geforked
|
||||
settings.event_release=Release
|
||||
settings.event_pull_request=Pull request
|
||||
settings.event_push=Push
|
||||
settings.event_repository=Repository
|
||||
|
@ -606,12 +693,15 @@ settings.slack_domain=Slack domein
|
|||
settings.slack_channel=Slack kanaal
|
||||
settings.deploy_keys=Installeer sleutels
|
||||
settings.add_deploy_key=Toevoegen deploy sleutel
|
||||
settings.is_writable=Schrijf toegang inschakelen
|
||||
settings.title=Titel
|
||||
settings.deploy_key_content=Inhoud
|
||||
settings.branches=Branches
|
||||
settings.protected_branch=Branch bescherming
|
||||
settings.protected_branch_can_push=Push toestaan?
|
||||
settings.protected_branch_can_push_no=U mag niet pushen
|
||||
settings.protect_whitelist_search_users=Zoek gebruiker…
|
||||
settings.protect_whitelist_search_teams=Zoek teams…
|
||||
settings.add_protected_branch=Bescherming aanzetten
|
||||
settings.delete_protected_branch=Bescherming uitzetten
|
||||
settings.choose_branch=Kies een branch…
|
||||
|
@ -646,15 +736,20 @@ release.loading=Laden…
|
|||
release.cancel=Annuleren
|
||||
release.publish=Release publiceren
|
||||
release.save_draft=Concept opslaan
|
||||
release.deletion=Verwijder release
|
||||
release.downloads=Downloads
|
||||
|
||||
branch.name=Branch naam
|
||||
branch.search=Zoek branches
|
||||
branch.delete_head=Verwijder
|
||||
branch.delete=Verwijder branch '%s'
|
||||
branch.delete_html=Verwijder branch
|
||||
branch.create_branch=Maak branch <strong>%s</strong>
|
||||
branch.create_from=van '%s'
|
||||
branch.deleted_by=Verwijderd door %s
|
||||
|
||||
topic.manage_topics=Beheer topics
|
||||
topic.done=Klaar
|
||||
|
||||
[org]
|
||||
org_name_holder=Organisatienaam
|
||||
|
@ -670,9 +765,11 @@ create_team=Maak team
|
|||
org_desc=Omschrijving
|
||||
team_name=Teamnaam
|
||||
team_desc=Omschrijving
|
||||
team_permission_desc=Machtiging
|
||||
|
||||
|
||||
settings=Instellingen
|
||||
settings.options=Organisatie
|
||||
settings.full_name=Volledige naam
|
||||
settings.website=Website
|
||||
settings.location=Locatie
|
||||
|
@ -681,8 +778,12 @@ settings.update_setting_success=Organisatie instellingen zijn succesvol bijgewer
|
|||
settings.delete=Verwijder organisatie
|
||||
settings.delete_account=Verwijder deze organisatie
|
||||
settings.confirm_delete_account=Bevestig verwijdering
|
||||
settings.delete_org_title=Verwijder organisatie
|
||||
|
||||
members.membership_visibility=Zichtbaarheid lidmaatschap:
|
||||
members.public=Zichtbaar
|
||||
members.private=Verborgen
|
||||
members.private_helper=maak zichtbaar
|
||||
members.member_role=Rol van lid:
|
||||
members.owner=Eigenaar
|
||||
members.member=Lid
|
||||
|
@ -699,7 +800,9 @@ teams.no_desc=Dit team heeft geen omschrijving
|
|||
teams.settings=Instellingen
|
||||
teams.members=Team leden
|
||||
teams.update_settings=Instellingen bijwerken
|
||||
teams.delete_team=Verwijder team
|
||||
teams.add_team_member=Nieuwe team lid aanmaken
|
||||
teams.delete_team_title=Verwijder team
|
||||
teams.delete_team_success=Het team is verwijderd.
|
||||
teams.repositories=Teamrepositories
|
||||
teams.search_repo_placeholder=Repository zoeken…
|
||||
|
@ -709,6 +812,7 @@ teams.add_nonexistent_repo=De opslagplaats die u probeert toe te voegen bestaat
|
|||
|
||||
[admin]
|
||||
dashboard=Overzicht
|
||||
users=Gebruikersacount
|
||||
organizations=Organisaties
|
||||
repositories=Repositories
|
||||
config=Configuratie
|
||||
|
@ -718,11 +822,11 @@ first_page=Eerste
|
|||
last_page=Laatste
|
||||
total=Totaal: %d
|
||||
|
||||
dashboard.statistic=Overzicht
|
||||
dashboard.system_status=Systeemtatus
|
||||
dashboard.operation_name=Bewerking naam
|
||||
dashboard.operation_switch=Omschakelen
|
||||
dashboard.operation_run=Uitvoeren
|
||||
dashboard.delete_inactivate_accounts=Verwijder alle inactieve accounts
|
||||
dashboard.delete_inactivate_accounts_success=Alle inactieve accounts zijn verwijderd.
|
||||
dashboard.sync_external_users=Externe gebruikersgegevens synchroniseren
|
||||
dashboard.server_uptime=Uptime server
|
||||
dashboard.current_goroutine=Huidige Goroutines
|
||||
|
@ -752,14 +856,18 @@ dashboard.total_gc_pause=Totaal GC verwerkingstijd
|
|||
dashboard.last_gc_pause=Laatste GC verwerkingstijd
|
||||
dashboard.gc_times=GC verwerkingen
|
||||
|
||||
users.new_account=Nieuw account aanmaken
|
||||
users.name=Gebruikersnaam
|
||||
users.activated=Geactiveerd
|
||||
users.admin=Beheerder
|
||||
users.repos=Repos
|
||||
users.created=Aangemaakt
|
||||
users.last_login=Laatste keer ingelogd
|
||||
users.edit=Bewerken
|
||||
users.auth_source=Authenticatiebron
|
||||
users.local=Lokaal
|
||||
users.update_profile=Update gebruikers account
|
||||
users.delete_account=Verwijder gebruikers account
|
||||
|
||||
orgs.org_manage_panel=Organisaties beheren
|
||||
orgs.name=Naam
|
||||
|
@ -772,6 +880,7 @@ repos.name=Naam
|
|||
repos.private=Prive
|
||||
repos.watches=Volgers
|
||||
repos.stars=Sterren
|
||||
repos.forks=Forks
|
||||
repos.issues=Kwesties
|
||||
repos.size=Grootte
|
||||
|
||||
|
@ -787,6 +896,8 @@ auths.host=Host
|
|||
auths.port=Poort
|
||||
auths.bind_dn=Binden DN
|
||||
auths.bind_password=Bind wachtwoord
|
||||
auths.attribute_username=Gebruikersnaam attribuut
|
||||
auths.search_page_size=Paginagrootte
|
||||
auths.filter=Gebruikersfilter
|
||||
auths.admin_filter=Beheerdersfilter
|
||||
auths.smtp_auth=SMTP-authenticatietype
|
||||
|
@ -804,12 +915,16 @@ auths.enable_auto_register=Activeer automatische registratie
|
|||
auths.tips=Tips
|
||||
|
||||
config.server_config=Serverconfiguratie
|
||||
config.app_name=Naam site
|
||||
config.app_ver=Gitea versie
|
||||
config.app_url=Gitea basis URL
|
||||
config.disable_router_log=Router-log uitschakelen
|
||||
config.run_mode=Uitvoer modus
|
||||
config.git_version=Git versie
|
||||
config.repo_root_path=Repository basis pad
|
||||
config.lfs_root_path=LFS rootpad
|
||||
config.static_file_root_path=Statische bestanden basis pad
|
||||
config.log_file_root_path=Log-pad
|
||||
config.script_type=Script type
|
||||
config.reverse_auth_user=Omgekeerde verificatie gebruiker
|
||||
|
||||
|
@ -828,6 +943,7 @@ config.db_type=Type
|
|||
config.db_host=Host
|
||||
config.db_name=Naam
|
||||
config.db_user=Gebruikersnaam
|
||||
config.db_ssl_mode=SSL
|
||||
config.db_path=Pad
|
||||
|
||||
config.service_config=Serviceconfiguratie
|
||||
|
@ -846,6 +962,7 @@ config.mailer_host=Host
|
|||
config.mailer_user=Gebruiker
|
||||
config.mailer_use_sendmail=Gebruik Sendmail
|
||||
config.mailer_sendmail_path=Sendmail pad
|
||||
config.send_test_mail=Test e-mail verzenden
|
||||
|
||||
config.oauth_config=OAuth-configuratie
|
||||
config.oauth_enabled=Ingeschakeld
|
||||
|
|
|
@ -832,8 +832,6 @@ dashboard.operation_switch=Przełącz
|
|||
dashboard.operation_run=Uruchom
|
||||
dashboard.clean_unbind_oauth=Usuń wychodzące połączenia OAuth
|
||||
dashboard.clean_unbind_oauth_success=Wszystkie połączenia wychodzące OAuth zostały usunięte.
|
||||
dashboard.delete_inactivate_accounts=Usuń wszystkie nieaktywne konta
|
||||
dashboard.delete_inactivate_accounts_success=Wszystkie nieaktywne konta zostały usunięte.
|
||||
dashboard.reinit_missing_repos=Ponownie zainicjalizuj wszystkie brakujące repozytoria Git, dla których istnieją rekordy
|
||||
dashboard.reinit_missing_repos_success=Wszystkie brakujące repozytoria Git, dla których istnieją rekordy, zostały zainicjalizowane.
|
||||
dashboard.sync_external_users=Synchronizuj zewnętrzne dane użytkownika
|
||||
|
|
|
@ -32,16 +32,16 @@ twofa_scratch=Código de backup da autenticação de dois fatores
|
|||
passcode=Senha
|
||||
|
||||
u2f_insert_key=Insira sua chave de segurança
|
||||
u2f_sign_in=Pressione o botão na sua chave de segurança. Se você não encontrar um botão, insira-o novamente.
|
||||
u2f_sign_in=Pressione o botão na sua chave de segurança. Se a sua chave de segurança não tiver um botão, insira-a novamente.
|
||||
u2f_press_button=Por favor, pressione o botão na sua chave de segurança...
|
||||
u2f_use_twofa=Use um código de dois fatores no seu telefone
|
||||
u2f_error=Não conseguimos ler sua chave de segurança!
|
||||
u2f_unsupported_browser=Seu navegador não suporta chaves U2F. Por favor, tente outro navegador.
|
||||
u2f_error=Não foi possível ler sua chave de segurança.
|
||||
u2f_unsupported_browser=Seu navegador não suporta chaves de segurança U2F.
|
||||
u2f_error_1=Ocorreu um erro desconhecido. Por favor, tente novamente.
|
||||
u2f_error_2=Por favor, certifique-se de que você está usando uma conexão criptografada (https://) e visite a URL correta.
|
||||
u2f_error_3=O servidor não pôde prosseguir com sua solicitação.
|
||||
u2f_error_4=A chave apresentada não é elegível para esta solicitação. Se você tentar registrá-la, certifique-se de que a chave já não é registrada.
|
||||
u2f_error_5=Tempo limite atingido antes de sua chave poder ser lida. Por favor, recarregue para tentar novamente.
|
||||
u2f_error_2=Por favor, certifique-se de usar a URL correto, criptografado (https://).
|
||||
u2f_error_3=O servidor não pôde processar sua solicitação.
|
||||
u2f_error_4=A chave de segurança não é permitida para esta solicitação. Por favor, certifique-se que a chave já não está registrada.
|
||||
u2f_error_5=Tempo limite atingido antes de sua chave poder ser lida. Por favor, recarregue esta página e tente novamente.
|
||||
u2f_reload=Recarregar
|
||||
|
||||
repository=Repositório
|
||||
|
@ -53,7 +53,7 @@ new_mirror=Novo mirror
|
|||
new_fork=Novo Fork de Repositório
|
||||
new_org=Nova organização
|
||||
manage_org=Gerenciar organizações
|
||||
admin_panel=Administração do site
|
||||
admin_panel=Administração geral
|
||||
account_settings=Configurações da conta
|
||||
settings=Configurações
|
||||
your_profile=Perfil
|
||||
|
@ -75,7 +75,7 @@ cancel=Cancelar
|
|||
[install]
|
||||
install=Instalação
|
||||
title=Configuração inicial
|
||||
docker_helper=Se você está rodando o Gitea dentro do Docker, por favor leia a <a target="_blank" rel="noopener" href="%s">documentação</a> cuidadosamente antes de alterar qualquer coisa nesta página.
|
||||
docker_helper=Se você está rodando o Gitea dentro do Docker, por favor leia a <a target="_blank" rel="noopener noreferrer" href="%s">documentação</a> cuidadosamente antes de alterar qualquer coisa nesta página.
|
||||
requite_db_desc=Gitea requer MySQL, PostgreSQL, MSSQL, SQLite3 ou TiDB.
|
||||
db_title=Configurações de banco de dados
|
||||
db_type=Tipo de banco de dados
|
||||
|
@ -93,7 +93,7 @@ no_admin_and_disable_registration=Você não pode desabilitar o auto-cadastro do
|
|||
err_empty_admin_password=A senha do administrador não pode ser em branco.
|
||||
|
||||
general_title=Configurações gerais
|
||||
app_name=Título do site
|
||||
app_name=Nome do servidor
|
||||
app_name_helper=Você pode inserir o nome da empresa aqui.
|
||||
repo_path=Caminho raíz do repositório
|
||||
repo_path_helper=Todos os repositórios remotos do Git serão salvos neste diretório.
|
||||
|
@ -130,7 +130,7 @@ federated_avatar_lookup=Habilitar avatares federativos
|
|||
federated_avatar_lookup_popup=Habilitar a busca federativa de avatares a usar o serviço federativo de código aberto baseado no libravatar.
|
||||
disable_registration=Desabilitar auto-cadastro
|
||||
disable_registration_popup=Desabilitar auto-cadastro de usuário. Somente os administradores serão capazes de criar novas contas de usuário.
|
||||
allow_only_external_registration_popup=Habilitar o cadastro apenas por meio de serviços externos.
|
||||
allow_only_external_registration_popup=Permitir cadastro somente por meio de serviços externos
|
||||
openid_signin=Habilitar acesso via OpenID
|
||||
openid_signin_popup=Habilitar o acesso de usuários via OpenID.
|
||||
openid_signup=Habilitar o auto-cadastro via OpenID
|
||||
|
@ -463,13 +463,13 @@ then_enter_passcode=E insira a senha mostrada no aplicativo:
|
|||
passcode_invalid=Esse código de acesso é inválido. Tente novamente.
|
||||
twofa_enrolled=Sua conta foi inscrita na autenticação de dois fatores. Armazene seu token de backup (%s) em um local seguro, pois ele é exibido apenas uma vez!
|
||||
|
||||
u2f_desc=Chaves de segurança são dispositivos de hardware que contém chaves de criptografia. Elas podem ser usadas para autenticação de dois fatores. A chave de segurança deve suportar o padrão <a href="https://fidoalliance.org/">FIDO U2F</a>.
|
||||
u2f_require_twofa=Autenticação de dois fatores deve estar inscrita para usar chaves de segurança.
|
||||
u2f_desc=Chaves de segurança são dispositivos de hardware contendo chaves criptográficas. Eles podem ser usados para autenticação de dois fatores. As chaves de segurança devem suportar o padrão <a rel="noreferrer" href="https://fidoalliance.org/">FIDO U2F</a>.
|
||||
u2f_require_twofa=Sua conta deve estar inscrita na autenticação de dois fatores para usar as chaves de segurança.
|
||||
u2f_register_key=Adicionar chave de segurança
|
||||
u2f_nickname=Apelido
|
||||
u2f_press_button=Pressione o botão na sua chave de segurança para registrá-la.
|
||||
u2f_delete_key=Remover chave de segurança
|
||||
u2f_delete_key_desc=Se você remover uma chave de segurança você não poderá mais acessar com ela. Tem certeza?
|
||||
u2f_delete_key_desc=Se você remover uma chave de segurança, não poderá mais entrar com ela. Continuar?
|
||||
|
||||
manage_account_links=Gerenciar contas vinculadas
|
||||
manage_account_links_desc=Estas contas externas estão vinculadas a sua conta de Gitea.
|
||||
|
@ -492,13 +492,13 @@ owner=Proprietário
|
|||
repo_name=Nome do repositório
|
||||
repo_name_helper=Um bom nome de repositório é composto por palavras curtas, memorizáveis e únicas.
|
||||
visibility=Visibilidade
|
||||
visiblity_helper=Tornar este repositório privado
|
||||
visiblity_helper_forced=O administrador do site força novos repositórios a serem privados.
|
||||
visiblity_fork_helper=(Esta alteração irá afetar todos os forks.)
|
||||
clone_helper=Precisa de ajuda com o clone? Visite a <a target="_blank" rel="noopener" href="%s">Ajuda</a>.
|
||||
visibility_helper=Tornar este repositório privado
|
||||
visibility_helper_forced=O administrador do site força novos repositórios a serem privados.
|
||||
visibility_fork_helper=(Esta alteração irá afetar todos os forks.)
|
||||
clone_helper=Precisa de ajuda com o clone? Visite a <a target="_blank" rel="noopener noreferrer" href="%s">Ajuda</a>.
|
||||
fork_repo=Fork do repositório
|
||||
fork_from=Fork de
|
||||
fork_visiblity_helper=A visibilidade do fork de um repositório não pode ser alterada.
|
||||
fork_visibility_helper=A visibilidade do fork de um repositório não pode ser alterada.
|
||||
repo_desc=Descrição
|
||||
repo_lang=Linguagem
|
||||
repo_gitignore_helper=Selecione modelos do .gitignore.
|
||||
|
@ -597,7 +597,7 @@ editor.name_your_file=Nomeie o seu arquivo…
|
|||
editor.filename_help=Adicione um diretório digitando seu nome seguido por uma barra ('/'). Remova um diretório digitando o backspace no início do campo de entrada.
|
||||
editor.or=ou
|
||||
editor.cancel_lower=Cancelar
|
||||
editor.commit_changes=Confirmar alterações
|
||||
editor.commit_changes=Realizar commit das alterações
|
||||
editor.add_tmpl=Adicionar '%s/<filename>'
|
||||
editor.add=Adicionar '%s'
|
||||
editor.update=Atualizar '%s'
|
||||
|
@ -613,7 +613,7 @@ editor.directory_is_a_file=O nome do diretório '%s' já é usado como um nome d
|
|||
editor.file_is_a_symlink='%s' é um link simbólico. Links simbólicos não podem ser editados no editor da web
|
||||
editor.filename_is_a_directory=O nome do arquivo '%s' já é usado como um nome de diretório neste repositório.
|
||||
editor.file_editing_no_longer_exists=O arquivo que está sendo editado, '%s', não existe mais neste repositório.
|
||||
editor.file_changed_while_editing=O conteúdo do arquivo mudou desde que você começou a editar. <a target="_blank" rel="noopener" href="%s">Clique aqui</a> para ver o que foi editado ou <strong>clique em Commit novamemente</strong> para sobreescrever essas mudanças.
|
||||
editor.file_changed_while_editing=O conteúdo do arquivo mudou desde que você começou a editar. <a target="_blank" rel="noopener noreferrer" href="%s">Clique aqui</a> para ver o que foi editado ou <strong>clique em Commit novamemente</strong> para sobreescrever essas mudanças.
|
||||
editor.file_already_exists=Um arquivo com nome '%s' já existe neste repositório.
|
||||
editor.no_changes_to_show=Nenhuma alteração a mostrar.
|
||||
editor.fail_to_update_file=Houve erro ao criar ou atualizar arquivo '%s': %v
|
||||
|
@ -650,7 +650,7 @@ issues.new.open_milestone=Marcos abertos
|
|||
issues.new.closed_milestone=Marcos fechados
|
||||
issues.new.assignees=Responsáveis
|
||||
issues.new.clear_assignees=Limpar responsáveis
|
||||
issues.new.no_assignees=Nenhum responsável
|
||||
issues.new.no_assignees=Sem responsável
|
||||
issues.no_ref=Nenhum branch/tag especificado
|
||||
issues.create=Criar issue
|
||||
issues.new_label=Nova etiqueta
|
||||
|
@ -682,7 +682,7 @@ issues.filter_milestone_no_select=Todos os marcos
|
|||
issues.filter_assignee=Atribuído
|
||||
issues.filter_assginee_no_select=Todos os responsáveis
|
||||
issues.filter_type=Tipo
|
||||
issues.filter_type.all_issues=Todos os issues
|
||||
issues.filter_type.all_issues=Todas as issues
|
||||
issues.filter_type.assigned_to_you=Atribuídos a você
|
||||
issues.filter_type.created_by_you=Criado por você
|
||||
issues.filter_type.mentioning_you=Mencionando você
|
||||
|
@ -781,6 +781,33 @@ issues.due_date_added=adicionou a data limite %s %s
|
|||
issues.due_date_modified=modificou a data limite para %s ao invés de %s %s
|
||||
issues.due_date_remove=removeu a data limite %s %s
|
||||
issues.due_date_overdue=Em atraso
|
||||
issues.due_date_invalid=A data limite é inválida ou está fora do intervalo. Por favor, use o formato 'dd/mm/aaaa'.
|
||||
issues.dependency.title=Dependências
|
||||
issues.dependency.issue_no_dependencies=Esta issue atualmente não tem dependências.
|
||||
issues.dependency.pr_no_dependencies=Este pull request atualmente não tem dependências.
|
||||
issues.dependency.add=Adicione...
|
||||
issues.dependency.cancel=Cancelar
|
||||
issues.dependency.remove=Remover
|
||||
issues.dependency.added_dependency=`<a href="%[1]s">%[2]s</a> adicionou uma nova dependência %[3]s`
|
||||
issues.dependency.removed_dependency=`<a href="%[1]s">%[2]s</a> removeu uma dependência %[3]s`
|
||||
issues.dependency.issue_closing_blockedby=Fechamento deste pull request está bloqueado pelas seguintes issues
|
||||
issues.dependency.pr_closing_blockedby=Fechamento desta issue está bloqueado pelas seguintes issues
|
||||
issues.dependency.issue_close_blocks=Esta issue bloqueia o fechamento das seguintes issues
|
||||
issues.dependency.pr_close_blocks=Este pull request bloqueia o fechamento das seguintes issues
|
||||
issues.dependency.issue_close_blocked=Você precisa fechar todas as issues que bloqueiam esta issue antes de poder fechá-la.
|
||||
issues.dependency.pr_close_blocked=Você precisa fechar todas issues que bloqueiam este pull request antes de poder fazer o merge.
|
||||
issues.dependency.blocks_short=Bloqueia
|
||||
issues.dependency.blocked_by_short=Depende de
|
||||
issues.dependency.remove_header=Remover dependência
|
||||
issues.dependency.issue_remove_text=Isto removerá a dependência desta issue. Continuar?
|
||||
issues.dependency.pr_remove_text=Isto removerá a dependência deste pull request. Continuar?
|
||||
issues.dependency.setting=Habilitar dependências para issues e pull requests
|
||||
issues.dependency.add_error_same_issue=Você não pode fazer uma issue depender de si mesma.
|
||||
issues.dependency.add_error_dep_issue_not_exist=Issue dependente não existe.
|
||||
issues.dependency.add_error_dep_not_exist=Dependência não existe.
|
||||
issues.dependency.add_error_dep_exists=Dependência já existe.
|
||||
issues.dependency.add_error_cannot_create_circular=Você não pode criar uma dependência com duas issues bloqueando uma a outra.
|
||||
issues.dependency.add_error_dep_not_same_repo=Ambas as issues devem estar no mesmo repositório.
|
||||
|
||||
pulls.desc=Habilitar solicitações de merge e revisões de código.
|
||||
pulls.new=Novo pull request
|
||||
|
@ -793,7 +820,7 @@ pulls.no_results=Nada encontrado.
|
|||
pulls.nothing_to_compare=Estes branches são iguais. Não há nenhuma necessidade para criar um pull request.
|
||||
pulls.has_pull_request=`Um pull request entre esses branches já existe: <a href="%[1]s/pulls/%[3]d">%[2]s#%[3]d</a>`
|
||||
pulls.create=Criar pull request
|
||||
pulls.title_desc=quer mesclar %[1]d commits de <code>%[2]s</code> em <code>%[3]s</code>
|
||||
pulls.title_desc=quer realizar o merge de %[1]d commits de <code>%[2]s</code> em <code>%[3]s</code>
|
||||
pulls.merged_title_desc=fez merge dos %[1]d commits de <code>%[2]s</code> em <code>%[3]s</code> %[4]s
|
||||
pulls.tab_conversation=Conversação
|
||||
pulls.tab_commits=Commits
|
||||
|
@ -818,14 +845,14 @@ milestones.new=Novo marco
|
|||
milestones.open_tab=%d Aberto
|
||||
milestones.close_tab=%d Fechado
|
||||
milestones.closed=Fechado %s
|
||||
milestones.no_due_date=Sem prazo
|
||||
milestones.no_due_date=Sem data limite
|
||||
milestones.open=Reabrir
|
||||
milestones.close=Fechar
|
||||
milestones.new_subheader=Marcos organizam as issues e acompanham o progresso.
|
||||
milestones.create=Criar marco
|
||||
milestones.title=Título
|
||||
milestones.desc=Descrição
|
||||
milestones.due_date=Prazo (opcional)
|
||||
milestones.due_date=Data limite (opcional)
|
||||
milestones.clear=Limpar
|
||||
milestones.invalid_due_date_format=Formato da data limite deve ser 'dd/mm/aaaa'.
|
||||
milestones.create_success=O marco '%s' foi criado.
|
||||
|
@ -837,8 +864,8 @@ milestones.edit_success=O marco '%s' foi atualizado.
|
|||
milestones.deletion=Excluir marco
|
||||
milestones.deletion_desc=A exclusão deste marco irá removê-lo de todas as issues. Tem certeza que deseja continuar?
|
||||
milestones.deletion_success=O marco foi excluído.
|
||||
milestones.filter_sort.closest_due_date=Prazo mais próximo
|
||||
milestones.filter_sort.furthest_due_date=Prazo mais longe
|
||||
milestones.filter_sort.closest_due_date=Data limite mais próxima
|
||||
milestones.filter_sort.furthest_due_date=Data limite mais distante
|
||||
milestones.filter_sort.least_complete=Menos completo
|
||||
milestones.filter_sort.most_complete=Mais completo
|
||||
milestones.filter_sort.most_issues=Com mais issues
|
||||
|
@ -894,15 +921,15 @@ activity.closed_issues_count_1=Issue fechada
|
|||
activity.closed_issues_count_n=Issues fechadas
|
||||
activity.title.issues_1=+%d Issue
|
||||
activity.title.issues_n=+%d Issues
|
||||
activity.title.issues_closed_by=%s fechado por %s
|
||||
activity.title.issues_created_by=%s criado por %s
|
||||
activity.title.issues_closed_by=%s fechada por %s
|
||||
activity.title.issues_created_by=%s criada por %s
|
||||
activity.closed_issue_label=Fechado
|
||||
activity.new_issues_count_1=Nova issue
|
||||
activity.new_issues_count_n=Novas issues
|
||||
activity.new_issue_label=Aberto
|
||||
activity.title.unresolved_conv_1=%d conversa não resolvida
|
||||
activity.title.unresolved_conv_n=%d conversas não resolvidas
|
||||
activity.unresolved_conv_desc=Estes problemas foram recentemente alterados e pull requests ainda não foram resolvidos.
|
||||
activity.unresolved_conv_desc=Estas issues foram recentemente alteradas e pull requests ainda não foram resolvidos.
|
||||
activity.unresolved_conv_label=Abrir
|
||||
activity.title.releases_1=%d Versão
|
||||
activity.title.releases_n=%d Versões
|
||||
|
@ -975,7 +1002,7 @@ settings.confirm_wiki_delete=Excluir dados da wiki
|
|||
settings.wiki_deletion_success=Os dados da wiki do repositório foi excluídos.
|
||||
settings.delete=Excluir este repositório
|
||||
settings.delete_desc=A exclusão de um repositório é permanente e não pode ser desfeita.
|
||||
settings.delete_notices_1=-Esta operação <strong>NÃO PODERÁ</strong> ser desfeita.
|
||||
settings.delete_notices_1=- Esta operação <strong>NÃO PODERÁ</strong> ser desfeita.
|
||||
settings.delete_notices_2=- Essa operação excluirá permanentemente o repositório <strong>%s</strong>, incluindo código, issues, comentários, dados da wiki e configurações do colaborador.
|
||||
settings.delete_notices_fork_1=- Forks deste repositório se tornarão independentes após a exclusão.
|
||||
settings.deletion_success=O repositório foi excluído.
|
||||
|
@ -994,7 +1021,7 @@ settings.search_user_placeholder=Pesquisar usuário...
|
|||
settings.org_not_allowed_to_be_collaborator=Organizações não podem ser adicionadas como um colaborador.
|
||||
settings.user_is_org_member=O usuário é um membro da organização e não pode ser adicionado como um colaborador.
|
||||
settings.add_webhook=Adicionar webhook
|
||||
settings.hooks_desc=Webhooks automaticamente fazem requisições de HTTP POST para um servidor quando acionados determinados eventos de Gitea. Leia mais no <a target="_blank" rel="noopener" href="%s">guia de webhooks</a>.
|
||||
settings.hooks_desc=Webhooks automaticamente fazem requisições de HTTP POST para um servidor quando acionados determinados eventos de Gitea. Leia mais no <a target="_blank" rel="noopener noreferrer" href="%s">guia de webhooks</a>.
|
||||
settings.webhook_deletion=Remover webhook
|
||||
settings.webhook_deletion_desc=A exclusão de um webhook exclui suas configurações e o histórico de entrega. Continuar?
|
||||
settings.webhook_deletion_success=O webhook foi removido.
|
||||
|
@ -1011,7 +1038,7 @@ settings.githook_edit_desc=Se o hook não estiver ativo, o conteúdo de exemplo
|
|||
settings.githook_name=Nome do Hook
|
||||
settings.githook_content=Conteúdo do Hook
|
||||
settings.update_githook=Atualizar Hook
|
||||
settings.add_webhook_desc=Gitea enviará requisições <code>POST</code> com um tipo de conteúdo especificado para a URL de destino. Leia mais no <a target="_blank" rel="noopener" href="%s">guia de webhooks</a>.
|
||||
settings.add_webhook_desc=Gitea enviará requisições <code>POST</code> com um tipo de conteúdo especificado para a URL de destino. Leia mais no <a target="_blank" rel="noopener noreferrer" href="%s">guia de webhooks</a>.
|
||||
settings.payload_url=URL de destino
|
||||
settings.content_type=Tipo de conteúdo POST
|
||||
settings.secret=Senha
|
||||
|
@ -1078,16 +1105,16 @@ settings.protected_branch_can_push_no=Você não pode fazer push
|
|||
settings.branch_protection=Proteção de branch para '<b>%s</b>'
|
||||
settings.protect_this_branch=Habilitar proteção de branch
|
||||
settings.protect_this_branch_desc=Evitar exclusão e desabilitar Git force pushing para o branch.
|
||||
settings.protect_whitelist_committers=Habilitar lista branca de push
|
||||
settings.protect_whitelist_committers_desc=Permitir que usuários ou equipes da lista branca possam contornar restrições de push.
|
||||
settings.protect_whitelist_users=Usuários da lista branca permitidos para realizar push:
|
||||
settings.protect_whitelist_committers=Habilitar controle de permissão de push
|
||||
settings.protect_whitelist_committers_desc=Permitir que determinados usuários ou equipes possam realizar push.
|
||||
settings.protect_whitelist_users=Usuários com permissão para realizar push:
|
||||
settings.protect_whitelist_search_users=Pesquisar usuários...
|
||||
settings.protect_whitelist_teams=Equipes da lista branca permitidos para realizar push:
|
||||
settings.protect_whitelist_teams=Equipes com permissão para realizar push:
|
||||
settings.protect_whitelist_search_teams=Pesquisar equipes...
|
||||
settings.protect_merge_whitelist_committers=Habilitar lista branca de merge
|
||||
settings.protect_merge_whitelist_committers_desc=Permitir que somente usuários ou equipes que estão na lista branca façam merge de pull requests neste branch.
|
||||
settings.protect_merge_whitelist_users=Usuários da lista branca permitidos para realizar merge:
|
||||
settings.protect_merge_whitelist_teams=Times da lista branca permitidos para realizar merge:
|
||||
settings.protect_merge_whitelist_committers=Habilitar controle de permissão de merge
|
||||
settings.protect_merge_whitelist_committers_desc=Permitir que determinados usuários ou equipes possam realizar merge de pull requests neste branch.
|
||||
settings.protect_merge_whitelist_users=Usuários com permissão para realizar merge:
|
||||
settings.protect_merge_whitelist_teams=Equipes com permissão para realizar merge:
|
||||
settings.add_protected_branch=Habilitar proteção
|
||||
settings.delete_protected_branch=Desabilitar proteção
|
||||
settings.update_protect_branch_success=Proteção do branch '%s' foi atualizada.
|
||||
|
@ -1097,6 +1124,7 @@ settings.protected_branch_deletion_desc=Desabilitar a proteção de branch permi
|
|||
settings.default_branch_desc=Selecione um branch padrão para pull requests e commits de código:
|
||||
settings.choose_branch=Escolha um branch...
|
||||
settings.no_protected_branch=Não há branches protegidos.
|
||||
settings.edit_protected_branch=Editar
|
||||
|
||||
diff.browse_source=Ver código fonte
|
||||
diff.parent=pai
|
||||
|
@ -1168,7 +1196,7 @@ branch.protected_deletion_failed=A branch '%s' está protegida. Ela não pode se
|
|||
topic.manage_topics=Gerenciar Tópicos
|
||||
topic.done=Feito
|
||||
topic.count_prompt=Você não pode selecionar mais de 25 tópicos
|
||||
topic.format_prompt=Tópicos devem começar com uma letra ou um número, podem incluir hífens (-) e não devem ter mais de 35 caracteres
|
||||
topic.format_prompt=Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
|
||||
|
||||
[org]
|
||||
org_name_holder=Nome da organização
|
||||
|
@ -1273,8 +1301,8 @@ dashboard.operation_switch=Trocar
|
|||
dashboard.operation_run=Executar
|
||||
dashboard.clean_unbind_oauth=Limpar conexões OAuth não vinculadas
|
||||
dashboard.clean_unbind_oauth_success=Todas as conexões de OAuth não vinculadas foram excluídas.
|
||||
dashboard.delete_inactivate_accounts=Excluir todas as contas inativas
|
||||
dashboard.delete_inactivate_accounts_success=Todas as contas inativas foram excluídas.
|
||||
dashboard.delete_inactivate_accounts=Excluir todas as contas não ativadas
|
||||
dashboard.delete_inactivate_accounts_success=Todas as contas não ativadas foram excluídas.
|
||||
dashboard.delete_repo_archives=Excluir todos os arquivos do repositório
|
||||
dashboard.delete_repo_archives_success=Todos os arquivos do repositório foram excluídos.
|
||||
dashboard.delete_missing_repos=Excluir todos os repositórios que não possuem seus arquivos Git
|
||||
|
@ -1442,7 +1470,7 @@ auths.deletion_success=A fonte de autenticação foi excluída.
|
|||
auths.login_source_exist=A fonte de autenticação '%s' já existe.
|
||||
|
||||
config.server_config=Configuração do servidor
|
||||
config.app_name=Título do site
|
||||
config.app_name=Nome do servidor
|
||||
config.app_ver=Versão do Gitea
|
||||
config.app_url=URL base do Gitea
|
||||
config.custom_conf=Caminho do Arquivo de Configuração
|
||||
|
@ -1482,7 +1510,7 @@ config.db_path=Caminho
|
|||
config.service_config=Configuração do serviço
|
||||
config.register_email_confirm=Exigir confirmação de e-mail para se cadastrar
|
||||
config.disable_register=Desabilitar auto-cadastro
|
||||
config.allow_only_external_registration=Habilitar o cadastro apenas por meio de serviços externos
|
||||
config.allow_only_external_registration=Permitir cadastro somente por meio de serviços externos
|
||||
config.enable_openid_signup=Habilitar o auto-cadastro via OpenID
|
||||
config.enable_openid_signin=Habilitar acesso via OpenID
|
||||
config.show_registration_button=Mostrar botão de cadastro
|
||||
|
@ -1498,6 +1526,7 @@ config.enable_timetracking=Habilitar contador de tempo
|
|||
config.default_enable_timetracking=Habilitar o contador de tempo por padrão
|
||||
config.default_allow_only_contributors_to_track_time=Permitir que apenas os colaboradores acompanhem o contador de tempo
|
||||
config.no_reply_address=Ocultar domínio de e-mail
|
||||
config.default_enable_dependencies=Habilitar dependências de issue por padrão
|
||||
|
||||
config.webhook_config=Configuração de Hook da Web
|
||||
config.queue_length=Tamanho da fila
|
||||
|
@ -1585,7 +1614,7 @@ create_repo=criou o repositório <a href="%s">%s</a>
|
|||
rename_repo=renomeou o repositório <code>%[1]s</code> para <a href="%[2]s">%[3]s</a>
|
||||
commit_repo=fez push para <a href="%[1]s/src/%[2]s">%[3]s</a> em <a href="%[1]s">%[4]s</a>
|
||||
create_issue=`abriu a issue <a href="%s/issues/%s">%s#%[2]s</a>`
|
||||
close_issue=`fechou issue <a href="%s/issues/%s">%s#%[2]s</a>`
|
||||
close_issue=`fechou a issue <a href="%s/issues/%s">%s#%[2]s</a>`
|
||||
reopen_issue=`reabriu a issue <a href="%s/issues/%s">%s#%[2]s</a>`
|
||||
create_pull_request=`criou o pull request <a href="%s/pulls/%s">%s#%[2]s</a>`
|
||||
close_pull_request=`fechou o pull request <a href="%s/pulls/%s">%s#%[2]s</a>`
|
||||
|
|
|
@ -32,16 +32,8 @@ twofa_scratch=Двухфакторный scratch-код
|
|||
passcode=Пароль
|
||||
|
||||
u2f_insert_key=Вставьте ключ безопасности
|
||||
u2f_sign_in=Нажмите кнопку на ключе безопасности. Если вы не можете найти кнопку, вставьте его снова.
|
||||
u2f_press_button=Пожалуйста нажмите кнопку на вашем ключе безопасности…
|
||||
u2f_use_twofa=Используйте двухфакторный код с телефона
|
||||
u2f_error=Мы не можем прочитать ваш ключ безопасности!
|
||||
u2f_unsupported_browser=Ваш браузер не поддерживает U2F ключи. Попробуйте другой браузер.
|
||||
u2f_error_1=Произошла неизвестная ошибка. Повторите попытку.
|
||||
u2f_error_2=Пожалуйста, убедитесь, что вы используете зашифрованное соединение (https://) и используете правильный URL.
|
||||
u2f_error_3=Серверу не удалось обработать ваш запрос.
|
||||
u2f_error_4=Представленный ключ не подходит для этого запроса. Если вы пытаетесь зарегистрировать его, убедитесь, что ключ еще не зарегистрирован.
|
||||
u2f_error_5=Таймаут достигнут до того, как ваш ключ был прочитан. Перезагрузите, чтобы повторить попытку.
|
||||
u2f_reload=Обновить
|
||||
|
||||
repository=Репозиторий
|
||||
|
@ -75,7 +67,7 @@ cancel=Отмена
|
|||
[install]
|
||||
install=Установка
|
||||
title=Начальная конфигурация
|
||||
docker_helper=Если вы запускаете Gitea внутри Docker, пожалуйста внимательно прочтите <a target="_blank" rel="noopener" href="%s">документацию</a> перед тем, как что-либо изменить на этой странице.
|
||||
docker_helper=Если вы запускаете Gitea внутри Docker, пожалуйста внимательно прочтите <a target="_blank" rel="noopener noreferrer" href="%s">документацию</a> перед тем, как изменить любые настройки.
|
||||
requite_db_desc=Gitea требует MySQL, PostgreSQL, MSSQL, SQLite3 или TiDB.
|
||||
db_title=Настройки базы данных
|
||||
db_type=Тип базы данных
|
||||
|
@ -130,7 +122,6 @@ federated_avatar_lookup=Включить федеративные аватары
|
|||
federated_avatar_lookup_popup=Включите поиск федеративного аватара для использования службы с открытым исходным кодом на основе libravatar.
|
||||
disable_registration=Отключить самостоятельную регистрацию
|
||||
disable_registration_popup=Запретить самостоятельную регистрацию. Только администраторы смогут создавать новые учетные записи пользователей.
|
||||
allow_only_external_registration_popup=Включить регистрацию только через сторонние сервисы.
|
||||
openid_signin=Включение входа через OpenID
|
||||
openid_signin_popup=Включение входа через OpenID.
|
||||
openid_signup=Включить саморегистрацию OpenID
|
||||
|
@ -463,13 +454,10 @@ then_enter_passcode=И введите пароль, показанный в пр
|
|||
passcode_invalid=Неверный пароль. попробуйте снова.
|
||||
twofa_enrolled=Для вашего аккаунта была включена двухфакторная аутентификация. Сохраните ваш scratch-токен (%s), он не сохраняется на сервере!
|
||||
|
||||
u2f_desc=Ключами безопасности являются аппаратные устройства, содержащие криптографические ключи. Они могут использоваться для двухфакторной аутентификации. Ключ безопасности должен поддерживать стандарт <a href="https://fidoalliance.org/">FIDO U2F</a>.
|
||||
u2f_require_twofa=Для использования ключей безопасности необходимо включить двухфакторную аутентификацию.
|
||||
u2f_register_key=Добавить ключ безопасности
|
||||
u2f_nickname=Имя пользователя
|
||||
u2f_press_button=Нажмите кнопку на ключе безопасности, чтобы зарегистрировать его.
|
||||
u2f_delete_key=Удалить ключ безопасности
|
||||
u2f_delete_key_desc=Если вы удалите ключ безопасности, вы не сможете использовать его для входа. Вы уверены?
|
||||
|
||||
manage_account_links=Управление привязанными аккаунтами
|
||||
manage_account_links_desc=Эти внешние аккаунты привязаны к вашему аккаунту Gitea.
|
||||
|
@ -492,13 +480,13 @@ owner=Владелец
|
|||
repo_name=Имя репозитория
|
||||
repo_name_helper=Лучшие названия репозиториев состоят из коротких, легко запоминаемых и уникальных ключевых слов.
|
||||
visibility=Видимость
|
||||
visiblity_helper=Сделать репозиторий приватным
|
||||
visiblity_helper_forced=Администратор сайта настроил параметр видимости новых репозиториев. Репозиторий приватный по умолчанию.
|
||||
visiblity_fork_helper=(Изменение этого повлияет на все форки.)
|
||||
clone_helper=Нужна помощь в клонировании? Посетите страницу <a target="_blank" rel="noopener" href="%s">справки</a>.
|
||||
visibility_helper=Сделать репозиторий приватным
|
||||
visibility_helper_forced=Администратор сайта настроил параметр видимости новых репозиториев. Репозиторий приватный по умолчанию.
|
||||
visibility_fork_helper=(Изменение этого повлияет на все форки.)
|
||||
clone_helper=Нужна помощь в клонировании? Посетите страницу <a target="_blank" rel="noopener noreferrer" href="%s">помощи</a>.
|
||||
fork_repo=Форкнуть репозиторий
|
||||
fork_from=Форк от
|
||||
fork_visiblity_helper=Видимость форкнутого репозитория изменить нельзя.
|
||||
fork_visibility_helper=Видимость форкнутого репозитория изменить нельзя.
|
||||
repo_desc=Описание
|
||||
repo_lang=Язык
|
||||
repo_gitignore_helper=Выберите шаблон .gitignore.
|
||||
|
@ -613,7 +601,7 @@ editor.directory_is_a_file=Имя каталога '%s' уже использу
|
|||
editor.file_is_a_symlink='%s' является символической ссылкой. Символические ссылки нельзя редактировать в веб-редакторе
|
||||
editor.filename_is_a_directory=Имя файла '%s' уже используется в качестве имени каталога в этом репозитории.
|
||||
editor.file_editing_no_longer_exists=Редактируемый файл '%s' больше не существует в этом репозитории.
|
||||
editor.file_changed_while_editing=Содержимое файла изменилось с момента начала редактирования. <a target="_blank" rel="noopener" href="%s">Нажмите здесь</a>, чтобы увидеть, что было изменено, или <strong>Зафиксировать изменения снова</strong>, чтобы заменить их.
|
||||
editor.file_changed_while_editing=Содержимое файла изменилось с момента начала редактирования. <a target="_blank" rel="noopener noreferrer" href="%s">Нажмите здесь</a>, чтобы увидеть, что было изменено, или <strong>Зафиксировать изменения снова</strong>, чтобы заменить их.
|
||||
editor.file_already_exists=Файл с именем '%s' уже существует в репозитории.
|
||||
editor.no_changes_to_show=Нет изменений.
|
||||
editor.fail_to_update_file=Не удалось обновить/создать файл «%s» из-за ошибки: %v
|
||||
|
@ -650,7 +638,6 @@ issues.new.open_milestone=Открыть этап
|
|||
issues.new.closed_milestone=Завершенные этапы
|
||||
issues.new.assignees=Назначенные
|
||||
issues.new.clear_assignees=Убрать ответственных
|
||||
issues.new.no_assignees=Никто не назначен
|
||||
issues.no_ref=Не указана ветка или тэг
|
||||
issues.create=Добавить задачу
|
||||
issues.new_label=Новая метка
|
||||
|
@ -994,7 +981,7 @@ settings.search_user_placeholder=Поиск пользователя…
|
|||
settings.org_not_allowed_to_be_collaborator=Организации не могут быть добавлены как соавторы.
|
||||
settings.user_is_org_member=Пользователь является членом организации, члены которой не могут быть добавлены в качестве соавтора.
|
||||
settings.add_webhook=Добавить Webhook
|
||||
settings.hooks_desc=Webhooks позволяют внешним службам получать уведомления при возникновении определенных событий на Gitea. При возникновении указанных событий мы отправим запрос POST на каждый заданный вами URL. Узнать больше можно в нашем <a target="_blank" rel="noopener" href="%s">руководстве по webhooks</a>.
|
||||
settings.hooks_desc=Webhooks позволяют внешним службам получать уведомления при возникновении определенных событий на Gitea. При возникновении указанных событий мы отправим запрос POST на каждый заданный вами URL. Узнать больше можно в нашем <a target="_blank" rel="noopener noreferrer" href="%s">руководстве по webhooks</a>.
|
||||
settings.webhook_deletion=Удалить Webhook
|
||||
settings.webhook_deletion_desc=Удаление этого веб-хука приведет к удалению всей связанной с ним информации, включая историю. Хотите продолжить?
|
||||
settings.webhook_deletion_success=Webhook был удалён.
|
||||
|
@ -1011,7 +998,7 @@ settings.githook_edit_desc=Если хук не активен, будет по
|
|||
settings.githook_name=Название Hook'a
|
||||
settings.githook_content=Перехватить содержание
|
||||
settings.update_githook=Обновить Hook
|
||||
settings.add_webhook_desc=Gitea будет оправлять <code>POST</code> запросы на указанный URL адрес, с информацией о происходящих событиях. Вы также можете указать формат данных (JSON, x-www-form-urlencoded, XML и т.д.). Подробности на странице <a target="_blank" rel="noopener" href="%s">инструкции по использованию webhooks</a>.
|
||||
settings.add_webhook_desc=Gitea будет оправлять <code>POST</code> запросы на указанный URL адрес, с информацией о происходящих событиях. Подробности на странице <a target="_blank" rel="noopener noreferrer" href="%s">инструкции по использованию webhooks</a>.
|
||||
settings.payload_url=URL обработчика
|
||||
settings.content_type=Тип содержимого
|
||||
settings.secret=Секретный ключ
|
||||
|
@ -1097,6 +1084,7 @@ settings.protected_branch_deletion_desc=Любой пользователь с
|
|||
settings.default_branch_desc=Главная ветка является "базовой" для вашего репозитория, на которую по умолчанию направлены все Pull Request'ы и которая является лицом вашего репозитория. Первое, что увидит посетитель — это содержимое главной ветки. Выберите её из уже существующих:
|
||||
settings.choose_branch=Выберите ветку…
|
||||
settings.no_protected_branch=Нет защищённых веток.
|
||||
settings.edit_protected_branch=Редактировать
|
||||
|
||||
diff.browse_source=Просмотр исходного кода
|
||||
diff.parent=Родитель
|
||||
|
@ -1167,8 +1155,6 @@ branch.protected_deletion_failed=Ветка '%s' защищена. Её нель
|
|||
|
||||
topic.manage_topics=Редактировать тематические метки
|
||||
topic.done=Сохранить
|
||||
topic.count_prompt=Вы не можете выбрать более 25 тем
|
||||
topic.format_prompt=Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов
|
||||
|
||||
[org]
|
||||
org_name_holder=Название организации
|
||||
|
@ -1273,8 +1259,6 @@ dashboard.operation_switch=Переключить
|
|||
dashboard.operation_run=Запуск
|
||||
dashboard.clean_unbind_oauth=Очистить список незавершённых авторизаций OAuth
|
||||
dashboard.clean_unbind_oauth_success=Все незавершённые связи OAuth были удалены.
|
||||
dashboard.delete_inactivate_accounts=Удалить все неактивированные учетные записи
|
||||
dashboard.delete_inactivate_accounts_success=Все неактивные учётные записи удалены.
|
||||
dashboard.delete_repo_archives=Удаление всех архивов репозиториев
|
||||
dashboard.delete_repo_archives_success=Все архивы репозиториев удалены.
|
||||
dashboard.delete_missing_repos=Удалить все записи о репозиториях с отсутствующими файлами Git
|
||||
|
@ -1482,7 +1466,6 @@ config.db_path=Путь
|
|||
config.service_config=Сервисная конфигурация
|
||||
config.register_email_confirm=Требуется подтверждение по электронной почте
|
||||
config.disable_register=Отключить самостоятельную регистрацию
|
||||
config.allow_only_external_registration=Включить регистрацию только через сторонние сервисы
|
||||
config.enable_openid_signup=Включить cамостоятельную регистрацию OpenID
|
||||
config.enable_openid_signin=Включение входа через OpenID
|
||||
config.show_registration_button=Показать кнопку регистрации
|
||||
|
|
|
@ -506,7 +506,6 @@ total=Укупно: %d
|
|||
dashboard.operation_name=Име операције
|
||||
dashboard.operation_switch=Пребаци
|
||||
dashboard.operation_run=Покрени
|
||||
dashboard.delete_inactivate_accounts=Уклони све неактивне налоге
|
||||
dashboard.server_uptime=Време непрекидног рада сервера
|
||||
dashboard.current_goroutine=Тренутнe Goroutine
|
||||
dashboard.current_memory_usage=Тренутна употреба меморије
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -688,8 +688,6 @@ dashboard.operation_switch=Geç
|
|||
dashboard.operation_run=Çalıştır
|
||||
dashboard.clean_unbind_oauth=Bağsız OAuth bağlantılarını temizle
|
||||
dashboard.clean_unbind_oauth_success=Tüm bağsız OAuth bağlantıları silindi.
|
||||
dashboard.delete_inactivate_accounts=Etkin olmayan tüm hesapları sil
|
||||
dashboard.delete_inactivate_accounts_success=Tüm aktif olmayan hesaplar silindi.
|
||||
dashboard.reinit_missing_repos=Kayıtları bulunanlar için tüm eksik Git depolarını yeniden başlat
|
||||
dashboard.reinit_missing_repos_success=Kayıtları bulunanlar için tüm eksik Git depoları yeniden başlatıldı.
|
||||
dashboard.sync_external_users=Harici kullanıcı verisini senkronize et
|
||||
|
|
|
@ -32,16 +32,8 @@ twofa_scratch=Двофакторний одноразовий пароль
|
|||
passcode=Код доступу
|
||||
|
||||
u2f_insert_key=Вставте ключ безпеки
|
||||
u2f_sign_in=Натисніть кнопку на ключі безпеки. Якщо не вдається знайти кнопки, повторно вставте ключ.
|
||||
u2f_press_button=Будь ласка, натисніть кнопку на ключі захисту...
|
||||
u2f_use_twofa=Використовуйте дво-факторний код з вашого телефону
|
||||
u2f_error=Неможливо прочитати ваш ключ безпеки!
|
||||
u2f_unsupported_browser=Ваш браузер не підтримує U2F ключі. Будь ласка, спробуйте інший браузер.
|
||||
u2f_error_1=Сталася невідома помилка. Спробуйте ще раз.
|
||||
u2f_error_2=Переконайтеся, що ви використовуєте зашифроване з'єднання (https://) та відвідуєте правильну URL-адресу.
|
||||
u2f_error_3=Сервер не може обробити, ваш запит.
|
||||
u2f_error_4=Представлений ключ не дає право на цей запит. Якщо спробуєте зареєструвати його, переконайтеся, що ключ ще не зареєстровано.
|
||||
u2f_error_5=Таймаут досягнуто до того, як ваш ключ можна буде прочитати. Перезавантажте, щоб повторити спробу.
|
||||
u2f_reload=Оновити
|
||||
|
||||
repository=Репозиторій
|
||||
|
@ -130,7 +122,6 @@ federated_avatar_lookup=Увімкнути федеративні аватари
|
|||
federated_avatar_lookup_popup=Увімкнути зовнішний Аватар за допомогою Libravatar.
|
||||
disable_registration=Вимкнути самостійну реєстрацію
|
||||
disable_registration_popup=Вимкнути самостійну реєстрацію користувачів, тільки адміністратор може створювати нові облікові записи.
|
||||
allow_only_external_registration_popup=Включити реєстрацію тільки через зовнішні сервіси.
|
||||
openid_signin=Увімкнути реєстрацію за допомогою OpenID
|
||||
openid_signin_popup=Увімкнути вхід за допомогою OpenID.
|
||||
openid_signup=Увімкнути самостійну реєстрацію за допомогою OpenID
|
||||
|
@ -463,13 +454,10 @@ then_enter_passcode=І введіть пароль, який відобража
|
|||
passcode_invalid=Некоректний пароль. Спробуй ще раз.
|
||||
twofa_enrolled=Для вашого облікового запису було включена двофакторна автентифікація. Зберігайте свій scratch-токен (%s) у безпечному місці, оскільки він показується лише один раз!
|
||||
|
||||
u2f_desc=Ключами безпеки є апаратні пристрої, що містять криптографічні ключі. Вони можуть використовуватися для двофакторної автентифікації. Ключ безпеки повинен підтримувати стандарт <a href="https://fidoalliance.org/">FIDO U2F</a>.
|
||||
u2f_require_twofa=Для використання ключів безпеки необхідно зареєструвати двофакторну аутентифікацію.
|
||||
u2f_register_key=Додати ключ безпеки
|
||||
u2f_nickname=Псевдонім
|
||||
u2f_press_button=Натисніть кнопку на ключі безпеки, щоб зареєструвати його.
|
||||
u2f_delete_key=Видалити ключ безпеки
|
||||
u2f_delete_key_desc=Якщо ви видалите ключ безпеки, ви не зможете використати його для входу. Ти впевнені?
|
||||
|
||||
manage_account_links=Керування обліковими записами
|
||||
manage_account_links_desc=Ці зовнішні акаунти прив'язані до вашого аккаунту Gitea.
|
||||
|
@ -492,13 +480,13 @@ owner=Власник
|
|||
repo_name=Назва репозиторію
|
||||
repo_name_helper=Хороші назви репозиторіїв використовують короткі, унікальні ключові слова що легко запам'ятати.
|
||||
visibility=Видимість
|
||||
visiblity_helper=Зробити репозиторій приватним
|
||||
visiblity_helper_forced=Адміністратор вашого сайту налаштував параметри нових репозиторіїв: всі нові репозиторії будуть приватними.
|
||||
visiblity_fork_helper=(Зміна цього вплине на всі форки.)
|
||||
clone_helper=Потрібна допомога у клонуванні? Відвідайте <a target="_blank" rel="noopener" href="%s">Допомогу</a>.
|
||||
visibility_helper=Створити приватний репозиторій
|
||||
visibility_helper_forced=Адміністратор вашого сайту налаштував параметри: всі нові репозиторії будуть приватними.
|
||||
visibility_fork_helper=(Ці зміни вплинуть на всі форки.)
|
||||
clone_helper=Потрібна допомога у клонуванні? Відвідайте сторінку <a target="_blank" rel="noopener" href="%s">Допомога</a>.
|
||||
fork_repo=Форкнути репозиторій
|
||||
fork_from=Форк з
|
||||
fork_visiblity_helper=Видимість форкнутого репозиторію змінити не можна.
|
||||
fork_visibility_helper=Неможливо змінити видимість форкнутого репозиторію.
|
||||
repo_desc=Опис
|
||||
repo_lang=Мова
|
||||
repo_gitignore_helper=Виберіть шаблон .gitignore.
|
||||
|
@ -613,7 +601,7 @@ editor.directory_is_a_file=Ім'я каталогу "%s" уже використ
|
|||
editor.file_is_a_symlink='%s' є символічним посиланням. Символічні посилання не можливо редагувати в веб-редакторі
|
||||
editor.filename_is_a_directory=Назва файлу '%s' вже використовується як ім'я каталогу в цьому репозиторії.
|
||||
editor.file_editing_no_longer_exists=Редагований файл '%s' більше не існує в цьому репозиторії.
|
||||
editor.file_changed_while_editing=Зміст файлу змінився з моменту початку редагування. <a target="_blank" rel="noopener" href="%s"> Натисніть тут </a>, щоб переглянути що було змінено, або <strong> Прийняти зміни ще раз </strong>, щоб записати свої зміни.
|
||||
editor.file_changed_while_editing=Зміст файлу змінився з моменту початку редагування. <a target="_blank" rel="noopener" href="%s"> Натисніть тут </a>, щоб переглянути що було змінено, або <strong>закомітьте зміни ще раз</strong>, щоб переписати їх.
|
||||
editor.file_already_exists=Файл з назвою "%s" уже існує у цьому репозиторію.
|
||||
editor.no_changes_to_show=Нема змін для показу.
|
||||
editor.fail_to_update_file=Не вдалося оновити/створити файл '%s' через помилку: %v
|
||||
|
@ -650,7 +638,7 @@ issues.new.open_milestone=Активні етапи
|
|||
issues.new.closed_milestone=Закриті етапи
|
||||
issues.new.assignees=Виконавеці
|
||||
issues.new.clear_assignees=Прибрати виконавеців
|
||||
issues.new.no_assignees=Ніхто не призначений
|
||||
issues.new.no_assignees=Немає виконавеця
|
||||
issues.no_ref=Не вказана гілка або тег
|
||||
issues.create=Створити проблему
|
||||
issues.new_label=Нова мітка
|
||||
|
@ -668,7 +656,7 @@ issues.add_milestone_at=`додав(ла) до <b>%s</b> етапу %s`
|
|||
issues.change_milestone_at=`змінено цільової етап з <b>%s</b> на <b>%s</b> %s`
|
||||
issues.remove_milestone_at=`видалено з етапу<b>%s</b> %s`
|
||||
issues.deleted_milestone=`(видалено)`
|
||||
issues.self_assign_at=`самонавчался %s`
|
||||
issues.self_assign_at=`самостійно призначений %s`
|
||||
issues.add_assignee_at=`був призначений <b>%s</b> %s`
|
||||
issues.remove_assignee_at=`видалили із призначених %s`
|
||||
issues.change_title_at=`змінив(ла) заголовок з <b>%s</b> на <b>%s</b> %s`
|
||||
|
@ -781,6 +769,17 @@ issues.due_date_added=додав(ла) дату завершення %s %s
|
|||
issues.due_date_modified=термін змінено з %s %s на %s
|
||||
issues.due_date_remove=видалив(ла) дату завершення %s %s
|
||||
issues.due_date_overdue=Прострочено
|
||||
issues.dependency.title=Залежності
|
||||
issues.dependency.issue_no_dependencies=Ця проблема в даний час не має залежностей.
|
||||
issues.dependency.pr_no_dependencies=Цей запит на злиття в даний час не має залежностей.
|
||||
issues.dependency.add=Додати залежність...
|
||||
issues.dependency.cancel=Відмінити
|
||||
issues.dependency.remove=Видалити
|
||||
issues.dependency.added_dependency=<div class="notranslate"> 0%</div>[2]s</a> додано нову залежність %[3]s'
|
||||
issues.dependency.removed_dependency=<div class="notranslate"> 0%</div>[2]s</a> видалено залежність %[3]s'
|
||||
issues.dependency.issue_closing_blockedby=Закриття цього запиту на злиття заблокує наступні проблеми
|
||||
issues.dependency.pr_closing_blockedby=Закриття цієї проблеми заблокує наступні проблеми
|
||||
issues.dependency.blocks_short=Блоки
|
||||
|
||||
pulls.desc=Увімкнути запити на злиття та інтерфейс узгодження правок.
|
||||
pulls.new=Новий запит на злиття
|
||||
|
@ -994,7 +993,7 @@ settings.search_user_placeholder=Пошук користувача…
|
|||
settings.org_not_allowed_to_be_collaborator=Організації не можуть бути додані як співавтори.
|
||||
settings.user_is_org_member=Користувач є учасником організації, учасники якої не можуть бути додані в якості співавтора.
|
||||
settings.add_webhook=Додати веб-хук
|
||||
settings.hooks_desc=Webhooks автоматично робить HTTP POST-запити на сервер, коли відбуваються певні події Gitea. Дізнайтеся більше в <a target="_blank" rel="noopener" href="%s"> керівництві веб-вузла </a>.
|
||||
settings.hooks_desc=Веб-хуки автоматично робить HTTP POST-запити на сервер, коли відбуваються певні події Gitea. Дізнайтеся більше в <a target="_blank" rel="noopener" href="%s"> інструкції по використанню web-хуків </a>.
|
||||
settings.webhook_deletion=Видалити веб-хук
|
||||
settings.webhook_deletion_desc=Видалення цього веб-хука призведе до видалення всієї пов'язаної з ним інформації, включаючи історію. Бажаєте продовжити?
|
||||
settings.webhook_deletion_success=Webhook видалено.
|
||||
|
@ -1011,7 +1010,7 @@ settings.githook_edit_desc=Якщо хук неактивний, буде пре
|
|||
settings.githook_name=Ім'я хуку
|
||||
settings.githook_content=Зміст хука
|
||||
settings.update_githook=Оновити хук
|
||||
settings.add_webhook_desc=Gitea буде відправляти <code>POST</code> запити на вказану URL адресу, з інформацією про події, що відбуваються. Подробиці на сторінці <a target="_blank" rel="noopener" href="%s"> інструкції по використанню webhooks </a>.
|
||||
settings.add_webhook_desc=Gitea буде відправляти <code>POST</code> запити на вказану URL адресу, з інформацією про події, що відбуваються. Подробиці на сторінці <a target="_blank" rel="noopener" href="%s"> інструкції по використанню web-хуків </a>.
|
||||
settings.payload_url=Цільова URL-адреса
|
||||
settings.content_type=Тип вмісту
|
||||
settings.secret=Секрет
|
||||
|
@ -1097,6 +1096,7 @@ settings.protected_branch_deletion_desc=Будь-який користувач
|
|||
settings.default_branch_desc=Головна гілка є 'базовою' для вашого репозиторія, на яку за замовчуванням спрямовані всі запити на злиття і яка є обличчям вашого репозиторія. Перше, що побачить відвідувач - це зміст головної гілки. Виберіть її з уже існуючих:
|
||||
settings.choose_branch=Оберіть гілку…
|
||||
settings.no_protected_branch=Немає захищених гілок.
|
||||
settings.edit_protected_branch=Редагувати
|
||||
|
||||
diff.browse_source=Переглянути джерело
|
||||
diff.parent=джерело
|
||||
|
@ -1167,8 +1167,6 @@ branch.protected_deletion_failed=Гілка '%s' захищена. Її не м
|
|||
|
||||
topic.manage_topics=Керувати тематичними мітками
|
||||
topic.done=Готово
|
||||
topic.count_prompt=Ви не можете вибрати більше 25 тем
|
||||
topic.format_prompt=Теми мають починатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів
|
||||
|
||||
[org]
|
||||
org_name_holder=Назва організації
|
||||
|
@ -1273,8 +1271,7 @@ dashboard.operation_switch=Перемкнути
|
|||
dashboard.operation_run=Запустити
|
||||
dashboard.clean_unbind_oauth=Очистити список незавершених авторизацій OAuth
|
||||
dashboard.clean_unbind_oauth_success=Всі незавершені зв'язки OAuth були видалені.
|
||||
dashboard.delete_inactivate_accounts=Видалити всі неактивні облікові записи
|
||||
dashboard.delete_inactivate_accounts_success=Усі неактивні облікові записи успішно видалено.
|
||||
dashboard.delete_inactivate_accounts=Видалити всі неактивовані облікові записи
|
||||
dashboard.delete_repo_archives=Видалити всі архіви репозиторіїв
|
||||
dashboard.delete_repo_archives_success=Всі архіви репозиторіїв були видалені.
|
||||
dashboard.delete_missing_repos=Видалити всі записи про репозиторії з відсутніми файлами Git
|
||||
|
@ -1482,7 +1479,6 @@ config.db_path=Шлях
|
|||
config.service_config=Конфігурація сервісу
|
||||
config.register_email_confirm=Потрібно підтвердити електронну пошту для реєстрації
|
||||
config.disable_register=Вимкнути самостійну реєстрацію
|
||||
config.allow_only_external_registration=Включити реєстрацію тільки через сторонні сервіси
|
||||
config.enable_openid_signup=Увімкнути самостійну реєстрацію за допомогою OpenID
|
||||
config.enable_openid_signin=Увімкнути реєстрацію за допомогою OpenID
|
||||
config.show_registration_button=Показувати кнопку "Реєстрація
|
||||
|
|
|
@ -32,16 +32,8 @@ twofa_scratch=两步验证口令
|
|||
passcode=验证码
|
||||
|
||||
u2f_insert_key=插入安全密钥
|
||||
u2f_sign_in=按下安全密钥上的按钮。如果找不到按钮, 请重新插入。
|
||||
u2f_press_button=请按下安全密钥上的按钮。
|
||||
u2f_use_twofa=使用来自你手机中的两步验证码
|
||||
u2f_error=没有找到你的安全密钥!
|
||||
u2f_unsupported_browser=您的浏览器不支持 U2F 密钥。请尝试其他浏览器。
|
||||
u2f_error_1=发生未知错误。请重试。
|
||||
u2f_error_2=请确保您使用的是加密连接 (https://) 并访问正确的 URL。
|
||||
u2f_error_3=服务器无法执行您的请求。
|
||||
u2f_error_4=所提交的密钥不符合此请求。如果您尝试注册它, 请确保该密钥尚未注册。
|
||||
u2f_error_5=在读取到密钥之前超时。请重新加载以重试。
|
||||
u2f_reload=重新加载
|
||||
|
||||
repository=仓库
|
||||
|
@ -75,7 +67,7 @@ cancel=取消
|
|||
[install]
|
||||
install=安装页面
|
||||
title=初始配置
|
||||
docker_helper=如果您正在使用 Docker 容器运行 Gitea,请务必先仔细阅读 <a target="_blank" rel="noopener" href="%s">官方文档</a> 后再对本页面进行填写。
|
||||
docker_helper=如果您正在使用 Docker 容器运行 Gitea,请务必先仔细阅读 <a target="_blank" rel="noopener noreferrer" href="%s">官方文档</a> 后再对本页面进行填写。
|
||||
requite_db_desc=Gitea 要求安装 MySQL、PostgreSQL、SQLite3 或 TiDB。
|
||||
db_title=数据库设置
|
||||
db_type=数据库类型
|
||||
|
@ -130,7 +122,6 @@ federated_avatar_lookup=启用 Federated 头像
|
|||
federated_avatar_lookup_popup=启用 Federated Avatars 查找以使用开源的 Libravatar 服务。
|
||||
disable_registration=禁止用户自助注册
|
||||
disable_registration_popup=禁用用户自助注册。只有管理员才能创建新的用户帐户。
|
||||
allow_only_external_registration_popup=仅允许通过外部服务注册。
|
||||
openid_signin=启用 OpenID 登录
|
||||
openid_signin_popup=启用通过 OpenID 登录
|
||||
openid_signup=启用 OpenID 自助注册
|
||||
|
@ -463,13 +454,10 @@ then_enter_passcode=并输入应用程序中显示的密码:
|
|||
passcode_invalid=密码不正确。再试一次。
|
||||
twofa_enrolled=你的账号已经启用了两步验证。请保存初始令牌(%s)到一个安全的地方,此令牌仅当前显示一次。
|
||||
|
||||
u2f_desc=安全密钥是包含加密算法的硬件设备。它们可以用于两步验证。安全密钥必须支持 <a href="https://fidoalliance.org/">FIDO U2F</a> 标准。
|
||||
u2f_require_twofa=必须开启两步验证才能使用安全密钥。
|
||||
u2f_register_key=添加安全密钥
|
||||
u2f_nickname=昵称
|
||||
u2f_press_button=按安全密钥上的按钮进行注册。
|
||||
u2f_delete_key=移除安全密钥
|
||||
u2f_delete_key_desc=如果移除安全密钥, 则无法再使用它登录。是否确定?
|
||||
|
||||
manage_account_links=管理绑定过的账号
|
||||
manage_account_links_desc=这些外部帐户已经绑定到您的 Gitea 帐户。
|
||||
|
@ -492,13 +480,13 @@ owner=拥有者
|
|||
repo_name=仓库名称
|
||||
repo_name_helper=好的存储库名称使用简短、深刻和独特的关键字。
|
||||
visibility=可见性
|
||||
visiblity_helper=将仓库设为私有
|
||||
visiblity_helper_forced=站点管理员强制要求新仓库为私有。
|
||||
visiblity_fork_helper=(修改该值将会影响到所有派生仓库)
|
||||
clone_helper=不知道如何克隆?查看<a target="_blank" rel="noopener" href="%s">帮助</a> 。
|
||||
visibility_helper=将仓库设为私有
|
||||
visibility_helper_forced=站点管理员强制要求新仓库为私有。
|
||||
visibility_fork_helper=(修改该值将会影响到所有派生仓库)
|
||||
clone_helper=不知道如何克隆?查看<a target="_blank" rel="noopener noreferrer" href="%s">帮助</a> 。
|
||||
fork_repo=派生仓库
|
||||
fork_from=派生自
|
||||
fork_visiblity_helper=无法更改派生仓库的可见性。
|
||||
fork_visibility_helper=无法更改派生仓库的可见性。
|
||||
repo_desc=仓库描述
|
||||
repo_lang=仓库语言
|
||||
repo_gitignore_helper=选择 .gitignore 模板。
|
||||
|
@ -613,7 +601,7 @@ editor.directory_is_a_file='%s' 已经作为文件名在此仓库中存在。
|
|||
editor.file_is_a_symlink='%s' 是一个符号链接,无法在线编辑。
|
||||
editor.filename_is_a_directory='%s' 已经作为目录名在此仓库中存在。
|
||||
editor.file_editing_no_longer_exists=正在编辑的文件 '%s' 已不存在。
|
||||
editor.file_changed_while_editing=文件内容在您进行编辑时已经发生变动。<a target="_blank" rel="noopener" href="%s">单击此处</a> 查看变动的具体内容,或者 <strong>再次提交</strong> 覆盖已发生的变动。
|
||||
editor.file_changed_while_editing=文件内容在您进行编辑时已经发生变动。<a target="_blank" rel="noopener noreferrer" href="%s">单击此处</a> 查看变动的具体内容,或者 <strong>再次提交</strong> 覆盖已发生的变动。
|
||||
editor.file_already_exists=此仓库已经存在名为 '%s' 的文件。
|
||||
editor.no_changes_to_show=没有可以显示的变更。
|
||||
editor.fail_to_update_file=更新/创建文件 '%s' 时发生错误:%v
|
||||
|
@ -650,7 +638,6 @@ issues.new.open_milestone=开启中的里程碑
|
|||
issues.new.closed_milestone=已关闭的里程碑
|
||||
issues.new.assignees=指派成员
|
||||
issues.new.clear_assignees=取消指派成员
|
||||
issues.new.no_assignees=未指派成员
|
||||
issues.no_ref=分支/标记未指定
|
||||
issues.create=创建工单
|
||||
issues.new_label=创建标签
|
||||
|
@ -994,7 +981,7 @@ settings.search_user_placeholder=搜索用户...
|
|||
settings.org_not_allowed_to_be_collaborator=组织不允许被添加为仓库协作者!
|
||||
settings.user_is_org_member=被操作的用户是组织,因此无法添加为协作者!
|
||||
settings.add_webhook=添加 Web 钩子
|
||||
settings.hooks_desc=当Gitea事件发生时,Web钩子自动发出HTTP POST请求。在 <a target="_blank" rel="noopener" href="%s"> 指南</a> 中阅读更多内容。
|
||||
settings.hooks_desc=当Gitea事件发生时,Web钩子自动发出HTTP POST请求。在 <a target="_blank" rel="noopener noreferrer" href="%s"> 指南</a> 中阅读更多内容。
|
||||
settings.webhook_deletion=删除 Web 钩子
|
||||
settings.webhook_deletion_desc=删除 web钩子 将删除其设置和历史记录。继续?
|
||||
settings.webhook_deletion_success=Web 钩子删除成功!
|
||||
|
@ -1011,7 +998,7 @@ settings.githook_edit_desc=如果钩子未启动,则会显示样例文件中
|
|||
settings.githook_name=钩子名称
|
||||
settings.githook_content=钩子文本
|
||||
settings.update_githook=更新钩子设置
|
||||
settings.add_webhook_desc=Gitea 将向目标 URL 发送具有指定内容类型的 <code>POST</code> 请求。在 <a target="_blank" rel="noopener" href="%s">webhooks 指南</a> 中阅读更多内容。
|
||||
settings.add_webhook_desc=Gitea 将向目标 URL 发送具有指定内容类型的 <code>POST</code> 请求。在 <a target="_blank" rel="noopener noreferrer" href="%s">webhooks 指南</a> 中阅读更多内容。
|
||||
settings.payload_url=目标 URL
|
||||
settings.content_type=POST Content Type
|
||||
settings.secret=密钥文本
|
||||
|
@ -1167,8 +1154,6 @@ branch.protected_deletion_failed=分支 '%s' 已被保护,不可删除。
|
|||
|
||||
topic.manage_topics=管理主题
|
||||
topic.done=保存
|
||||
topic.count_prompt=您最多选择25个主题
|
||||
topic.format_prompt=主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
|
||||
|
||||
[org]
|
||||
org_name_holder=组织名称
|
||||
|
@ -1273,8 +1258,6 @@ dashboard.operation_switch=开关
|
|||
dashboard.operation_run=执行
|
||||
dashboard.clean_unbind_oauth=清理未绑定的 OAuth 连接
|
||||
dashboard.clean_unbind_oauth_success=所有未绑定的 OAuth 连接已被删除。
|
||||
dashboard.delete_inactivate_accounts=删除所有未激活帐户
|
||||
dashboard.delete_inactivate_accounts_success=所有未激活帐号清除成功!
|
||||
dashboard.delete_repo_archives=删除所有仓库存档
|
||||
dashboard.delete_repo_archives_success=所有仓库存档清除成功!
|
||||
dashboard.delete_missing_repos=删除所有丢失 Git 文件的仓库
|
||||
|
@ -1482,7 +1465,6 @@ config.db_path=数据库路径
|
|||
config.service_config=服务配置
|
||||
config.register_email_confirm=需要电子邮件确认注册
|
||||
config.disable_register=禁止用户注册
|
||||
config.allow_only_external_registration=仅允许通过外部服务注册
|
||||
config.enable_openid_signup=启用 OpenID 自注册
|
||||
config.enable_openid_signin=启用 OpenID 登录
|
||||
config.show_registration_button=显示注册按钮
|
||||
|
|
|
@ -613,8 +613,6 @@ dashboard.operation_switch=開關
|
|||
dashboard.operation_run=執行
|
||||
dashboard.clean_unbind_oauth=清理未綁定OAuth的連結
|
||||
dashboard.clean_unbind_oauth_success=所有未綁定 OAuth 的連結已刪除。
|
||||
dashboard.delete_inactivate_accounts=刪除所有未啟用帳戶
|
||||
dashboard.delete_inactivate_accounts_success=成功清除所有未啟用帳號!
|
||||
dashboard.reinit_missing_repos=重新初始化所有遺失具已存在記錄的Git 儲存庫
|
||||
dashboard.reinit_missing_repos_success=所有遺失具已存在記錄的Git 儲存庫已重新初始化。
|
||||
dashboard.sync_external_users=同步外部使用者資料
|
||||
|
|
|
@ -32,16 +32,8 @@ twofa_scratch=兩步驟驗證備用碼
|
|||
passcode=驗證碼
|
||||
|
||||
u2f_insert_key=插入安全金鑰
|
||||
u2f_sign_in=按下安全金鑰上的按鈕。如果找不到按鈕, 請重新插入。
|
||||
u2f_press_button=請按下安全金鑰上的按鈕…
|
||||
u2f_use_twofa=使用來自手機的兩步驟驗證碼
|
||||
u2f_error=找不到您的安全金鑰!
|
||||
u2f_unsupported_browser=您的瀏覽器不支援 U2F 二步驟驗證技術。請嘗試其他瀏覽器。
|
||||
u2f_error_1=發生未知的錯誤,請重試。
|
||||
u2f_error_2=請確保您使用的是加密連接 (https://) 並且 URL 是正確的。
|
||||
u2f_error_3=伺服器無法執行您的請求。
|
||||
u2f_error_4=所提交的金鑰不符合此請求。如果您嘗試註冊它, 請確保該金鑰尚未註冊。
|
||||
u2f_error_5=在讀取金鑰之前已逾時,請重新載入以重試。
|
||||
u2f_reload=重新載入
|
||||
|
||||
repository=儲存庫
|
||||
|
@ -75,7 +67,6 @@ cancel=取消
|
|||
[install]
|
||||
install=安裝頁面
|
||||
title=初始設定
|
||||
docker_helper=如果您正在使用 Docker 容器運行 Gitea,請務必先仔細閱讀<a target="_blank" rel="noopener" href="%s">官方文件</a>後再對本頁面進行填寫。
|
||||
requite_db_desc=Gitea 需要安裝 MySQL、PostgreSQL、SQLite3、MSSQL 或 TiDB 其中一項。
|
||||
db_title=資料庫設定
|
||||
db_type=資料庫類型
|
||||
|
@ -130,7 +121,6 @@ federated_avatar_lookup=開啟聯合大頭貼
|
|||
federated_avatar_lookup_popup=開啟聯合頭像查詢並使用基於開放源碼的 libravatar 服務
|
||||
disable_registration=關閉註冊功能
|
||||
disable_registration_popup=關閉註冊功能,只有管理員可以新增帳號。
|
||||
allow_only_external_registration_popup=僅允許通過外部服務註冊。
|
||||
openid_signin=啟用 OpenID 登入
|
||||
openid_signin_popup=啟用 OpenID 登入
|
||||
openid_signup=啟用 OpenID 註冊
|
||||
|
@ -433,13 +423,10 @@ or_enter_secret=或者輸入密碼: %s
|
|||
then_enter_passcode=然後輸入應用程序中顯示的驗證碼:
|
||||
passcode_invalid=無效的驗證碼,請重試。
|
||||
|
||||
u2f_desc=安全密鑰是包含加密密鑰的硬體設備。 它們可以用於兩步驟認證。 安全密鑰必須符合 <a href="https://fidoalliance.org/">FIDO U2F</a> 標準。
|
||||
u2f_require_twofa=必須先開啟兩步驟驗證才能使用安全密鑰。
|
||||
u2f_register_key=新增安全密鑰
|
||||
u2f_nickname=暱稱
|
||||
u2f_press_button=按下安全密鑰上的密碼進行註冊。
|
||||
u2f_delete_key=移除安全密鑰
|
||||
u2f_delete_key_desc=如果您移除安全密鑰,則無法再使用它登錄。 確定嗎?
|
||||
|
||||
manage_account_links=管理已連結的帳號
|
||||
manage_account_links_desc=這些外部帳號與您的 Gitea 帳號相關聯。
|
||||
|
@ -461,10 +448,6 @@ owner=擁有者
|
|||
repo_name=儲存庫名稱
|
||||
repo_name_helper=好的儲存庫名稱通常是簡短的、好記的、且獨特的。
|
||||
visibility=可見度
|
||||
visiblity_helper=將儲存庫設為私人
|
||||
visiblity_helper_forced=您的網站管理員強制新的存儲庫必需設定為私人。
|
||||
visiblity_fork_helper=(修改該值將會影響到所有派生倉庫)
|
||||
clone_helper=不知道如何操作?瀏覽 <a target="_blank" rel="noopener"href="%s"> 幫助 </a> !
|
||||
fork_repo=複製儲存庫
|
||||
fork_from=複製自
|
||||
repo_desc=儲存庫描述
|
||||
|
@ -596,7 +579,6 @@ issues.new.open_milestone=開啟中的里程碑
|
|||
issues.new.closed_milestone=已關閉的里程碑
|
||||
issues.new.assignees=指派成員
|
||||
issues.new.clear_assignees=取消指派成員
|
||||
issues.new.no_assignees=未指派成員
|
||||
issues.no_ref=未指定分支或標籤
|
||||
issues.create=建立問題
|
||||
issues.new_label=建立標籤
|
||||
|
@ -1086,8 +1068,6 @@ dashboard.operation_switch=開關
|
|||
dashboard.operation_run=執行
|
||||
dashboard.clean_unbind_oauth=清理未綁定OAuth的連結
|
||||
dashboard.clean_unbind_oauth_success=所有未綁定 OAuth 的連結已刪除。
|
||||
dashboard.delete_inactivate_accounts=刪除所有未啟用帳戶
|
||||
dashboard.delete_inactivate_accounts_success=成功清除所有未啟用帳號!
|
||||
dashboard.delete_repo_archives=刪除所有儲存庫存檔
|
||||
dashboard.delete_repo_archives_success=所有儲存庫存檔已刪除。
|
||||
dashboard.delete_missing_repos=刪除所有遺失 Git 檔案的儲存庫記錄
|
||||
|
@ -1267,7 +1247,6 @@ config.db_path=資料庫路徑
|
|||
config.service_config=服務設定
|
||||
config.register_email_confirm=要求註冊時確認電子郵件
|
||||
config.disable_register=關閉註冊功能
|
||||
config.allow_only_external_registration=僅允許通過外部服務註冊
|
||||
config.enable_openid_signup=啟用 OpenID 註冊
|
||||
config.enable_openid_signin=啟用 OpenID 登入
|
||||
config.show_registration_button=顯示註冊按鈕
|
||||
|
|
454
package-lock.json
generated
454
package-lock.json
generated
|
@ -2,6 +2,19 @@
|
|||
"requires": true,
|
||||
"lockfileVersion": 1,
|
||||
"dependencies": {
|
||||
"ajv": {
|
||||
"version": "5.5.2",
|
||||
"resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz",
|
||||
"integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"co": "^4.6.0",
|
||||
"fast-deep-equal": "^1.0.0",
|
||||
"fast-json-stable-stringify": "^2.0.0",
|
||||
"json-schema-traverse": "^0.3.0"
|
||||
}
|
||||
},
|
||||
"amdefine": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
|
||||
|
@ -22,6 +35,12 @@
|
|||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"assert-plus": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
|
||||
"integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
|
||||
"dev": true
|
||||
},
|
||||
"asynckit": {
|
||||
"version": "0.4.0",
|
||||
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
|
||||
|
@ -29,6 +48,13 @@
|
|||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"aws-sign2": {
|
||||
"version": "0.7.0",
|
||||
"resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
|
||||
"integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"aws4": {
|
||||
"version": "1.7.0",
|
||||
"resolved": "https://registry.npmjs.org/aws4/-/aws4-1.7.0.tgz",
|
||||
|
@ -37,13 +63,13 @@
|
|||
"optional": true
|
||||
},
|
||||
"bcrypt-pbkdf": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz",
|
||||
"integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=",
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
|
||||
"integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"tweetnacl": "0.14.5"
|
||||
"tweetnacl": "^0.14.3"
|
||||
}
|
||||
},
|
||||
"caseless": {
|
||||
|
@ -59,8 +85,8 @@
|
|||
"integrity": "sha1-vxlF6C/ICPVWlebd6uwBQA79A/8=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"commander": "2.8.1",
|
||||
"source-map": "0.4.4"
|
||||
"commander": "2.8.x",
|
||||
"source-map": "0.4.x"
|
||||
},
|
||||
"dependencies": {
|
||||
"source-map": {
|
||||
|
@ -69,7 +95,7 @@
|
|||
"integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"amdefine": "1.0.1"
|
||||
"amdefine": ">=0.0.4"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -87,7 +113,7 @@
|
|||
"integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"delayed-stream": "1.0.0"
|
||||
"delayed-stream": "~1.0.0"
|
||||
}
|
||||
},
|
||||
"commander": {
|
||||
|
@ -96,7 +122,7 @@
|
|||
"integrity": "sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"graceful-readlink": "1.0.1"
|
||||
"graceful-readlink": ">= 1.0.0"
|
||||
}
|
||||
},
|
||||
"core-util-is": {
|
||||
|
@ -113,16 +139,7 @@
|
|||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"assert-plus": "1.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"assert-plus": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
|
||||
"integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
}
|
||||
"assert-plus": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"delayed-stream": {
|
||||
|
@ -138,7 +155,7 @@
|
|||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"jsbn": "0.1.1"
|
||||
"jsbn": "~0.1.0"
|
||||
}
|
||||
},
|
||||
"errno": {
|
||||
|
@ -148,7 +165,7 @@
|
|||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"prr": "1.0.1"
|
||||
"prr": "~1.0.1"
|
||||
}
|
||||
},
|
||||
"extend": {
|
||||
|
@ -185,6 +202,18 @@
|
|||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"form-data": {
|
||||
"version": "2.3.2",
|
||||
"resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz",
|
||||
"integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"asynckit": "^0.4.0",
|
||||
"combined-stream": "1.0.6",
|
||||
"mime-types": "^2.1.12"
|
||||
}
|
||||
},
|
||||
"getpass": {
|
||||
"version": "0.1.7",
|
||||
"resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
|
||||
|
@ -192,16 +221,7 @@
|
|||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"assert-plus": "1.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"assert-plus": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
|
||||
"integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
}
|
||||
"assert-plus": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"graceful-fs": {
|
||||
|
@ -217,6 +237,36 @@
|
|||
"integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=",
|
||||
"dev": true
|
||||
},
|
||||
"har-schema": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
|
||||
"integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"har-validator": {
|
||||
"version": "5.0.3",
|
||||
"resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz",
|
||||
"integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"ajv": "^5.1.0",
|
||||
"har-schema": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"http-signature": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
|
||||
"integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"assert-plus": "^1.0.0",
|
||||
"jsprim": "^1.2.2",
|
||||
"sshpk": "^1.7.0"
|
||||
}
|
||||
},
|
||||
"image-size": {
|
||||
"version": "0.5.5",
|
||||
"resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz",
|
||||
|
@ -277,215 +327,22 @@
|
|||
"extsprintf": "1.3.0",
|
||||
"json-schema": "0.2.3",
|
||||
"verror": "1.10.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"assert-plus": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
|
||||
"integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"less": {
|
||||
"version": "3.0.4",
|
||||
"resolved": "https://registry.npmjs.org/less/-/less-3.0.4.tgz",
|
||||
"integrity": "sha512-q3SyEnPKbk9zh4l36PGeW2fgynKu+FpbhiUNx/yaiBUQ3V0CbACCgb9FzYWcRgI2DJlP6eI4jc8XPrCTi55YcQ==",
|
||||
"version": "3.6.0",
|
||||
"resolved": "https://registry.npmjs.org/less/-/less-3.6.0.tgz",
|
||||
"integrity": "sha512-9jCc6kgJ36E2EjZrx+V+UXUTOb4JgFO5l7y9VetoRUtoaDIS4+yJ0XML9Fdr006zE9ZgHIk7tdO+SMa0PLY0mQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"errno": "0.1.7",
|
||||
"graceful-fs": "4.1.11",
|
||||
"image-size": "0.5.5",
|
||||
"mime": "1.6.0",
|
||||
"mkdirp": "0.5.1",
|
||||
"promise": "7.3.1",
|
||||
"request": "2.85.0",
|
||||
"source-map": "0.6.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"ajv": {
|
||||
"version": "5.5.2",
|
||||
"resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz",
|
||||
"integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"co": "4.6.0",
|
||||
"fast-deep-equal": "1.1.0",
|
||||
"fast-json-stable-stringify": "2.0.0",
|
||||
"json-schema-traverse": "0.3.1"
|
||||
}
|
||||
},
|
||||
"assert-plus": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
|
||||
"integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"aws-sign2": {
|
||||
"version": "0.7.0",
|
||||
"resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
|
||||
"integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"boom": {
|
||||
"version": "4.3.1",
|
||||
"resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz",
|
||||
"integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"hoek": "4.2.1"
|
||||
}
|
||||
},
|
||||
"cryptiles": {
|
||||
"version": "3.1.2",
|
||||
"resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz",
|
||||
"integrity": "sha1-qJ+7Ig9c4l7FboxKqKT9e1sNKf4=",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"boom": "5.2.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"boom": {
|
||||
"version": "5.2.0",
|
||||
"resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz",
|
||||
"integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"hoek": "4.2.1"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"form-data": {
|
||||
"version": "2.3.2",
|
||||
"resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz",
|
||||
"integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"asynckit": "0.4.0",
|
||||
"combined-stream": "1.0.6",
|
||||
"mime-types": "2.1.18"
|
||||
}
|
||||
},
|
||||
"har-schema": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
|
||||
"integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"har-validator": {
|
||||
"version": "5.0.3",
|
||||
"resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz",
|
||||
"integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"ajv": "5.5.2",
|
||||
"har-schema": "2.0.0"
|
||||
}
|
||||
},
|
||||
"hawk": {
|
||||
"version": "6.0.2",
|
||||
"resolved": "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz",
|
||||
"integrity": "sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"boom": "4.3.1",
|
||||
"cryptiles": "3.1.2",
|
||||
"hoek": "4.2.1",
|
||||
"sntp": "2.1.0"
|
||||
}
|
||||
},
|
||||
"hoek": {
|
||||
"version": "4.2.1",
|
||||
"resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.1.tgz",
|
||||
"integrity": "sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA==",
|
||||
"dev": true
|
||||
},
|
||||
"http-signature": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
|
||||
"integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"assert-plus": "1.0.0",
|
||||
"jsprim": "1.4.1",
|
||||
"sshpk": "1.14.1"
|
||||
}
|
||||
},
|
||||
"performance-now": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
|
||||
"integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"qs": {
|
||||
"version": "6.5.2",
|
||||
"resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
|
||||
"integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"request": {
|
||||
"version": "2.85.0",
|
||||
"resolved": "https://registry.npmjs.org/request/-/request-2.85.0.tgz",
|
||||
"integrity": "sha512-8H7Ehijd4js+s6wuVPLjwORxD4zeuyjYugprdOXlPSqaApmL/QOy+EB/beICHVCHkGMKNh5rvihb5ov+IDw4mg==",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"aws-sign2": "0.7.0",
|
||||
"aws4": "1.7.0",
|
||||
"caseless": "0.12.0",
|
||||
"combined-stream": "1.0.6",
|
||||
"extend": "3.0.1",
|
||||
"forever-agent": "0.6.1",
|
||||
"form-data": "2.3.2",
|
||||
"har-validator": "5.0.3",
|
||||
"hawk": "6.0.2",
|
||||
"http-signature": "1.2.0",
|
||||
"is-typedarray": "1.0.0",
|
||||
"isstream": "0.1.2",
|
||||
"json-stringify-safe": "5.0.1",
|
||||
"mime-types": "2.1.18",
|
||||
"oauth-sign": "0.8.2",
|
||||
"performance-now": "2.1.0",
|
||||
"qs": "6.5.2",
|
||||
"safe-buffer": "5.1.2",
|
||||
"stringstream": "0.0.5",
|
||||
"tough-cookie": "2.3.4",
|
||||
"tunnel-agent": "0.6.0",
|
||||
"uuid": "3.2.1"
|
||||
}
|
||||
},
|
||||
"sntp": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/sntp/-/sntp-2.1.0.tgz",
|
||||
"integrity": "sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg==",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"hoek": "4.2.1"
|
||||
}
|
||||
},
|
||||
"source-map": {
|
||||
"version": "0.6.1",
|
||||
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
|
||||
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
}
|
||||
"errno": "^0.1.1",
|
||||
"graceful-fs": "^4.1.2",
|
||||
"image-size": "~0.5.0",
|
||||
"mime": "^1.4.1",
|
||||
"mkdirp": "^0.5.0",
|
||||
"promise": "^7.1.1",
|
||||
"request": "^2.83.0",
|
||||
"source-map": "~0.6.0"
|
||||
}
|
||||
},
|
||||
"less-plugin-clean-css": {
|
||||
|
@ -494,7 +351,7 @@
|
|||
"integrity": "sha1-zFeveqM5iVflbezr5jy2DCNClwM=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"clean-css": "3.4.28"
|
||||
"clean-css": "^3.0.1"
|
||||
}
|
||||
},
|
||||
"mime": {
|
||||
|
@ -516,7 +373,7 @@
|
|||
"integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"mime-db": "1.33.0"
|
||||
"mime-db": "~1.33.0"
|
||||
}
|
||||
},
|
||||
"minimist": {
|
||||
|
@ -543,14 +400,21 @@
|
|||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"performance-now": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
|
||||
"integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"promise": {
|
||||
"version": "7.3.1",
|
||||
"resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz",
|
||||
"integrity": "sha1-BktyYCsY+Q8pGSuLG8QY/9Hr078=",
|
||||
"integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"asap": "2.0.6"
|
||||
"asap": "~2.0.3"
|
||||
}
|
||||
},
|
||||
"prr": {
|
||||
|
@ -567,44 +431,79 @@
|
|||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"qs": {
|
||||
"version": "6.5.2",
|
||||
"resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
|
||||
"integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"request": {
|
||||
"version": "2.87.0",
|
||||
"resolved": "https://registry.npmjs.org/request/-/request-2.87.0.tgz",
|
||||
"integrity": "sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw==",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"aws-sign2": "~0.7.0",
|
||||
"aws4": "^1.6.0",
|
||||
"caseless": "~0.12.0",
|
||||
"combined-stream": "~1.0.5",
|
||||
"extend": "~3.0.1",
|
||||
"forever-agent": "~0.6.1",
|
||||
"form-data": "~2.3.1",
|
||||
"har-validator": "~5.0.3",
|
||||
"http-signature": "~1.2.0",
|
||||
"is-typedarray": "~1.0.0",
|
||||
"isstream": "~0.1.2",
|
||||
"json-stringify-safe": "~5.0.1",
|
||||
"mime-types": "~2.1.17",
|
||||
"oauth-sign": "~0.8.2",
|
||||
"performance-now": "^2.1.0",
|
||||
"qs": "~6.5.1",
|
||||
"safe-buffer": "^5.1.1",
|
||||
"tough-cookie": "~2.3.3",
|
||||
"tunnel-agent": "^0.6.0",
|
||||
"uuid": "^3.1.0"
|
||||
}
|
||||
},
|
||||
"safe-buffer": {
|
||||
"version": "5.1.2",
|
||||
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
|
||||
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
|
||||
"dev": true
|
||||
},
|
||||
"safer-buffer": {
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
|
||||
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"source-map": {
|
||||
"version": "0.6.1",
|
||||
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
|
||||
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"sshpk": {
|
||||
"version": "1.14.1",
|
||||
"resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.1.tgz",
|
||||
"integrity": "sha1-Ew9Zde3a2WPx1W+SuaxsUfqfg+s=",
|
||||
"version": "1.14.2",
|
||||
"resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz",
|
||||
"integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"asn1": "0.2.3",
|
||||
"assert-plus": "1.0.0",
|
||||
"bcrypt-pbkdf": "1.0.1",
|
||||
"dashdash": "1.14.1",
|
||||
"ecc-jsbn": "0.1.1",
|
||||
"getpass": "0.1.7",
|
||||
"jsbn": "0.1.1",
|
||||
"tweetnacl": "0.14.5"
|
||||
},
|
||||
"dependencies": {
|
||||
"assert-plus": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
|
||||
"integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
"asn1": "~0.2.3",
|
||||
"assert-plus": "^1.0.0",
|
||||
"bcrypt-pbkdf": "^1.0.0",
|
||||
"dashdash": "^1.12.0",
|
||||
"ecc-jsbn": "~0.1.1",
|
||||
"getpass": "^0.1.1",
|
||||
"jsbn": "~0.1.0",
|
||||
"safer-buffer": "^2.0.2",
|
||||
"tweetnacl": "~0.14.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"stringstream": {
|
||||
"version": "0.0.5",
|
||||
"resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz",
|
||||
"integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"tough-cookie": {
|
||||
"version": "2.3.4",
|
||||
|
@ -613,7 +512,7 @@
|
|||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"punycode": "1.4.1"
|
||||
"punycode": "^1.4.1"
|
||||
}
|
||||
},
|
||||
"tunnel-agent": {
|
||||
|
@ -623,7 +522,7 @@
|
|||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"safe-buffer": "5.1.2"
|
||||
"safe-buffer": "^5.0.1"
|
||||
}
|
||||
},
|
||||
"tweetnacl": {
|
||||
|
@ -634,9 +533,9 @@
|
|||
"optional": true
|
||||
},
|
||||
"uuid": {
|
||||
"version": "3.2.1",
|
||||
"resolved": "https://registry.npmjs.org/uuid/-/uuid-3.2.1.tgz",
|
||||
"integrity": "sha512-jZnMwlb9Iku/O3smGWvZhauCf6cvvpKi4BKRiliS3cxnI+Gz9j5MEpTz2UFuXiKPJocb7gnsLHwiS05ige5BEA==",
|
||||
"version": "3.3.2",
|
||||
"resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
|
||||
"integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
|
@ -647,18 +546,9 @@
|
|||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"assert-plus": "1.0.0",
|
||||
"assert-plus": "^1.0.0",
|
||||
"core-util-is": "1.0.2",
|
||||
"extsprintf": "1.3.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"assert-plus": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
|
||||
"integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
}
|
||||
"extsprintf": "^1.2.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"license": "MIT",
|
||||
"devDependencies": {
|
||||
"less": "^3.0.4",
|
||||
"less": "^3.6.0",
|
||||
"less-plugin-clean-css": "^1.5.1"
|
||||
}
|
||||
}
|
||||
|
|
File diff suppressed because one or more lines are too long
1
public/css/theme-arc-green.css
Normal file
1
public/css/theme-arc-green.css
Normal file
File diff suppressed because one or more lines are too long
|
@ -790,7 +790,7 @@ function initTeamSettings() {
|
|||
function initWikiForm() {
|
||||
var $editArea = $('.repository.wiki textarea#edit_area');
|
||||
if ($editArea.length > 0) {
|
||||
new SimpleMDE({
|
||||
var simplemde = new SimpleMDE({
|
||||
autoDownloadFontAwesome: false,
|
||||
element: $editArea[0],
|
||||
forceSync: true,
|
||||
|
@ -825,6 +825,7 @@ function initWikiForm() {
|
|||
"link", "image", "table", "horizontal-rule", "|",
|
||||
"clean-block", "preview", "fullscreen"]
|
||||
})
|
||||
$(simplemde.codemirror.getInputField()).addClass("js-quick-submit");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1769,6 +1770,7 @@ $(document).ready(function () {
|
|||
initTopicbar();
|
||||
initU2FAuth();
|
||||
initU2FRegister();
|
||||
initIssueList();
|
||||
|
||||
// Repo clone url.
|
||||
if ($('#repo-clone-url').length > 0) {
|
||||
|
@ -2302,46 +2304,75 @@ function initNavbarContentToggle() {
|
|||
}
|
||||
|
||||
function initTopicbar() {
|
||||
var mgrBtn = $("#manage_topic")
|
||||
var editDiv = $("#topic_edit")
|
||||
var viewDiv = $("#repo-topic")
|
||||
var saveBtn = $("#save_topic")
|
||||
var mgrBtn = $("#manage_topic"),
|
||||
editDiv = $("#topic_edit"),
|
||||
viewDiv = $("#repo-topic"),
|
||||
saveBtn = $("#save_topic"),
|
||||
topicDropdown = $('#topic_edit .dropdown'),
|
||||
topicForm = $('#topic_edit.ui.form'),
|
||||
topicPrompts;
|
||||
|
||||
mgrBtn.click(function() {
|
||||
viewDiv.hide();
|
||||
editDiv.show();
|
||||
})
|
||||
});
|
||||
|
||||
function getPrompts() {
|
||||
var hidePrompt = $("div.hide#validate_prompt"),
|
||||
prompts = {
|
||||
countPrompt: hidePrompt.children('#count_prompt').text(),
|
||||
formatPrompt: hidePrompt.children('#format_prompt').text()
|
||||
};
|
||||
hidePrompt.remove();
|
||||
return prompts;
|
||||
}
|
||||
|
||||
saveBtn.click(function() {
|
||||
var topics = $("input[name=topics]").val();
|
||||
|
||||
$.post($(this).data('link'), {
|
||||
$.post(saveBtn.data('link'), {
|
||||
"_csrf": csrf,
|
||||
"topics": topics
|
||||
}).success(function(res){
|
||||
if (res["status"] != "ok") {
|
||||
alert(res.message);
|
||||
} else {
|
||||
}, function(data, textStatus, xhr){
|
||||
if (xhr.responseJSON.status === 'ok') {
|
||||
viewDiv.children(".topic").remove();
|
||||
if (topics.length == 0) {
|
||||
if (topics.length === 0) {
|
||||
return
|
||||
}
|
||||
var topicArray = topics.split(",");
|
||||
|
||||
var last = viewDiv.children("a").last();
|
||||
for (var i=0;i < topicArray.length; i++) {
|
||||
for (var i=0; i < topicArray.length; i++) {
|
||||
$('<div class="ui green basic label topic" style="cursor:pointer;">'+topicArray[i]+'</div>').insertBefore(last)
|
||||
}
|
||||
}
|
||||
}).done(function() {
|
||||
editDiv.hide();
|
||||
viewDiv.show();
|
||||
}).fail(function(xhr) {
|
||||
alert(xhr.responseJSON.message)
|
||||
})
|
||||
}
|
||||
}).fail(function(xhr){
|
||||
if (xhr.status === 422) {
|
||||
if (xhr.responseJSON.invalidTopics.length > 0) {
|
||||
topicPrompts.formatPrompt = xhr.responseJSON.message;
|
||||
|
||||
var invalidTopics = xhr.responseJSON.invalidTopics,
|
||||
topicLables = topicDropdown.children('a.ui.label');
|
||||
|
||||
topics.split(',').forEach(function(value, index) {
|
||||
for (var i=0; i < invalidTopics.length; i++) {
|
||||
if (invalidTopics[i] === value) {
|
||||
topicLables.eq(index).removeClass("green").addClass("red");
|
||||
}
|
||||
}
|
||||
});
|
||||
} else {
|
||||
topicPrompts.countPrompt = xhr.responseJSON.message;
|
||||
}
|
||||
}
|
||||
}).always(function() {
|
||||
topicForm.form('validate form');
|
||||
});
|
||||
});
|
||||
|
||||
$('#topic_edit .dropdown').dropdown({
|
||||
topicDropdown.dropdown({
|
||||
allowAdditions: true,
|
||||
fields: { name: "description", value: "data-value" },
|
||||
saveRemoteData: false,
|
||||
|
@ -2362,7 +2393,7 @@ function initTopicbar() {
|
|||
onResponse: function(res) {
|
||||
var formattedResponse = {
|
||||
success: false,
|
||||
results: new Array(),
|
||||
results: [],
|
||||
};
|
||||
|
||||
if (res.topics) {
|
||||
|
@ -2375,16 +2406,125 @@ function initTopicbar() {
|
|||
return formattedResponse;
|
||||
},
|
||||
},
|
||||
onLabelCreate: function(value) {
|
||||
value = value.toLowerCase().trim();
|
||||
this.attr("data-value", value).contents().first().replaceWith(value);
|
||||
return $(this);
|
||||
},
|
||||
onAdd: function(addedValue, addedText, $addedChoice) {
|
||||
addedValue = addedValue.toLowerCase().trim();
|
||||
$($addedChoice).attr('data-value', addedValue);
|
||||
$($addedChoice).attr('data-text', addedValue);
|
||||
}
|
||||
});
|
||||
|
||||
$.fn.form.settings.rules.validateTopic = function(values, regExp) {
|
||||
var topics = topicDropdown.children('a.ui.label'),
|
||||
status = topics.length === 0 || topics.last().attr("data-value").match(regExp);
|
||||
if (!status) {
|
||||
topics.last().removeClass("green").addClass("red");
|
||||
}
|
||||
return status && topicDropdown.children('a.ui.label.red').length === 0;
|
||||
};
|
||||
|
||||
topicPrompts = getPrompts();
|
||||
topicForm.form({
|
||||
on: 'change',
|
||||
inline : true,
|
||||
fields: {
|
||||
topics: {
|
||||
identifier: 'topics',
|
||||
rules: [
|
||||
{
|
||||
type: 'validateTopic',
|
||||
value: /^[a-z0-9][a-z0-9-]{1,35}$/,
|
||||
prompt: topicPrompts.formatPrompt
|
||||
},
|
||||
{
|
||||
type: 'maxCount[25]',
|
||||
prompt: topicPrompts.countPrompt
|
||||
}
|
||||
]
|
||||
},
|
||||
}
|
||||
});
|
||||
}
|
||||
function toggleDuedateForm() {
|
||||
$('#add_deadline_form').fadeToggle(150);
|
||||
function toggleDeadlineForm() {
|
||||
$('#deadlineForm').fadeToggle(150);
|
||||
}
|
||||
|
||||
function deleteDueDate(url) {
|
||||
$.post(url, {
|
||||
'_csrf': csrf,
|
||||
},function( data ) {
|
||||
function setDeadline() {
|
||||
var deadline = $('#deadlineDate').val();
|
||||
updateDeadline(deadline);
|
||||
}
|
||||
|
||||
function updateDeadline(deadlineString) {
|
||||
$('#deadline-err-invalid-date').hide();
|
||||
$('#deadline-loader').addClass('loading');
|
||||
|
||||
var realDeadline = null;
|
||||
if (deadlineString !== '') {
|
||||
|
||||
var newDate = Date.parse(deadlineString)
|
||||
|
||||
if (isNaN(newDate)) {
|
||||
$('#deadline-loader').removeClass('loading');
|
||||
$('#deadline-err-invalid-date').show();
|
||||
return false;
|
||||
}
|
||||
realDeadline = new Date(newDate);
|
||||
}
|
||||
|
||||
$.ajax($('#update-issue-deadline-form').attr('action') + '/deadline', {
|
||||
data: JSON.stringify({
|
||||
'due_date': realDeadline,
|
||||
}),
|
||||
contentType: 'application/json',
|
||||
type: 'POST',
|
||||
success: function () {
|
||||
window.location.reload();
|
||||
},
|
||||
error: function () {
|
||||
$('#deadline-loader').removeClass('loading');
|
||||
$('#deadline-err-invalid-date').show();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function deleteDependencyModal(id, type) {
|
||||
$('.remove-dependency')
|
||||
.modal({
|
||||
closable: false,
|
||||
duration: 200,
|
||||
onApprove: function () {
|
||||
$('#removeDependencyID').val(id);
|
||||
$('#dependencyType').val(type);
|
||||
$('#removeDependencyForm').submit();
|
||||
}
|
||||
}).modal('show')
|
||||
;
|
||||
}
|
||||
|
||||
function initIssueList() {
|
||||
var repolink = $('#repolink').val();
|
||||
$('.new-dependency-drop-list')
|
||||
.dropdown({
|
||||
apiSettings: {
|
||||
url: '/api/v1/repos' + repolink + '/issues?q={query}',
|
||||
onResponse: function(response) {
|
||||
var filteredResponse = {'success': true, 'results': []};
|
||||
// Parse the response from the api to work with our dropdown
|
||||
$.each(response, function(index, issue) {
|
||||
filteredResponse.results.push({
|
||||
'name' : '#' + issue.number + ' ' + issue.title,
|
||||
'value' : issue.id
|
||||
});
|
||||
});
|
||||
return filteredResponse;
|
||||
},
|
||||
},
|
||||
|
||||
fullTextSearch: true
|
||||
})
|
||||
;
|
||||
}
|
||||
|
|
|
@ -80,6 +80,23 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
@media only screen and (min-width: 768px) {
|
||||
.g-recaptcha {
|
||||
margin: 0 auto !important;
|
||||
width: 304px;
|
||||
padding-left: 30px;
|
||||
}
|
||||
}
|
||||
@media screen and (max-height: 575px){
|
||||
#rc-imageselect, .g-recaptcha {
|
||||
transform:scale(0.77);
|
||||
-webkit-transform:scale(0.77);
|
||||
transform-origin:0 0;
|
||||
-webkit-transform-origin:0 0;
|
||||
}
|
||||
}
|
||||
|
||||
.user.activate,
|
||||
.user.forgot.password,
|
||||
.user.reset.password,
|
||||
|
|
|
@ -98,6 +98,13 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
#deadlineForm input{
|
||||
width: 12.8rem;
|
||||
border-radius: 4px 0 0 4px;
|
||||
border-right: 0;
|
||||
white-space: nowrap;
|
||||
}
|
||||
}
|
||||
.header-wrapper {
|
||||
background-color: #FAFAFA;
|
||||
|
|
3
public/less/themes/_base.less
Normal file
3
public/less/themes/_base.less
Normal file
|
@ -0,0 +1,3 @@
|
|||
// TODO: Instead of having each theme file define each
|
||||
// CSS/LESS item in this file and then overide
|
||||
// in the theme files
|
767
public/less/themes/arc-green.less
Normal file
767
public/less/themes/arc-green.less
Normal file
|
@ -0,0 +1,767 @@
|
|||
@import "_base";
|
||||
|
||||
.hljs {
|
||||
display: block;
|
||||
overflow-x: auto;
|
||||
padding: 0.5em;
|
||||
color: #bababa;
|
||||
}
|
||||
.repository.file.list .non-diff-file-content .code-view .lines-num, .repository.file.list .non-diff-file-content .code-view .lines-code ol {
|
||||
background-color: #2b2b2b !important;
|
||||
}
|
||||
.hljs-strong, .hljs-emphasis {
|
||||
color: #a8a8a2;
|
||||
}
|
||||
.hljs-bullet, .hljs-quote, .hljs-link, .hljs-number, .hljs-regexp, .hljs-literal {
|
||||
color: #6896ba;
|
||||
}
|
||||
.hljs-code, .hljs-selector-class {
|
||||
color: #a6e22e;
|
||||
}
|
||||
.hljs-emphasis {
|
||||
font-style: italic;
|
||||
}
|
||||
.hljs-keyword, .hljs-selector-tag, .hljs-section, .hljs-attribute, .hljs-name, .hljs-variable {
|
||||
color: #cb7832;
|
||||
}
|
||||
.hljs-params {
|
||||
color: #b9b9b9;
|
||||
}
|
||||
.hljs-string {
|
||||
color: #6a8759;
|
||||
}
|
||||
.hljs-subst, .hljs-type, .hljs-built_in, .hljs-builtin-name, .hljs-symbol, .hljs-selector-id, .hljs-selector-attr, .hljs-selector-pseudo, .hljs-template-tag, .hljs-template-variable, .hljs-addition {
|
||||
color: #e0c46c;
|
||||
}
|
||||
.hljs-comment, .hljs-deletion, .hljs-meta {
|
||||
color: #7f7f7f;
|
||||
}
|
||||
.repository .ui.segment.sub-menu .list .item a {
|
||||
color:#dbdbdb;
|
||||
}
|
||||
.ui.horizontal.segments > .segment {
|
||||
background-color: #383c4a;
|
||||
}
|
||||
body {
|
||||
background: #383c4a;
|
||||
color: #9e9e9e;
|
||||
}
|
||||
a {
|
||||
color: #87ab63;
|
||||
}
|
||||
a:hover {
|
||||
color: #a0cc75;
|
||||
}
|
||||
.ui.card>.extra a:not(.ui):hover, .ui.cards>.card>.extra a:not(.ui):hover {
|
||||
color: #a0cc75;
|
||||
}
|
||||
.ui.breadcrumb a:hover {
|
||||
color: #a0cc75;
|
||||
}
|
||||
.ui.breadcrumb a {
|
||||
color: #87ab63;
|
||||
}
|
||||
.repository .metas .ui.list a .text {
|
||||
color: #87ab63;
|
||||
}
|
||||
.repository .metas .ui.list a .text:hover {
|
||||
color: #a0cc75;
|
||||
}
|
||||
.repository .label.list .item a {
|
||||
color: #87ab63;
|
||||
}
|
||||
.repository .label.list .item a:hover {
|
||||
color: #a0cc75;
|
||||
}
|
||||
.repository .milestone.list > .item > a {
|
||||
color: #87ab63;
|
||||
}
|
||||
.repository .milestone.list > .item > a:hover {
|
||||
color: #a0cc75;
|
||||
}
|
||||
.repository.release #release-list {
|
||||
border-top: 1px solid #4c505c;
|
||||
}
|
||||
.repository .milestone.list > .item .operate > a {
|
||||
color: #87ab63;
|
||||
}
|
||||
.repository .milestone.list > .item .operate > a:hover {
|
||||
color: #a0cc75;
|
||||
}
|
||||
.ui.green.progress .bar {
|
||||
background-color: #668844;
|
||||
}
|
||||
.ui.progress.success .bar {
|
||||
background-color: #7b9e57!important;
|
||||
}
|
||||
.following.bar.light {
|
||||
background: #2e323e;
|
||||
}
|
||||
.ui.secondary.menu .active.item {
|
||||
color: #dbdbdb;
|
||||
}
|
||||
.ui.secondary.menu .item {
|
||||
color: #9e9e9e;
|
||||
}
|
||||
.following.bar .top.menu a.item:hover {
|
||||
color: #fff;
|
||||
}
|
||||
.repository.view.issue .comment-list .comment .content > .bottom.segment a {
|
||||
border: solid 1px #353945;
|
||||
background-color: #353945;
|
||||
}
|
||||
.following.bar.light {
|
||||
border-bottom: 1px solid #313131;
|
||||
}
|
||||
.ui.attached.header {
|
||||
background: #404552;
|
||||
border: 1px solid #404552;
|
||||
color: #dbdbdb;
|
||||
}
|
||||
.ui.attached.table {
|
||||
border: 1px solid #304251;
|
||||
background: #304251;
|
||||
}
|
||||
.feeds .list ul li:not(:last-child) {
|
||||
border-bottom: 1px solid #333640;
|
||||
}
|
||||
.feeds .list ul li.private {
|
||||
background: #353945;
|
||||
border: 1px solid #333640;
|
||||
}
|
||||
.ui.secondary.menu .dropdown.item:hover, .ui.secondary.menu .link.item:hover, .ui.secondary.menu a.item:hover {
|
||||
color: #fff;
|
||||
}
|
||||
.ui.menu .ui.dropdown .menu>.item {
|
||||
background: #2c303a !important;
|
||||
color: #9e9e9e !important;
|
||||
}
|
||||
.ui.secondary.menu .dropdown.item>.menu, .ui.text.menu .dropdown.item>.menu {
|
||||
border: 1px solid #434444;
|
||||
}
|
||||
footer {
|
||||
background: #2e323e;
|
||||
border-top: 1px solid #313131;
|
||||
}
|
||||
.ui.menu .dropdown.item .menu {
|
||||
background: #2c303a;
|
||||
}
|
||||
.ui.menu .ui.dropdown .menu>.item:hover, .ui.menu .ui.dropdown .menu>.selected.item {
|
||||
color: #fff!important;
|
||||
}
|
||||
.ui.dropdown .menu>.header {
|
||||
color: #dbdbdb;
|
||||
}
|
||||
.ui.red.label, .ui.red.labels .label {
|
||||
background-color: #7d3434!important;
|
||||
border-color: #8a2121!important;
|
||||
}
|
||||
.ui.menu {
|
||||
background: #404552;
|
||||
border: 1px solid #353945;
|
||||
}
|
||||
.ui.menu .active.item:hover, .ui.vertical.menu .active.item:hover {
|
||||
color: #dbdbdb;
|
||||
background: #4B5162;
|
||||
}
|
||||
.ui.link.menu .item:hover, .ui.menu .dropdown.item:hover, .ui.menu .link.item:hover, .ui.menu a.item:hover {
|
||||
color: #dbdbdb;
|
||||
background: #454b5a;
|
||||
}
|
||||
.ui.menu .active.item {
|
||||
background: #4B5162;
|
||||
color: #dbdbdb;
|
||||
}
|
||||
.ui.input input {
|
||||
background: #404552;
|
||||
border: 2px solid #353945;
|
||||
color: #dbdbdb;
|
||||
}
|
||||
.ui.input input:focus, .ui.input.focus input {
|
||||
background: #404552;
|
||||
border: 2px solid #353945;
|
||||
color: #dbdbdb;
|
||||
}
|
||||
.ui.label {
|
||||
color: #dbdbdb;
|
||||
background-color: #404552;
|
||||
}
|
||||
.issue.list > .item .title {
|
||||
color: #87ab63;
|
||||
}
|
||||
.issue.list > .item .title:hover {
|
||||
color: #a0cc75;
|
||||
}
|
||||
.issue.list > .item {
|
||||
border-bottom: 1px dashed #475767;
|
||||
}
|
||||
.ui.green.label, .ui.green.labels .label {
|
||||
background-color: #2d693b!important;
|
||||
border-color: #2d693b!important;
|
||||
}
|
||||
.issue.list > .item .comment {
|
||||
color: #129c92;
|
||||
}
|
||||
.ui.basic.button, .ui.basic.buttons .button {
|
||||
color: #797979!important;
|
||||
}
|
||||
.ui.basic.red.active.button, .ui.basic.red.buttons .active.button {
|
||||
box-shadow: 0 0 0 1px #c75252 inset!important;
|
||||
color: #c75252!important;
|
||||
}
|
||||
.ui.basic.button:focus, .ui.basic.button:hover, .ui.basic.buttons .button:focus, .ui.basic.buttons .button:hover {
|
||||
background: transparent!important;
|
||||
color: #dbdbdb!important;
|
||||
}
|
||||
.ui.menu .item {
|
||||
background: #404552;
|
||||
color: #9e9e9e;
|
||||
}
|
||||
.ui.menu .item.disabled, .ui.menu .item.disabled:hover {
|
||||
color: #626773;
|
||||
}
|
||||
.ui.pagination.menu .active.item {
|
||||
color: #dbdbdb;
|
||||
background-color: #609926;
|
||||
}
|
||||
.repository .header-wrapper {
|
||||
background-color: #2a2e3a;
|
||||
}
|
||||
.ui.tabular.menu .active.item {
|
||||
background: #383c4a;
|
||||
color: #dbdbdb;
|
||||
border-left: 1px solid transparent;
|
||||
border-right: 1px solid transparent;
|
||||
border-top: none;
|
||||
}
|
||||
.ui.tabular.menu .item {
|
||||
color: #9e9e9e;
|
||||
}
|
||||
.ui.tabular.menu .item:hover {
|
||||
color: #dbdbdb;
|
||||
}
|
||||
.ui.header, .ui.breadcrumb .divider {
|
||||
color: #9e9e9e;
|
||||
}
|
||||
.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: #609926;
|
||||
}
|
||||
.ui.blue.button:hover, .ui.blue.buttons .button:hover {
|
||||
background-color: #73ad36;
|
||||
}
|
||||
.ui.form input:not([type]), .ui.form input[type=text], .ui.form input[type=email], .ui.form input[type=search], .ui.form input[type=password], .ui.form input[type=date], .ui.form input[type=datetime-local], .ui.form input[type=tel], .ui.form input[type=time], .ui.form input[type=url], .ui.form input[type=number] {
|
||||
background: #404552;
|
||||
border: 2px solid #353945;
|
||||
}
|
||||
.ui.form input:not([type]):focus, .ui.form input[type=text]:focus, .ui.form input[type=email]:focus, .ui.form input[type=search]:focus, .ui.form input[type=password]:focus, .ui.form input[type=date]:focus, .ui.form input[type=datetime-local]:focus, .ui.form input[type=tel]:focus, .ui.form input[type=time]:focus, .ui.form input[type=url]:focus, .ui.form input[type=number]:focus {
|
||||
background: #404552;
|
||||
border: 2px solid #4b505f;
|
||||
color: #dbdbdb;
|
||||
}
|
||||
.ui.action.input:not([class*="left action"]) input:focus {
|
||||
border-right-color: #4b505f!important;
|
||||
}
|
||||
.ui.green.button, .ui.green.buttons .button {
|
||||
background-color: #609926;
|
||||
}
|
||||
.ui.green.button:hover, .ui.green.buttons .button:hover {
|
||||
background-color: #73ad36;
|
||||
}
|
||||
.ui.button {
|
||||
background: #383c4a;
|
||||
border: 1px solid #4c505c;
|
||||
color: #dbdbdb;
|
||||
}
|
||||
.ui.labeled.button:not([class*="left labeled"])>.label, .ui[class*="left labeled"].button>.button {
|
||||
background: #404552;
|
||||
border: 1px solid #4c505c;
|
||||
color: #87ab63;
|
||||
}
|
||||
.ui.button:hover {
|
||||
background-color: #404552;
|
||||
color: #dbdbdb;
|
||||
}
|
||||
.ui.table thead th {
|
||||
background: #404552;
|
||||
color: #dbdbdb;
|
||||
}
|
||||
.repository.file.list #repo-files-table tr:hover {
|
||||
background-color: #393d4a;
|
||||
}
|
||||
.ui.table {
|
||||
color: #a5a5a5!important;
|
||||
border: 1px solid #4c505c;
|
||||
background: #353945;
|
||||
}
|
||||
.ui.table tbody tr {
|
||||
border-bottom: 1px solid #333640;
|
||||
background: #2a2e3a;
|
||||
}
|
||||
.ui .text.grey {
|
||||
color: #808084 !important;
|
||||
}
|
||||
.ui.attached.table.segment {
|
||||
background: #353945;
|
||||
color: #dbdbdb!important;
|
||||
}
|
||||
.markdown:not(code) h2 {
|
||||
border-bottom: 1px solid #304251;
|
||||
}
|
||||
.hljs, .hljs-keyword, .hljs-selector-tag, .hljs-subst {
|
||||
color: #9daccc;
|
||||
}
|
||||
.markdown:not(code) .highlight pre, .markdown:not(code) pre {
|
||||
background-color: #2a2e3a;
|
||||
border: 1px solid #404552;
|
||||
}
|
||||
.markdown:not(code) table tr:nth-child(2n) {
|
||||
background-color: #474d61;
|
||||
}
|
||||
.ui.dropdown .menu {
|
||||
background: #2c303a;
|
||||
}
|
||||
.ui.dropdown .menu>.message:not(.ui) {
|
||||
color: rgb(99, 99, 99);
|
||||
}
|
||||
.ui.input {
|
||||
color: #dbdbdb;
|
||||
}
|
||||
.overflow.menu .items .item {
|
||||
color: #9d9d9d;
|
||||
}
|
||||
.overflow.menu .items .item:hover {
|
||||
color: #dbdbdb;
|
||||
}
|
||||
.ui.segment {
|
||||
background: #353945;
|
||||
color: #9e9e9e!important;
|
||||
border: 1px solid #404552;
|
||||
}
|
||||
.ui.active.button:active, .ui.button:active, .ui.button:focus {
|
||||
background-color: #2e3e4e;
|
||||
color: #dbdbdb;
|
||||
}
|
||||
.ui.dropdown .menu .selected.item, .ui.dropdown.selected {
|
||||
color: #dbdbdb;
|
||||
}
|
||||
.ui.dropdown .menu>.item:hover {
|
||||
color: #dbdbdb;
|
||||
}
|
||||
.ui.dropdown .menu>.item {
|
||||
color: #9e9e9e;
|
||||
}
|
||||
.ui.attached.segment {
|
||||
border: 1px solid #404552;
|
||||
}
|
||||
.repository.view.issue .comment-list .comment .content > .bottom.segment {
|
||||
background: #353945;
|
||||
}
|
||||
.repository.view.issue .comment-list .comment .content .header {
|
||||
color: #dbdbdb;
|
||||
background-color: #404552;
|
||||
border-bottom: 1px solid #353944;
|
||||
}
|
||||
.ui .text.grey a {
|
||||
color: #b3b3b3 !important;
|
||||
}
|
||||
.ui.comments .comment .actions a {
|
||||
color: #dbdbdb;
|
||||
}
|
||||
.repository.view.issue .comment-list .comment .content .header:after {
|
||||
border-right-color: #404552;
|
||||
}
|
||||
.repository.new.issue .comment.form .content:after {
|
||||
border-right-color: #353945;
|
||||
}
|
||||
.repository.view.issue .comment-list .comment .content .header:before {
|
||||
border-right-color: #404552;
|
||||
}
|
||||
.repository.new.issue .comment.form .content:before {
|
||||
border-right-color: #353945;
|
||||
}
|
||||
.repository.view.issue .comment-list:before {
|
||||
background-color: #313c47;
|
||||
}
|
||||
.repository .comment.form .content .form:after {
|
||||
border-right-color: #313c47;
|
||||
}
|
||||
.repository .comment.form .content .form:before {
|
||||
border-right-color: #313c47;
|
||||
}
|
||||
.ui .text.grey a {
|
||||
color: #dbdbdb !important;
|
||||
}
|
||||
.ui .text.grey a:hover {
|
||||
color: #dbdbdb !important;
|
||||
}
|
||||
.ui.basic.green.active.button, .ui.basic.green.buttons .active.button {
|
||||
color: #13ae38!important;
|
||||
}
|
||||
.ui.form textarea, .ui.form textarea:focus {
|
||||
background: #1a2632;
|
||||
border: 1px solid #313c47;
|
||||
color: #dbdbdb;
|
||||
}
|
||||
.ui.form textarea:focus {
|
||||
border: 1px solid #456580;
|
||||
}
|
||||
.ui .info.segment.top {
|
||||
background-color: #404552 !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: rgb(40, 62, 45) !important;
|
||||
border-color: #314a37 !important;
|
||||
}
|
||||
.repository .diff-file-box .code-diff tbody tr .added-code {
|
||||
background-color: #3a523a;
|
||||
}
|
||||
.repository .diff-file-box .code-diff .lines-num {
|
||||
border-right: 1px solid #2d2d2d;
|
||||
}
|
||||
.repository .diff-file-box .file-body.file-code .lines-num {
|
||||
color: #9e9e9e;
|
||||
background: #2e323e;
|
||||
}
|
||||
.repository .diff-file-box .code-diff tbody tr.tag-code td, .repository .diff-file-box .code-diff tbody tr td.tag-code {
|
||||
border-color: #2d2d2d !important;
|
||||
}
|
||||
.repository .diff-file-box .file-body.file-code .lines-num-old {
|
||||
border-right: 1px solid #2d2d2d;
|
||||
}
|
||||
.hljs-title, .hljs-section, .hljs-selector-id {
|
||||
color: #986c88;
|
||||
}
|
||||
.hljs-string, .hljs-doctag {
|
||||
color: #949494;
|
||||
}
|
||||
.repository .diff-file-box .code-diff tbody tr .removed-code {
|
||||
background-color: #5f3737;
|
||||
}
|
||||
.repository .diff-file-box .code-diff tbody tr.tag-code td, .repository .diff-file-box .code-diff tbody tr td.tag-code {
|
||||
background-color: #292727 !important;
|
||||
}
|
||||
.ui.vertical.menu .active.item {
|
||||
background: #4B5162;
|
||||
}
|
||||
.ui.vertical.menu .item {
|
||||
background: #353945;
|
||||
}
|
||||
.ui.vertical.menu .header.item {
|
||||
background: #404552;
|
||||
}
|
||||
.ui.vertical.menu {
|
||||
background: #353945;
|
||||
border: 1px solid #333640;
|
||||
}
|
||||
.ui.repository.list .item:not(:first-child) {
|
||||
border-top: 1px solid #4c505c;
|
||||
}
|
||||
.ui .text.blue {
|
||||
color: #609926 !important;
|
||||
}
|
||||
.ui.selection.active.dropdown, .ui.selection.active.dropdown .menu {
|
||||
border-color: #4e5361;
|
||||
box-shadow: 0 2px 3px 0 rgba(34,36,38,.15);
|
||||
}
|
||||
.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: #404552;
|
||||
border: 1px solid rgb(64, 69, 82);
|
||||
color: #9e9e9e;
|
||||
}
|
||||
.ui.menu .ui.dropdown .menu>.active.item {
|
||||
color: #dbdbdb !important;
|
||||
}
|
||||
.ui.tabular.menu {
|
||||
border-bottom: 1px solid #313c47;
|
||||
}
|
||||
.ui.card, .ui.cards>.card {
|
||||
background: #353945;
|
||||
box-shadow: 0 1px 3px 0 #4c505c, 0 0 0 1px #4c505c;
|
||||
}
|
||||
.ui.card>.content>.header, .ui.cards>.card>.content>.header {
|
||||
color: #dbdbdb;
|
||||
}
|
||||
.ui.card>.extra a:not(.ui), .ui.cards>.card>.extra a:not(.ui) {
|
||||
color: #87ab63;
|
||||
}
|
||||
.ui .text.black {
|
||||
color: #9e9e9e;
|
||||
}
|
||||
.ui .text.black:hover {
|
||||
color: #dbdbdb;
|
||||
}
|
||||
.ui.secondary.segment {
|
||||
background: #353945;
|
||||
}
|
||||
.ui.secondary.pointing.menu .active.item {
|
||||
border-color: #609926;
|
||||
color: #dbdbdb;
|
||||
background: #404552;
|
||||
}
|
||||
.ui.user.list .item:not(:first-child) {
|
||||
border-top: 1px solid #4c505c;
|
||||
}
|
||||
.ui.secondary.pointing.menu .active.item:hover {
|
||||
border-color: #af8b4c;
|
||||
color: #dbdbdb;
|
||||
background: #4b5162;
|
||||
}
|
||||
.ui.secondary.pointing.menu .dropdown.item:hover, .ui.secondary.pointing.menu .link.item:hover, .ui.secondary.pointing.menu a.item:hover {
|
||||
color: #dbdbdb;
|
||||
}
|
||||
.ui.checkbox label, .ui.checkbox+label, .ui.form .field>label {
|
||||
color: #9e9e9e;
|
||||
}
|
||||
.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: #9e9e9e;
|
||||
}
|
||||
.user.settings .email.list .item:not(:first-child) {
|
||||
border-top: 1px solid #3f4451;
|
||||
}
|
||||
.explore .navbar {
|
||||
background-color: #2a2e3a!important;
|
||||
}
|
||||
.ui.menu.new-menu {
|
||||
background-color: #2a2e3a!important;
|
||||
}
|
||||
input {
|
||||
background: #2e323e;
|
||||
}
|
||||
.ui.secondary.pointing.menu .active.item {
|
||||
border: none;
|
||||
background: #383c4a;
|
||||
}
|
||||
.settings .key.list .item:not(:first-child) {
|
||||
border-top: 1px solid #404552;
|
||||
}
|
||||
.ui.form input:not([type]), .ui.form input[type=text], .ui.form input[type=email], .ui.form input[type=search], .ui.form input[type=password], .ui.form input[type=date], .ui.form input[type=datetime-local], .ui.form input[type=tel], .ui.form input[type=time], .ui.form input[type=url], .ui.form input[type=number] {
|
||||
color: #9e9e9e;
|
||||
}
|
||||
.ui.attached.info.message, .ui.info.message {
|
||||
box-shadow: 0 0 0 1px #4b5e71 inset, 0 0 0 0 transparent;
|
||||
}
|
||||
.ui.info.message {
|
||||
background-color: #2c3b4a;
|
||||
color: #9ebcc5;
|
||||
}
|
||||
.ui .warning.header {
|
||||
background-color: #5d3a22 !important;
|
||||
border-color: #794f31;
|
||||
}
|
||||
.ui.red.message {
|
||||
background-color: rgba(80, 23, 17, 0.6);
|
||||
color: #f9cbcb;
|
||||
box-shadow: 0 0 0 1px rgba(121, 71, 66, 0.5) inset, 0 0 0 0 transparent;
|
||||
}
|
||||
.ui.red.button, .ui.red.buttons .button {
|
||||
background-color: #7d3434;
|
||||
}
|
||||
.ui.red.button:hover, .ui.red.buttons .button:hover {
|
||||
background-color: #984646;
|
||||
}
|
||||
.ui.checkbox label:hover, .ui.checkbox+label:hover {
|
||||
color: #dbdbdb !important;
|
||||
}
|
||||
.ui.checkbox input:checked~.box:after, .ui.checkbox input:checked~label:after {
|
||||
color: rgb(127, 152, 173);
|
||||
}
|
||||
.ui.checkbox input:checked~.box:before, .ui.checkbox input:checked~label:before {
|
||||
background: #304251;
|
||||
}
|
||||
.ui.checkbox .box:hover::before, .ui.checkbox label:hover::before {
|
||||
background: #304251;
|
||||
}
|
||||
.ui.checkbox .box:before, .ui.checkbox label:before {
|
||||
background: #304251;
|
||||
border: 1px solid #304251;
|
||||
}
|
||||
.ui.checkbox .box:active::before, .ui.checkbox label:active::before {
|
||||
background: #304251;
|
||||
border-color: rgba(34,36,38,.35);
|
||||
}
|
||||
.ui.checkbox input:checked~.box:before, .ui.checkbox input:checked~label:before {
|
||||
border-color: #304251;
|
||||
background: #304251;
|
||||
}
|
||||
.ui.checkbox input:focus~.box:before, .ui.checkbox input:focus~label:before {
|
||||
border-color: #304251;
|
||||
background: #304251;
|
||||
}
|
||||
.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: #304251;
|
||||
background: #304251;
|
||||
}
|
||||
.ui.checkbox input:checked~.box:after, .ui.checkbox input:checked~label:after {
|
||||
opacity: 1;
|
||||
color: rgb(127, 152, 173);
|
||||
}
|
||||
.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: rgb(127, 152, 173);
|
||||
}
|
||||
.ui.checkbox input:focus~.box:after, .ui.checkbox input:focus~label, .ui.checkbox input:focus~label:after {
|
||||
color: #9a9a9a;
|
||||
}
|
||||
.ui.selection.dropdown:hover {
|
||||
border-color: rgba(34,36,38,.35);
|
||||
border: 1px solid #456580;
|
||||
}
|
||||
.ui.selection.dropdown .menu>.item {
|
||||
border-top: 1px solid #313c47;
|
||||
}
|
||||
.ui.selection.visible.dropdown>.text:not(.default) {
|
||||
color: #9e9e9e;
|
||||
}
|
||||
.ui.negative.message {
|
||||
background-color: rgba(80, 23, 17, 0.6);
|
||||
color: #f9cbcb;
|
||||
box-shadow: 0 0 0 1px rgba(121, 71, 66, 0.5) inset, 0 0 0 0 transparent;
|
||||
}
|
||||
.hljs-tag, .hljs-name, .hljs-attribute {
|
||||
color: #ef5e77;
|
||||
}
|
||||
.user.profile .ui.card .extra.content ul li:not(:last-child) {
|
||||
border-bottom: 1px solid #4c505c;
|
||||
}
|
||||
.ui.form textarea, .ui.form textarea:focus {
|
||||
background: #404552;
|
||||
border: 2px solid #353945;
|
||||
}
|
||||
.hljs-number, .hljs-literal, .hljs-variable, .hljs-template-variable, .hljs-tag .hljs-attr {
|
||||
color: #bd84bf;
|
||||
}
|
||||
.hljs-string, .hljs-doctag {
|
||||
color: #8ab398;
|
||||
}
|
||||
.ui.form .dropzone {
|
||||
border: 2px dashed #4c505c;
|
||||
}
|
||||
.ui.basic.red.button, .ui.basic.red.buttons .button {
|
||||
box-shadow: 0 0 0 1px #a04141 inset!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: #9e9e9e;
|
||||
}
|
||||
.ui.user.list .item .description a {
|
||||
color: #668cb1;
|
||||
}
|
||||
.repository.file.list #file-content .code-view .lines-num {
|
||||
background: #2e323e;
|
||||
}
|
||||
.repository.file.list #repo-files-table tbody .octicon.octicon-file-directory, .repository.file.list #repo-files-table tbody .octicon.octicon-file-submodule {
|
||||
color: #7c9b5e;
|
||||
}
|
||||
.ui.blue.button:focus, .ui.blue.buttons .button:focus {
|
||||
background-color: #609926;
|
||||
}
|
||||
.ui.basic.blue.button:hover, .ui.basic.blue.buttons .button:hover {
|
||||
box-shadow: 0 0 0 1px #609926 inset!important;
|
||||
color: #609926!important;
|
||||
}
|
||||
.ui.basic.blue.button:focus, .ui.basic.blue.buttons .button:focus {
|
||||
box-shadow: 0 0 0 1px #609926 inset!important;
|
||||
color: #609926!important;
|
||||
}
|
||||
.repository.file.list #file-content .code-view .lines-num pre, .repository.file.list #file-content .code-view .lines-code pre, .repository.file.list #file-content .code-view .lines-num ol, .repository.file.list #file-content .code-view .lines-code ol, .repository.file.list #file-content .code-view .lines-num .hljs, .repository.file.list #file-content .code-view .lines-code .hljs {
|
||||
background-color: #2a2e3a;
|
||||
}
|
||||
a.ui.label:hover, a.ui.labels .label:hover {
|
||||
background-color: #505667;
|
||||
color: rgb(219, 219, 219);
|
||||
}
|
||||
.repository .label.list .item {
|
||||
border-bottom: 1px dashed #4c505c;
|
||||
}
|
||||
.repository.file.list #file-content .code-view .lines-num {
|
||||
background: #2e323e;
|
||||
}
|
||||
.repository.file.list #repo-files-table tbody .octicon.octicon-file-directory, .repository.file.list #repo-files-table tbody .octicon.octicon-file-submodule {
|
||||
color: #7c9b5e;
|
||||
}
|
||||
.ui.basic.blue.button, .ui.basic.blue.buttons .button {
|
||||
box-shadow: 0 0 0 1px #a27558 inset !important;
|
||||
color: #a27558 !important;
|
||||
}
|
||||
.repository.file.list #file-content .code-view .lines-num pre, .repository.file.list #file-content .code-view .lines-code pre, .repository.file.list #file-content .code-view .lines-num ol, .repository.file.list #file-content .code-view .lines-code ol, .repository.file.list #file-content .code-view .lines-num .hljs, .repository.file.list #file-content .code-view .lines-code .hljs {
|
||||
background-color: #2a2e3a;
|
||||
}
|
||||
a.ui.label:hover, a.ui.labels .label:hover {
|
||||
background-color: #505667;
|
||||
color: rgb(219, 219, 219);
|
||||
}
|
||||
.repository .diff-file-box .code-diff-split tbody tr.add-code td:nth-child(1), .repository .diff-file-box .code-diff-split tbody tr.add-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.del-code td:nth-child(4) {
|
||||
background-color: #2a2e3a;
|
||||
}
|
||||
.repository .diff-file-box .code-diff-split tbody tr.add-code td:nth-child(3), .repository .diff-file-box .code-diff-split tbody tr.add-code td:nth-child(4), .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:nth-child(1), .repository .diff-file-box .code-diff-split tbody tr.del-code td:nth-child(2), .repository .diff-file-box .code-diff-split tbody tr td.del-code {
|
||||
background-color: #3c2626 !important;
|
||||
border-color: #634343 !important;
|
||||
}
|
||||
.ui.blue.button:focus, .ui.blue.buttons .button:focus {
|
||||
background-color: #a27558;
|
||||
}
|
||||
.ui.blue.button:active, .ui.blue.buttons .button:active {
|
||||
background-color: #a27558;
|
||||
}
|
||||
#git-graph-container li a {
|
||||
color: #c79575;
|
||||
}
|
||||
#git-graph-container li .author {
|
||||
color: #c79575;
|
||||
}
|
||||
.ui.header .sub.header {
|
||||
color: #9e9e9e;
|
||||
}
|
||||
.ui.dividing.header {
|
||||
border-bottom: 1px solid #4c505c;
|
||||
}
|
||||
.ui.modal>.header {
|
||||
background: #404552;
|
||||
color: #dbdbdb;
|
||||
}
|
||||
.ui.modal>.actions {
|
||||
background: #404552;
|
||||
border-top: 1px solid #404552;
|
||||
}
|
||||
.ui.modal>.content {
|
||||
background: #383c4a;
|
||||
}
|
||||
.ui.basic.blue.button, .ui.basic.blue.buttons .button {
|
||||
box-shadow: 0 0 0 1px #609926 inset!important;
|
||||
color: #609926!important;
|
||||
}
|
||||
.editor-toolbar {
|
||||
background-color: #404552;
|
||||
a {
|
||||
color: #87ab63 !important;
|
||||
}
|
||||
}
|
||||
.CodeMirror {
|
||||
color: #9daccc;
|
||||
background-color: #2b2b2b;
|
||||
border-top: none;
|
||||
}
|
||||
.CodeMirror-gutters{
|
||||
background-color: #2b2b2b;
|
||||
}
|
136
public/swagger.v1.json
vendored
136
public/swagger.v1.json
vendored
|
@ -1847,7 +1847,7 @@
|
|||
{
|
||||
"type": "string",
|
||||
"description": "if provided, only comments updated since the provided time are returned.",
|
||||
"name": "string",
|
||||
"name": "since",
|
||||
"in": "query"
|
||||
}
|
||||
],
|
||||
|
@ -2160,7 +2160,7 @@
|
|||
{
|
||||
"type": "string",
|
||||
"description": "if provided, only comments updated since the specified time are returned.",
|
||||
"name": "string",
|
||||
"name": "since",
|
||||
"in": "query"
|
||||
}
|
||||
],
|
||||
|
@ -2320,6 +2320,68 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"/repos/{owner}/{repo}/issues/{index}/deadline": {
|
||||
"post": {
|
||||
"consumes": [
|
||||
"application/json"
|
||||
],
|
||||
"produces": [
|
||||
"application/json"
|
||||
],
|
||||
"tags": [
|
||||
"issue"
|
||||
],
|
||||
"summary": "Set an issue deadline. If set to null, the deadline is deleted.",
|
||||
"operationId": "issueEditIssueDeadline",
|
||||
"parameters": [
|
||||
{
|
||||
"type": "string",
|
||||
"description": "owner of the repo",
|
||||
"name": "owner",
|
||||
"in": "path",
|
||||
"required": true
|
||||
},
|
||||
{
|
||||
"type": "string",
|
||||
"description": "name of the repo",
|
||||
"name": "repo",
|
||||
"in": "path",
|
||||
"required": true
|
||||
},
|
||||
{
|
||||
"type": "integer",
|
||||
"description": "index of the issue to create or update a deadline on",
|
||||
"name": "index",
|
||||
"in": "path",
|
||||
"required": true
|
||||
},
|
||||
{
|
||||
"name": "body",
|
||||
"in": "body",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/EditDeadlineOption"
|
||||
}
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"201": {
|
||||
"$ref": "#/responses/IssueDeadline"
|
||||
},
|
||||
"403": {
|
||||
"description": "Not repo writer",
|
||||
"schema": {
|
||||
"$ref": "#/responses/forbidden"
|
||||
}
|
||||
},
|
||||
"404": {
|
||||
"description": "Issue not found",
|
||||
"schema": {
|
||||
"$ref": "#/responses/empty"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"/repos/{owner}/{repo}/issues/{index}/labels": {
|
||||
"get": {
|
||||
"produces": [
|
||||
|
@ -5441,6 +5503,39 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"/users/{username}/tokens/{token}": {
|
||||
"delete": {
|
||||
"produces": [
|
||||
"application/json"
|
||||
],
|
||||
"tags": [
|
||||
"user"
|
||||
],
|
||||
"summary": "delete an access token",
|
||||
"operationId": "userDeleteAccessToken",
|
||||
"parameters": [
|
||||
{
|
||||
"type": "string",
|
||||
"description": "username of user",
|
||||
"name": "username",
|
||||
"in": "path",
|
||||
"required": true
|
||||
},
|
||||
{
|
||||
"type": "integer",
|
||||
"description": "token to be deleted",
|
||||
"name": "token",
|
||||
"in": "path",
|
||||
"required": true
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"204": {
|
||||
"$ref": "#/responses/empty"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"/version": {
|
||||
"get": {
|
||||
"produces": [
|
||||
|
@ -6112,6 +6207,21 @@
|
|||
},
|
||||
"x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
|
||||
},
|
||||
"EditDeadlineOption": {
|
||||
"description": "EditDeadlineOption options for creating a deadline",
|
||||
"type": "object",
|
||||
"required": [
|
||||
"due_date"
|
||||
],
|
||||
"properties": {
|
||||
"due_date": {
|
||||
"type": "string",
|
||||
"format": "date-time",
|
||||
"x-go-name": "Deadline"
|
||||
}
|
||||
},
|
||||
"x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
|
||||
},
|
||||
"EditHookOption": {
|
||||
"description": "EditHookOption options when modify one hook",
|
||||
"type": "object",
|
||||
|
@ -6602,6 +6712,18 @@
|
|||
},
|
||||
"x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
|
||||
},
|
||||
"IssueDeadline": {
|
||||
"description": "IssueDeadline represents an issue deadline",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"due_date": {
|
||||
"type": "string",
|
||||
"format": "date-time",
|
||||
"x-go-name": "Deadline"
|
||||
}
|
||||
},
|
||||
"x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
|
||||
},
|
||||
"IssueLabelsOption": {
|
||||
"description": "IssueLabelsOption a collection of labels",
|
||||
"type": "object",
|
||||
|
@ -7479,6 +7601,10 @@
|
|||
"AccessToken": {
|
||||
"description": "AccessToken represents a API access token.",
|
||||
"headers": {
|
||||
"id": {
|
||||
"type": "integer",
|
||||
"format": "int64"
|
||||
},
|
||||
"name": {
|
||||
"type": "string"
|
||||
},
|
||||
|
@ -7598,6 +7724,12 @@
|
|||
"$ref": "#/definitions/Issue"
|
||||
}
|
||||
},
|
||||
"IssueDeadline": {
|
||||
"description": "IssueDeadline",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/IssueDeadline"
|
||||
}
|
||||
},
|
||||
"IssueList": {
|
||||
"description": "IssueList",
|
||||
"schema": {
|
||||
|
|
2
public/vendor/VERSIONS
vendored
2
public/vendor/VERSIONS
vendored
|
@ -9,7 +9,7 @@ File(s): /vendor/plugins/jquery/jquery.min.js
|
|||
Version: 1.11.3
|
||||
|
||||
File(s): /vendor/plugins/semantic/semantic.min.js
|
||||
Version: 2.2.1
|
||||
Version: 2.3.1
|
||||
|
||||
File(s): /vendor/plugins/clipboard/clipboard.min.js
|
||||
Version: 1.5.9
|
||||
|
|
52
public/vendor/librejs.html
vendored
52
public/vendor/librejs.html
vendored
|
@ -11,122 +11,122 @@
|
|||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><a href="/vendor/plugins/jquery.areyousure/jquery.are-you-sure.js">jquery.are-you-sure.js</a></td>
|
||||
<td><a href="./plugins/jquery.areyousure/jquery.are-you-sure.js">jquery.are-you-sure.js</a></td>
|
||||
<td><a href="http://www.freebsd.org/copyright/freebsd-license.html">Expat</a></td>
|
||||
<td><a href="https://github.com/codedance/jquery.AreYouSure/archive/1.9.0.tar.gz">jquery.areyousure-1.9.0.tar.gz</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/vendor/plugins/jquery/jquery.min.js">jquery.min.js</a></td>
|
||||
<td><a href="./plugins/jquery/jquery.min.js">jquery.min.js</a></td>
|
||||
<td><a href="http://www.freebsd.org/copyright/freebsd-license.html">Expat</a></td>
|
||||
<td><a href="https://code.jquery.com/jquery-1.11.3.min.js">jquery-1.11.3.min.js</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/vendor/plugins/semantic/semantic.min.js">semantic.min.js</a></td>
|
||||
<td><a href="http://www.freebsd.org/copyright/freebsd-license.html">Expat</a></td>
|
||||
<td><a href="https://github.com/Semantic-Org/Semantic-UI/archive/2.2.1.tar.gz">semantic-UI-2.2.1.tar.gz</a></td>
|
||||
<td><a href="./plugins/semantic/semantic.min.js">semantic.min.js</a></td>
|
||||
<td><a href="https://semantic-ui.mit-license.org/">Expat</a></td>
|
||||
<td><a href="https://github.com/Semantic-Org/Semantic-UI/archive/2.3.1.tar.gz">semantic-UI-2.3.1.tar.gz</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/js/index.js">index.js</a></td>
|
||||
<td><a href="../js/index.js">index.js</a></td>
|
||||
<td><a href="https://github.com/go-gitea/gitea/blob/master/LICENSE">Expat</a></td>
|
||||
<td><a href="https://github.com/go-gitea/gitea/tree/master/public/js">index.js</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/js/draw.js">draw.js</a></td>
|
||||
<td><a href="../js/draw.js">draw.js</a></td>
|
||||
<td><a href="https://github.com/go-gitea/gitea/blob/master/LICENSE">Expat</a></td>
|
||||
<td><a href="https://github.com/go-gitea/gitea/tree/master/public/js">draw.js</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/vendor/plugins/clipboard/clipboard.min.js">clipboard.min.js</a></td>
|
||||
<td><a href="./plugins/clipboard/clipboard.min.js">clipboard.min.js</a></td>
|
||||
<td><a href="http://www.freebsd.org/copyright/freebsd-license.html">Expat</a></td>
|
||||
<td><a href="https://github.com/zenorocha/clipboard.js/archive/v1.5.9.tar.gz">clipboard-1.5.9.tar.gz</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/vendor/plugins/gitgraph/gitgraph.js">gitgraph.js</a></td>
|
||||
<td><a href="./plugins/gitgraph/gitgraph.js">gitgraph.js</a></td>
|
||||
<td><a href="https://github.com/bluef/gitgraph.js/blob/master/LICENSE">BSD 3-Clause</a></td>
|
||||
<td><a href="https://github.com/bluef/gitgraph.js">gitgraph.js-latest</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/vendor/plugins/vue/vue.min.js">vue.min.js</a></td>
|
||||
<td><a href="./plugins/vue/vue.min.js">vue.min.js</a></td>
|
||||
<td><a href="https://github.com/vuejs/vue/blob/dev/LICENSE">Expat</a></td>
|
||||
<td><a href="https://github.com/vuejs/vue/archive/v2.1.10.tar.gz">vue.js-v2.1.10.tar.gz</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/vendor/plugins/emojify/emojify.min.js">emojify.min.js</a></td>
|
||||
<td><a href="./plugins/emojify/emojify.min.js">emojify.min.js</a></td>
|
||||
<td><a href="http://www.freebsd.org/copyright/freebsd-license.html">Expat</a></td>
|
||||
<td><a href="https://github.com/Ranks/emojify.js/archive/1.1.0.tar.gz">emojify-1.1.0.tar.gz</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/vendor/plugins/cssrelpreload/loadCSS.min.js">loadCSS.min.js</a></td>
|
||||
<td><a href="./plugins/cssrelpreload/loadCSS.min.js">loadCSS.min.js</a></td>
|
||||
<td><a href="http://www.freebsd.org/copyright/freebsd-license.html">Expat</a></td>
|
||||
<td><a href="https://github.com/filamentgroup/loadCSS/archive/v1.3.1.tar.gz">loadCSS-1.3.1.tar.gz</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/vendor/plugins/cssrelpreload/cssrelpreload.min.js">cssrelpreload.min.js</a></td>
|
||||
<td><a href="./plugins/cssrelpreload/cssrelpreload.min.js">cssrelpreload.min.js</a></td>
|
||||
<td><a href="http://www.freebsd.org/copyright/freebsd-license.html">Expat</a></td>
|
||||
<td><a href="https://github.com/filamentgroup/loadCSS/archive/v1.3.1.tar.gz">loadCSS-1.3.1.tar.gz</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/vendor/plugins/dropzone/dropzone.js">dropzone.js</a></td>
|
||||
<td><a href="./plugins/dropzone/dropzone.js">dropzone.js</a></td>
|
||||
<td><a href="https://github.com/enyo/dropzone/blob/master/LICENSE">Expat</a></td>
|
||||
<td><a href="https://github.com/enyo/dropzone/archive/v4.2.0.tar.gz">dropzone.js-4.2.0.tar.gz</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/vendor/plugins/highlight/highlight.pack.js">highlight.pack.js</a></td>
|
||||
<td><a href="./plugins/highlight/highlight.pack.js">highlight.pack.js</a></td>
|
||||
<td><a href="https://github.com/isagalaev/highlight.js/blob/master/LICENSE">BSD 3-Clause</a></td>
|
||||
<td><a href="https://github.com/isagalaev/highlight.js/archive/9.6.0.tar.gz">highlight.js-9.6.0.tar.gz</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/vendor/plugins/jquery.datetimepicker/jquery.datetimepicker.js">jquery.datetimepicker.js</a></td>
|
||||
<td><a href="./plugins/jquery.datetimepicker/jquery.datetimepicker.js">jquery.datetimepicker.js</a></td>
|
||||
<td><a href="https://github.com/xdan/datetimepicker/blob/master/MIT-LICENSE.txt">Expat</a></td>
|
||||
<td><a href="https://github.com/xdan/datetimepicker/archive/2.4.5.tar.gz">jquery.datetimepicker-2.4.5.tar.gz</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/vendor/plugins/jquery.minicolors/jquery.minicolors.min.js">jquery.minicolors.min.js</a></td>
|
||||
<td><a href="./plugins/jquery.minicolors/jquery.minicolors.min.js">jquery.minicolors.min.js</a></td>
|
||||
<td><a href="https://github.com/claviska/jquery-minicolors/blob/master/LICENSE.md">Expat</a></td>
|
||||
<td><a href="https://github.com/claviska/jquery-minicolors/archive/2.2.3.tar.gz">jquery.minicolors-2.2.3.tar.gz</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/vendor/plugins/codemirror/addon/mode/loadmode.js">loadmode.js</a></td>
|
||||
<td><a href="./plugins/codemirror/addon/mode/loadmode.js">loadmode.js</a></td>
|
||||
<td><a href="https://github.com/codemirror/CodeMirror/blob/master/LICENSE">Expat</a></td>
|
||||
<td><a href="https://github.com/codemirror/CodeMirror/archive/5.17.0.tar.gz">codemirror-5.17.0.tar.gz</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/vendor/plugins/codemirror/mode/meta.js">meta.js</a></td>
|
||||
<td><a href="./plugins/codemirror/mode/meta.js">meta.js</a></td>
|
||||
<td><a href="https://github.com/codemirror/CodeMirror/blob/master/LICENSE">Expat</a></td>
|
||||
<td><a href="https://github.com/codemirror/CodeMirror/archive/5.17.0.tar.gz">codemirror-5.17.0.tar.gz</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/vendor/plugins/simplemde/simplemde.min.js">simplemde.min.js</a></td>
|
||||
<td><a href="./plugins/simplemde/simplemde.min.js">simplemde.min.js</a></td>
|
||||
<td><a href="https://github.com/sparksuite/simplemde-markdown-editor/blob/master/LICENSE">Expat</a></td>
|
||||
<td><a href="https://github.com/NextStepWebs/simplemde-markdown-editor/archive/1.10.1.tar.gz">simplemde-markdown-editor-1.10.1.tar.gz</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/vendor/plugins/pdfjs/">pdf.js</a></td>
|
||||
<td><a href="./plugins/pdfjs/">pdf.js</a></td>
|
||||
<td><a href="https://github.com/mozilla/pdf.js/blob/master/LICENSE">Apache-2.0-only</a></td>
|
||||
<td><a href="https://github.com/mozilla/pdf.js/archive/v1.4.20.tar.gz">pdf.js-v1.4.20.tar.gz</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/vendor/plugins/u2f/">u2f-api</a></td>
|
||||
<td><a href="./plugins/u2f/">u2f-api</a></td>
|
||||
<td><a href="https://github.com/go-gitea/u2f-api/blob/master/LICENSE">Expat</a></td>
|
||||
<td><a href="https://github.com/go-gitea/u2f-api/archive/v1.0.8.zip">u2f-api-1.0.8.zip</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/vendor/assets/font-awesome/fonts/">font-awesome - fonts</a></td>
|
||||
<td><a href="./assets/font-awesome/fonts/">font-awesome - fonts</a></td>
|
||||
<td><a href="http://fontawesome.io/license/">OFL</a></td>
|
||||
<td><a href="http://fontawesome.io/assets/font-awesome-4.6.0.zip">font-awesome-4.6.0.zip</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/vendor/assets/font-awesome/css/">font-awesome - code</a></td>
|
||||
<td><a href="./assets/font-awesome/css/">font-awesome - code</a></td>
|
||||
<td><a href="http://fontawesome.io/license/">Expat</a></td>
|
||||
<td><a href="http://fontawesome.io/assets/font-awesome-4.6.0.zip">font-awesome-4.6.0.zip</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/vendor/assets/octicons/">octicons</a></td>
|
||||
<td><a href="./assets/octicons/">octicons</a></td>
|
||||
<td><a href="https://github.com/primer/octicons/blob/master/LICENSE">Expat</a></td>
|
||||
<td><a href="https://github.com/primer/octicons/archive/v4.3.0.tar.gz">octicons-v4.3.0.tar.gz</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/vendor/assets/swagger-ui/">swagger-ui</a></td>
|
||||
<td><a href="./assets/swagger-ui/">swagger-ui</a></td>
|
||||
<td><a href="https://github.com/swagger-api/swagger-ui/blob/master/LICENSE">Apache-2.0</a></td>
|
||||
<td><a href="https://github.com/swagger-api/swagger-ui/archive/v3.0.4.tar.gz">swagger-ui-v3.0.4.tar.gz</a></td>
|
||||
</tr>
|
||||
|
|
357
public/vendor/plugins/semantic/semantic.min.css
vendored
357
public/vendor/plugins/semantic/semantic.min.css
vendored
File diff suppressed because one or more lines are too long
12
public/vendor/plugins/semantic/semantic.min.js
vendored
12
public/vendor/plugins/semantic/semantic.min.js
vendored
File diff suppressed because one or more lines are too long
BIN
public/vendor/plugins/semantic/themes/default/assets/fonts/brand-icons.eot
vendored
Normal file
BIN
public/vendor/plugins/semantic/themes/default/assets/fonts/brand-icons.eot
vendored
Normal file
Binary file not shown.
1008
public/vendor/plugins/semantic/themes/default/assets/fonts/brand-icons.svg
vendored
Normal file
1008
public/vendor/plugins/semantic/themes/default/assets/fonts/brand-icons.svg
vendored
Normal file
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 496 KiB |
BIN
public/vendor/plugins/semantic/themes/default/assets/fonts/brand-icons.ttf
vendored
Normal file
BIN
public/vendor/plugins/semantic/themes/default/assets/fonts/brand-icons.ttf
vendored
Normal file
Binary file not shown.
BIN
public/vendor/plugins/semantic/themes/default/assets/fonts/brand-icons.woff
vendored
Normal file
BIN
public/vendor/plugins/semantic/themes/default/assets/fonts/brand-icons.woff
vendored
Normal file
Binary file not shown.
BIN
public/vendor/plugins/semantic/themes/default/assets/fonts/brand-icons.woff2
vendored
Normal file
BIN
public/vendor/plugins/semantic/themes/default/assets/fonts/brand-icons.woff2
vendored
Normal file
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user