mirror of https://github.com/go-gitea/gitea.git
Merge branch 'develop' of github.com:gogits/gogs into feature/page_issues
commit
54b58e988d
|
@ -114,6 +114,7 @@ func runCert(ctx *cli.Context) {
|
|||
SerialNumber: serialNumber,
|
||||
Subject: pkix.Name{
|
||||
Organization: []string{"Acme Co"},
|
||||
CommonName: "Gogs",
|
||||
},
|
||||
NotBefore: notBefore,
|
||||
NotAfter: notAfter,
|
||||
|
|
14
cmd/serve.go
14
cmd/serve.go
|
@ -82,7 +82,7 @@ func runServ(c *cli.Context) {
|
|||
}
|
||||
|
||||
if len(c.Args()) < 1 {
|
||||
fail("Not enough arguments", "Not enough arugments")
|
||||
fail("Not enough arguments", "Not enough arguments")
|
||||
}
|
||||
|
||||
keys := strings.Split(c.Args()[0], "-")
|
||||
|
@ -97,7 +97,7 @@ func runServ(c *cli.Context) {
|
|||
|
||||
user, err := models.GetUserByKeyId(keyId)
|
||||
if err != nil {
|
||||
fail("internal error", "Fail to get user by key ID(%d): %v", keyId, err)
|
||||
fail("internal error", "Failed to get user by key ID(%d): %v", keyId, err)
|
||||
}
|
||||
|
||||
cmd := os.Getenv("SSH_ORIGINAL_COMMAND")
|
||||
|
@ -113,7 +113,7 @@ func runServ(c *cli.Context) {
|
|||
repoPath := strings.Trim(args, "'")
|
||||
rr := strings.SplitN(repoPath, "/", 2)
|
||||
if len(rr) != 2 {
|
||||
fail("Invalid repository path", "Invalide repository path: %v", args)
|
||||
fail("Invalid repository path", "Invalid repository path: %v", args)
|
||||
}
|
||||
repoUserName := rr[0]
|
||||
repoName := strings.TrimSuffix(rr[1], ".git")
|
||||
|
@ -123,7 +123,7 @@ func runServ(c *cli.Context) {
|
|||
if err == models.ErrUserNotExist {
|
||||
fail("Repository owner does not exist", "Unregistered owner: %s", repoUserName)
|
||||
}
|
||||
fail("Internal error", "Fail to get repository owner(%s): %v", repoUserName, err)
|
||||
fail("Internal error", "Failed to get repository owner(%s): %v", repoUserName, err)
|
||||
}
|
||||
|
||||
repo, err := models.GetRepositoryByName(repoUser.Id, repoName)
|
||||
|
@ -135,7 +135,7 @@ func runServ(c *cli.Context) {
|
|||
fail(_ACCESS_DENIED_MESSAGE, "Repository does not exist: %s/%s", repoUser.Name, repoName)
|
||||
}
|
||||
}
|
||||
fail("Internal error", "Fail to get repository: %v", err)
|
||||
fail("Internal error", "Failed to get repository: %v", err)
|
||||
}
|
||||
|
||||
requestedMode, has := COMMANDS[verb]
|
||||
|
@ -171,7 +171,7 @@ func runServ(c *cli.Context) {
|
|||
gitcmd.Stdin = os.Stdin
|
||||
gitcmd.Stderr = os.Stderr
|
||||
if err = gitcmd.Run(); err != nil {
|
||||
fail("Internal error", "Fail to execute git command: %v", err)
|
||||
fail("Internal error", "Failed to execute git command: %v", err)
|
||||
}
|
||||
|
||||
if requestedMode == models.ACCESS_MODE_WRITE {
|
||||
|
@ -184,7 +184,7 @@ func runServ(c *cli.Context) {
|
|||
err = models.Update(task.RefName, task.OldCommitId, task.NewCommitId,
|
||||
user.Name, repoUserName, repoName, user.Id)
|
||||
if err != nil {
|
||||
log.GitLogger.Error(2, "Fail to update: %v", err)
|
||||
log.GitLogger.Error(2, "Failed to update: %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -343,6 +343,7 @@ releases=Veröffentlichungen
|
|||
file_raw=Roh
|
||||
file_history=Verlauf
|
||||
file_view_raw=Ansicht Roh
|
||||
file_permalink=Permalink
|
||||
|
||||
commits.commits=Commits
|
||||
commits.search=Durchsuche Commits
|
||||
|
|
|
@ -353,6 +353,7 @@ releases = Releases
|
|||
file_raw = Raw
|
||||
file_history = History
|
||||
file_view_raw = View Raw
|
||||
file_permalink = Permalink
|
||||
|
||||
commits.commits = Commits
|
||||
commits.search = Search commits
|
||||
|
|
|
@ -343,6 +343,7 @@ releases=Releases
|
|||
file_raw=Raw
|
||||
file_history=Histórico
|
||||
file_view_raw=Ver Raw
|
||||
file_permalink=Permalink
|
||||
|
||||
commits.commits=Commits
|
||||
commits.search=Buscar Commits
|
||||
|
|
|
@ -343,6 +343,7 @@ releases=Publications
|
|||
file_raw=Raw
|
||||
file_history=Historique
|
||||
file_view_raw=Voir le Raw
|
||||
file_permalink=Permalink
|
||||
|
||||
commits.commits=Commissions
|
||||
commits.search=Rechercher des commissions
|
||||
|
|
|
@ -343,6 +343,7 @@ releases=リリース
|
|||
file_raw=生データ
|
||||
file_history=履歴
|
||||
file_view_raw=生データを見る
|
||||
file_permalink=Permalink
|
||||
|
||||
commits.commits=コミット
|
||||
commits.search=コミットの検索
|
||||
|
|
|
@ -341,6 +341,7 @@ releases=Laidieni
|
|||
file_raw=Neapstrādāts
|
||||
file_history=Vēsture
|
||||
file_view_raw=Rādīt neapstrādātu
|
||||
file_permalink=Permalink
|
||||
|
||||
commits.commits=Revīzijas
|
||||
commits.search=Meklēt revīzijas
|
||||
|
|
|
@ -343,6 +343,7 @@ releases=Publicaties
|
|||
file_raw=Ruwe
|
||||
file_history=Geschiedenis
|
||||
file_view_raw=Weergave ruwe
|
||||
file_permalink=Permalink
|
||||
|
||||
commits.commits=Commits
|
||||
commits.search=Zoeken
|
||||
|
|
|
@ -343,6 +343,7 @@ releases=Wydania
|
|||
file_raw=Czysty
|
||||
file_history=Historia
|
||||
file_view_raw=Zobacz czysty
|
||||
file_permalink=Permalink
|
||||
|
||||
commits.commits=Commity
|
||||
commits.search=Przeszukaj commity
|
||||
|
|
|
@ -343,6 +343,7 @@ releases=Lançamentos
|
|||
file_raw=Cru
|
||||
file_history=Histórico
|
||||
file_view_raw=Ver cru
|
||||
file_permalink=Permalink
|
||||
|
||||
commits.commits=Commits
|
||||
commits.search=Pesquisar commits
|
||||
|
|
|
@ -343,6 +343,7 @@ releases=Релизы
|
|||
file_raw=Исходник
|
||||
file_history=История
|
||||
file_view_raw=Посмотреть исходник
|
||||
file_permalink=Permalink
|
||||
|
||||
commits.commits=Коммиты
|
||||
commits.search=Поиск коммитов
|
||||
|
|
|
@ -343,6 +343,7 @@ releases=版本发布
|
|||
file_raw=原始文件
|
||||
file_history=文件历史
|
||||
file_view_raw=查看原始文件
|
||||
file_permalink=Permalink
|
||||
|
||||
commits.commits=次代码提交
|
||||
commits.search=搜索提交历史
|
||||
|
|
|
@ -341,6 +341,7 @@ releases=版本發佈
|
|||
file_raw=原始文件
|
||||
file_history=文件歷史
|
||||
file_view_raw=查看原始文件
|
||||
file_permalink=Permalink
|
||||
|
||||
commits.commits=次代碼提交
|
||||
commits.search=搜索提交歷史
|
||||
|
|
|
@ -3,13 +3,13 @@ Docker
|
|||
|
||||
TOOLS ARE WRITTEN FOR TESTING AND TO SEE WHAT IT IS!
|
||||
|
||||
For this to work you will need the nifty docker tool [fig].
|
||||
For this to work you will need the nifty docker tool [docker-compose].
|
||||
|
||||
The most simple setup will look like this:
|
||||
|
||||
```sh
|
||||
./assemble_blocks.sh docker_gogs w_db option_db_mysql
|
||||
fig up
|
||||
docker-compose up
|
||||
|
||||
```
|
||||
|
||||
|
@ -22,21 +22,21 @@ How does it work
|
|||
----------------
|
||||
|
||||
`./assemble_blocks.sh` will look in `blocks` for subdirectories.
|
||||
In the subdirectories there are three relevant files: `Dockerfile`, `config` and `fig`.
|
||||
In the subdirectories there are three relevant files: `Dockerfile`, `config` and `docker-compose`.
|
||||
|
||||
`Dockerfile` will be copied to `docker/` (also means last `Dockerfile` wins).
|
||||
|
||||
The `config` file contains lines which will in the gogs docker container end up in `$GOGS_PATH/custom/config/app.ini` and by this gogs will be configured.
|
||||
Here you can define things like the MySQL server for your database block.
|
||||
|
||||
The `fig` file will just be added to `fig.yml`, which is used by fig to manage your containers.
|
||||
The `docker-compose` file will just be added to `docker-compose.yml`, which is used by docker-compose to manage your containers.
|
||||
This includes container linking!
|
||||
|
||||
Just have a look at them and it will be clear how to write your own blocks.
|
||||
|
||||
Just some things
|
||||
|
||||
- all files (`Dockerfile`, `fig` and `config`) are optional
|
||||
- all files (`Dockerfile`, `docker-compose` and `config`) are optional
|
||||
- the gogs block should always be the first block
|
||||
|
||||
Currently the blocks are designed that, the blocks that start with `docker` pull in the base docker image.
|
||||
|
@ -57,14 +57,11 @@ Here is a more elaborated example
|
|||
|
||||
```sh
|
||||
./assemble_blocks.sh docker_gogs w_db_cache_session option_db_postgresql option_cache_redis option_session_mysql
|
||||
fig up
|
||||
docker-compose up
|
||||
```
|
||||
|
||||
This will set up four containters and link them proberly. One for each of
|
||||
|
||||
- gogs
|
||||
- database (postgresql)
|
||||
- cache (redis)
|
||||
docker-compose
|
||||
- session (mysql)
|
||||
|
||||
WARNING: This will not work at the Moment! MySQL session is broken!
|
||||
|
@ -73,7 +70,7 @@ WARNING: This will not work at the Moment! MySQL session is broken!
|
|||
Remark
|
||||
------
|
||||
|
||||
After you execute `assemble_blocks.sh` you should always trigger `fig build` to inculde the the new init script `init_gogs.sh` in the docker image.
|
||||
After you execute `assemble_blocks.sh` you should always trigger `docker-compose build` to inculde the the new init script `init_gogs.sh` in the docker image.
|
||||
|
||||
If you want to use another GoGS docker file, but keep everything else the same, you can create a block, e.g. `docker_gogs_custom`, with only a `Dockerfile` and call
|
||||
|
||||
|
@ -86,4 +83,4 @@ This will pull in the `Dockerfile` from `docker_gogs` instead of the one from `d
|
|||
`Dockerfile`s for the `master` and `dev` branch are provided as `docker_gogs` and `docker_gogs_dev`
|
||||
|
||||
|
||||
[fig]:http://www.fig.sh/
|
||||
[docker-compose]:https://docs.docker.com/compose/
|
||||
|
|
|
@ -10,8 +10,8 @@ gogs_config_file=conf.tmp
|
|||
gogs_config=config
|
||||
gogs_init_file=$docker_dir/init_gogs.sh
|
||||
|
||||
fig_file=fig.yml
|
||||
fig_config=fig
|
||||
compose_file=docker-compose.yml
|
||||
compose_config=docker-compose
|
||||
|
||||
gogs_init_template=$template_dir/init_gogs.sh.tpl
|
||||
|
||||
|
@ -28,7 +28,7 @@ if [ "$#" == 0 ]; then
|
|||
exit 0
|
||||
fi
|
||||
|
||||
for file in $gogs_config_file $fig_file; do
|
||||
for file in $gogs_config_file $compose_file; do
|
||||
if [ -e $file ]; then
|
||||
echo "Deleting $file"
|
||||
rm $file
|
||||
|
@ -53,10 +53,10 @@ for dir in $@; do
|
|||
echo "" >> $gogs_config_file
|
||||
fi
|
||||
|
||||
if [ -e $current_dir/$fig_config ]; then
|
||||
echo "Adding $current_dir/$fig_config to $fig_file"
|
||||
cat $current_dir/fig >> $fig_file
|
||||
echo "" >> $fig_file
|
||||
if [ -e $current_dir/$compose_config ]; then
|
||||
echo "Adding $current_dir/$compose_config to $compose_file"
|
||||
cat $current_dir/$compose_config >> $compose_file
|
||||
echo "" >> $compose_file
|
||||
fi
|
||||
done
|
||||
|
||||
|
|
|
@ -1,23 +1,20 @@
|
|||
FROM ubuntu:14.04
|
||||
FROM buildpack-deps:trusty-scm
|
||||
|
||||
# This part is taken from the official docker image --------------------
|
||||
|
||||
RUN apt-get update && apt-get install -y \
|
||||
build-essential ca-certificates curl \
|
||||
bzr git mercurial openssh-client\
|
||||
--no-install-recommends
|
||||
build-essential --no-install-recommends
|
||||
|
||||
ENV GOLANG_VERSION 1.3
|
||||
|
||||
RUN curl -sSL http://golang.org/dl/go$GOLANG_VERSION.src.tar.gz \
|
||||
RUN curl -sSL https://golang.org/dl/go$GOLANG_VERSION.src.tar.gz \
|
||||
| tar -v -C /usr/src -xz
|
||||
WORKDIR /usr/src/go
|
||||
|
||||
RUN cd src && ./make.bash --no-clean 2>&1
|
||||
RUN cd /usr/src/go/src && ./make.bash --no-clean 2>&1
|
||||
|
||||
ENV PATH /usr/src/go/bin:$PATH
|
||||
|
||||
RUN mkdir -p /go/src
|
||||
RUN mkdir -p /go/src /go/bin && chmod -R 777 /go
|
||||
ENV GOPATH /go
|
||||
ENV PATH /go/bin:$PATH
|
||||
WORKDIR /go
|
||||
|
|
|
@ -1,24 +1,20 @@
|
|||
FROM ubuntu:14.04
|
||||
FROM buildpack-deps:trusty-scm
|
||||
|
||||
# This part is derived from the official docker image ------------------
|
||||
# This part is taken from the official docker image --------------------
|
||||
|
||||
RUN DEBIAN_FRONTEND=noninteractive apt-get update && \
|
||||
apt-get install -qy \
|
||||
build-essential ca-certificates curl \
|
||||
bzr git mercurial openssh-client\
|
||||
--no-install-recommends
|
||||
RUN apt-get update && apt-get install -y \
|
||||
build-essential --no-install-recommends
|
||||
|
||||
ENV GOLANG_VERSION 1.3
|
||||
|
||||
RUN curl -sSL http://golang.org/dl/go$GOLANG_VERSION.src.tar.gz \
|
||||
RUN curl -sSL https://golang.org/dl/go$GOLANG_VERSION.src.tar.gz \
|
||||
| tar -v -C /usr/src -xz
|
||||
WORKDIR /usr/src/go
|
||||
|
||||
RUN cd src && ./make.bash --no-clean 2>&1
|
||||
RUN cd /usr/src/go/src && ./make.bash --no-clean 2>&1
|
||||
|
||||
ENV PATH /usr/src/go/bin:$PATH
|
||||
|
||||
RUN mkdir -p /go/src
|
||||
RUN mkdir -p /go/src /go/bin && chmod -R 777 /go
|
||||
ENV GOPATH /go
|
||||
ENV PATH /go/bin:$PATH
|
||||
WORKDIR /go
|
||||
|
|
|
@ -173,13 +173,12 @@ func (repo *Repository) refreshCollaboratorAccesses(e Engine, accessMap map[int6
|
|||
func (repo *Repository) recalculateTeamAccesses(e Engine, ignTeamID int64) (err error) {
|
||||
accessMap := make(map[int64]AccessMode, 20)
|
||||
|
||||
if err = repo.refreshCollaboratorAccesses(e, accessMap); err != nil {
|
||||
return fmt.Errorf("refreshCollaboratorAccesses: %v", err)
|
||||
}
|
||||
|
||||
if err = repo.getOwner(e); err != nil {
|
||||
return err
|
||||
}
|
||||
if err = repo.refreshCollaboratorAccesses(e, accessMap); err != nil {
|
||||
return fmt.Errorf("refreshCollaboratorAccesses: %v", err)
|
||||
}
|
||||
if repo.Owner.IsOrganization() {
|
||||
if err = repo.Owner.getTeams(e); err != nil {
|
||||
return err
|
||||
|
|
|
@ -11,6 +11,7 @@ import (
|
|||
)
|
||||
|
||||
type AdminEditUserForm struct {
|
||||
FullName string `form:"fullname" binding:"MaxSize(100)"`
|
||||
Email string `binding:"Required;Email;MaxSize(50)"`
|
||||
Password string `binding:"OmitEmpty;MinSize(6);MaxSize(255)"`
|
||||
Website string `binding:"MaxSize(50)"`
|
||||
|
|
|
@ -116,7 +116,7 @@ func (f *AddEmailForm) Validate(ctx *macaron.Context, errs binding.Errors) bindi
|
|||
}
|
||||
|
||||
type ChangePasswordForm struct {
|
||||
OldPassword string `form:"old_password" binding:"Required;MinSize(6);MaxSize(255)"`
|
||||
OldPassword string `form:"old_password" binding:"Required;MinSize(1);MaxSize(255)"`
|
||||
Password string `form:"password" binding:"Required;MinSize(6);MaxSize(255)"`
|
||||
Retype string `form:"retype"`
|
||||
}
|
||||
|
|
|
@ -198,7 +198,7 @@ func RenderRawMarkdown(body []byte, urlPrefix string) []byte {
|
|||
extensions |= blackfriday.EXTENSION_FENCED_CODE
|
||||
extensions |= blackfriday.EXTENSION_AUTOLINK
|
||||
extensions |= blackfriday.EXTENSION_STRIKETHROUGH
|
||||
extensions |= blackfriday.EXTENSION_HARD_LINE_BREAK
|
||||
//extensions |= blackfriday.EXTENSION_HARD_LINE_BREAK
|
||||
extensions |= blackfriday.EXTENSION_SPACE_HEADERS
|
||||
extensions |= blackfriday.EXTENSION_NO_EMPTY_LINE_BEFORE_BLOCK
|
||||
|
||||
|
|
|
@ -18,8 +18,6 @@ case "$1" in
|
|||
chown ${APP_USER}.${APP_GROUP} $(dirname ${APP_CONFIG})
|
||||
[ -f ${APP_CONFIG} ] || ${CLI} run cp conf/app.ini ${APP_CONFIG}
|
||||
${CLI} config:set USER=${APP_USER}
|
||||
PORT=$(${CLI} config:get PORT || echo "6000")
|
||||
sed -i "s|HTTP_PORT = 3000|HTTP_PORT = ${PORT}|" ${APP_CONFIG}
|
||||
sed -i "s|RUN_USER = git|RUN_USER = ${APP_USER}|" ${APP_CONFIG}
|
||||
sed -i "s|RUN_MODE = dev|RUN_MODE = prod|" ${APP_CONFIG}
|
||||
|
||||
|
|
|
@ -185,6 +185,7 @@ func EditUserPost(ctx *middleware.Context, form auth.AdminEditUserForm) {
|
|||
u.EncodePasswd()
|
||||
}
|
||||
|
||||
u.FullName = form.FullName
|
||||
u.Email = form.Email
|
||||
u.Website = form.Website
|
||||
u.Location = form.Location
|
||||
|
|
|
@ -27,7 +27,6 @@ func ServeBlob(ctx *middleware.Context, blob *git.Blob) error {
|
|||
|
||||
_, isTextFile := base.IsTextFile(buf)
|
||||
_, isImageFile := base.IsImageFile(buf)
|
||||
ctx.Resp.Header().Set("Content-Type", "text/plain")
|
||||
if !isTextFile && !isImageFile {
|
||||
ctx.Resp.Header().Set("Content-Disposition", "attachment; filename="+path.Base(ctx.Repo.TreeName))
|
||||
ctx.Resp.Header().Set("Content-Transfer-Encoding", "binary")
|
||||
|
|
|
@ -152,6 +152,7 @@ func ShowSSHKeys(ctx *middleware.Context, uid int64) {
|
|||
var buf bytes.Buffer
|
||||
for i := range keys {
|
||||
buf.WriteString(keys[i].OmitEmail())
|
||||
buf.WriteString("\n")
|
||||
}
|
||||
ctx.RenderData(200, buf.Bytes())
|
||||
}
|
||||
|
|
|
@ -4,8 +4,14 @@ rm -rf $outPath
|
|||
mkdir $outPath
|
||||
|
||||
go build ../gogs.go
|
||||
chmod +x gogs
|
||||
mv gogs $outPath/
|
||||
PLATFORM=`uname | cut -d _ -f 1`
|
||||
if [ $PLATFORM = "MINGW32" ] || [ $PLATFORM = "MINGW64" ] || [ $PLATFORM = "CYGWIN" ]; then
|
||||
GOGS_EXE=gogs.exe
|
||||
else
|
||||
GOGS_EXE=gogs
|
||||
fi
|
||||
chmod +x $GOGS_EXE
|
||||
mv $GOGS_EXE $outPath/
|
||||
|
||||
cp -r ../conf/ $outPath/conf/
|
||||
cp -r ../custom/ $outPath/custom/
|
||||
|
|
|
@ -49,10 +49,12 @@ do_start()
|
|||
# 1 if daemon was already running
|
||||
# 2 if daemon could not be started
|
||||
sh -c "start-stop-daemon --start --quiet --pidfile $PIDFILE --make-pidfile \\
|
||||
--exec $DAEMON -- $DAEMON_ARGS --test > /dev/null \\
|
||||
--test --chdir $WORKINGDIR --chuid $USER \\
|
||||
--exec $DAEMON -- $DAEMON_ARGS > /dev/null \\
|
||||
|| return 1"
|
||||
sh -c "start-stop-daemon --start --quiet --pidfile $PIDFILE --make-pidfile \\
|
||||
--background --exec /bin/su -- - $USER -c \"cd \\\"$WORKINGDIR\\\" && $DAEMON -- $DAEMON_ARGS\" \\
|
||||
--background --chdir $WORKINGDIR --chuid $USER \\
|
||||
--exec $DAEMON -- $DAEMON_ARGS \\
|
||||
|| return 2"
|
||||
}
|
||||
|
||||
|
|
|
@ -21,7 +21,7 @@ load_rc_config $name
|
|||
: ${gogs_enable:="NO"}
|
||||
: ${gogs_directory:="/home/git"}
|
||||
|
||||
command="${gogs_directory}/scripts/start.sh"
|
||||
command="${gogs_directory}/gogs web"
|
||||
|
||||
pidfile="${gogs_directory}/${name}.pid"
|
||||
|
||||
|
|
|
@ -14,7 +14,7 @@ Group=git
|
|||
WorkingDirectory=/home/git/gogs
|
||||
ExecStart=/home/git/gogs/gogs web
|
||||
Restart=always
|
||||
Environment="USER=git","HOME=/home/git"
|
||||
Environment=USER=git HOME=/home/git
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
|
|
|
@ -32,6 +32,10 @@
|
|||
<label>{{.i18n.Tr "username"}}</label>
|
||||
<label class="text-left">{{.User.Name}}</label>
|
||||
</div>
|
||||
<div class="field">
|
||||
<label for="full-name">{{.i18n.Tr "settings.full_name"}}</label>
|
||||
<input class="ipt ipt-large ipt-radius {{if .Err_FullName}}ipt-error{{end}}" id="full-name" name="fullname" type="text" value="{{.User.FullName}}" />
|
||||
</div>
|
||||
<div class="field">
|
||||
<label class="req" for="email">{{.i18n.Tr "email"}}</label>
|
||||
<input class="ipt ipt-large ipt-radius {{if .Err_Email}}ipt-error{{end}}" id="email" name="email" type="email" value="{{.User.Email}}" required/>
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
<meta name="author" content="Gogs - Go Git Service" />
|
||||
<meta name="description" content="Gogs(Go Git Service) a painless self-hosted Git Service written in Go" />
|
||||
<meta name="keywords" content="go, git, self-hosted, gogs">
|
||||
<meta name="referrer" content="no-referrer" />
|
||||
<meta name="_csrf" content="{{.CsrfToken}}" />
|
||||
{{if .GoGetImport}}
|
||||
<meta name="go-import" content="{{.GoGetImport}} git {{.CloneLink.HTTPS}}">
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
<meta name="author" content="Gogs - Go Git Service" />
|
||||
<meta name="description" content="Gogs(Go Git Service) is a GitHub-like clone in the Go Programming Language" />
|
||||
<meta name="keywords" content="go, git">
|
||||
<meta name="referrer" content="no-referrer" />
|
||||
<meta name="_csrf" content="{{.CsrfToken}}" />
|
||||
{{if .GoGetImport}}<meta name="go-import" content="{{.GoGetImport}} git {{.CloneLink.HTTPS}}">{{end}}
|
||||
|
||||
|
|
|
@ -185,7 +185,7 @@
|
|||
</div>
|
||||
<div class="inline field {{if .Err_AdminPasswd}}error{{end}}">
|
||||
<label for="admin_passwd">{{.i18n.Tr "install.admin_password"}}</label>
|
||||
<input id="admin_passwd" name="admin_passwd" value="{{.admin_passwd}}">
|
||||
<input id="admin_passwd" name="admin_passwd" type="password" value="{{.admin_passwd}}">
|
||||
</div>
|
||||
<div class="inline field {{if .Err_AdminPasswd}}error{{end}}">
|
||||
<label for="admin_confirm_passwd">{{.i18n.Tr "install.confirm_password"}}</label>
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
<meta name="author" content="Gogs - Go Git Service" />
|
||||
<meta name="description" content="Gogs(Go Git Service) a painless self-hosted Git Service written in Go" />
|
||||
<meta name="keywords" content="go, git, self-hosted, gogs">
|
||||
<meta name="referrer" content="no-referrer" />
|
||||
<meta name="_csrf" content="{{.CsrfToken}}" />
|
||||
{{if .GoGetImport}}<meta name="go-import" content="{{.GoGetImport}} git {{.CloneLink.HTTPS}}">{{end}}
|
||||
|
||||
|
|
|
@ -12,6 +12,11 @@
|
|||
<strong class="file-name">{{.FileName}}</strong><span class="file-size">{{FileSize .FileSize}}</span>
|
||||
{{end}}
|
||||
{{if not .ReadmeInList}}
|
||||
{{if not .IsCommit}}
|
||||
<a class="right" href="{{.RepoLink}}/src/{{.CommitId}}/{{.TreeName}}">
|
||||
<button class="btn btn-medium btn-gray btn-right-radius btn-comb">{{.i18n.Tr "repo.file_permalink"}}</button>
|
||||
</a>
|
||||
{{end}}
|
||||
<a class="right" href="{{.RepoLink}}/commits/{{EscapePound .BranchName}}/{{.TreeName}}">
|
||||
<button class="btn btn-medium btn-gray btn-right-radius btn-comb">{{.i18n.Tr "repo.file_history"}}</button>
|
||||
</a>
|
||||
|
|
Loading…
Reference in New Issue