├── .dockerignore
├── .editorconfig
├── .env.dist
├── .github
└── workflows
│ ├── build.yml
│ ├── legacy.yml
│ └── nightly.yml
├── .gitignore
├── .php-cs-fixer.php
├── .prettierrc
├── LICENSE
├── Makefile
├── README.md
├── assets
├── themes
│ └── default
│ │ ├── assets
│ │ ├── js
│ │ │ └── main.js
│ │ └── scss
│ │ │ ├── blame.scss
│ │ │ ├── bootstrap.scss
│ │ │ ├── breadcrumb.scss
│ │ │ ├── buttons.scss
│ │ │ ├── card.scss
│ │ │ ├── commit.scss
│ │ │ ├── diff.scss
│ │ │ ├── main.scss
│ │ │ ├── navbar.scss
│ │ │ ├── repository.scss
│ │ │ └── tree.scss
│ │ └── templates
│ │ ├── Blob
│ │ ├── blame.html.twig
│ │ ├── breadcrumb.html.twig
│ │ ├── history.html.twig
│ │ ├── show.html.twig
│ │ └── viewer
│ │ │ ├── ace.html.twig
│ │ │ ├── codemirror.html.twig
│ │ │ └── simple.html.twig
│ │ ├── Commit
│ │ ├── feed.atom.twig
│ │ ├── feed.rss.twig
│ │ ├── list-items.html.twig
│ │ ├── list.html.twig
│ │ └── show.html.twig
│ │ ├── Repository
│ │ ├── branches.html.twig
│ │ ├── list.html.twig
│ │ ├── show.html.twig
│ │ └── tags.html.twig
│ │ ├── Search
│ │ ├── form.html.twig
│ │ └── list.html.twig
│ │ ├── base.html.twig
│ │ ├── page-header.html.twig
│ │ ├── reflist.html.twig
│ │ └── search.html.twig
├── translations
│ ├── .gitignore
│ ├── messages.af.yaml
│ ├── messages.ar.yaml
│ ├── messages.bn.yaml
│ ├── messages.ca.yaml
│ ├── messages.cs.yaml
│ ├── messages.da.yaml
│ ├── messages.de.yaml
│ ├── messages.el.yaml
│ ├── messages.en.yaml
│ ├── messages.es.yaml
│ ├── messages.fi.yaml
│ ├── messages.fr.yaml
│ ├── messages.he.yaml
│ ├── messages.hu.yaml
│ ├── messages.it.yaml
│ ├── messages.ja.yaml
│ ├── messages.ko.yaml
│ ├── messages.nl.yaml
│ ├── messages.no.yaml
│ ├── messages.pl.yaml
│ ├── messages.pt.yaml
│ ├── messages.ro.yaml
│ ├── messages.ru.yaml
│ ├── messages.sr.yaml
│ ├── messages.sv.yaml
│ ├── messages.tr.yaml
│ ├── messages.uk.yaml
│ ├── messages.vi.yaml
│ └── messages.zh.yaml
└── viewers
│ ├── ace
│ ├── main.js
│ └── main.scss
│ └── codemirror
│ ├── main.js
│ └── main.scss
├── bin
├── console
└── linguist
├── composer.json
├── composer.lock
├── config
├── config.yml
├── dev
│ └── routes.yml
├── framework.yml
├── routes.yml
└── services.yml
├── crowdin.yml
├── cypress.json
├── docker-compose.override.yml.dist
├── docker-compose.yml
├── docker
├── nginx
│ ├── Dockerfile
│ └── nginx.conf
└── php-fpm
│ ├── Dockerfile
│ ├── php-fpm.d
│ ├── docker.conf
│ └── www.conf
│ └── php.ini
├── package-lock.json
├── package.json
├── phpstan.neon
├── phpunit.xml.dist
├── postcss.config.js
├── public
└── index.php
├── src
├── App
│ ├── Controller
│ │ ├── Blob.php
│ │ ├── Commit.php
│ │ ├── CommitSearch.php
│ │ └── Repository.php
│ ├── Form
│ │ └── CriteriaType.php
│ └── Twig
│ │ ├── AvatarExtension.php
│ │ ├── DateTimeExtension.php
│ │ ├── MarkdownExtension.php
│ │ ├── RepositoryExtension.php
│ │ └── StringExtension.php
├── Exception
│ ├── BlobNotFoundException.php
│ ├── InvalidRepositoryException.php
│ └── RepositoryNotFoundException.php
├── Kernel.php
├── Repository.php
├── Repository
│ ├── Commitish.php
│ └── Index.php
└── SCM
│ ├── AnnotatedLine.php
│ ├── Blame.php
│ ├── Blob.php
│ ├── Branch.php
│ ├── Commit.php
│ ├── Commit
│ ├── Criteria.php
│ ├── Person.php
│ └── Signature.php
│ ├── Diff
│ ├── File.php
│ ├── Hunk.php
│ ├── Line.php
│ └── Parse.php
│ ├── Exception
│ ├── CommandException.php
│ └── InvalidCommitException.php
│ ├── File.php
│ ├── Item.php
│ ├── Language.php
│ ├── Repository.php
│ ├── Symlink.php
│ ├── System.php
│ ├── System
│ ├── Git
│ │ └── CommandLine.php
│ └── Mercurial
│ │ └── CommandLine.php
│ ├── Tag.php
│ └── Tree.php
├── tests
├── cypress
│ └── integration
│ │ ├── blame.spec.js
│ │ ├── branches.spec.js
│ │ ├── commits.spec.js
│ │ ├── history.spec.js
│ │ ├── repository.spec.js
│ │ ├── repository_list.spec.js
│ │ ├── search.spec.js
│ │ ├── tags.spec.js
│ │ └── tree.spec.js
├── fixtures
│ ├── git-bare-repo
│ │ ├── HEAD
│ │ ├── config
│ │ ├── description
│ │ ├── hooks
│ │ │ ├── applypatch-msg.sample
│ │ │ ├── commit-msg.sample
│ │ │ ├── post-update.sample
│ │ │ ├── pre-applypatch.sample
│ │ │ ├── pre-commit.sample
│ │ │ ├── pre-push.sample
│ │ │ ├── pre-rebase.sample
│ │ │ ├── pre-receive.sample
│ │ │ ├── prepare-commit-msg.sample
│ │ │ └── update.sample
│ │ ├── info
│ │ │ └── exclude
│ │ ├── objects
│ │ │ ├── 17
│ │ │ │ └── c75a4246c8bbab8b56fe4d562cd85ea670a21f
│ │ │ ├── 29
│ │ │ │ └── 0863292f509e947f62efed0b9cb6eac9b9ecb9
│ │ │ ├── 35
│ │ │ │ └── 7b1952da98491dd01c31bfe7882bc6ae21eaf7
│ │ │ ├── 41
│ │ │ │ └── ab8cf8762f94ab56254925710c2b967a353fee
│ │ │ ├── 55
│ │ │ │ └── 70c142146e430b7356a84175f281ab2a364d48
│ │ │ ├── 58
│ │ │ │ └── c37915623ec76e854a54dcfc12b19a060f6bda
│ │ │ ├── 59
│ │ │ │ └── 5019ca2e1bfab6711424c8567af364ec3cc319
│ │ │ ├── 75
│ │ │ │ └── 6b07d2549cd6eb8f35fbe333c80a28d97096e3
│ │ │ ├── 82
│ │ │ │ └── 4b0a91e944a6217e473c2eec510cf694a2c4b7
│ │ │ ├── 85
│ │ │ │ ├── 9f67f18fc4522a4da5b784bce6cb9ada034a16
│ │ │ │ └── e656875f18b1985dd71dccaffe3eeffd6abf6f
│ │ │ ├── 0e
│ │ │ │ └── 3ddf0c6d39e7a300bef61b99a914a86ce5e267
│ │ │ ├── 2d
│ │ │ │ └── b0c88706accdb2d0ceb938a68be150759f17c0
│ │ │ ├── 6a
│ │ │ │ └── cefd912439ce7f9b03ae3dc2ce0eaf30104206
│ │ │ ├── 6d
│ │ │ │ └── 9590305133e750ac8ebfcf9d652ca96f446819
│ │ │ ├── 9c
│ │ │ │ └── 69996c1e01618709dacd99bcd129a3bcde290c
│ │ │ ├── 9d
│ │ │ │ └── 78a8cbc59caa98aebaf4ca9d6ee63cca241c4d
│ │ │ ├── a0
│ │ │ │ └── 03d30bc7a355f55bf28479e62134186bae1aed
│ │ │ ├── b0
│ │ │ │ └── 64e711b341b3d160288cd121caf56811ca8991
│ │ │ ├── c1
│ │ │ │ └── 7751c0dcafb95eda9f41e9cdc9ce101edbebed
│ │ │ ├── c3
│ │ │ │ └── 23e7368bd5da960547f53b25596f7b43a2d3d9
│ │ │ ├── c4
│ │ │ │ └── 1563a39a03723f1fa122a4309c3dc9a185a858
│ │ │ ├── c9
│ │ │ │ └── 60459eda7e640ea55be1d4ed80c6a9125a8877
│ │ │ ├── e6
│ │ │ │ └── 9de29bb2d1d6434b8b29ae775ad8c2e48c5391
│ │ │ ├── ec
│ │ │ │ └── 587c3ebbaf491605d24a0b1d42e6de7dc26372
│ │ │ └── ff
│ │ │ │ └── 6accf4931975aa697ea40f7b6d22af23ec77a2
│ │ └── refs
│ │ │ ├── heads
│ │ │ ├── feature
│ │ │ │ └── 1.2-dev
│ │ │ └── master
│ │ │ └── tags
│ │ │ └── 1.2
│ └── hg-repo
│ │ └── .hg
│ │ ├── 00changelog.i
│ │ ├── bookmarks
│ │ ├── branch
│ │ ├── cache
│ │ ├── branch2-served
│ │ ├── checkisexec
│ │ ├── checklink
│ │ ├── checklink-target
│ │ ├── checknoexec
│ │ ├── hgtagsfnodes1
│ │ ├── rbc-names-v1
│ │ ├── rbc-revs-v1
│ │ └── tags2-visible
│ │ ├── dirstate
│ │ ├── hgrc
│ │ ├── requires
│ │ ├── shamap
│ │ ├── store
│ │ ├── 00changelog.i
│ │ ├── 00manifest.i
│ │ ├── data
│ │ │ ├── mm
│ │ │ │ ├── cma.c.i
│ │ │ │ └── cma.h.i
│ │ │ ├── new.json.i
│ │ │ ├── old.json.i
│ │ │ ├── src
│ │ │ │ ├── index.php.i
│ │ │ │ └── test.php.i
│ │ │ ├── test.json.i
│ │ │ └── ~2ehgtags.i
│ │ ├── fncache
│ │ ├── phaseroots
│ │ ├── undo
│ │ ├── undo.backup.fncache
│ │ ├── undo.backupfiles
│ │ └── undo.phaseroots
│ │ ├── undo.bookmarks
│ │ ├── undo.branch
│ │ ├── undo.desc
│ │ └── undo.dirstate
└── unit
│ ├── App
│ ├── Form
│ │ └── CriteriaTypeTest.php
│ └── Twig
│ │ ├── AvatarExtensionTest.php
│ │ ├── DateTimeExtensionTest.php
│ │ ├── RepositoryExtensionTest.php
│ │ └── StringExtensionTest.php
│ ├── Repository
│ └── CommitishTest.php
│ ├── RepositoryTest.php
│ └── SCM
│ ├── BlobTest.php
│ ├── CommitTest.php
│ ├── Diff
│ ├── ParseMergeTest.php
│ └── ParseTest.php
│ ├── FileTest.php
│ ├── ItemTest.php
│ ├── LanguageTest.php
│ ├── System
│ ├── Git
│ │ └── CommandLineTest.php
│ └── Mercurial
│ │ └── CommandLineTest.php
│ └── TreeTest.php
└── webpack.config.js
/.dockerignore:
--------------------------------------------------------------------------------
1 | .git/
2 | node_modules/
3 | vendor/
4 | var/cache
5 | var/logs
6 | var/log
7 | var/sessions
8 |
--------------------------------------------------------------------------------
/.editorconfig:
--------------------------------------------------------------------------------
1 | # editorconfig.org
2 | root = true
3 |
4 | [*]
5 | indent_style = space
6 | indent_size = 2
7 | end_of_line = lf
8 | charset = utf-8
9 | trim_trailing_whitespace = true
10 | insert_final_newline = true
11 |
12 | [*.{js,html,twig,yaml}]
13 | indent_size = 2
14 |
15 | [*.{php}]
16 | indent_style = space
17 | indent_size = 4
18 |
19 | [*.md]
20 | trim_trailing_whitespace = false
21 |
--------------------------------------------------------------------------------
/.env.dist:
--------------------------------------------------------------------------------
1 | APP_ENV=dev
2 | APP_SECRET=foobar
3 | DEFAULT_REPOSITORY_DIR=/var/repositories
4 |
--------------------------------------------------------------------------------
/.github/workflows/legacy.yml:
--------------------------------------------------------------------------------
1 | name: Legacy Build
2 |
3 | on:
4 | workflow_dispatch: ~
5 |
6 | push:
7 | branches:
8 | - legacy
9 | tags:
10 | - 1.**
11 |
12 | pull_request:
13 | branches:
14 | - legacy
15 |
16 | jobs:
17 | build:
18 | runs-on: ubuntu-latest
19 |
20 | strategy:
21 | matrix:
22 | php:
23 | - 7.4
24 | - 8.0
25 | - 8.1
26 |
27 | steps:
28 | - uses: actions/checkout@v2
29 |
30 | - name: Validate composer.json and composer.lock
31 | run: composer validate --strict
32 |
33 | - name: Cache Composer packages
34 | id: composer-cache
35 | uses: actions/cache@v2
36 | with:
37 | path: vendor
38 | key: ${{ runner.os }}-php-${{ hashFiles('**/composer.lock') }}
39 | restore-keys: |
40 | ${{ runner.os }}-php-
41 |
42 | - name: Install dependencies
43 | run: composer install --prefer-dist --no-progress
44 |
45 | - name: Run test suite
46 | run: composer run-script test
47 |
48 | release:
49 | if: startsWith(github.ref, 'refs/tags/1')
50 | runs-on: ubuntu-latest
51 | needs: [build]
52 | steps:
53 | - name: Checkout
54 | uses: actions/checkout@v2
55 |
56 | - name: Build package
57 | run: make build
58 |
59 | - name: Rename package to current tag
60 | run: mv build.zip gitlist-${{ github.ref_name }}.zip
61 |
62 | - name: Release
63 | uses: softprops/action-gh-release@v1
64 | with:
65 | generate_release_notes: true
66 | files: gitlist-${{ github.ref_name }}.zip
67 |
--------------------------------------------------------------------------------
/.github/workflows/nightly.yml:
--------------------------------------------------------------------------------
1 | name: Nightly Build
2 | on:
3 | workflow_dispatch: ~
4 | schedule:
5 | - cron: '0 0 * * *'
6 |
7 | jobs:
8 | release:
9 | runs-on: ubuntu-latest
10 | steps:
11 | - name: Checkout
12 | uses: actions/checkout@v2
13 |
14 | - name: Setup Node.js environment
15 | uses: actions/setup-node@v2.5.1
16 | with:
17 | node-version: '16'
18 |
19 | - name: Install frontend dependencies
20 | run: npm install
21 |
22 | - name: Build package
23 | run: make build
24 |
25 | - name: Rename package
26 | run: mv build.zip gitlist-nightly.zip
27 |
28 | - name: Release
29 | uses: softprops/action-gh-release@v1
30 | with:
31 | name: nightly
32 | tag_name: nightly
33 | prerelease: true
34 | body: Nightly release generated from `master` at 12 AM UTC.
35 | files: gitlist-nightly.zip
36 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | public/bundles/
2 | public/assets/
3 | var/
4 | vendor/
5 | node_modules/
6 | .env
7 | docker-compose.override.yml
8 | npm-debug.log
9 | yarn-error.log
10 | .php_cs.cache
11 | .phpunit.result.cache
12 | .php-cs-fixer.cache
13 | phpunit.xml
14 |
--------------------------------------------------------------------------------
/.php-cs-fixer.php:
--------------------------------------------------------------------------------
1 | in(__DIR__ . '/src')
5 | ->in(__DIR__ . '/tests')
6 | ;
7 |
8 | $config = new PhpCsFixer\Config();
9 | return $config->setRules([
10 | '@Symfony' => true,
11 | 'global_namespace_import' => [
12 | 'import_classes' => true,
13 | 'import_constants' => false,
14 | 'import_functions' => false,
15 | ],
16 | ])
17 | ->setRiskyAllowed(true)
18 | ->setFinder($finder)
19 | ;
20 |
--------------------------------------------------------------------------------
/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "singleQuote": true
3 | }
4 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) 2012, Klaus Silveira and contributors
2 | All rights reserved.
3 |
4 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
5 |
6 | Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
7 | 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.
8 | Neither the name of GitList nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
9 | 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.
10 |
--------------------------------------------------------------------------------
/assets/themes/default/assets/scss/blame.scss:
--------------------------------------------------------------------------------
1 | $blame-hover-bg: #fffbdd !default;
2 | $blame-hunk-bg: $gray-200 !default;
3 | $blame-hunk-color: $gray-500 !default;
4 | $blame-line-border: $gray-300 !default;
5 | $blame-line-color: $gray-500 !default;
6 |
7 | .blame-lines {
8 | border-spacing: 0;
9 | border: 0;
10 | margin: 0;
11 |
12 | pre {
13 | margin: 0;
14 | border: 0;
15 | padding: 0 0 0 0.5rem;
16 | width: inherit;
17 |
18 | &:hover {
19 | background-color: $blame-hover-bg;
20 | }
21 | }
22 |
23 | tr {
24 | border-bottom: 1px solid $blame-line-border;
25 | }
26 |
27 | td {
28 | padding: 1rem;
29 | border: 0;
30 | }
31 |
32 | .author-info {
33 | p {
34 | margin: 0;
35 | }
36 |
37 | border-right: 1px solid $blame-line-border;
38 | padding: 0.2rem 0.75rem;
39 | }
40 |
41 | .line-number {
42 | color: $blame-line-color;
43 | padding: 0 0.5rem;
44 | text-align: right;
45 | border-right: 1px solid $blame-line-border;
46 | font-family: $font-family-monospace;
47 |
48 | a {
49 | color: inherit;
50 | }
51 | }
52 |
53 | .line {
54 | padding: 0;
55 | width: 100%;
56 | }
57 | }
58 |
--------------------------------------------------------------------------------
/assets/themes/default/assets/scss/bootstrap.scss:
--------------------------------------------------------------------------------
1 | // Configuration
2 | @import '~bootstrap/scss/functions';
3 | @import '~bootstrap/scss/variables';
4 | @import '~bootstrap/scss/mixins';
5 | @import '~bootstrap/scss/utilities';
6 |
7 | // Layout & components
8 | @import '~bootstrap/scss/root';
9 | @import '~bootstrap/scss/reboot';
10 | @import '~bootstrap/scss/type';
11 | @import '~bootstrap/scss/images';
12 | @import '~bootstrap/scss/containers';
13 | @import '~bootstrap/scss/grid';
14 | @import '~bootstrap/scss/tables';
15 | @import '~bootstrap/scss/forms';
16 | @import '~bootstrap/scss/buttons';
17 | @import '~bootstrap/scss/transitions';
18 | @import '~bootstrap/scss/dropdown';
19 | @import '~bootstrap/scss/button-group';
20 | @import '~bootstrap/scss/nav';
21 | @import '~bootstrap/scss/navbar';
22 | @import '~bootstrap/scss/card';
23 | @import '~bootstrap/scss/breadcrumb';
24 | @import '~bootstrap/scss/pagination';
25 | @import '~bootstrap/scss/badge';
26 | @import '~bootstrap/scss/alert';
27 | @import '~bootstrap/scss/progress';
28 | @import '~bootstrap/scss/list-group';
29 | @import '~bootstrap/scss/close';
30 | @import '~bootstrap/scss/toasts';
31 | @import '~bootstrap/scss/tooltip';
32 | @import '~bootstrap/scss/popover';
33 | @import '~bootstrap/scss/placeholders';
34 |
35 | // Helpers
36 | @import '~bootstrap/scss/helpers';
37 |
38 | // Utilities
39 | @import '~bootstrap/scss/utilities/api';
40 |
--------------------------------------------------------------------------------
/assets/themes/default/assets/scss/breadcrumb.scss:
--------------------------------------------------------------------------------
1 | .breadcrumb {
2 | font-size: $font-size-lg;
3 | margin: 0;
4 | margin-left: 1rem;
5 | }
6 |
--------------------------------------------------------------------------------
/assets/themes/default/assets/scss/card.scss:
--------------------------------------------------------------------------------
1 | .card-header {
2 | color: $dark;
3 | background-color: $secondary;
4 | @include gradient-y($secondary, shade-color($secondary, 5%));
5 | border-bottom: 1px solid shade-color($secondary, 10%);
6 | }
7 |
8 | .card-body-diff {
9 | padding: 0;
10 | margin: 0;
11 | overflow: clip;
12 | overflow-x: scroll;
13 | }
14 |
15 | .card-body {
16 | textarea {
17 | width: 100%;
18 | height: 600px;
19 | }
20 | }
21 |
22 | .card-body-markdown {
23 | padding: 2rem;
24 |
25 | > *:first-child {
26 | margin-top: 0 !important;
27 | }
28 |
29 | > *:last-child {
30 | margin-bottom: 0 !important;
31 | }
32 |
33 | p,
34 | blockquote,
35 | ul,
36 | ol,
37 | dl,
38 | table,
39 | pre,
40 | details {
41 | margin-top: 0;
42 | margin-bottom: $spacer;
43 | }
44 |
45 | h1,
46 | h2,
47 | h3,
48 | h4,
49 | h5,
50 | h6 {
51 | margin-top: $spacer * 1.5;
52 | margin-bottom: $spacer;
53 | font-weight: $font-weight-bold;
54 |
55 | tt,
56 | code {
57 | padding: 0 0.2rem;
58 | font-size: inherit;
59 | }
60 | }
61 |
62 | h1 {
63 | padding-bottom: 0.3rem;
64 | font-size: 2rem;
65 | border-bottom: $border-width solid $border-color;
66 | }
67 |
68 | h2 {
69 | padding-bottom: 0.3rem;
70 | font-size: 1.5rem;
71 | border-bottom: $border-width solid $border-color;
72 | }
73 |
74 | h3 {
75 | font-size: 1.25rem;
76 | }
77 |
78 | h4 {
79 | font-size: 1rem;
80 | }
81 |
82 | h5 {
83 | font-size: 0.875rem;
84 | }
85 |
86 | h6 {
87 | font-size: 0.85rem;
88 | }
89 |
90 | pre {
91 | background-color: $code-bg;
92 | border-radius: $code-border-radius;
93 | padding: $spacer;
94 |
95 | br {
96 | display: none;
97 | }
98 |
99 | code {
100 | display: block;
101 | }
102 | }
103 |
104 | code {
105 | background-color: $code-bg;
106 | border-radius: $code-border-radius;
107 | margin: 0;
108 | padding: 0.2rem 0.4rem;
109 | }
110 |
111 | blockquote {
112 | padding: 0 $spacer;
113 | border-left: 0.25rem solid $border-color;
114 |
115 | > :first-child {
116 | margin-top: 0;
117 | }
118 |
119 | > :last-child {
120 | margin-bottom: 0;
121 | }
122 | }
123 | }
124 |
--------------------------------------------------------------------------------
/assets/themes/default/assets/scss/commit.scss:
--------------------------------------------------------------------------------
1 | .commit-body-popover {
2 | max-width: none;
3 |
4 | .popover-body {
5 | display: block;
6 | unicode-bidi: embed;
7 | font-family: $font-family-monospace;
8 | white-space: pre;
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/assets/themes/default/assets/scss/diff.scss:
--------------------------------------------------------------------------------
1 | $diff-add-bg: #cdffd8 !default;
2 | $diff-delete-bg: #ffdce0 !default;
3 | $diff-hover-bg: #fffbdd !default;
4 | $diff-hunk-bg: $gray-200 !default;
5 | $diff-hunk-color: $gray-500 !default;
6 | $diff-line-border: $gray-300 !default;
7 | $diff-line-color: $gray-500 !default;
8 |
9 | .diff-lines {
10 | border-spacing: 0;
11 | border: 0;
12 | margin: 0;
13 |
14 | pre {
15 | margin: 0;
16 | border: 0;
17 | padding: 0 0 0 0.5rem;
18 | width: inherit;
19 |
20 | &:hover {
21 | background-color: $diff-hover-bg;
22 | }
23 | }
24 |
25 | td {
26 | padding: 0;
27 | border: 0;
28 | }
29 |
30 | .hunk {
31 | background-color: $diff-hunk-bg;
32 | color: $diff-hunk-color;
33 | }
34 |
35 | .add {
36 | background-color: $diff-add-bg;
37 | }
38 |
39 | .delete {
40 | background-color: $diff-delete-bg;
41 | }
42 |
43 | .line-number {
44 | color: $diff-line-color;
45 | padding: 0 0.5rem;
46 | text-align: right;
47 | border-right: 1px solid $diff-line-border;
48 | font-family: $font-family-monospace;
49 | font-size: $font-size-sm;
50 |
51 | a {
52 | color: inherit;
53 | }
54 | }
55 |
56 | .line {
57 | padding: 0;
58 | width: 100%;
59 | }
60 | }
61 |
--------------------------------------------------------------------------------
/assets/themes/default/assets/scss/main.scss:
--------------------------------------------------------------------------------
1 | // Basic configuration
2 | $enable-gradients: true;
3 | $enable-print-styles: false;
4 |
5 | // Typography scale
6 | $font-size-root: 1rem;
7 | $font-size-base: 1rem;
8 | $font-size-sm: $font-size-base * 0.875;
9 | $font-size-md: $font-size-base * 1;
10 | $font-size-lg: $font-size-base * 1.25;
11 | $line-height-base: 1.5;
12 | $line-height-sm: 1.25;
13 | $line-height-lg: 2;
14 | $btn-font-weight: 700;
15 |
16 | // Colors
17 | $min-contrast-ratio: 2;
18 | $blue: #4078c0;
19 | $gray: #767676;
20 | $green: #6cc644;
21 | $orange: #c9510c;
22 | $purple: #6e5494;
23 | $red: #bd2c00;
24 | $cyan: #b8cbd4;
25 |
26 | // Theme
27 | $primary: $blue;
28 | $secondary: #fcfcfc;
29 | $success: $green;
30 | $info: $cyan;
31 | $warning: $orange;
32 | $danger: $red;
33 | $light: #999;
34 | $dark: #333;
35 |
36 | // Component colors
37 | $card-cap-bg: $secondary;
38 | $card-cap-color: $dark;
39 | $code-bg: #f5f5f5;
40 | $code-border-radius: 6px;
41 |
42 | @import 'bootstrap';
43 | @import '~ionicons/dist/scss/ionicons';
44 | @import 'buttons';
45 | @import 'breadcrumb';
46 | @import 'card';
47 | @import 'navbar';
48 | @import 'repository';
49 | @import 'blame';
50 | @import 'diff';
51 | @import 'tree';
52 |
53 | // Layout
54 | .module-row {
55 | margin-bottom: 1.5rem;
56 | margin-top: 1.5rem;
57 | }
58 |
59 | header {
60 | margin-bottom: 1rem;
61 | }
62 |
63 | .icon {
64 | margin-right: 0.25rem;
65 | }
66 |
67 | .icon-solo {
68 | margin-right: 0;
69 | }
70 |
71 | footer {
72 | color: tint-color($gray, 40%);
73 | margin: 2rem 0;
74 |
75 | a {
76 | color: inherit;
77 | }
78 | }
79 |
80 | // Editor styling fixes
81 | .CodeMirror {
82 | font-family: $font-family-monospace;
83 | color: $body-color;
84 | height: 600px;
85 | }
86 |
87 | .ace_editor {
88 | margin-bottom: 0;
89 | }
90 |
--------------------------------------------------------------------------------
/assets/themes/default/assets/scss/navbar.scss:
--------------------------------------------------------------------------------
1 | .navbar-light {
2 | background-color: $secondary;
3 | @include gradient-y($secondary, shade-color($secondary, 5%));
4 | border-bottom: 1px solid shade-color($secondary, 10%);
5 | }
6 |
--------------------------------------------------------------------------------
/assets/themes/default/assets/scss/repository.scss:
--------------------------------------------------------------------------------
1 | .page-header {
2 | h1 {
3 | font-size: 3.5rem;
4 | font-weight: 300;
5 | line-height: 1.2;
6 | margin-bottom: 1rem;
7 | }
8 | }
9 |
10 | .repository-description {
11 | margin: 0;
12 | }
13 |
14 | .repository-stats a {
15 | color: $gray-700;
16 | font-size: $font-size-base;
17 | }
18 |
19 | .ref-list {
20 | .input-group {
21 | padding: 0 0.75rem 0.75rem 0.75rem;
22 |
23 | max-height: 200px;
24 | overflow-y: auto;
25 | }
26 |
27 | .nav-tabs {
28 | padding-left: 0.75rem;
29 | }
30 |
31 | .tab-content {
32 | max-height: 200px;
33 | overflow: scroll;
34 | }
35 | }
36 |
37 | .clone-input {
38 | margin-right: 1rem;
39 |
40 | .form-control {
41 | font-family: $font-family-monospace;
42 |
43 | &[readonly] {
44 | background-color: $input-bg;
45 | opacity: 1;
46 | }
47 | }
48 | }
49 |
--------------------------------------------------------------------------------
/assets/themes/default/assets/scss/tree.scss:
--------------------------------------------------------------------------------
1 | .table-tree {
2 | margin-bottom: 0;
3 |
4 | tr:first-child {
5 | td,
6 | th {
7 | border-top: 0;
8 | }
9 | }
10 |
11 | td,
12 | th {
13 | padding: $spacer;
14 | }
15 |
16 | .tree-truncate {
17 | white-space: nowrap;
18 | overflow: hidden;
19 | text-overflow: ellipsis;
20 | display: block;
21 | }
22 |
23 | .tree-filename {
24 | max-width: 200px;
25 | color: $body-color;
26 |
27 | .icon {
28 | margin-right: 0.4rem;
29 | }
30 |
31 | a {
32 | color: $body-color;
33 | font-weight: $font-weight-normal;
34 | text-decoration: none;
35 |
36 | &:hover {
37 | color: $body-color;
38 | text-decoration: underline;
39 | }
40 | }
41 | }
42 |
43 | .tree-commit {
44 | color: $text-muted;
45 | max-width: 320px;
46 |
47 | a {
48 | color: $text-muted;
49 | font-weight: $font-weight-normal;
50 | text-decoration: none;
51 |
52 | &:hover {
53 | color: $text-muted;
54 | text-decoration: underline;
55 | }
56 | }
57 | }
58 |
59 | .tree-timestamp {
60 | color: $text-muted;
61 | text-align: right;
62 | }
63 |
64 | .tree-filesize {
65 | color: $text-muted;
66 | }
67 | }
68 |
--------------------------------------------------------------------------------
/assets/themes/default/templates/Blob/blame.html.twig:
--------------------------------------------------------------------------------
1 | {% extends 'base.html.twig' %}
2 |
3 | {% block title %}
4 | {{ blob.name }} ({{ blob.shortHash }}) - {{ repository.name }}
5 | {% endblock %}
6 |
7 | {% block header %}
8 | {% include 'page-header.html.twig' with { repository: repository, baseRef: blob.hash, current: 'code' } %}
9 | {% endblock %}
10 |
11 | {% block search %}
12 | {% include 'search.html.twig' with { repository: repository, commitish: blob.hash } %}
13 | {% endblock %}
14 |
15 | {% block body %}
16 | {% include 'Blob/breadcrumb.html.twig' with { repository: repository, blob: blob } %}
17 |
18 |
19 |
20 |
21 |
24 |
25 |
26 | {% for line in blame.annotatedLines %}
27 |
28 |
29 |
30 |
31 |
32 | {{ line.commit.subject|truncate(30, '...') }}
33 |
34 | {{ line.commit.author.name }} {{ 'REPOSITORY_COMMIT_AUTHORED'|trans }} {{ line.commit.commitedAt|ago }}
35 | |
36 |
37 | {{ line.contents }}
38 | |
39 |
40 | {% endfor %}
41 |
42 |
43 |
44 |
45 |
46 | {% endblock %}
47 |
--------------------------------------------------------------------------------
/assets/themes/default/templates/Blob/breadcrumb.html.twig:
--------------------------------------------------------------------------------
1 |
2 | {% include 'reflist.html.twig' with { ref: blob.shortHash, refPath: blob.name, path: 'blob_show', repository: repository } %}
3 |
4 |
22 |
23 |
--------------------------------------------------------------------------------
/assets/themes/default/templates/Blob/history.html.twig:
--------------------------------------------------------------------------------
1 | {% extends 'base.html.twig' %}
2 |
3 | {% block title %}
4 | {{ blob.name }} ({{ blob.shortHash }}) - {{ repository.name }}
5 | {% endblock %}
6 |
7 | {% block header %}
8 | {% include 'page-header.html.twig' with { repository: repository, baseRef: blob.hash, current: 'code' } %}
9 | {% endblock %}
10 |
11 | {% block search %}
12 | {% include 'search.html.twig' with { repository: repository, commitish: blob.hash } %}
13 | {% endblock %}
14 |
15 | {% block body %}
16 | {% include 'Blob/breadcrumb.html.twig' with { repository: repository, blob: blob } %}
17 |
18 | {% for commitGroup, commits in commitGroups %}
19 |
20 |
21 |
22 |
25 |
26 | {% include 'Commit/list-items.html.twig' with { repository: repository, commits: commits } %}
27 |
28 |
29 |
30 |
31 | {% endfor %}
32 |
33 |
49 | {% endblock %}
50 |
--------------------------------------------------------------------------------
/assets/themes/default/templates/Blob/viewer/ace.html.twig:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/assets/themes/default/templates/Blob/viewer/codemirror.html.twig:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/assets/themes/default/templates/Blob/viewer/simple.html.twig:
--------------------------------------------------------------------------------
1 |
2 |
{{ file.contents }}
3 |
4 |
--------------------------------------------------------------------------------
/assets/themes/default/templates/Commit/feed.atom.twig:
--------------------------------------------------------------------------------
1 |
2 |
3 | {{ url('repository_tree', { repository: repository.name, commitish: commitish.hash }) }}
4 |
5 |
6 | {{ 'REPOSITORY_FEED_RECENT_COMMITS'|trans }} {{ repository.name }} ({{ commitish.hash }})
7 | {{ commits|first.commitedAt|date('Y-m-d\\TH:i:sP') }}
8 | {% for commit in commits %}
9 |
10 | tag:gitlist.org,2012:commit/{{ commit.hash }}
11 |
12 | {{ commit.subject }}
13 | {{ commit.commitedAt|date('Y-m-d\\TH:i:sP') }}
14 |
15 |
16 | {{ commit.author.name }}
17 | {{ commit.author.email }}
18 |
19 |
20 | {{ '' ~ commit.body ~ '
'|escape }}
21 |
22 |
23 | {% endfor %}
24 |
25 |
--------------------------------------------------------------------------------
/assets/themes/default/templates/Commit/feed.rss.twig:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | {{ 'REPOSITORY_FEED_RECENT_COMMITS'|trans }} {{ repository.name }} ({{ commitish.hash }})
5 | {{ url('repository_tree', { repository: repository.name, commitish: commitish.hash }) }}
6 |
7 | {{ 'REPOSITORY_FEED_RECENT_COMMITS_SOURCE'|trans }}
8 | {% for commit in commits %}
9 | -
10 | {{ commit.subject }}
11 | {{ commit.body }}
12 | {{ url('commit_show', { repository: repository.name, commitish: commit.hash }) }}
13 | {{ commit.author.email }} ({{ commit.author.name }})
14 | {{ commit.commitedAt|date('r') }}
15 | {{ commit.hash }}
16 |
17 | {% endfor %}
18 |
19 |
20 |
--------------------------------------------------------------------------------
/assets/themes/default/templates/Commit/list-items.html.twig:
--------------------------------------------------------------------------------
1 |
2 | {% for commit in commits %}
3 | -
4 |
5 |
 }})
6 |
7 |
8 |
{{ commit.subject }}
9 |
10 | {% if commit.body %}
11 |
12 | {% endif %}
13 |
14 | {{ commit.author.name }} {{ 'REPOSITORY_COMMIT_AUTHORED_ON'|trans }} {{ commit.commitedAt|date(commit_list_date_format) }}
15 |
16 |
17 |
26 |
27 |
28 | {% endfor %}
29 |
30 |
--------------------------------------------------------------------------------
/assets/themes/default/templates/Commit/list.html.twig:
--------------------------------------------------------------------------------
1 | {% extends 'base.html.twig' %}
2 |
3 | {% block title %}
4 | {{ 'REPOSITORY_COMMITS_TITLE'|trans }} - {{ repository.name }}
5 | {% endblock %}
6 |
7 | {% block header %}
8 | {% include 'page-header.html.twig' with { repository: repository, baseRef: repository.defaultBranch, current: 'commits' } %}
9 | {% endblock %}
10 |
11 | {% block search %}
12 | {% include 'search.html.twig' with { repository: repository, commitish: commitish } %}
13 | {% endblock %}
14 |
15 | {% block body %}
16 |
17 | {% include 'reflist.html.twig' with { ref: commitish, refPath: '', path: 'commit_list', repository: repository } %}
18 |
19 |
20 | {% for commitGroup, commits in commitGroups %}
21 |
22 |
23 |
24 |
27 |
28 | {% include 'Commit/list-items.html.twig' with { repository: repository, commits: commits } %}
29 |
30 |
31 |
32 |
33 | {% endfor %}
34 |
35 |
51 | {% endblock %}
52 |
--------------------------------------------------------------------------------
/assets/themes/default/templates/Repository/branches.html.twig:
--------------------------------------------------------------------------------
1 | {% extends 'base.html.twig' %}
2 |
3 | {% block header %}
4 | {% include 'page-header.html.twig' with { repository: repository, baseRef: repository.defaultBranch, current: 'branches' } %}
5 | {% endblock %}
6 |
7 | {% block search %}
8 | {% include 'search.html.twig' with { repository: repository, commitish: repository.defaultBranch } %}
9 | {% endblock %}
10 |
11 | {% block body %}
12 |
43 | {% endblock %}
44 |
--------------------------------------------------------------------------------
/assets/themes/default/templates/Repository/list.html.twig:
--------------------------------------------------------------------------------
1 | {% extends 'base.html.twig' %}
2 |
3 | {% block title %}
4 | {{ 'REPOSITORY_LIST_TITLE'|trans }}
5 | {% endblock %}
6 |
7 | {% block body %}
8 |
9 | {% for repository in repositories %}
10 |
11 |
12 |
19 |
20 | {{ repository.description }}
21 |
22 |
23 |
24 | {% endfor %}
25 |
26 | {% endblock %}
27 |
--------------------------------------------------------------------------------
/assets/themes/default/templates/Repository/tags.html.twig:
--------------------------------------------------------------------------------
1 | {% extends 'base.html.twig' %}
2 |
3 | {% block header %}
4 | {% include 'page-header.html.twig' with { repository: repository, baseRef: repository.defaultBranch, current: 'tags' } %}
5 | {% endblock %}
6 |
7 | {% block search %}
8 | {% include 'search.html.twig' with { repository: repository, commitish: repository.defaultBranch } %}
9 | {% endblock %}
10 |
11 | {% block body %}
12 |
13 |
14 |
15 |
18 |
19 | {% if tags %}
20 |
42 | {% else %}
43 | {{ 'REPOSITORY_TAGS_NO_TAGS_AVAILABLE'|trans }}
44 | {% endif %}
45 |
46 |
47 |
48 |
49 | {% endblock %}
50 |
--------------------------------------------------------------------------------
/assets/themes/default/templates/Search/form.html.twig:
--------------------------------------------------------------------------------
1 | {% extends 'base.html.twig' %}
2 | {% form_theme form 'bootstrap_5_layout.html.twig' %}
3 |
4 | {% block title %}
5 | {{ 'REPOSITORY_SEARCH_FORM_TITLE'|trans }} - {{ repository.name }}
6 | {% endblock %}
7 |
8 | {% block header %}
9 | {% include 'page-header.html.twig' with { repository: repository, baseRef: repository.defaultBranch, current: 'search' } %}
10 | {% endblock %}
11 |
12 | {% block search %}
13 | {% include 'search.html.twig' with { repository: repository, commitish: commitish } %}
14 | {% endblock %}
15 |
16 | {% block body %}
17 |
18 | {{ form_start(form) }}
19 |
20 |
21 |
22 | {{ form_widget(form.from) }}
23 |
24 |
25 |
26 | {{ form_widget(form.to) }}
27 |
28 |
29 |
30 |
31 |
32 | {{ form_widget(form.author) }}
33 |
34 |
35 |
36 | {{ form_widget(form.message) }}
37 |
38 |
39 |
40 |
41 |
42 | {{ form_widget(form.submit) }}
43 |
44 |
45 |
46 | {{ form_end(form) }}
47 |
48 | {% endblock %}
49 |
--------------------------------------------------------------------------------
/assets/themes/default/templates/Search/list.html.twig:
--------------------------------------------------------------------------------
1 | {% extends 'base.html.twig' %}
2 |
3 | {% block title %}
4 | {{ 'REPOSITORY_SEARCH_RESULTS_TITLE'|trans }} - {{ repository.name }}
5 | {% endblock %}
6 |
7 | {% block header %}
8 | {% include 'page-header.html.twig' with { repository: repository, baseRef: repository.defaultBranch, current: 'search' } %}
9 | {% endblock %}
10 |
11 | {% block search %}
12 | {% include 'search.html.twig' with { repository: repository, commitish: commitish } %}
13 | {% endblock %}
14 |
15 | {% block body %}
16 | {% for commitGroup, commits in commitGroups %}
17 |
18 |
19 |
20 |
23 |
24 | {% include 'Commit/list-items.html.twig' with { repository: repository, commits: commits } %}
25 |
26 |
27 |
28 |
29 | {% endfor %}
30 | {% endblock %}
31 |
--------------------------------------------------------------------------------
/assets/themes/default/templates/base.html.twig:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | {% block title %}{{ 'REPOSITORY_LIST_TITLE'|trans }}{% endblock %} · {{ title }}
7 | {% block stylesheets %}{% endblock %}
8 | {% if default_blob_viewer != 'simple' %}
9 | {{ encore_entry_link_tags(default_blob_viewer ~ '/css/main') }}
10 | {% endif %}
11 | {{ encore_entry_link_tags(theme ~ '/css/main') }}
12 |
13 | {% block javascripts %}{% endblock %}
14 | {{ encore_entry_script_tags(theme ~ '/js/main') }}
15 |
16 | {% if default_blob_viewer != 'simple' %}
17 | {{ encore_entry_script_tags(default_blob_viewer ~ '/js/main') }}
18 | {% endif %}
19 |
20 |
21 |
22 |
41 |
42 |
43 |
44 | {% for label, messages in app.flashes() %}
45 | {% for message in messages %}
46 |
47 | {{ message }}
48 |
49 | {% endfor %}
50 | {% endfor %}
51 |
52 |
53 | {% block header %}{% endblock %}
54 |
55 |
56 | {% block body %}{% endblock %}
57 |
58 |
59 |
62 |
63 |
64 |
--------------------------------------------------------------------------------
/assets/themes/default/templates/page-header.html.twig:
--------------------------------------------------------------------------------
1 |
24 |
--------------------------------------------------------------------------------
/assets/themes/default/templates/reflist.html.twig:
--------------------------------------------------------------------------------
1 |
53 |
--------------------------------------------------------------------------------
/assets/themes/default/templates/search.html.twig:
--------------------------------------------------------------------------------
1 |
9 |
--------------------------------------------------------------------------------
/assets/translations/.gitignore:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/klaussilveira/gitlist/30d69a631d80ff7952b5f4ed504895632dfcd4ce/assets/translations/.gitignore
--------------------------------------------------------------------------------
/assets/translations/messages.af.yaml:
--------------------------------------------------------------------------------
1 | ---
2 | REPOSITORY_LIST_TITLE: Repositories
3 | REPOSITORY_MENU_CODE: Code
4 | REPOSITORY_MENU_COMMITS: Commits
5 | REPOSITORY_MENU_BRANCHES: Branches
6 | REPOSITORY_MENU_TAGS: Tags
7 | REPOSITORY_MENU_SEARCH: Search
8 | REPOSITORY_MENU_STATS: Stats
9 | REPOSITORY_MENU_SEARCH_PLACEHOLDER: Search this repository...
10 | REPOSITORY_SUBMENU_BRANCHES: Branches
11 | REPOSITORY_SUBMENU_TAGS: Tags
12 | REPOSITORY_REFLIST_TOGGLE: 'Tree:'
13 | REPOSITORY_REFLIST_PLACEHOLDER: Search branches and tags...
14 | REPOSITORY_REFLIST_BRANCHES: Branches
15 | REPOSITORY_REFLIST_TAGS: Tags
16 | REPOSITORY_TOOLBAR_CLONE_SSH: SSH
17 | REPOSITORY_TOOLBAR_CLONE_HTTPS: HTTPS
18 | REPOSITORY_TOOLBAR_CLONE_COPIED: Copied to clipboard!
19 | REPOSITORY_TOOLBAR_FEED_RSS: RSS
20 | REPOSITORY_TOOLBAR_FEED_ATOM: ATOM
21 | REPOSITORY_TOOLBAR_DOWNLOAD: Download
22 | REPOSITORY_TOOLBAR_DOWNLOAD_ZIP: Download .zip
23 | REPOSITORY_TOOLBAR_DOWNLOAD_TAR: Download .tar
24 | REPOSITORY_TOOLBAR_DOWNLOAD_TAR_GZ: Download .tar.gz
25 | REPOSITORY_BRANCH_TITLE: Remote branches
26 | REPOSITORY_TAGS_TITLE: Remote tags
27 | REPOSITORY_TAGS_NO_TAGS_AVAILABLE: No tags in this repository.
28 | REPOSITORY_SEARCH_FORM_TITLE: Search
29 | REPOSITORY_SEARCH_RESULTS_TITLE: Search results
30 | REPOSITORY_BROWSE_AT_COMMIT: Browse repository at
31 | REPOSITORY_FEED_RECENT_COMMITS: Recent commits to
32 | REPOSITORY_FEED_RECENT_COMMITS_SOURCE: Recent commits feed provided by GitList.
33 | REPOSITORY_COMMITS_TITLE: Commits
34 | REPOSITORY_COMMITS_NAV_TITLE: Commit history navigation
35 | REPOSITORY_COMMITS_NAV_NEWER: Newer
36 | REPOSITORY_COMMITS_NAV_OLDER: Older
37 | REPOSITORY_COMMIT_COMMITED_ON: commited on
38 | REPOSITORY_COMMIT_AUTHORED_ON: authored on
39 | REPOSITORY_COMMIT_AUTHORED: authored
40 | REPOSITORY_COMMIT_PARENT: Parent
41 | REPOSITORY_COMMIT_CHANGE_STATS: Showing %changed% changed files, with %additions% additions and %deletions% deletions.
42 | REPOSITORY_COMMIT_VIEW_FILE_AT: View file @
43 | REPOSITORY_BLOB_HISTORY_FOR: History for
44 |
--------------------------------------------------------------------------------
/assets/translations/messages.ar.yaml:
--------------------------------------------------------------------------------
1 | ---
2 | REPOSITORY_LIST_TITLE: Repositories
3 | REPOSITORY_MENU_CODE: Code
4 | REPOSITORY_MENU_COMMITS: Commits
5 | REPOSITORY_MENU_BRANCHES: Branches
6 | REPOSITORY_MENU_TAGS: Tags
7 | REPOSITORY_MENU_SEARCH: Search
8 | REPOSITORY_MENU_STATS: Stats
9 | REPOSITORY_MENU_SEARCH_PLACEHOLDER: Search this repository...
10 | REPOSITORY_SUBMENU_BRANCHES: Branches
11 | REPOSITORY_SUBMENU_TAGS: Tags
12 | REPOSITORY_REFLIST_TOGGLE: 'شجرة'
13 | REPOSITORY_REFLIST_PLACEHOLDER: Search branches and tags...
14 | REPOSITORY_REFLIST_BRANCHES: Branches
15 | REPOSITORY_REFLIST_TAGS: Tags
16 | REPOSITORY_TOOLBAR_CLONE_SSH: SSH
17 | REPOSITORY_TOOLBAR_CLONE_HTTPS: HTTPS
18 | REPOSITORY_TOOLBAR_CLONE_COPIED: Copied to clipboard!
19 | REPOSITORY_TOOLBAR_FEED_RSS: RSS
20 | REPOSITORY_TOOLBAR_FEED_ATOM: ATOM
21 | REPOSITORY_TOOLBAR_DOWNLOAD: Download
22 | REPOSITORY_TOOLBAR_DOWNLOAD_ZIP: Download .zip
23 | REPOSITORY_TOOLBAR_DOWNLOAD_TAR: Download .tar
24 | REPOSITORY_TOOLBAR_DOWNLOAD_TAR_GZ: Download .tar.gz
25 | REPOSITORY_BRANCH_TITLE: Remote branches
26 | REPOSITORY_TAGS_TITLE: Remote tags
27 | REPOSITORY_TAGS_NO_TAGS_AVAILABLE: No tags in this repository.
28 | REPOSITORY_SEARCH_FORM_TITLE: Search
29 | REPOSITORY_SEARCH_RESULTS_TITLE: Search results
30 | REPOSITORY_BROWSE_AT_COMMIT: Browse repository at
31 | REPOSITORY_FEED_RECENT_COMMITS: Recent commits to
32 | REPOSITORY_FEED_RECENT_COMMITS_SOURCE: Recent commits feed provided by GitList.
33 | REPOSITORY_COMMITS_TITLE: Commits
34 | REPOSITORY_COMMITS_NAV_TITLE: Commit history navigation
35 | REPOSITORY_COMMITS_NAV_NEWER: Newer
36 | REPOSITORY_COMMITS_NAV_OLDER: Older
37 | REPOSITORY_COMMIT_COMMITED_ON: commited on
38 | REPOSITORY_COMMIT_AUTHORED_ON: authored on
39 | REPOSITORY_COMMIT_AUTHORED: authored
40 | REPOSITORY_COMMIT_PARENT: Parent
41 | REPOSITORY_COMMIT_CHANGE_STATS: Showing %changed% changed files, with %additions% additions and %deletions% deletions.
42 | REPOSITORY_COMMIT_VIEW_FILE_AT: View file @
43 | REPOSITORY_BLOB_HISTORY_FOR: History for
44 |
--------------------------------------------------------------------------------
/assets/translations/messages.bn.yaml:
--------------------------------------------------------------------------------
1 | ---
2 | REPOSITORY_LIST_TITLE: ভান্ডার
3 | REPOSITORY_MENU_CODE: কোড
4 | REPOSITORY_MENU_COMMITS: কমিট
5 | REPOSITORY_MENU_BRANCHES: শাখা
6 | REPOSITORY_MENU_TAGS: ট্যাগ
7 | REPOSITORY_MENU_SEARCH: অনুসন্ধান
8 | REPOSITORY_MENU_STATS: তথ্যাদি
9 | REPOSITORY_MENU_SEARCH_PLACEHOLDER: এই ভান্ডারে অনুসন্ধান করুন...
10 | REPOSITORY_SUBMENU_BRANCHES: শাখা
11 | REPOSITORY_SUBMENU_TAGS: ট্যাগ
12 | REPOSITORY_REFLIST_TOGGLE: 'বৃক্ষ:'
13 | REPOSITORY_REFLIST_PLACEHOLDER: শাখা এবং ট্যাগের মধ্যে অসুন্ধান করুন...
14 | REPOSITORY_REFLIST_BRANCHES: শাখা
15 | REPOSITORY_REFLIST_TAGS: ট্যাগ
16 | REPOSITORY_TOOLBAR_CLONE_SSH: SSH
17 | REPOSITORY_TOOLBAR_CLONE_HTTPS: HTTPS
18 | REPOSITORY_TOOLBAR_CLONE_COPIED: ক্লিপবোর্ডে কপি করা হয়েছে!
19 | REPOSITORY_TOOLBAR_FEED_RSS: RSS
20 | REPOSITORY_TOOLBAR_FEED_ATOM: ATOM
21 | REPOSITORY_TOOLBAR_DOWNLOAD: ডাউনলোড
22 | REPOSITORY_TOOLBAR_DOWNLOAD_ZIP: .zip ডাউনলোড
23 | REPOSITORY_TOOLBAR_DOWNLOAD_TAR: .tar ডাউনলোড
24 | REPOSITORY_TOOLBAR_DOWNLOAD_TAR_GZ: .tar.gz ডাউনলোড
25 | REPOSITORY_BRANCH_TITLE: দূরবর্তী শাখা
26 | REPOSITORY_TAGS_TITLE: দূরবর্তী ট্যাগ
27 | REPOSITORY_TAGS_NO_TAGS_AVAILABLE: এই ভান্ডারে কোন ট্যাগ নেই।
28 | REPOSITORY_SEARCH_FORM_TITLE: অনুসন্ধান
29 | REPOSITORY_SEARCH_RESULTS_TITLE: অনুসন্ধানের ফলাফল
30 | REPOSITORY_BROWSE_AT_COMMIT: ভান্ডারটি ঘুরে দেখুন
31 | REPOSITORY_FEED_RECENT_COMMITS: সম্প্রতি কমিট হয়েছে
32 | REPOSITORY_FEED_RECENT_COMMITS_SOURCE: GitList-এর প্রস্তুতকৃত সাম্প্রতিক কমিট ফিড।
33 | REPOSITORY_COMMITS_TITLE: কমিট
34 | REPOSITORY_COMMITS_NAV_TITLE: কমিটের ইতিহাস পরিদর্শন
35 | REPOSITORY_COMMITS_NAV_NEWER: নতুন
36 | REPOSITORY_COMMITS_NAV_OLDER: পুরোনো
37 | REPOSITORY_COMMIT_COMMITED_ON: কমিট করেছেন
38 | REPOSITORY_COMMIT_AUTHORED_ON: প্রস্তুতের সময়
39 | REPOSITORY_COMMIT_AUTHORED: প্রস্তুত করেছেন
40 | REPOSITORY_COMMIT_PARENT: মূল
41 | REPOSITORY_COMMIT_CHANGE_STATS: '%changed%টি পরিবর্তিত ফাইল, যার মধ্যে %additions% নতুন লাইন এবং %deletions% মুছে ফেলা লাইন দেখানো হচ্ছে।'
42 | REPOSITORY_COMMIT_VIEW_FILE_AT: '@ ফাইল দেখুন'
43 | REPOSITORY_BLOB_HISTORY_FOR: ইতিহাস
44 |
--------------------------------------------------------------------------------
/assets/translations/messages.ca.yaml:
--------------------------------------------------------------------------------
1 | ---
2 | REPOSITORY_LIST_TITLE: Repositories
3 | REPOSITORY_MENU_CODE: Code
4 | REPOSITORY_MENU_COMMITS: Commits
5 | REPOSITORY_MENU_BRANCHES: Branches
6 | REPOSITORY_MENU_TAGS: Tags
7 | REPOSITORY_MENU_SEARCH: Search
8 | REPOSITORY_MENU_STATS: Stats
9 | REPOSITORY_MENU_SEARCH_PLACEHOLDER: Search this repository...
10 | REPOSITORY_SUBMENU_BRANCHES: Branches
11 | REPOSITORY_SUBMENU_TAGS: Tags
12 | REPOSITORY_REFLIST_TOGGLE: 'Tree:'
13 | REPOSITORY_REFLIST_PLACEHOLDER: Search branches and tags...
14 | REPOSITORY_REFLIST_BRANCHES: Branches
15 | REPOSITORY_REFLIST_TAGS: Tags
16 | REPOSITORY_TOOLBAR_CLONE_SSH: SSH
17 | REPOSITORY_TOOLBAR_CLONE_HTTPS: HTTPS
18 | REPOSITORY_TOOLBAR_CLONE_COPIED: Copied to clipboard!
19 | REPOSITORY_TOOLBAR_FEED_RSS: RSS
20 | REPOSITORY_TOOLBAR_FEED_ATOM: ATOM
21 | REPOSITORY_TOOLBAR_DOWNLOAD: Download
22 | REPOSITORY_TOOLBAR_DOWNLOAD_ZIP: Download .zip
23 | REPOSITORY_TOOLBAR_DOWNLOAD_TAR: Download .tar
24 | REPOSITORY_TOOLBAR_DOWNLOAD_TAR_GZ: Download .tar.gz
25 | REPOSITORY_BRANCH_TITLE: Remote branches
26 | REPOSITORY_TAGS_TITLE: Remote tags
27 | REPOSITORY_TAGS_NO_TAGS_AVAILABLE: No tags in this repository.
28 | REPOSITORY_SEARCH_FORM_TITLE: Search
29 | REPOSITORY_SEARCH_RESULTS_TITLE: Search results
30 | REPOSITORY_BROWSE_AT_COMMIT: Browse repository at
31 | REPOSITORY_FEED_RECENT_COMMITS: Recent commits to
32 | REPOSITORY_FEED_RECENT_COMMITS_SOURCE: Recent commits feed provided by GitList.
33 | REPOSITORY_COMMITS_TITLE: Commits
34 | REPOSITORY_COMMITS_NAV_TITLE: Commit history navigation
35 | REPOSITORY_COMMITS_NAV_NEWER: Newer
36 | REPOSITORY_COMMITS_NAV_OLDER: Older
37 | REPOSITORY_COMMIT_COMMITED_ON: commited on
38 | REPOSITORY_COMMIT_AUTHORED_ON: authored on
39 | REPOSITORY_COMMIT_AUTHORED: authored
40 | REPOSITORY_COMMIT_PARENT: Parent
41 | REPOSITORY_COMMIT_CHANGE_STATS: Showing %changed% changed files, with %additions% additions and %deletions% deletions.
42 | REPOSITORY_COMMIT_VIEW_FILE_AT: View file @
43 | REPOSITORY_BLOB_HISTORY_FOR: History for
44 |
--------------------------------------------------------------------------------
/assets/translations/messages.cs.yaml:
--------------------------------------------------------------------------------
1 | ---
2 | REPOSITORY_LIST_TITLE: Repositories
3 | REPOSITORY_MENU_CODE: Code
4 | REPOSITORY_MENU_COMMITS: Commits
5 | REPOSITORY_MENU_BRANCHES: Branches
6 | REPOSITORY_MENU_TAGS: Tags
7 | REPOSITORY_MENU_SEARCH: Search
8 | REPOSITORY_MENU_STATS: Stats
9 | REPOSITORY_MENU_SEARCH_PLACEHOLDER: Search this repository...
10 | REPOSITORY_SUBMENU_BRANCHES: Branches
11 | REPOSITORY_SUBMENU_TAGS: Tags
12 | REPOSITORY_REFLIST_TOGGLE: 'Tree:'
13 | REPOSITORY_REFLIST_PLACEHOLDER: Search branches and tags...
14 | REPOSITORY_REFLIST_BRANCHES: Branches
15 | REPOSITORY_REFLIST_TAGS: Tags
16 | REPOSITORY_TOOLBAR_CLONE_SSH: SSH
17 | REPOSITORY_TOOLBAR_CLONE_HTTPS: HTTPS
18 | REPOSITORY_TOOLBAR_CLONE_COPIED: Copied to clipboard!
19 | REPOSITORY_TOOLBAR_FEED_RSS: RSS
20 | REPOSITORY_TOOLBAR_FEED_ATOM: ATOM
21 | REPOSITORY_TOOLBAR_DOWNLOAD: Download
22 | REPOSITORY_TOOLBAR_DOWNLOAD_ZIP: Download .zip
23 | REPOSITORY_TOOLBAR_DOWNLOAD_TAR: Download .tar
24 | REPOSITORY_TOOLBAR_DOWNLOAD_TAR_GZ: Download .tar.gz
25 | REPOSITORY_BRANCH_TITLE: Remote branches
26 | REPOSITORY_TAGS_TITLE: Remote tags
27 | REPOSITORY_TAGS_NO_TAGS_AVAILABLE: No tags in this repository.
28 | REPOSITORY_SEARCH_FORM_TITLE: Search
29 | REPOSITORY_SEARCH_RESULTS_TITLE: Search results
30 | REPOSITORY_BROWSE_AT_COMMIT: Browse repository at
31 | REPOSITORY_FEED_RECENT_COMMITS: Recent commits to
32 | REPOSITORY_FEED_RECENT_COMMITS_SOURCE: Recent commits feed provided by GitList.
33 | REPOSITORY_COMMITS_TITLE: Commits
34 | REPOSITORY_COMMITS_NAV_TITLE: Commit history navigation
35 | REPOSITORY_COMMITS_NAV_NEWER: Newer
36 | REPOSITORY_COMMITS_NAV_OLDER: Older
37 | REPOSITORY_COMMIT_COMMITED_ON: commited on
38 | REPOSITORY_COMMIT_AUTHORED_ON: authored on
39 | REPOSITORY_COMMIT_AUTHORED: authored
40 | REPOSITORY_COMMIT_PARENT: Parent
41 | REPOSITORY_COMMIT_CHANGE_STATS: Showing %changed% changed files, with %additions% additions and %deletions% deletions.
42 | REPOSITORY_COMMIT_VIEW_FILE_AT: View file @
43 | REPOSITORY_BLOB_HISTORY_FOR: History for
44 |
--------------------------------------------------------------------------------
/assets/translations/messages.da.yaml:
--------------------------------------------------------------------------------
1 | ---
2 | REPOSITORY_LIST_TITLE: Repositories
3 | REPOSITORY_MENU_CODE: Code
4 | REPOSITORY_MENU_COMMITS: Commits
5 | REPOSITORY_MENU_BRANCHES: Branches
6 | REPOSITORY_MENU_TAGS: Tags
7 | REPOSITORY_MENU_SEARCH: Search
8 | REPOSITORY_MENU_STATS: Stats
9 | REPOSITORY_MENU_SEARCH_PLACEHOLDER: Search this repository...
10 | REPOSITORY_SUBMENU_BRANCHES: Branches
11 | REPOSITORY_SUBMENU_TAGS: Tags
12 | REPOSITORY_REFLIST_TOGGLE: 'Tree:'
13 | REPOSITORY_REFLIST_PLACEHOLDER: Search branches and tags...
14 | REPOSITORY_REFLIST_BRANCHES: Branches
15 | REPOSITORY_REFLIST_TAGS: Tags
16 | REPOSITORY_TOOLBAR_CLONE_SSH: SSH
17 | REPOSITORY_TOOLBAR_CLONE_HTTPS: HTTPS
18 | REPOSITORY_TOOLBAR_CLONE_COPIED: Copied to clipboard!
19 | REPOSITORY_TOOLBAR_FEED_RSS: RSS
20 | REPOSITORY_TOOLBAR_FEED_ATOM: ATOM
21 | REPOSITORY_TOOLBAR_DOWNLOAD: Download
22 | REPOSITORY_TOOLBAR_DOWNLOAD_ZIP: Download .zip
23 | REPOSITORY_TOOLBAR_DOWNLOAD_TAR: Download .tar
24 | REPOSITORY_TOOLBAR_DOWNLOAD_TAR_GZ: Download .tar.gz
25 | REPOSITORY_BRANCH_TITLE: Remote branches
26 | REPOSITORY_TAGS_TITLE: Remote tags
27 | REPOSITORY_TAGS_NO_TAGS_AVAILABLE: No tags in this repository.
28 | REPOSITORY_SEARCH_FORM_TITLE: Search
29 | REPOSITORY_SEARCH_RESULTS_TITLE: Search results
30 | REPOSITORY_BROWSE_AT_COMMIT: Browse repository at
31 | REPOSITORY_FEED_RECENT_COMMITS: Recent commits to
32 | REPOSITORY_FEED_RECENT_COMMITS_SOURCE: Recent commits feed provided by GitList.
33 | REPOSITORY_COMMITS_TITLE: Commits
34 | REPOSITORY_COMMITS_NAV_TITLE: Commit history navigation
35 | REPOSITORY_COMMITS_NAV_NEWER: Newer
36 | REPOSITORY_COMMITS_NAV_OLDER: Older
37 | REPOSITORY_COMMIT_COMMITED_ON: commited on
38 | REPOSITORY_COMMIT_AUTHORED_ON: authored on
39 | REPOSITORY_COMMIT_AUTHORED: authored
40 | REPOSITORY_COMMIT_PARENT: Parent
41 | REPOSITORY_COMMIT_CHANGE_STATS: Showing %changed% changed files, with %additions% additions and %deletions% deletions.
42 | REPOSITORY_COMMIT_VIEW_FILE_AT: View file @
43 | REPOSITORY_BLOB_HISTORY_FOR: History for
44 |
--------------------------------------------------------------------------------
/assets/translations/messages.de.yaml:
--------------------------------------------------------------------------------
1 | ---
2 | REPOSITORY_LIST_TITLE: Repositories
3 | REPOSITORY_MENU_CODE: Code
4 | REPOSITORY_MENU_COMMITS: Commits
5 | REPOSITORY_MENU_BRANCHES: Branches
6 | REPOSITORY_MENU_TAGS: Tags
7 | REPOSITORY_MENU_SEARCH: Suche
8 | REPOSITORY_MENU_STATS: Statistiken
9 | REPOSITORY_MENU_SEARCH_PLACEHOLDER: Repository durchsuchen...
10 | REPOSITORY_SUBMENU_BRANCHES: Branches
11 | REPOSITORY_SUBMENU_TAGS: Tags
12 | REPOSITORY_REFLIST_TOGGLE: 'Strukturansicht:'
13 | REPOSITORY_REFLIST_PLACEHOLDER: Suche nach Branches und Tags...
14 | REPOSITORY_REFLIST_BRANCHES: Branches
15 | REPOSITORY_REFLIST_TAGS: Tags
16 | REPOSITORY_TOOLBAR_CLONE_SSH: SSH
17 | REPOSITORY_TOOLBAR_CLONE_HTTPS: HTTPS
18 | REPOSITORY_TOOLBAR_CLONE_COPIED: In die Zwischenablage kopiert!
19 | REPOSITORY_TOOLBAR_FEED_RSS: RSS
20 | REPOSITORY_TOOLBAR_FEED_ATOM: ATOM
21 | REPOSITORY_TOOLBAR_DOWNLOAD: Herunterladen
22 | REPOSITORY_TOOLBAR_DOWNLOAD_ZIP: ZIP-Datei herunterladen
23 | REPOSITORY_TOOLBAR_DOWNLOAD_TAR: Tar-Datei herunterladen
24 | REPOSITORY_TOOLBAR_DOWNLOAD_TAR_GZ: TAR.GZ-Datei herunterladen
25 | REPOSITORY_BRANCH_TITLE: Entfernte Branches
26 | REPOSITORY_TAGS_TITLE: Remote tags
27 | REPOSITORY_TAGS_NO_TAGS_AVAILABLE: Keine Tags in diesem Repository.
28 | REPOSITORY_SEARCH_FORM_TITLE: Suchen
29 | REPOSITORY_SEARCH_RESULTS_TITLE: Suchergebnisse
30 | REPOSITORY_BROWSE_AT_COMMIT: Browse repository at
31 | REPOSITORY_FEED_RECENT_COMMITS: Recent commits to
32 | REPOSITORY_FEED_RECENT_COMMITS_SOURCE: Recent commits feed provided by GitList.
33 | REPOSITORY_COMMITS_TITLE: Commits
34 | REPOSITORY_COMMITS_NAV_TITLE: Commit history navigation
35 | REPOSITORY_COMMITS_NAV_NEWER: neuer
36 | REPOSITORY_COMMITS_NAV_OLDER: älter
37 | REPOSITORY_COMMIT_COMMITED_ON: commited on
38 | REPOSITORY_COMMIT_AUTHORED_ON: authored on
39 | REPOSITORY_COMMIT_AUTHORED: authored
40 | REPOSITORY_COMMIT_PARENT: Parent
41 | REPOSITORY_COMMIT_CHANGE_STATS: Zeige %changed% geänderte Dateien mit %additions% Einfügungen und %deletions% Löschungen.
42 | REPOSITORY_COMMIT_VIEW_FILE_AT: Zeige Datei @
43 | REPOSITORY_BLOB_HISTORY_FOR: Verlauf für
44 |
--------------------------------------------------------------------------------
/assets/translations/messages.el.yaml:
--------------------------------------------------------------------------------
1 | ---
2 | REPOSITORY_LIST_TITLE: Repositories
3 | REPOSITORY_MENU_CODE: Code
4 | REPOSITORY_MENU_COMMITS: Commits
5 | REPOSITORY_MENU_BRANCHES: Branches
6 | REPOSITORY_MENU_TAGS: Tags
7 | REPOSITORY_MENU_SEARCH: Search
8 | REPOSITORY_MENU_STATS: Stats
9 | REPOSITORY_MENU_SEARCH_PLACEHOLDER: Search this repository...
10 | REPOSITORY_SUBMENU_BRANCHES: Branches
11 | REPOSITORY_SUBMENU_TAGS: Tags
12 | REPOSITORY_REFLIST_TOGGLE: 'Tree:'
13 | REPOSITORY_REFLIST_PLACEHOLDER: Search branches and tags...
14 | REPOSITORY_REFLIST_BRANCHES: Branches
15 | REPOSITORY_REFLIST_TAGS: Tags
16 | REPOSITORY_TOOLBAR_CLONE_SSH: SSH
17 | REPOSITORY_TOOLBAR_CLONE_HTTPS: HTTPS
18 | REPOSITORY_TOOLBAR_CLONE_COPIED: Copied to clipboard!
19 | REPOSITORY_TOOLBAR_FEED_RSS: RSS
20 | REPOSITORY_TOOLBAR_FEED_ATOM: ATOM
21 | REPOSITORY_TOOLBAR_DOWNLOAD: Download
22 | REPOSITORY_TOOLBAR_DOWNLOAD_ZIP: Download .zip
23 | REPOSITORY_TOOLBAR_DOWNLOAD_TAR: Download .tar
24 | REPOSITORY_TOOLBAR_DOWNLOAD_TAR_GZ: Download .tar.gz
25 | REPOSITORY_BRANCH_TITLE: Remote branches
26 | REPOSITORY_TAGS_TITLE: Remote tags
27 | REPOSITORY_TAGS_NO_TAGS_AVAILABLE: No tags in this repository.
28 | REPOSITORY_SEARCH_FORM_TITLE: Search
29 | REPOSITORY_SEARCH_RESULTS_TITLE: Search results
30 | REPOSITORY_BROWSE_AT_COMMIT: Browse repository at
31 | REPOSITORY_FEED_RECENT_COMMITS: Recent commits to
32 | REPOSITORY_FEED_RECENT_COMMITS_SOURCE: Recent commits feed provided by GitList.
33 | REPOSITORY_COMMITS_TITLE: Commits
34 | REPOSITORY_COMMITS_NAV_TITLE: Commit history navigation
35 | REPOSITORY_COMMITS_NAV_NEWER: Newer
36 | REPOSITORY_COMMITS_NAV_OLDER: Older
37 | REPOSITORY_COMMIT_COMMITED_ON: commited on
38 | REPOSITORY_COMMIT_AUTHORED_ON: authored on
39 | REPOSITORY_COMMIT_AUTHORED: authored
40 | REPOSITORY_COMMIT_PARENT: Parent
41 | REPOSITORY_COMMIT_CHANGE_STATS: Showing %changed% changed files, with %additions% additions and %deletions% deletions.
42 | REPOSITORY_COMMIT_VIEW_FILE_AT: View file @
43 | REPOSITORY_BLOB_HISTORY_FOR: History for
44 |
--------------------------------------------------------------------------------
/assets/translations/messages.en.yaml:
--------------------------------------------------------------------------------
1 | ---
2 | REPOSITORY_LIST_TITLE: Repositories
3 | REPOSITORY_MENU_CODE: Code
4 | REPOSITORY_MENU_COMMITS: Commits
5 | REPOSITORY_MENU_BRANCHES: Branches
6 | REPOSITORY_MENU_TAGS: Tags
7 | REPOSITORY_MENU_SEARCH: Search
8 | REPOSITORY_MENU_STATS: Stats
9 | REPOSITORY_MENU_SEARCH_PLACEHOLDER: Search this repository...
10 | REPOSITORY_SUBMENU_BRANCHES: Branches
11 | REPOSITORY_SUBMENU_TAGS: Tags
12 | REPOSITORY_REFLIST_TOGGLE: 'Tree:'
13 | REPOSITORY_REFLIST_PLACEHOLDER: Search branches and tags...
14 | REPOSITORY_REFLIST_BRANCHES: Branches
15 | REPOSITORY_REFLIST_TAGS: Tags
16 | REPOSITORY_TOOLBAR_CLONE_SSH: SSH
17 | REPOSITORY_TOOLBAR_CLONE_HTTPS: HTTPS
18 | REPOSITORY_TOOLBAR_CLONE_COPIED: Copied to clipboard!
19 | REPOSITORY_TOOLBAR_FEED_RSS: RSS
20 | REPOSITORY_TOOLBAR_FEED_ATOM: ATOM
21 | REPOSITORY_TOOLBAR_DOWNLOAD: Download
22 | REPOSITORY_TOOLBAR_DOWNLOAD_ZIP: Download .zip
23 | REPOSITORY_TOOLBAR_DOWNLOAD_TAR: Download .tar
24 | REPOSITORY_TOOLBAR_DOWNLOAD_TAR_GZ: Download .tar.gz
25 | REPOSITORY_BRANCH_TITLE: Remote branches
26 | REPOSITORY_TAGS_TITLE: Remote tags
27 | REPOSITORY_TAGS_NO_TAGS_AVAILABLE: No tags in this repository.
28 | REPOSITORY_SEARCH_FORM_TITLE: Search
29 | REPOSITORY_SEARCH_RESULTS_TITLE: Search results
30 | REPOSITORY_BROWSE_AT_COMMIT: Browse repository at
31 | REPOSITORY_FEED_RECENT_COMMITS: Recent commits to
32 | REPOSITORY_FEED_RECENT_COMMITS_SOURCE: Recent commits feed provided by GitList.
33 | REPOSITORY_COMMITS_TITLE: Commits
34 | REPOSITORY_COMMITS_NAV_TITLE: Commit history navigation
35 | REPOSITORY_COMMITS_NAV_NEWER: Newer
36 | REPOSITORY_COMMITS_NAV_OLDER: Older
37 | REPOSITORY_COMMIT_COMMITED_ON: commited on
38 | REPOSITORY_COMMIT_AUTHORED_ON: authored on
39 | REPOSITORY_COMMIT_AUTHORED: authored
40 | REPOSITORY_COMMIT_PARENT: Parent
41 | REPOSITORY_COMMIT_CHANGE_STATS: Showing %changed% changed files, with %additions% additions and %deletions% deletions.
42 | REPOSITORY_COMMIT_VIEW_FILE_AT: View file @
43 | REPOSITORY_BLOB_HISTORY_FOR: History for
44 |
--------------------------------------------------------------------------------
/assets/translations/messages.es.yaml:
--------------------------------------------------------------------------------
1 | ---
2 | REPOSITORY_LIST_TITLE: Repositories
3 | REPOSITORY_MENU_CODE: Code
4 | REPOSITORY_MENU_COMMITS: Commits
5 | REPOSITORY_MENU_BRANCHES: Branches
6 | REPOSITORY_MENU_TAGS: Tags
7 | REPOSITORY_MENU_SEARCH: Search
8 | REPOSITORY_MENU_STATS: Stats
9 | REPOSITORY_MENU_SEARCH_PLACEHOLDER: Search this repository...
10 | REPOSITORY_SUBMENU_BRANCHES: Branches
11 | REPOSITORY_SUBMENU_TAGS: Tags
12 | REPOSITORY_REFLIST_TOGGLE: 'Tree:'
13 | REPOSITORY_REFLIST_PLACEHOLDER: Search branches and tags...
14 | REPOSITORY_REFLIST_BRANCHES: Branches
15 | REPOSITORY_REFLIST_TAGS: Tags
16 | REPOSITORY_TOOLBAR_CLONE_SSH: SSH
17 | REPOSITORY_TOOLBAR_CLONE_HTTPS: HTTPS
18 | REPOSITORY_TOOLBAR_CLONE_COPIED: Copied to clipboard!
19 | REPOSITORY_TOOLBAR_FEED_RSS: RSS
20 | REPOSITORY_TOOLBAR_FEED_ATOM: ATOM
21 | REPOSITORY_TOOLBAR_DOWNLOAD: Download
22 | REPOSITORY_TOOLBAR_DOWNLOAD_ZIP: Download .zip
23 | REPOSITORY_TOOLBAR_DOWNLOAD_TAR: Download .tar
24 | REPOSITORY_TOOLBAR_DOWNLOAD_TAR_GZ: Download .tar.gz
25 | REPOSITORY_BRANCH_TITLE: Remote branches
26 | REPOSITORY_TAGS_TITLE: Remote tags
27 | REPOSITORY_TAGS_NO_TAGS_AVAILABLE: No tags in this repository.
28 | REPOSITORY_SEARCH_FORM_TITLE: Search
29 | REPOSITORY_SEARCH_RESULTS_TITLE: Search results
30 | REPOSITORY_BROWSE_AT_COMMIT: Browse repository at
31 | REPOSITORY_FEED_RECENT_COMMITS: Recent commits to
32 | REPOSITORY_FEED_RECENT_COMMITS_SOURCE: Recent commits feed provided by GitList.
33 | REPOSITORY_COMMITS_TITLE: Commits
34 | REPOSITORY_COMMITS_NAV_TITLE: Commit history navigation
35 | REPOSITORY_COMMITS_NAV_NEWER: Newer
36 | REPOSITORY_COMMITS_NAV_OLDER: Older
37 | REPOSITORY_COMMIT_COMMITED_ON: commited on
38 | REPOSITORY_COMMIT_AUTHORED_ON: authored on
39 | REPOSITORY_COMMIT_AUTHORED: authored
40 | REPOSITORY_COMMIT_PARENT: Parent
41 | REPOSITORY_COMMIT_CHANGE_STATS: Showing %changed% changed files, with %additions% additions and %deletions% deletions.
42 | REPOSITORY_COMMIT_VIEW_FILE_AT: View file @
43 | REPOSITORY_BLOB_HISTORY_FOR: History for
44 |
--------------------------------------------------------------------------------
/assets/translations/messages.fi.yaml:
--------------------------------------------------------------------------------
1 | ---
2 | REPOSITORY_LIST_TITLE: Repositories
3 | REPOSITORY_MENU_CODE: Code
4 | REPOSITORY_MENU_COMMITS: Commits
5 | REPOSITORY_MENU_BRANCHES: Branches
6 | REPOSITORY_MENU_TAGS: Tags
7 | REPOSITORY_MENU_SEARCH: Search
8 | REPOSITORY_MENU_STATS: Stats
9 | REPOSITORY_MENU_SEARCH_PLACEHOLDER: Search this repository...
10 | REPOSITORY_SUBMENU_BRANCHES: Branches
11 | REPOSITORY_SUBMENU_TAGS: Tags
12 | REPOSITORY_REFLIST_TOGGLE: 'Tree:'
13 | REPOSITORY_REFLIST_PLACEHOLDER: Search branches and tags...
14 | REPOSITORY_REFLIST_BRANCHES: Branches
15 | REPOSITORY_REFLIST_TAGS: Tags
16 | REPOSITORY_TOOLBAR_CLONE_SSH: SSH
17 | REPOSITORY_TOOLBAR_CLONE_HTTPS: HTTPS
18 | REPOSITORY_TOOLBAR_CLONE_COPIED: Copied to clipboard!
19 | REPOSITORY_TOOLBAR_FEED_RSS: RSS
20 | REPOSITORY_TOOLBAR_FEED_ATOM: ATOM
21 | REPOSITORY_TOOLBAR_DOWNLOAD: Download
22 | REPOSITORY_TOOLBAR_DOWNLOAD_ZIP: Download .zip
23 | REPOSITORY_TOOLBAR_DOWNLOAD_TAR: Download .tar
24 | REPOSITORY_TOOLBAR_DOWNLOAD_TAR_GZ: Download .tar.gz
25 | REPOSITORY_BRANCH_TITLE: Remote branches
26 | REPOSITORY_TAGS_TITLE: Remote tags
27 | REPOSITORY_TAGS_NO_TAGS_AVAILABLE: No tags in this repository.
28 | REPOSITORY_SEARCH_FORM_TITLE: Search
29 | REPOSITORY_SEARCH_RESULTS_TITLE: Search results
30 | REPOSITORY_BROWSE_AT_COMMIT: Browse repository at
31 | REPOSITORY_FEED_RECENT_COMMITS: Recent commits to
32 | REPOSITORY_FEED_RECENT_COMMITS_SOURCE: Recent commits feed provided by GitList.
33 | REPOSITORY_COMMITS_TITLE: Commits
34 | REPOSITORY_COMMITS_NAV_TITLE: Commit history navigation
35 | REPOSITORY_COMMITS_NAV_NEWER: Newer
36 | REPOSITORY_COMMITS_NAV_OLDER: Older
37 | REPOSITORY_COMMIT_COMMITED_ON: commited on
38 | REPOSITORY_COMMIT_AUTHORED_ON: authored on
39 | REPOSITORY_COMMIT_AUTHORED: authored
40 | REPOSITORY_COMMIT_PARENT: Parent
41 | REPOSITORY_COMMIT_CHANGE_STATS: Showing %changed% changed files, with %additions% additions and %deletions% deletions.
42 | REPOSITORY_COMMIT_VIEW_FILE_AT: View file @
43 | REPOSITORY_BLOB_HISTORY_FOR: History for
44 |
--------------------------------------------------------------------------------
/assets/translations/messages.fr.yaml:
--------------------------------------------------------------------------------
1 | ---
2 | REPOSITORY_LIST_TITLE: Repositories
3 | REPOSITORY_MENU_CODE: Code
4 | REPOSITORY_MENU_COMMITS: Commits
5 | REPOSITORY_MENU_BRANCHES: Branches
6 | REPOSITORY_MENU_TAGS: Tags
7 | REPOSITORY_MENU_SEARCH: Search
8 | REPOSITORY_MENU_STATS: Stats
9 | REPOSITORY_MENU_SEARCH_PLACEHOLDER: Search this repository...
10 | REPOSITORY_SUBMENU_BRANCHES: Branches
11 | REPOSITORY_SUBMENU_TAGS: Tags
12 | REPOSITORY_REFLIST_TOGGLE: 'Tree:'
13 | REPOSITORY_REFLIST_PLACEHOLDER: Search branches and tags...
14 | REPOSITORY_REFLIST_BRANCHES: Branches
15 | REPOSITORY_REFLIST_TAGS: Tags
16 | REPOSITORY_TOOLBAR_CLONE_SSH: SSH
17 | REPOSITORY_TOOLBAR_CLONE_HTTPS: HTTPS
18 | REPOSITORY_TOOLBAR_CLONE_COPIED: Copied to clipboard!
19 | REPOSITORY_TOOLBAR_FEED_RSS: RSS
20 | REPOSITORY_TOOLBAR_FEED_ATOM: ATOM
21 | REPOSITORY_TOOLBAR_DOWNLOAD: Download
22 | REPOSITORY_TOOLBAR_DOWNLOAD_ZIP: Download .zip
23 | REPOSITORY_TOOLBAR_DOWNLOAD_TAR: Download .tar
24 | REPOSITORY_TOOLBAR_DOWNLOAD_TAR_GZ: Download .tar.gz
25 | REPOSITORY_BRANCH_TITLE: Remote branches
26 | REPOSITORY_TAGS_TITLE: Remote tags
27 | REPOSITORY_TAGS_NO_TAGS_AVAILABLE: No tags in this repository.
28 | REPOSITORY_SEARCH_FORM_TITLE: Search
29 | REPOSITORY_SEARCH_RESULTS_TITLE: Search results
30 | REPOSITORY_BROWSE_AT_COMMIT: Browse repository at
31 | REPOSITORY_FEED_RECENT_COMMITS: Recent commits to
32 | REPOSITORY_FEED_RECENT_COMMITS_SOURCE: Recent commits feed provided by GitList.
33 | REPOSITORY_COMMITS_TITLE: Commits
34 | REPOSITORY_COMMITS_NAV_TITLE: Commit history navigation
35 | REPOSITORY_COMMITS_NAV_NEWER: Newer
36 | REPOSITORY_COMMITS_NAV_OLDER: Older
37 | REPOSITORY_COMMIT_COMMITED_ON: commited on
38 | REPOSITORY_COMMIT_AUTHORED_ON: authored on
39 | REPOSITORY_COMMIT_AUTHORED: authored
40 | REPOSITORY_COMMIT_PARENT: Parent
41 | REPOSITORY_COMMIT_CHANGE_STATS: Showing %changed% changed files, with %additions% additions and %deletions% deletions.
42 | REPOSITORY_COMMIT_VIEW_FILE_AT: View file @
43 | REPOSITORY_BLOB_HISTORY_FOR: History for
44 |
--------------------------------------------------------------------------------
/assets/translations/messages.he.yaml:
--------------------------------------------------------------------------------
1 | ---
2 | REPOSITORY_LIST_TITLE: Repositories
3 | REPOSITORY_MENU_CODE: Code
4 | REPOSITORY_MENU_COMMITS: Commits
5 | REPOSITORY_MENU_BRANCHES: Branches
6 | REPOSITORY_MENU_TAGS: Tags
7 | REPOSITORY_MENU_SEARCH: Search
8 | REPOSITORY_MENU_STATS: Stats
9 | REPOSITORY_MENU_SEARCH_PLACEHOLDER: Search this repository...
10 | REPOSITORY_SUBMENU_BRANCHES: Branches
11 | REPOSITORY_SUBMENU_TAGS: Tags
12 | REPOSITORY_REFLIST_TOGGLE: 'Tree:'
13 | REPOSITORY_REFLIST_PLACEHOLDER: Search branches and tags...
14 | REPOSITORY_REFLIST_BRANCHES: Branches
15 | REPOSITORY_REFLIST_TAGS: Tags
16 | REPOSITORY_TOOLBAR_CLONE_SSH: SSH
17 | REPOSITORY_TOOLBAR_CLONE_HTTPS: HTTPS
18 | REPOSITORY_TOOLBAR_CLONE_COPIED: Copied to clipboard!
19 | REPOSITORY_TOOLBAR_FEED_RSS: RSS
20 | REPOSITORY_TOOLBAR_FEED_ATOM: ATOM
21 | REPOSITORY_TOOLBAR_DOWNLOAD: Download
22 | REPOSITORY_TOOLBAR_DOWNLOAD_ZIP: Download .zip
23 | REPOSITORY_TOOLBAR_DOWNLOAD_TAR: Download .tar
24 | REPOSITORY_TOOLBAR_DOWNLOAD_TAR_GZ: Download .tar.gz
25 | REPOSITORY_BRANCH_TITLE: Remote branches
26 | REPOSITORY_TAGS_TITLE: Remote tags
27 | REPOSITORY_TAGS_NO_TAGS_AVAILABLE: No tags in this repository.
28 | REPOSITORY_SEARCH_FORM_TITLE: Search
29 | REPOSITORY_SEARCH_RESULTS_TITLE: Search results
30 | REPOSITORY_BROWSE_AT_COMMIT: Browse repository at
31 | REPOSITORY_FEED_RECENT_COMMITS: Recent commits to
32 | REPOSITORY_FEED_RECENT_COMMITS_SOURCE: Recent commits feed provided by GitList.
33 | REPOSITORY_COMMITS_TITLE: Commits
34 | REPOSITORY_COMMITS_NAV_TITLE: Commit history navigation
35 | REPOSITORY_COMMITS_NAV_NEWER: Newer
36 | REPOSITORY_COMMITS_NAV_OLDER: Older
37 | REPOSITORY_COMMIT_COMMITED_ON: commited on
38 | REPOSITORY_COMMIT_AUTHORED_ON: authored on
39 | REPOSITORY_COMMIT_AUTHORED: authored
40 | REPOSITORY_COMMIT_PARENT: Parent
41 | REPOSITORY_COMMIT_CHANGE_STATS: Showing %changed% changed files, with %additions% additions and %deletions% deletions.
42 | REPOSITORY_COMMIT_VIEW_FILE_AT: View file @
43 | REPOSITORY_BLOB_HISTORY_FOR: History for
44 |
--------------------------------------------------------------------------------
/assets/translations/messages.hu.yaml:
--------------------------------------------------------------------------------
1 | ---
2 | REPOSITORY_LIST_TITLE: Repositories
3 | REPOSITORY_MENU_CODE: Code
4 | REPOSITORY_MENU_COMMITS: Commits
5 | REPOSITORY_MENU_BRANCHES: Branches
6 | REPOSITORY_MENU_TAGS: Tags
7 | REPOSITORY_MENU_SEARCH: Search
8 | REPOSITORY_MENU_STATS: Stats
9 | REPOSITORY_MENU_SEARCH_PLACEHOLDER: Search this repository...
10 | REPOSITORY_SUBMENU_BRANCHES: Branches
11 | REPOSITORY_SUBMENU_TAGS: Tags
12 | REPOSITORY_REFLIST_TOGGLE: 'Tree:'
13 | REPOSITORY_REFLIST_PLACEHOLDER: Search branches and tags...
14 | REPOSITORY_REFLIST_BRANCHES: Branches
15 | REPOSITORY_REFLIST_TAGS: Tags
16 | REPOSITORY_TOOLBAR_CLONE_SSH: SSH
17 | REPOSITORY_TOOLBAR_CLONE_HTTPS: HTTPS
18 | REPOSITORY_TOOLBAR_CLONE_COPIED: Copied to clipboard!
19 | REPOSITORY_TOOLBAR_FEED_RSS: RSS
20 | REPOSITORY_TOOLBAR_FEED_ATOM: ATOM
21 | REPOSITORY_TOOLBAR_DOWNLOAD: Download
22 | REPOSITORY_TOOLBAR_DOWNLOAD_ZIP: Download .zip
23 | REPOSITORY_TOOLBAR_DOWNLOAD_TAR: Download .tar
24 | REPOSITORY_TOOLBAR_DOWNLOAD_TAR_GZ: Download .tar.gz
25 | REPOSITORY_BRANCH_TITLE: Remote branches
26 | REPOSITORY_TAGS_TITLE: Remote tags
27 | REPOSITORY_TAGS_NO_TAGS_AVAILABLE: No tags in this repository.
28 | REPOSITORY_SEARCH_FORM_TITLE: Search
29 | REPOSITORY_SEARCH_RESULTS_TITLE: Search results
30 | REPOSITORY_BROWSE_AT_COMMIT: Browse repository at
31 | REPOSITORY_FEED_RECENT_COMMITS: Recent commits to
32 | REPOSITORY_FEED_RECENT_COMMITS_SOURCE: Recent commits feed provided by GitList.
33 | REPOSITORY_COMMITS_TITLE: Commits
34 | REPOSITORY_COMMITS_NAV_TITLE: Commit history navigation
35 | REPOSITORY_COMMITS_NAV_NEWER: Newer
36 | REPOSITORY_COMMITS_NAV_OLDER: Older
37 | REPOSITORY_COMMIT_COMMITED_ON: commited on
38 | REPOSITORY_COMMIT_AUTHORED_ON: authored on
39 | REPOSITORY_COMMIT_AUTHORED: authored
40 | REPOSITORY_COMMIT_PARENT: Parent
41 | REPOSITORY_COMMIT_CHANGE_STATS: Showing %changed% changed files, with %additions% additions and %deletions% deletions.
42 | REPOSITORY_COMMIT_VIEW_FILE_AT: View file @
43 | REPOSITORY_BLOB_HISTORY_FOR: History for
44 |
--------------------------------------------------------------------------------
/assets/translations/messages.it.yaml:
--------------------------------------------------------------------------------
1 | ---
2 | REPOSITORY_LIST_TITLE: Repositories
3 | REPOSITORY_MENU_CODE: Code
4 | REPOSITORY_MENU_COMMITS: Commits
5 | REPOSITORY_MENU_BRANCHES: Branches
6 | REPOSITORY_MENU_TAGS: Tags
7 | REPOSITORY_MENU_SEARCH: Search
8 | REPOSITORY_MENU_STATS: Stats
9 | REPOSITORY_MENU_SEARCH_PLACEHOLDER: Search this repository...
10 | REPOSITORY_SUBMENU_BRANCHES: Branches
11 | REPOSITORY_SUBMENU_TAGS: Tags
12 | REPOSITORY_REFLIST_TOGGLE: 'Tree:'
13 | REPOSITORY_REFLIST_PLACEHOLDER: Search branches and tags...
14 | REPOSITORY_REFLIST_BRANCHES: Branches
15 | REPOSITORY_REFLIST_TAGS: Tags
16 | REPOSITORY_TOOLBAR_CLONE_SSH: SSH
17 | REPOSITORY_TOOLBAR_CLONE_HTTPS: HTTPS
18 | REPOSITORY_TOOLBAR_CLONE_COPIED: Copied to clipboard!
19 | REPOSITORY_TOOLBAR_FEED_RSS: RSS
20 | REPOSITORY_TOOLBAR_FEED_ATOM: ATOM
21 | REPOSITORY_TOOLBAR_DOWNLOAD: Download
22 | REPOSITORY_TOOLBAR_DOWNLOAD_ZIP: Download .zip
23 | REPOSITORY_TOOLBAR_DOWNLOAD_TAR: Download .tar
24 | REPOSITORY_TOOLBAR_DOWNLOAD_TAR_GZ: Download .tar.gz
25 | REPOSITORY_BRANCH_TITLE: Remote branches
26 | REPOSITORY_TAGS_TITLE: Remote tags
27 | REPOSITORY_TAGS_NO_TAGS_AVAILABLE: No tags in this repository.
28 | REPOSITORY_SEARCH_FORM_TITLE: Search
29 | REPOSITORY_SEARCH_RESULTS_TITLE: Search results
30 | REPOSITORY_BROWSE_AT_COMMIT: Browse repository at
31 | REPOSITORY_FEED_RECENT_COMMITS: Recent commits to
32 | REPOSITORY_FEED_RECENT_COMMITS_SOURCE: Recent commits feed provided by GitList.
33 | REPOSITORY_COMMITS_TITLE: Commits
34 | REPOSITORY_COMMITS_NAV_TITLE: Commit history navigation
35 | REPOSITORY_COMMITS_NAV_NEWER: Newer
36 | REPOSITORY_COMMITS_NAV_OLDER: Older
37 | REPOSITORY_COMMIT_COMMITED_ON: commited on
38 | REPOSITORY_COMMIT_AUTHORED_ON: authored on
39 | REPOSITORY_COMMIT_AUTHORED: authored
40 | REPOSITORY_COMMIT_PARENT: Parent
41 | REPOSITORY_COMMIT_CHANGE_STATS: Showing %changed% changed files, with %additions% additions and %deletions% deletions.
42 | REPOSITORY_COMMIT_VIEW_FILE_AT: View file @
43 | REPOSITORY_BLOB_HISTORY_FOR: History for
44 |
--------------------------------------------------------------------------------
/assets/translations/messages.ja.yaml:
--------------------------------------------------------------------------------
1 | ---
2 | REPOSITORY_LIST_TITLE: リポジトリ
3 | REPOSITORY_MENU_CODE: コード
4 | REPOSITORY_MENU_COMMITS: コミット
5 | REPOSITORY_MENU_BRANCHES: ブランチ
6 | REPOSITORY_MENU_TAGS: タグ
7 | REPOSITORY_MENU_SEARCH: 検索
8 | REPOSITORY_MENU_STATS: 統計情報
9 | REPOSITORY_MENU_SEARCH_PLACEHOLDER: このリポジトリを検索...
10 | REPOSITORY_SUBMENU_BRANCHES: ブランチ
11 | REPOSITORY_SUBMENU_TAGS: タグ
12 | REPOSITORY_REFLIST_TOGGLE: 'ツリー :'
13 | REPOSITORY_REFLIST_PLACEHOLDER: ブランチとタグを検索...
14 | REPOSITORY_REFLIST_BRANCHES: ブランチ
15 | REPOSITORY_REFLIST_TAGS: タグ
16 | REPOSITORY_TOOLBAR_CLONE_SSH: SSH
17 | REPOSITORY_TOOLBAR_CLONE_HTTPS: HTTPS
18 | REPOSITORY_TOOLBAR_CLONE_COPIED: クリップボードにコピーしました!
19 | REPOSITORY_TOOLBAR_FEED_RSS: RSS
20 | REPOSITORY_TOOLBAR_FEED_ATOM: ATOM
21 | REPOSITORY_TOOLBAR_DOWNLOAD: ダウンロード
22 | REPOSITORY_TOOLBAR_DOWNLOAD_ZIP: zip 形式でダウンロード
23 | REPOSITORY_TOOLBAR_DOWNLOAD_TAR: tar 形式でダウンロード
24 | REPOSITORY_TOOLBAR_DOWNLOAD_TAR_GZ: tar.gz 形式でダウンロード
25 | REPOSITORY_BRANCH_TITLE: リモートブランチ
26 | REPOSITORY_TAGS_TITLE: リモートタグ
27 | REPOSITORY_TAGS_NO_TAGS_AVAILABLE: リポジトリにタグがありません。
28 | REPOSITORY_SEARCH_FORM_TITLE: 検索
29 | REPOSITORY_SEARCH_RESULTS_TITLE: 検索結果
30 | REPOSITORY_BROWSE_AT_COMMIT: 'レポジトリを表示 : '
31 | REPOSITORY_FEED_RECENT_COMMITS: '最近のコミット :'
32 | REPOSITORY_FEED_RECENT_COMMITS_SOURCE: GitList が提供する「最近のコミット」のフィード。
33 | REPOSITORY_COMMITS_TITLE: コミット
34 | REPOSITORY_COMMITS_NAV_TITLE: コミット履歴ナビゲーション
35 | REPOSITORY_COMMITS_NAV_NEWER: 新しい
36 | REPOSITORY_COMMITS_NAV_OLDER: 古い
37 | REPOSITORY_COMMIT_COMMITED_ON: 'コミット日時 : '
38 | REPOSITORY_COMMIT_AUTHORED_ON: '作成日時 : '
39 | REPOSITORY_COMMIT_AUTHORED: '作成者 : '
40 | REPOSITORY_COMMIT_PARENT: 親
41 | REPOSITORY_COMMIT_CHANGE_STATS: '%changed% 件の変更・%additions% 件の追加・%deletions% 件の削除を表示しています。'
42 | REPOSITORY_COMMIT_VIEW_FILE_AT: ファイル表示 @
43 | REPOSITORY_BLOB_HISTORY_FOR: 履歴
44 |
--------------------------------------------------------------------------------
/assets/translations/messages.ko.yaml:
--------------------------------------------------------------------------------
1 | ---
2 | REPOSITORY_LIST_TITLE: Repositories
3 | REPOSITORY_MENU_CODE: Code
4 | REPOSITORY_MENU_COMMITS: Commits
5 | REPOSITORY_MENU_BRANCHES: Branches
6 | REPOSITORY_MENU_TAGS: Tags
7 | REPOSITORY_MENU_SEARCH: Search
8 | REPOSITORY_MENU_STATS: Stats
9 | REPOSITORY_MENU_SEARCH_PLACEHOLDER: Search this repository...
10 | REPOSITORY_SUBMENU_BRANCHES: Branches
11 | REPOSITORY_SUBMENU_TAGS: Tags
12 | REPOSITORY_REFLIST_TOGGLE: 'Tree:'
13 | REPOSITORY_REFLIST_PLACEHOLDER: Search branches and tags...
14 | REPOSITORY_REFLIST_BRANCHES: Branches
15 | REPOSITORY_REFLIST_TAGS: Tags
16 | REPOSITORY_TOOLBAR_CLONE_SSH: SSH
17 | REPOSITORY_TOOLBAR_CLONE_HTTPS: HTTPS
18 | REPOSITORY_TOOLBAR_CLONE_COPIED: Copied to clipboard!
19 | REPOSITORY_TOOLBAR_FEED_RSS: RSS
20 | REPOSITORY_TOOLBAR_FEED_ATOM: ATOM
21 | REPOSITORY_TOOLBAR_DOWNLOAD: Download
22 | REPOSITORY_TOOLBAR_DOWNLOAD_ZIP: Download .zip
23 | REPOSITORY_TOOLBAR_DOWNLOAD_TAR: Download .tar
24 | REPOSITORY_TOOLBAR_DOWNLOAD_TAR_GZ: Download .tar.gz
25 | REPOSITORY_BRANCH_TITLE: Remote branches
26 | REPOSITORY_TAGS_TITLE: Remote tags
27 | REPOSITORY_TAGS_NO_TAGS_AVAILABLE: No tags in this repository.
28 | REPOSITORY_SEARCH_FORM_TITLE: Search
29 | REPOSITORY_SEARCH_RESULTS_TITLE: Search results
30 | REPOSITORY_BROWSE_AT_COMMIT: Browse repository at
31 | REPOSITORY_FEED_RECENT_COMMITS: Recent commits to
32 | REPOSITORY_FEED_RECENT_COMMITS_SOURCE: Recent commits feed provided by GitList.
33 | REPOSITORY_COMMITS_TITLE: Commits
34 | REPOSITORY_COMMITS_NAV_TITLE: Commit history navigation
35 | REPOSITORY_COMMITS_NAV_NEWER: Newer
36 | REPOSITORY_COMMITS_NAV_OLDER: Older
37 | REPOSITORY_COMMIT_COMMITED_ON: commited on
38 | REPOSITORY_COMMIT_AUTHORED_ON: authored on
39 | REPOSITORY_COMMIT_AUTHORED: authored
40 | REPOSITORY_COMMIT_PARENT: Parent
41 | REPOSITORY_COMMIT_CHANGE_STATS: Showing %changed% changed files, with %additions% additions and %deletions% deletions.
42 | REPOSITORY_COMMIT_VIEW_FILE_AT: View file @
43 | REPOSITORY_BLOB_HISTORY_FOR: History for
44 |
--------------------------------------------------------------------------------
/assets/translations/messages.nl.yaml:
--------------------------------------------------------------------------------
1 | ---
2 | REPOSITORY_LIST_TITLE: Repositories
3 | REPOSITORY_MENU_CODE: Code
4 | REPOSITORY_MENU_COMMITS: Commits
5 | REPOSITORY_MENU_BRANCHES: Branches
6 | REPOSITORY_MENU_TAGS: Tags
7 | REPOSITORY_MENU_SEARCH: Search
8 | REPOSITORY_MENU_STATS: Stats
9 | REPOSITORY_MENU_SEARCH_PLACEHOLDER: Search this repository...
10 | REPOSITORY_SUBMENU_BRANCHES: Branches
11 | REPOSITORY_SUBMENU_TAGS: Tags
12 | REPOSITORY_REFLIST_TOGGLE: 'Tree:'
13 | REPOSITORY_REFLIST_PLACEHOLDER: Search branches and tags...
14 | REPOSITORY_REFLIST_BRANCHES: Branches
15 | REPOSITORY_REFLIST_TAGS: Tags
16 | REPOSITORY_TOOLBAR_CLONE_SSH: SSH
17 | REPOSITORY_TOOLBAR_CLONE_HTTPS: HTTPS
18 | REPOSITORY_TOOLBAR_CLONE_COPIED: Copied to clipboard!
19 | REPOSITORY_TOOLBAR_FEED_RSS: RSS
20 | REPOSITORY_TOOLBAR_FEED_ATOM: ATOM
21 | REPOSITORY_TOOLBAR_DOWNLOAD: Download
22 | REPOSITORY_TOOLBAR_DOWNLOAD_ZIP: Download .zip
23 | REPOSITORY_TOOLBAR_DOWNLOAD_TAR: Download .tar
24 | REPOSITORY_TOOLBAR_DOWNLOAD_TAR_GZ: Download .tar.gz
25 | REPOSITORY_BRANCH_TITLE: Remote branches
26 | REPOSITORY_TAGS_TITLE: Remote tags
27 | REPOSITORY_TAGS_NO_TAGS_AVAILABLE: No tags in this repository.
28 | REPOSITORY_SEARCH_FORM_TITLE: Search
29 | REPOSITORY_SEARCH_RESULTS_TITLE: Search results
30 | REPOSITORY_BROWSE_AT_COMMIT: Browse repository at
31 | REPOSITORY_FEED_RECENT_COMMITS: Recent commits to
32 | REPOSITORY_FEED_RECENT_COMMITS_SOURCE: Recent commits feed provided by GitList.
33 | REPOSITORY_COMMITS_TITLE: Commits
34 | REPOSITORY_COMMITS_NAV_TITLE: Commit history navigation
35 | REPOSITORY_COMMITS_NAV_NEWER: Newer
36 | REPOSITORY_COMMITS_NAV_OLDER: Older
37 | REPOSITORY_COMMIT_COMMITED_ON: commited on
38 | REPOSITORY_COMMIT_AUTHORED_ON: authored on
39 | REPOSITORY_COMMIT_AUTHORED: authored
40 | REPOSITORY_COMMIT_PARENT: Parent
41 | REPOSITORY_COMMIT_CHANGE_STATS: Showing %changed% changed files, with %additions% additions and %deletions% deletions.
42 | REPOSITORY_COMMIT_VIEW_FILE_AT: View file @
43 | REPOSITORY_BLOB_HISTORY_FOR: History for
44 |
--------------------------------------------------------------------------------
/assets/translations/messages.no.yaml:
--------------------------------------------------------------------------------
1 | ---
2 | REPOSITORY_LIST_TITLE: Repositories
3 | REPOSITORY_MENU_CODE: Code
4 | REPOSITORY_MENU_COMMITS: Commits
5 | REPOSITORY_MENU_BRANCHES: Branches
6 | REPOSITORY_MENU_TAGS: Tags
7 | REPOSITORY_MENU_SEARCH: Search
8 | REPOSITORY_MENU_STATS: Stats
9 | REPOSITORY_MENU_SEARCH_PLACEHOLDER: Search this repository...
10 | REPOSITORY_SUBMENU_BRANCHES: Branches
11 | REPOSITORY_SUBMENU_TAGS: Tags
12 | REPOSITORY_REFLIST_TOGGLE: 'Tree:'
13 | REPOSITORY_REFLIST_PLACEHOLDER: Search branches and tags...
14 | REPOSITORY_REFLIST_BRANCHES: Branches
15 | REPOSITORY_REFLIST_TAGS: Tags
16 | REPOSITORY_TOOLBAR_CLONE_SSH: SSH
17 | REPOSITORY_TOOLBAR_CLONE_HTTPS: HTTPS
18 | REPOSITORY_TOOLBAR_CLONE_COPIED: Copied to clipboard!
19 | REPOSITORY_TOOLBAR_FEED_RSS: RSS
20 | REPOSITORY_TOOLBAR_FEED_ATOM: ATOM
21 | REPOSITORY_TOOLBAR_DOWNLOAD: Download
22 | REPOSITORY_TOOLBAR_DOWNLOAD_ZIP: Download .zip
23 | REPOSITORY_TOOLBAR_DOWNLOAD_TAR: Download .tar
24 | REPOSITORY_TOOLBAR_DOWNLOAD_TAR_GZ: Download .tar.gz
25 | REPOSITORY_BRANCH_TITLE: Remote branches
26 | REPOSITORY_TAGS_TITLE: Remote tags
27 | REPOSITORY_TAGS_NO_TAGS_AVAILABLE: No tags in this repository.
28 | REPOSITORY_SEARCH_FORM_TITLE: Search
29 | REPOSITORY_SEARCH_RESULTS_TITLE: Search results
30 | REPOSITORY_BROWSE_AT_COMMIT: Browse repository at
31 | REPOSITORY_FEED_RECENT_COMMITS: Recent commits to
32 | REPOSITORY_FEED_RECENT_COMMITS_SOURCE: Recent commits feed provided by GitList.
33 | REPOSITORY_COMMITS_TITLE: Commits
34 | REPOSITORY_COMMITS_NAV_TITLE: Commit history navigation
35 | REPOSITORY_COMMITS_NAV_NEWER: Newer
36 | REPOSITORY_COMMITS_NAV_OLDER: Older
37 | REPOSITORY_COMMIT_COMMITED_ON: commited on
38 | REPOSITORY_COMMIT_AUTHORED_ON: authored on
39 | REPOSITORY_COMMIT_AUTHORED: authored
40 | REPOSITORY_COMMIT_PARENT: Parent
41 | REPOSITORY_COMMIT_CHANGE_STATS: Showing %changed% changed files, with %additions% additions and %deletions% deletions.
42 | REPOSITORY_COMMIT_VIEW_FILE_AT: View file @
43 | REPOSITORY_BLOB_HISTORY_FOR: History for
44 |
--------------------------------------------------------------------------------
/assets/translations/messages.pl.yaml:
--------------------------------------------------------------------------------
1 | ---
2 | REPOSITORY_LIST_TITLE: Repositories
3 | REPOSITORY_MENU_CODE: Code
4 | REPOSITORY_MENU_COMMITS: Commits
5 | REPOSITORY_MENU_BRANCHES: Branches
6 | REPOSITORY_MENU_TAGS: Tags
7 | REPOSITORY_MENU_SEARCH: Search
8 | REPOSITORY_MENU_STATS: Stats
9 | REPOSITORY_MENU_SEARCH_PLACEHOLDER: Search this repository...
10 | REPOSITORY_SUBMENU_BRANCHES: Branches
11 | REPOSITORY_SUBMENU_TAGS: Tags
12 | REPOSITORY_REFLIST_TOGGLE: 'Tree:'
13 | REPOSITORY_REFLIST_PLACEHOLDER: Search branches and tags...
14 | REPOSITORY_REFLIST_BRANCHES: Branches
15 | REPOSITORY_REFLIST_TAGS: Tags
16 | REPOSITORY_TOOLBAR_CLONE_SSH: SSH
17 | REPOSITORY_TOOLBAR_CLONE_HTTPS: HTTPS
18 | REPOSITORY_TOOLBAR_CLONE_COPIED: Copied to clipboard!
19 | REPOSITORY_TOOLBAR_FEED_RSS: RSS
20 | REPOSITORY_TOOLBAR_FEED_ATOM: ATOM
21 | REPOSITORY_TOOLBAR_DOWNLOAD: Download
22 | REPOSITORY_TOOLBAR_DOWNLOAD_ZIP: Download .zip
23 | REPOSITORY_TOOLBAR_DOWNLOAD_TAR: Download .tar
24 | REPOSITORY_TOOLBAR_DOWNLOAD_TAR_GZ: Download .tar.gz
25 | REPOSITORY_BRANCH_TITLE: Remote branches
26 | REPOSITORY_TAGS_TITLE: Remote tags
27 | REPOSITORY_TAGS_NO_TAGS_AVAILABLE: No tags in this repository.
28 | REPOSITORY_SEARCH_FORM_TITLE: Search
29 | REPOSITORY_SEARCH_RESULTS_TITLE: Search results
30 | REPOSITORY_BROWSE_AT_COMMIT: Browse repository at
31 | REPOSITORY_FEED_RECENT_COMMITS: Recent commits to
32 | REPOSITORY_FEED_RECENT_COMMITS_SOURCE: Recent commits feed provided by GitList.
33 | REPOSITORY_COMMITS_TITLE: Commits
34 | REPOSITORY_COMMITS_NAV_TITLE: Commit history navigation
35 | REPOSITORY_COMMITS_NAV_NEWER: Newer
36 | REPOSITORY_COMMITS_NAV_OLDER: Older
37 | REPOSITORY_COMMIT_COMMITED_ON: commited on
38 | REPOSITORY_COMMIT_AUTHORED_ON: authored on
39 | REPOSITORY_COMMIT_AUTHORED: authored
40 | REPOSITORY_COMMIT_PARENT: Parent
41 | REPOSITORY_COMMIT_CHANGE_STATS: Showing %changed% changed files, with %additions% additions and %deletions% deletions.
42 | REPOSITORY_COMMIT_VIEW_FILE_AT: View file @
43 | REPOSITORY_BLOB_HISTORY_FOR: History for
44 |
--------------------------------------------------------------------------------
/assets/translations/messages.pt.yaml:
--------------------------------------------------------------------------------
1 | ---
2 | REPOSITORY_LIST_TITLE: Repositories
3 | REPOSITORY_MENU_CODE: Code
4 | REPOSITORY_MENU_COMMITS: Commits
5 | REPOSITORY_MENU_BRANCHES: Branches
6 | REPOSITORY_MENU_TAGS: Tags
7 | REPOSITORY_MENU_SEARCH: Search
8 | REPOSITORY_MENU_STATS: Stats
9 | REPOSITORY_MENU_SEARCH_PLACEHOLDER: Search this repository...
10 | REPOSITORY_SUBMENU_BRANCHES: Branches
11 | REPOSITORY_SUBMENU_TAGS: Tags
12 | REPOSITORY_REFLIST_TOGGLE: 'Tree:'
13 | REPOSITORY_REFLIST_PLACEHOLDER: Search branches and tags...
14 | REPOSITORY_REFLIST_BRANCHES: Branches
15 | REPOSITORY_REFLIST_TAGS: Tags
16 | REPOSITORY_TOOLBAR_CLONE_SSH: SSH
17 | REPOSITORY_TOOLBAR_CLONE_HTTPS: HTTPS
18 | REPOSITORY_TOOLBAR_CLONE_COPIED: Copied to clipboard!
19 | REPOSITORY_TOOLBAR_FEED_RSS: RSS
20 | REPOSITORY_TOOLBAR_FEED_ATOM: ATOM
21 | REPOSITORY_TOOLBAR_DOWNLOAD: Download
22 | REPOSITORY_TOOLBAR_DOWNLOAD_ZIP: Download .zip
23 | REPOSITORY_TOOLBAR_DOWNLOAD_TAR: Download .tar
24 | REPOSITORY_TOOLBAR_DOWNLOAD_TAR_GZ: Download .tar.gz
25 | REPOSITORY_BRANCH_TITLE: Remote branches
26 | REPOSITORY_TAGS_TITLE: Remote tags
27 | REPOSITORY_TAGS_NO_TAGS_AVAILABLE: No tags in this repository.
28 | REPOSITORY_SEARCH_FORM_TITLE: Search
29 | REPOSITORY_SEARCH_RESULTS_TITLE: Search results
30 | REPOSITORY_BROWSE_AT_COMMIT: Browse repository at
31 | REPOSITORY_FEED_RECENT_COMMITS: Recent commits to
32 | REPOSITORY_FEED_RECENT_COMMITS_SOURCE: Recent commits feed provided by GitList.
33 | REPOSITORY_COMMITS_TITLE: Commits
34 | REPOSITORY_COMMITS_NAV_TITLE: Commit history navigation
35 | REPOSITORY_COMMITS_NAV_NEWER: Newer
36 | REPOSITORY_COMMITS_NAV_OLDER: Older
37 | REPOSITORY_COMMIT_COMMITED_ON: commited on
38 | REPOSITORY_COMMIT_AUTHORED_ON: authored on
39 | REPOSITORY_COMMIT_AUTHORED: authored
40 | REPOSITORY_COMMIT_PARENT: Parent
41 | REPOSITORY_COMMIT_CHANGE_STATS: Showing %changed% changed files, with %additions% additions and %deletions% deletions.
42 | REPOSITORY_COMMIT_VIEW_FILE_AT: View file @
43 | REPOSITORY_BLOB_HISTORY_FOR: History for
44 |
--------------------------------------------------------------------------------
/assets/translations/messages.ro.yaml:
--------------------------------------------------------------------------------
1 | ---
2 | REPOSITORY_LIST_TITLE: Repositories
3 | REPOSITORY_MENU_CODE: Code
4 | REPOSITORY_MENU_COMMITS: Commits
5 | REPOSITORY_MENU_BRANCHES: Branches
6 | REPOSITORY_MENU_TAGS: Tags
7 | REPOSITORY_MENU_SEARCH: Search
8 | REPOSITORY_MENU_STATS: Stats
9 | REPOSITORY_MENU_SEARCH_PLACEHOLDER: Search this repository...
10 | REPOSITORY_SUBMENU_BRANCHES: Branches
11 | REPOSITORY_SUBMENU_TAGS: Tags
12 | REPOSITORY_REFLIST_TOGGLE: 'Tree:'
13 | REPOSITORY_REFLIST_PLACEHOLDER: Search branches and tags...
14 | REPOSITORY_REFLIST_BRANCHES: Branches
15 | REPOSITORY_REFLIST_TAGS: Tags
16 | REPOSITORY_TOOLBAR_CLONE_SSH: SSH
17 | REPOSITORY_TOOLBAR_CLONE_HTTPS: HTTPS
18 | REPOSITORY_TOOLBAR_CLONE_COPIED: Copied to clipboard!
19 | REPOSITORY_TOOLBAR_FEED_RSS: RSS
20 | REPOSITORY_TOOLBAR_FEED_ATOM: ATOM
21 | REPOSITORY_TOOLBAR_DOWNLOAD: Download
22 | REPOSITORY_TOOLBAR_DOWNLOAD_ZIP: Download .zip
23 | REPOSITORY_TOOLBAR_DOWNLOAD_TAR: Download .tar
24 | REPOSITORY_TOOLBAR_DOWNLOAD_TAR_GZ: Download .tar.gz
25 | REPOSITORY_BRANCH_TITLE: Remote branches
26 | REPOSITORY_TAGS_TITLE: Remote tags
27 | REPOSITORY_TAGS_NO_TAGS_AVAILABLE: No tags in this repository.
28 | REPOSITORY_SEARCH_FORM_TITLE: Search
29 | REPOSITORY_SEARCH_RESULTS_TITLE: Search results
30 | REPOSITORY_BROWSE_AT_COMMIT: Browse repository at
31 | REPOSITORY_FEED_RECENT_COMMITS: Recent commits to
32 | REPOSITORY_FEED_RECENT_COMMITS_SOURCE: Recent commits feed provided by GitList.
33 | REPOSITORY_COMMITS_TITLE: Commits
34 | REPOSITORY_COMMITS_NAV_TITLE: Commit history navigation
35 | REPOSITORY_COMMITS_NAV_NEWER: Newer
36 | REPOSITORY_COMMITS_NAV_OLDER: Older
37 | REPOSITORY_COMMIT_COMMITED_ON: commited on
38 | REPOSITORY_COMMIT_AUTHORED_ON: authored on
39 | REPOSITORY_COMMIT_AUTHORED: authored
40 | REPOSITORY_COMMIT_PARENT: Parent
41 | REPOSITORY_COMMIT_CHANGE_STATS: Showing %changed% changed files, with %additions% additions and %deletions% deletions.
42 | REPOSITORY_COMMIT_VIEW_FILE_AT: View file @
43 | REPOSITORY_BLOB_HISTORY_FOR: History for
44 |
--------------------------------------------------------------------------------
/assets/translations/messages.ru.yaml:
--------------------------------------------------------------------------------
1 | ---
2 | REPOSITORY_LIST_TITLE: Repositories
3 | REPOSITORY_MENU_CODE: Code
4 | REPOSITORY_MENU_COMMITS: Commits
5 | REPOSITORY_MENU_BRANCHES: Branches
6 | REPOSITORY_MENU_TAGS: Tags
7 | REPOSITORY_MENU_SEARCH: Search
8 | REPOSITORY_MENU_STATS: Stats
9 | REPOSITORY_MENU_SEARCH_PLACEHOLDER: Search this repository...
10 | REPOSITORY_SUBMENU_BRANCHES: Branches
11 | REPOSITORY_SUBMENU_TAGS: Tags
12 | REPOSITORY_REFLIST_TOGGLE: 'Tree:'
13 | REPOSITORY_REFLIST_PLACEHOLDER: Search branches and tags...
14 | REPOSITORY_REFLIST_BRANCHES: Branches
15 | REPOSITORY_REFLIST_TAGS: Tags
16 | REPOSITORY_TOOLBAR_CLONE_SSH: SSH
17 | REPOSITORY_TOOLBAR_CLONE_HTTPS: HTTPS
18 | REPOSITORY_TOOLBAR_CLONE_COPIED: Copied to clipboard!
19 | REPOSITORY_TOOLBAR_FEED_RSS: RSS
20 | REPOSITORY_TOOLBAR_FEED_ATOM: ATOM
21 | REPOSITORY_TOOLBAR_DOWNLOAD: Download
22 | REPOSITORY_TOOLBAR_DOWNLOAD_ZIP: Download .zip
23 | REPOSITORY_TOOLBAR_DOWNLOAD_TAR: Download .tar
24 | REPOSITORY_TOOLBAR_DOWNLOAD_TAR_GZ: Download .tar.gz
25 | REPOSITORY_BRANCH_TITLE: Remote branches
26 | REPOSITORY_TAGS_TITLE: Remote tags
27 | REPOSITORY_TAGS_NO_TAGS_AVAILABLE: No tags in this repository.
28 | REPOSITORY_SEARCH_FORM_TITLE: Search
29 | REPOSITORY_SEARCH_RESULTS_TITLE: Search results
30 | REPOSITORY_BROWSE_AT_COMMIT: Browse repository at
31 | REPOSITORY_FEED_RECENT_COMMITS: Recent commits to
32 | REPOSITORY_FEED_RECENT_COMMITS_SOURCE: Recent commits feed provided by GitList.
33 | REPOSITORY_COMMITS_TITLE: Commits
34 | REPOSITORY_COMMITS_NAV_TITLE: Commit history navigation
35 | REPOSITORY_COMMITS_NAV_NEWER: Newer
36 | REPOSITORY_COMMITS_NAV_OLDER: Older
37 | REPOSITORY_COMMIT_COMMITED_ON: commited on
38 | REPOSITORY_COMMIT_AUTHORED_ON: authored on
39 | REPOSITORY_COMMIT_AUTHORED: authored
40 | REPOSITORY_COMMIT_PARENT: Parent
41 | REPOSITORY_COMMIT_CHANGE_STATS: Showing %changed% changed files, with %additions% additions and %deletions% deletions.
42 | REPOSITORY_COMMIT_VIEW_FILE_AT: View file @
43 | REPOSITORY_BLOB_HISTORY_FOR: History for
44 |
--------------------------------------------------------------------------------
/assets/translations/messages.sr.yaml:
--------------------------------------------------------------------------------
1 | ---
2 | REPOSITORY_LIST_TITLE: Repositories
3 | REPOSITORY_MENU_CODE: Code
4 | REPOSITORY_MENU_COMMITS: Commits
5 | REPOSITORY_MENU_BRANCHES: Branches
6 | REPOSITORY_MENU_TAGS: Tags
7 | REPOSITORY_MENU_SEARCH: Search
8 | REPOSITORY_MENU_STATS: Stats
9 | REPOSITORY_MENU_SEARCH_PLACEHOLDER: Search this repository...
10 | REPOSITORY_SUBMENU_BRANCHES: Branches
11 | REPOSITORY_SUBMENU_TAGS: Tags
12 | REPOSITORY_REFLIST_TOGGLE: 'Tree:'
13 | REPOSITORY_REFLIST_PLACEHOLDER: Search branches and tags...
14 | REPOSITORY_REFLIST_BRANCHES: Branches
15 | REPOSITORY_REFLIST_TAGS: Tags
16 | REPOSITORY_TOOLBAR_CLONE_SSH: SSH
17 | REPOSITORY_TOOLBAR_CLONE_HTTPS: HTTPS
18 | REPOSITORY_TOOLBAR_CLONE_COPIED: Copied to clipboard!
19 | REPOSITORY_TOOLBAR_FEED_RSS: RSS
20 | REPOSITORY_TOOLBAR_FEED_ATOM: ATOM
21 | REPOSITORY_TOOLBAR_DOWNLOAD: Download
22 | REPOSITORY_TOOLBAR_DOWNLOAD_ZIP: Download .zip
23 | REPOSITORY_TOOLBAR_DOWNLOAD_TAR: Download .tar
24 | REPOSITORY_TOOLBAR_DOWNLOAD_TAR_GZ: Download .tar.gz
25 | REPOSITORY_BRANCH_TITLE: Remote branches
26 | REPOSITORY_TAGS_TITLE: Remote tags
27 | REPOSITORY_TAGS_NO_TAGS_AVAILABLE: No tags in this repository.
28 | REPOSITORY_SEARCH_FORM_TITLE: Search
29 | REPOSITORY_SEARCH_RESULTS_TITLE: Search results
30 | REPOSITORY_BROWSE_AT_COMMIT: Browse repository at
31 | REPOSITORY_FEED_RECENT_COMMITS: Recent commits to
32 | REPOSITORY_FEED_RECENT_COMMITS_SOURCE: Recent commits feed provided by GitList.
33 | REPOSITORY_COMMITS_TITLE: Commits
34 | REPOSITORY_COMMITS_NAV_TITLE: Commit history navigation
35 | REPOSITORY_COMMITS_NAV_NEWER: Newer
36 | REPOSITORY_COMMITS_NAV_OLDER: Older
37 | REPOSITORY_COMMIT_COMMITED_ON: commited on
38 | REPOSITORY_COMMIT_AUTHORED_ON: authored on
39 | REPOSITORY_COMMIT_AUTHORED: authored
40 | REPOSITORY_COMMIT_PARENT: Parent
41 | REPOSITORY_COMMIT_CHANGE_STATS: Showing %changed% changed files, with %additions% additions and %deletions% deletions.
42 | REPOSITORY_COMMIT_VIEW_FILE_AT: View file @
43 | REPOSITORY_BLOB_HISTORY_FOR: History for
44 |
--------------------------------------------------------------------------------
/assets/translations/messages.sv.yaml:
--------------------------------------------------------------------------------
1 | ---
2 | REPOSITORY_LIST_TITLE: Repositories
3 | REPOSITORY_MENU_CODE: Code
4 | REPOSITORY_MENU_COMMITS: Commits
5 | REPOSITORY_MENU_BRANCHES: Branches
6 | REPOSITORY_MENU_TAGS: Tags
7 | REPOSITORY_MENU_SEARCH: Search
8 | REPOSITORY_MENU_STATS: Stats
9 | REPOSITORY_MENU_SEARCH_PLACEHOLDER: Search this repository...
10 | REPOSITORY_SUBMENU_BRANCHES: Branches
11 | REPOSITORY_SUBMENU_TAGS: Tags
12 | REPOSITORY_REFLIST_TOGGLE: 'Tree:'
13 | REPOSITORY_REFLIST_PLACEHOLDER: Search branches and tags...
14 | REPOSITORY_REFLIST_BRANCHES: Branches
15 | REPOSITORY_REFLIST_TAGS: Tags
16 | REPOSITORY_TOOLBAR_CLONE_SSH: SSH
17 | REPOSITORY_TOOLBAR_CLONE_HTTPS: HTTPS
18 | REPOSITORY_TOOLBAR_CLONE_COPIED: Copied to clipboard!
19 | REPOSITORY_TOOLBAR_FEED_RSS: RSS
20 | REPOSITORY_TOOLBAR_FEED_ATOM: ATOM
21 | REPOSITORY_TOOLBAR_DOWNLOAD: Download
22 | REPOSITORY_TOOLBAR_DOWNLOAD_ZIP: Download .zip
23 | REPOSITORY_TOOLBAR_DOWNLOAD_TAR: Download .tar
24 | REPOSITORY_TOOLBAR_DOWNLOAD_TAR_GZ: Download .tar.gz
25 | REPOSITORY_BRANCH_TITLE: Remote branches
26 | REPOSITORY_TAGS_TITLE: Remote tags
27 | REPOSITORY_TAGS_NO_TAGS_AVAILABLE: No tags in this repository.
28 | REPOSITORY_SEARCH_FORM_TITLE: Search
29 | REPOSITORY_SEARCH_RESULTS_TITLE: Search results
30 | REPOSITORY_BROWSE_AT_COMMIT: Browse repository at
31 | REPOSITORY_FEED_RECENT_COMMITS: Recent commits to
32 | REPOSITORY_FEED_RECENT_COMMITS_SOURCE: Recent commits feed provided by GitList.
33 | REPOSITORY_COMMITS_TITLE: Commits
34 | REPOSITORY_COMMITS_NAV_TITLE: Commit history navigation
35 | REPOSITORY_COMMITS_NAV_NEWER: Newer
36 | REPOSITORY_COMMITS_NAV_OLDER: Older
37 | REPOSITORY_COMMIT_COMMITED_ON: commited on
38 | REPOSITORY_COMMIT_AUTHORED_ON: authored on
39 | REPOSITORY_COMMIT_AUTHORED: authored
40 | REPOSITORY_COMMIT_PARENT: Parent
41 | REPOSITORY_COMMIT_CHANGE_STATS: Showing %changed% changed files, with %additions% additions and %deletions% deletions.
42 | REPOSITORY_COMMIT_VIEW_FILE_AT: View file @
43 | REPOSITORY_BLOB_HISTORY_FOR: History for
44 |
--------------------------------------------------------------------------------
/assets/translations/messages.tr.yaml:
--------------------------------------------------------------------------------
1 | ---
2 | REPOSITORY_LIST_TITLE: Repositories
3 | REPOSITORY_MENU_CODE: Code
4 | REPOSITORY_MENU_COMMITS: Commits
5 | REPOSITORY_MENU_BRANCHES: Branches
6 | REPOSITORY_MENU_TAGS: Tags
7 | REPOSITORY_MENU_SEARCH: Search
8 | REPOSITORY_MENU_STATS: Stats
9 | REPOSITORY_MENU_SEARCH_PLACEHOLDER: Search this repository...
10 | REPOSITORY_SUBMENU_BRANCHES: Branches
11 | REPOSITORY_SUBMENU_TAGS: Tags
12 | REPOSITORY_REFLIST_TOGGLE: 'Tree:'
13 | REPOSITORY_REFLIST_PLACEHOLDER: Search branches and tags...
14 | REPOSITORY_REFLIST_BRANCHES: Branches
15 | REPOSITORY_REFLIST_TAGS: Tags
16 | REPOSITORY_TOOLBAR_CLONE_SSH: SSH
17 | REPOSITORY_TOOLBAR_CLONE_HTTPS: HTTPS
18 | REPOSITORY_TOOLBAR_CLONE_COPIED: Copied to clipboard!
19 | REPOSITORY_TOOLBAR_FEED_RSS: RSS
20 | REPOSITORY_TOOLBAR_FEED_ATOM: ATOM
21 | REPOSITORY_TOOLBAR_DOWNLOAD: Download
22 | REPOSITORY_TOOLBAR_DOWNLOAD_ZIP: Download .zip
23 | REPOSITORY_TOOLBAR_DOWNLOAD_TAR: Download .tar
24 | REPOSITORY_TOOLBAR_DOWNLOAD_TAR_GZ: Download .tar.gz
25 | REPOSITORY_BRANCH_TITLE: Remote branches
26 | REPOSITORY_TAGS_TITLE: Remote tags
27 | REPOSITORY_TAGS_NO_TAGS_AVAILABLE: No tags in this repository.
28 | REPOSITORY_SEARCH_FORM_TITLE: Search
29 | REPOSITORY_SEARCH_RESULTS_TITLE: Search results
30 | REPOSITORY_BROWSE_AT_COMMIT: Browse repository at
31 | REPOSITORY_FEED_RECENT_COMMITS: Recent commits to
32 | REPOSITORY_FEED_RECENT_COMMITS_SOURCE: Recent commits feed provided by GitList.
33 | REPOSITORY_COMMITS_TITLE: Commits
34 | REPOSITORY_COMMITS_NAV_TITLE: Commit history navigation
35 | REPOSITORY_COMMITS_NAV_NEWER: Newer
36 | REPOSITORY_COMMITS_NAV_OLDER: Older
37 | REPOSITORY_COMMIT_COMMITED_ON: commited on
38 | REPOSITORY_COMMIT_AUTHORED_ON: authored on
39 | REPOSITORY_COMMIT_AUTHORED: authored
40 | REPOSITORY_COMMIT_PARENT: Parent
41 | REPOSITORY_COMMIT_CHANGE_STATS: Showing %changed% changed files, with %additions% additions and %deletions% deletions.
42 | REPOSITORY_COMMIT_VIEW_FILE_AT: View file @
43 | REPOSITORY_BLOB_HISTORY_FOR: History for
44 |
--------------------------------------------------------------------------------
/assets/translations/messages.uk.yaml:
--------------------------------------------------------------------------------
1 | ---
2 | REPOSITORY_LIST_TITLE: Repositories
3 | REPOSITORY_MENU_CODE: Code
4 | REPOSITORY_MENU_COMMITS: Commits
5 | REPOSITORY_MENU_BRANCHES: Branches
6 | REPOSITORY_MENU_TAGS: Tags
7 | REPOSITORY_MENU_SEARCH: Search
8 | REPOSITORY_MENU_STATS: Stats
9 | REPOSITORY_MENU_SEARCH_PLACEHOLDER: Search this repository...
10 | REPOSITORY_SUBMENU_BRANCHES: Branches
11 | REPOSITORY_SUBMENU_TAGS: Tags
12 | REPOSITORY_REFLIST_TOGGLE: 'Tree:'
13 | REPOSITORY_REFLIST_PLACEHOLDER: Search branches and tags...
14 | REPOSITORY_REFLIST_BRANCHES: Branches
15 | REPOSITORY_REFLIST_TAGS: Tags
16 | REPOSITORY_TOOLBAR_CLONE_SSH: SSH
17 | REPOSITORY_TOOLBAR_CLONE_HTTPS: HTTPS
18 | REPOSITORY_TOOLBAR_CLONE_COPIED: Copied to clipboard!
19 | REPOSITORY_TOOLBAR_FEED_RSS: RSS
20 | REPOSITORY_TOOLBAR_FEED_ATOM: ATOM
21 | REPOSITORY_TOOLBAR_DOWNLOAD: Download
22 | REPOSITORY_TOOLBAR_DOWNLOAD_ZIP: Download .zip
23 | REPOSITORY_TOOLBAR_DOWNLOAD_TAR: Download .tar
24 | REPOSITORY_TOOLBAR_DOWNLOAD_TAR_GZ: Download .tar.gz
25 | REPOSITORY_BRANCH_TITLE: Remote branches
26 | REPOSITORY_TAGS_TITLE: Remote tags
27 | REPOSITORY_TAGS_NO_TAGS_AVAILABLE: No tags in this repository.
28 | REPOSITORY_SEARCH_FORM_TITLE: Search
29 | REPOSITORY_SEARCH_RESULTS_TITLE: Search results
30 | REPOSITORY_BROWSE_AT_COMMIT: Browse repository at
31 | REPOSITORY_FEED_RECENT_COMMITS: Recent commits to
32 | REPOSITORY_FEED_RECENT_COMMITS_SOURCE: Recent commits feed provided by GitList.
33 | REPOSITORY_COMMITS_TITLE: Commits
34 | REPOSITORY_COMMITS_NAV_TITLE: Commit history navigation
35 | REPOSITORY_COMMITS_NAV_NEWER: Newer
36 | REPOSITORY_COMMITS_NAV_OLDER: Older
37 | REPOSITORY_COMMIT_COMMITED_ON: commited on
38 | REPOSITORY_COMMIT_AUTHORED_ON: authored on
39 | REPOSITORY_COMMIT_AUTHORED: authored
40 | REPOSITORY_COMMIT_PARENT: Parent
41 | REPOSITORY_COMMIT_CHANGE_STATS: Showing %changed% changed files, with %additions% additions and %deletions% deletions.
42 | REPOSITORY_COMMIT_VIEW_FILE_AT: View file @
43 | REPOSITORY_BLOB_HISTORY_FOR: History for
44 |
--------------------------------------------------------------------------------
/assets/translations/messages.vi.yaml:
--------------------------------------------------------------------------------
1 | ---
2 | REPOSITORY_LIST_TITLE: Repositories
3 | REPOSITORY_MENU_CODE: Code
4 | REPOSITORY_MENU_COMMITS: Commits
5 | REPOSITORY_MENU_BRANCHES: Branches
6 | REPOSITORY_MENU_TAGS: Tags
7 | REPOSITORY_MENU_SEARCH: Search
8 | REPOSITORY_MENU_STATS: Stats
9 | REPOSITORY_MENU_SEARCH_PLACEHOLDER: Search this repository...
10 | REPOSITORY_SUBMENU_BRANCHES: Branches
11 | REPOSITORY_SUBMENU_TAGS: Tags
12 | REPOSITORY_REFLIST_TOGGLE: 'Tree:'
13 | REPOSITORY_REFLIST_PLACEHOLDER: Search branches and tags...
14 | REPOSITORY_REFLIST_BRANCHES: Branches
15 | REPOSITORY_REFLIST_TAGS: Tags
16 | REPOSITORY_TOOLBAR_CLONE_SSH: SSH
17 | REPOSITORY_TOOLBAR_CLONE_HTTPS: HTTPS
18 | REPOSITORY_TOOLBAR_CLONE_COPIED: Copied to clipboard!
19 | REPOSITORY_TOOLBAR_FEED_RSS: RSS
20 | REPOSITORY_TOOLBAR_FEED_ATOM: ATOM
21 | REPOSITORY_TOOLBAR_DOWNLOAD: Download
22 | REPOSITORY_TOOLBAR_DOWNLOAD_ZIP: Download .zip
23 | REPOSITORY_TOOLBAR_DOWNLOAD_TAR: Download .tar
24 | REPOSITORY_TOOLBAR_DOWNLOAD_TAR_GZ: Download .tar.gz
25 | REPOSITORY_BRANCH_TITLE: Remote branches
26 | REPOSITORY_TAGS_TITLE: Remote tags
27 | REPOSITORY_TAGS_NO_TAGS_AVAILABLE: No tags in this repository.
28 | REPOSITORY_SEARCH_FORM_TITLE: Search
29 | REPOSITORY_SEARCH_RESULTS_TITLE: Search results
30 | REPOSITORY_BROWSE_AT_COMMIT: Browse repository at
31 | REPOSITORY_FEED_RECENT_COMMITS: Recent commits to
32 | REPOSITORY_FEED_RECENT_COMMITS_SOURCE: Recent commits feed provided by GitList.
33 | REPOSITORY_COMMITS_TITLE: Commits
34 | REPOSITORY_COMMITS_NAV_TITLE: Commit history navigation
35 | REPOSITORY_COMMITS_NAV_NEWER: Newer
36 | REPOSITORY_COMMITS_NAV_OLDER: Older
37 | REPOSITORY_COMMIT_COMMITED_ON: commited on
38 | REPOSITORY_COMMIT_AUTHORED_ON: authored on
39 | REPOSITORY_COMMIT_AUTHORED: authored
40 | REPOSITORY_COMMIT_PARENT: Parent
41 | REPOSITORY_COMMIT_CHANGE_STATS: Showing %changed% changed files, with %additions% additions and %deletions% deletions.
42 | REPOSITORY_COMMIT_VIEW_FILE_AT: View file @
43 | REPOSITORY_BLOB_HISTORY_FOR: History for
44 |
--------------------------------------------------------------------------------
/assets/translations/messages.zh.yaml:
--------------------------------------------------------------------------------
1 | ---
2 | REPOSITORY_LIST_TITLE: Repositories
3 | REPOSITORY_MENU_CODE: Code
4 | REPOSITORY_MENU_COMMITS: Commits
5 | REPOSITORY_MENU_BRANCHES: Branches
6 | REPOSITORY_MENU_TAGS: Tags
7 | REPOSITORY_MENU_SEARCH: Search
8 | REPOSITORY_MENU_STATS: Stats
9 | REPOSITORY_MENU_SEARCH_PLACEHOLDER: Search this repository...
10 | REPOSITORY_SUBMENU_BRANCHES: Branches
11 | REPOSITORY_SUBMENU_TAGS: Tags
12 | REPOSITORY_REFLIST_TOGGLE: 'Tree:'
13 | REPOSITORY_REFLIST_PLACEHOLDER: Search branches and tags...
14 | REPOSITORY_REFLIST_BRANCHES: Branches
15 | REPOSITORY_REFLIST_TAGS: Tags
16 | REPOSITORY_TOOLBAR_CLONE_SSH: SSH
17 | REPOSITORY_TOOLBAR_CLONE_HTTPS: HTTPS
18 | REPOSITORY_TOOLBAR_CLONE_COPIED: Copied to clipboard!
19 | REPOSITORY_TOOLBAR_FEED_RSS: RSS
20 | REPOSITORY_TOOLBAR_FEED_ATOM: ATOM
21 | REPOSITORY_TOOLBAR_DOWNLOAD: Download
22 | REPOSITORY_TOOLBAR_DOWNLOAD_ZIP: Download .zip
23 | REPOSITORY_TOOLBAR_DOWNLOAD_TAR: Download .tar
24 | REPOSITORY_TOOLBAR_DOWNLOAD_TAR_GZ: Download .tar.gz
25 | REPOSITORY_BRANCH_TITLE: Remote branches
26 | REPOSITORY_TAGS_TITLE: Remote tags
27 | REPOSITORY_TAGS_NO_TAGS_AVAILABLE: No tags in this repository.
28 | REPOSITORY_SEARCH_FORM_TITLE: Search
29 | REPOSITORY_SEARCH_RESULTS_TITLE: Search results
30 | REPOSITORY_BROWSE_AT_COMMIT: Browse repository at
31 | REPOSITORY_FEED_RECENT_COMMITS: Recent commits to
32 | REPOSITORY_FEED_RECENT_COMMITS_SOURCE: Recent commits feed provided by GitList.
33 | REPOSITORY_COMMITS_TITLE: Commits
34 | REPOSITORY_COMMITS_NAV_TITLE: Commit history navigation
35 | REPOSITORY_COMMITS_NAV_NEWER: Newer
36 | REPOSITORY_COMMITS_NAV_OLDER: Older
37 | REPOSITORY_COMMIT_COMMITED_ON: commited on
38 | REPOSITORY_COMMIT_AUTHORED_ON: authored on
39 | REPOSITORY_COMMIT_AUTHORED: authored
40 | REPOSITORY_COMMIT_PARENT: Parent
41 | REPOSITORY_COMMIT_CHANGE_STATS: Showing %changed% changed files, with %additions% additions and %deletions% deletions.
42 | REPOSITORY_COMMIT_VIEW_FILE_AT: View file @
43 | REPOSITORY_BLOB_HISTORY_FOR: History for
44 |
--------------------------------------------------------------------------------
/assets/viewers/ace/main.js:
--------------------------------------------------------------------------------
1 | var ace = require('ace-builds/src-min-noconflict/ace');
2 | require('ace-builds/webpack-resolver');
3 |
4 | window.addEventListener('load', function () {
5 | var editor = document.getElementById('ace-editor');
6 |
7 | if (!editor) {
8 | return;
9 | }
10 |
11 | ace.edit(editor, {
12 | mode: 'ace/mode/' + editor.dataset.mode,
13 | maxLines: 50,
14 | minLines: 10,
15 | fontSize: 16,
16 | });
17 | });
18 |
--------------------------------------------------------------------------------
/assets/viewers/ace/main.scss:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/klaussilveira/gitlist/30d69a631d80ff7952b5f4ed504895632dfcd4ce/assets/viewers/ace/main.scss
--------------------------------------------------------------------------------
/assets/viewers/codemirror/main.js:
--------------------------------------------------------------------------------
1 | var CodeMirror = require('codemirror');
2 |
3 | // Dynamically load modes
4 | var requireContext = require.context('codemirror/mode/', true, /\.js$/);
5 | requireContext.keys().forEach(function (key) {
6 | requireContext(key);
7 | });
8 |
9 | window.addEventListener('load', function () {
10 | var editor = document.getElementById('cm-editor');
11 |
12 | if (!editor) {
13 | return;
14 | }
15 |
16 | CodeMirror.fromTextArea(editor, {
17 | mode: editor.dataset.mode,
18 | lineNumbers: true,
19 | lineWrapping: true,
20 | autofocus: true,
21 | });
22 | });
23 |
--------------------------------------------------------------------------------
/assets/viewers/codemirror/main.scss:
--------------------------------------------------------------------------------
1 | @import '~codemirror/lib/codemirror.css';
2 |
--------------------------------------------------------------------------------
/bin/console:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env php
2 | getParameterOption(['--env', '-e'], $_SERVER['APP_ENV'] ?? 'dev', true);
16 | $debug = (bool) ($_SERVER['APP_DEBUG'] ?? ('prod' !== $env)) && !$input->hasParameterOption('--no-debug', true);
17 |
18 | if ($debug) {
19 | umask(0000);
20 |
21 | if (class_exists(Debug::class)) {
22 | Debug::enable();
23 | }
24 | }
25 |
26 | $kernel = new Kernel($env, $debug);
27 | $application = new Application($kernel);
28 | $application->run($input);
29 |
--------------------------------------------------------------------------------
/bin/linguist:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env php
2 | $language) {
19 | if (!isset($language['extensions'])) {
20 | continue;
21 | }
22 |
23 | foreach ($language['extensions'] as $extension) {
24 | $extension = substr($extension, 1);
25 | $languageMap[$extension] = [
26 | 'name' => $name,
27 | 'group' => $language['group'] ?? null,
28 | 'color' => $language['color'] ?? null,
29 | 'ace' => $language['ace_mode'] ?? null,
30 | 'cm' => $language['codemirror_mode'] ?? null,
31 | ];
32 | }
33 | }
34 |
35 | $sourceFile = __DIR__ . '/../src/SCM/Language.php';
36 | $template = file_get_contents($sourceFile);
37 | $blockStart = 'const MAP = [';
38 | $blockEnd = '];';
39 | $blockStartPos = strpos($template, $blockStart) + strlen($blockStart);
40 | $blockEndPos = strpos($template, $blockEnd);
41 |
42 | $languageMapSource = var_export($languageMap, true);
43 | $languageMapSource = substr($languageMapSource, 7);
44 | $languageMapSource = substr($languageMapSource, 0, -1);
45 |
46 | $updatedSource = substr_replace($template, $languageMapSource, $blockStartPos);
47 | $updatedSource .= substr($template, $blockEndPos);
48 |
49 | file_put_contents($sourceFile, $updatedSource);
50 |
--------------------------------------------------------------------------------
/composer.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "klaussilveira/gitlist",
3 | "description": "An elegant git repository viewer",
4 | "keywords": ["scm", "vcs", "git", "repository", "github", "gitweb"],
5 | "type": "project",
6 | "license": "BSD-3-Clause",
7 | "require": {
8 | "php": ">=8.1",
9 | "ext-iconv": "*",
10 | "ext-mbstring": "*",
11 | "league/commonmark": "^2.4",
12 | "nesbot/carbon": "^2.71",
13 | "symfony/asset": "^6.3",
14 | "symfony/cache": "^6.3",
15 | "symfony/console": "^6.3",
16 | "symfony/form": "^6.3",
17 | "symfony/framework-bundle": "^6.3",
18 | "symfony/monolog-bundle": "^3.10",
19 | "symfony/process": "^6.3",
20 | "symfony/string": "^6.3",
21 | "symfony/templating": "^6.3",
22 | "symfony/translation": "^6.3",
23 | "symfony/twig-bundle": "^6.3",
24 | "symfony/webpack-encore-bundle": "^2.1",
25 | "symfony/yaml": "^6.3"
26 | },
27 | "require-dev": {
28 | "friendsofphp/php-cs-fixer": "^3.38",
29 | "phpspec/prophecy-phpunit": "^2.0",
30 | "phpstan/phpstan": "^1.10",
31 | "phpunit/phpunit": "^9.6",
32 | "symfony/debug-bundle": "^6.3",
33 | "symfony/dotenv": "^6.3"
34 | },
35 | "config": {
36 | "preferred-install": {
37 | "*": "dist"
38 | },
39 | "sort-packages": true,
40 | "process-timeout": 0
41 | },
42 | "autoload": {
43 | "psr-4": {
44 | "GitList\\": "src/"
45 | }
46 | },
47 | "scripts": {
48 | "auto-scripts": [
49 | "bin/console cache:clear",
50 | "bin/console assets:install --symlink --relative public"
51 | ],
52 | "post-install-cmd": [
53 | "@auto-scripts"
54 | ],
55 | "post-update-cmd": [
56 | "@auto-scripts"
57 | ],
58 | "test": [
59 | "@cs",
60 | "@unit",
61 | "@lint",
62 | "@stan"
63 | ],
64 | "format": [
65 | "vendor/bin/php-cs-fixer fix -v --show-progress=dots"
66 | ],
67 | "lint": [
68 | "bin/console lint:twig assets/themes/",
69 | "bin/console lint:yaml assets/translations/",
70 | "bin/console lint:yaml config/",
71 | "find src -name '*.php' -print0 | xargs -0 -n1 -P8 php -l"
72 | ],
73 | "cs": [
74 | "vendor/bin/php-cs-fixer fix --dry-run -v --show-progress=dots"
75 | ],
76 | "unit": [
77 | "vendor/bin/phpunit"
78 | ],
79 | "stan": [
80 | "vendor/bin/phpstan analyse -c phpstan.neon -l 5 src/"
81 | ]
82 | },
83 | "conflict": {
84 | "symfony/symfony": "*"
85 | },
86 | "extra": {
87 | "symfony": {
88 | "allow-contrib": false
89 | }
90 | }
91 | }
92 |
--------------------------------------------------------------------------------
/config/config.yml:
--------------------------------------------------------------------------------
1 | # GitList configuration
2 | parameters:
3 | # Web application title
4 | title: GitList
5 |
6 | # Locale configuration
7 | locale: en
8 |
9 | # Theme
10 | theme: default
11 |
12 | # Navigation links
13 | navigation:
14 | -
15 | label: Help
16 | target: https://github.com/klaussilveira/gitlist/wiki
17 | -
18 | label: Report an Issue
19 | target: https://github.com/klaussilveira/gitlist/issues
20 |
21 | # List of directories containing repositories
22 | default_repository_dir: /var/www
23 | repositories:
24 | - '%env(default:default_repository_dir:DEFAULT_REPOSITORY_DIR)%'
25 |
26 | # List of repositories to exclude
27 | exclude_repositories:
28 | - /var/example/gitlist
29 |
30 | # How many levels should be recursively traversed looking for repositories
31 | repository_depth: '0'
32 |
33 | # Commits to show per page
34 | commits_per_page: 10
35 |
36 | # Blob viewer: simple, codemirror or ace
37 | default_blob_viewer: ace
38 |
39 | # Show file size in tree
40 | tree_show_file_size: false
41 |
42 | # Show last commit in tree
43 | tree_show_last_commit: true
44 |
45 | # Default binary paths
46 | git_path: /usr/bin/git
47 | hg_path: /usr/bin/hg
48 |
49 | secret: '%env(APP_SECRET)%'
50 |
51 | avatar_url: '//gravatar.com/avatar'
52 | avatar_config: []
53 |
54 | commit_date_format: 'Y-m-d H:i:s'
55 | commit_group_date_format: 'F j, Y'
56 | commit_list_date_format: 'Y-m-d H:i:s'
57 |
58 | ssh_clone_url: 'git@gitlist.org:%s.git' # %s will be replaced by the repository name
59 | https_clone_url: 'https://gitlist.org/%s.git' # %s will be replaced by the repository name
60 |
61 | # Route validators
62 | valid_repository_name: '[a-zA-Z0-9\-\_\.]+'
63 | #valid_commitish_format: '.+'
64 | valid_commitish_format: '[a-zA-Z0-9\_\.\-\/]+'
65 |
--------------------------------------------------------------------------------
/config/dev/routes.yml:
--------------------------------------------------------------------------------
1 | _errors:
2 | resource: '@FrameworkBundle/Resources/config/routing/errors.xml'
3 | prefix: /_error
4 |
--------------------------------------------------------------------------------
/config/framework.yml:
--------------------------------------------------------------------------------
1 | framework:
2 | secret: '%env(APP_SECRET)%'
3 | session:
4 | handler_id: ~
5 | php_errors:
6 | log: true
7 | cache:
8 | prefix_seed: gl
9 | router:
10 | strict_requirements: ~
11 | utf8: true
12 | default_locale: '%locale%'
13 | translator:
14 | paths:
15 | - '%kernel.project_dir%/assets/translations'
16 | fallbacks:
17 | - '%locale%'
18 | assets:
19 | base_path: 'assets'
20 |
21 | twig:
22 | paths: ['%kernel.project_dir%/assets/themes/%theme%/templates']
23 | debug: '%kernel.debug%'
24 | strict_variables: '%kernel.debug%'
25 | form_themes: ['bootstrap_5_horizontal_layout.html.twig']
26 | globals:
27 | title: '%title%'
28 | theme: '%theme%'
29 | navigation: '%navigation%'
30 | commit_date_format: '%commit_date_format%'
31 | commit_group_date_format: '%commit_group_date_format%'
32 | commit_list_date_format: '%commit_list_date_format%'
33 | ssh_clone_url: '%ssh_clone_url%'
34 | https_clone_url: '%https_clone_url%'
35 | default_blob_viewer: '%default_blob_viewer%'
36 | tree_show_file_size: '%tree_show_file_size%'
37 | tree_show_last_commit: '%tree_show_last_commit%'
38 |
39 | monolog:
40 | handlers:
41 | file_log:
42 | type: stream
43 | path: "%kernel.logs_dir%/%kernel.environment%.log"
44 | level: debug
45 |
46 | syslog_handler:
47 | type: syslog
48 | level: error
49 |
50 | webpack_encore:
51 | output_path: '%kernel.project_dir%/public/assets'
52 |
--------------------------------------------------------------------------------
/config/services.yml:
--------------------------------------------------------------------------------
1 | services:
2 | _defaults:
3 | autowire: true
4 | autoconfigure: true
5 | public: false
6 |
7 | GitList\:
8 | resource: '../src/*'
9 |
10 | GitList\App\Controller\:
11 | resource: '../src/App/Controller'
12 | tags: ['controller.service_arguments']
13 |
14 | GitList\App\Controller\Commit:
15 | arguments:
16 | $perPage: '%commits_per_page%'
17 | tags: ['controller.service_arguments']
18 |
19 | GitList\App\Controller\Blob:
20 | arguments:
21 | $perPage: '%commits_per_page%'
22 | tags: ['controller.service_arguments']
23 |
24 | GitList\Repository\Index:
25 | arguments:
26 | $paths: '%repositories%'
27 | $excludePaths: '%exclude_repositories%'
28 | $depth: '%repository_depth%'
29 | $systems:
30 | - '@GitList\SCM\System\Git\CommandLine'
31 | - '@GitList\SCM\System\Mercurial\CommandLine'
32 |
33 | GitList\SCM\System\Git\CommandLine:
34 | arguments:
35 | $path: '%git_path%'
36 |
37 | GitList\SCM\System\Mercurial\CommandLine:
38 | arguments:
39 | $path: '%hg_path%'
40 |
41 | GitList\App\Twig\AvatarExtension:
42 | arguments:
43 | $avatarUrl: '%avatar_url%'
44 | $avatarConfig: '%avatar_config%'
45 |
--------------------------------------------------------------------------------
/crowdin.yml:
--------------------------------------------------------------------------------
1 | project_identifier: gitlist
2 | base_path: .
3 | preserve_hierarchy: false
4 | files:
5 | - source: /assets/translations/messages.en.yaml
6 | translation: /assets/translations/messages.%two_letters_code%.yaml
7 | type: yaml
8 |
--------------------------------------------------------------------------------
/cypress.json:
--------------------------------------------------------------------------------
1 | {
2 | "baseUrl": "http://0.0.0.0:8880",
3 | "experimentalStudio": true,
4 | "downloadsFolder": "tests/cypress/downloads",
5 | "fixturesFolder": "tests/cypress/fixtures",
6 | "integrationFolder": "tests/cypress/integration",
7 | "pluginsFile": false,
8 | "screenshotsFolder": "tests/cypress/screenshots",
9 | "supportFile": false,
10 | "video": false
11 | }
12 |
--------------------------------------------------------------------------------
/docker-compose.override.yml.dist:
--------------------------------------------------------------------------------
1 | volumes:
2 | var-cache-volume:
3 |
4 | services:
5 | webserver:
6 | volumes:
7 | - .:/application:cached
8 | ports:
9 | - '8880:80'
10 |
11 | php-fpm:
12 | volumes:
13 | - /var/www:/var/repositories
14 | - .:/application:cached
15 | - var-cache-volume:/application/var/cache
16 | - $HOME/.composer:/root/.composer/:cached
17 |
--------------------------------------------------------------------------------
/docker-compose.yml:
--------------------------------------------------------------------------------
1 | services:
2 | node:
3 | image: node:16-alpine
4 | working_dir: /application
5 | volumes:
6 | - .:/application
7 | command: npm install && npm run watch
8 |
9 | webserver:
10 | build:
11 | context: docker/nginx/
12 | depends_on:
13 | - php-fpm
14 | working_dir: /application
15 | volumes:
16 | - .:/application
17 |
18 | php-fpm:
19 | build:
20 | context: docker/php-fpm/
21 | working_dir: /application
22 | volumes:
23 | - .:/application
24 |
--------------------------------------------------------------------------------
/docker/nginx/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM nginx:stable-alpine
2 | COPY nginx.conf /etc/nginx/conf.d/default.conf
3 |
--------------------------------------------------------------------------------
/docker/nginx/nginx.conf:
--------------------------------------------------------------------------------
1 | server {
2 | listen 80 default;
3 |
4 | root /application/public;
5 | access_log /var/log/nginx/access.log;
6 | resolver 127.0.0.11 ipv6=off;
7 | set $fpm_backend php-fpm;
8 |
9 | location / {
10 | try_files $uri /index.php$is_args$args;
11 | }
12 |
13 | location ~* ^[^(\.php)]+\.(jpg|jpeg|gif|png|ico|css|pdf|ppt|txt|bmp|rtf|js)$ {
14 | access_log off;
15 | expires 1h;
16 | add_header Cache-Control public;
17 | }
18 |
19 | location ~ ^/index\.php(/|$) {
20 | fastcgi_pass $fpm_backend:9000;
21 | fastcgi_split_path_info ^(.+\.php)(/.*)$;
22 |
23 | fastcgi_intercept_errors on;
24 | fastcgi_connect_timeout 300;
25 | fastcgi_send_timeout 300;
26 | fastcgi_read_timeout 300;
27 | fastcgi_buffer_size 128k;
28 | fastcgi_buffers 4 256k;
29 | fastcgi_busy_buffers_size 256k;
30 | fastcgi_temp_file_write_size 256k;
31 | send_timeout 300;
32 |
33 | fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
34 | fastcgi_param DOCUMENT_ROOT $realpath_root;
35 |
36 | include fastcgi_params;
37 | }
38 |
39 | # Basic configuration
40 | expires off;
41 | server_tokens off;
42 | client_max_body_size 4m;
43 | keepalive_timeout 20s;
44 | sendfile on;
45 | tcp_nopush on;
46 |
47 | # Security
48 | add_header X-Frame-Options "SAMEORIGIN" always;
49 | add_header X-XSS-Protection "1; mode=block" always;
50 | add_header X-Content-Type-Options nosniff always;
51 | add_header Referrer-Policy "no-referrer-when-downgrade" always;
52 |
53 | # Performance
54 | gzip on;
55 | gzip_comp_level 5;
56 | gzip_min_length 256;
57 | gzip_proxied any;
58 | gzip_vary on;
59 | gzip_types
60 | application/atom+xml
61 | application/javascript
62 | application/json
63 | application/ld+json
64 | application/manifest+json
65 | application/rss+xml
66 | application/geo+json
67 | application/vnd.ms-fontobject
68 | application/x-web-app-manifest+json
69 | application/xhtml+xml
70 | application/xml
71 | application/rdf+xml
72 | font/otf
73 | application/wasm
74 | image/bmp
75 | image/svg+xml
76 | text/cache-manifest
77 | text/css
78 | text/javascript
79 | text/plain
80 | text/markdown
81 | text/vcard
82 | text/calendar
83 | text/vnd.rim.location.xloc
84 | text/vtt
85 | text/x-component
86 | text/x-cross-domain-policy;
87 |
88 | # Content types
89 | include mime.types;
90 | charset utf-8;
91 | charset_types
92 | text/css
93 | text/plain
94 | text/vnd.wap.wml
95 | text/javascript
96 | text/markdown
97 | text/calendar
98 | text/x-component
99 | text/vcard
100 | text/cache-manifest
101 | text/vtt
102 | application/json
103 | application/manifest+json;
104 | }
105 |
--------------------------------------------------------------------------------
/docker/php-fpm/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM php:8.2-fpm-alpine
2 |
3 | ENV PHP_EXT_DEPS \
4 | gettext=gettext-dev \
5 | icu=icu-dev \
6 | libgcrypt=libgcrypt-dev \
7 | libxml2=libxml2-dev \
8 | libxslt=libxslt-dev \
9 | libzip=libzip-dev
10 |
11 | RUN set -x; \
12 | apk add --no-cache --virtual .php-extensions-build-dependencies \
13 | $PHPIZE_DEPS \
14 | linux-headers \
15 | $(echo ${PHP_EXT_DEPS} | tr ' ' '\n' | cut -d = -f 2) \
16 | && apk add --no-cache \
17 | $(echo ${PHP_EXT_DEPS} | tr ' ' '\n' | cut -d = -f 1) \
18 | && docker-php-ext-install \
19 | exif \
20 | gettext \
21 | intl \
22 | opcache \
23 | sockets \
24 | xsl \
25 | zip \
26 | && printf "\n" | pecl install apcu xdebug \
27 | && docker-php-ext-enable apcu \
28 | && apk del .php-extensions-build-dependencies
29 |
30 | RUN apk add --no-cache \
31 | bash \
32 | coreutils \
33 | git \
34 | grep \
35 | mercurial \
36 | make \
37 | wget
38 |
39 | ENV COMPOSER_ALLOW_SUPERUSER 1
40 |
41 | RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer --2
42 |
43 | ENV PATH="/application/bin:/application/vendor/bin:${PATH}"
44 |
45 | WORKDIR "/application"
46 |
47 | CMD ["php-fpm", "--allow-to-run-as-root"]
48 |
49 | COPY php.ini /usr/local/etc/php/conf.d/99-overrides.ini
50 | COPY php-fpm.d/* /usr/local/etc/php-fpm.d/
51 |
--------------------------------------------------------------------------------
/docker/php-fpm/php-fpm.d/docker.conf:
--------------------------------------------------------------------------------
1 | [global]
2 | error_log = /proc/self/fd/2
3 | log_buffering = no
4 |
5 | [www]
6 | access.log = /proc/self/fd/2
7 | clear_env = no
8 |
9 | ; Ensure worker stdout and stderr are collected
10 | catch_workers_output = yes
11 | decorate_workers_output = no
12 |
--------------------------------------------------------------------------------
/docker/php-fpm/php-fpm.d/www.conf:
--------------------------------------------------------------------------------
1 | [www]
2 | user = root
3 | group = root
4 |
5 | listen = 127.0.0.1:9000
6 |
7 | pm = dynamic
8 | pm.max_children = 5
9 | pm.start_servers = 2
10 | pm.min_spare_servers = 1
11 | pm.max_spare_servers = 3
12 | pm.status_path = /fpm_status
13 |
14 | ping.path = /fpm_ping
15 | ping.response = pong
16 |
--------------------------------------------------------------------------------
/docker/php-fpm/php.ini:
--------------------------------------------------------------------------------
1 | upload_max_filesize = 4M
2 | post_max_size = 4M
3 | memory_limit = -1
4 | date.timezone = UTC
5 |
6 | [xdebug]
7 | zend_extension = xdebug.so
8 | xdebug.cli_color =1
9 | xdebug.mode = debug
10 | xdebug.discover_client_host = 1
11 | xdebug.client_port = 9003
12 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "gitlist",
3 | "main": "index.js",
4 | "repository": "https://github.com/klaussilveira/gitlist",
5 | "license": "BSD-3-Clause",
6 | "scripts": {
7 | "dev-server": "encore dev-server",
8 | "dev": "encore dev",
9 | "watch": "encore dev --watch",
10 | "build": "encore production",
11 | "test": "npm run lint",
12 | "format": "prettier --write 'assets/**/*.{js,ts,json,css,scss,yaml}'",
13 | "lint": "prettier --check 'assets/**/*.{js,ts,json,css,scss,yaml}'",
14 | "cypress": "cypress run"
15 | },
16 | "dependencies": {
17 | "@popperjs/core": "^2.11.2",
18 | "ace-builds": "^1.4",
19 | "bootstrap": "^5.1",
20 | "codemirror": "^5.65",
21 | "ionicons": "^4.6"
22 | },
23 | "devDependencies": {
24 | "@symfony/webpack-encore": "^1.7",
25 | "autoprefixer": "^10.4",
26 | "cssnano": "^5.0",
27 | "cypress": "^9.2.1",
28 | "file-loader": "^6.2",
29 | "husky": "^7.0",
30 | "postcss-loader": "^6.2",
31 | "prettier": "^2.5",
32 | "pretty-quick": "^3.1",
33 | "sass": "^1.45",
34 | "sass-loader": "^12.4"
35 | },
36 | "browserslist": [
37 | "> 1%",
38 | "IE 10"
39 | ]
40 | }
41 |
--------------------------------------------------------------------------------
/phpstan.neon:
--------------------------------------------------------------------------------
1 | parameters:
2 | level: max
3 | checkMissingIterableValueType: false
4 | paths:
5 | - src
6 | ignoreErrors:
7 | - '#Method GitList\\Kernel::configureContainer\(\) is unused.#'
8 | - '#Method GitList\\Kernel::configureRoutes\(\) is unused.#'
9 | - '#Call to an undefined method Symfony\\Component\\HttpFoundation\\Session\\SessionInterface::getFlashBag#'
10 |
--------------------------------------------------------------------------------
/phpunit.xml.dist:
--------------------------------------------------------------------------------
1 |
2 |
11 |
12 |
13 | src
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 | tests
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/postcss.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | plugins: [
3 | require('cssnano'),
4 | require('autoprefixer')
5 | ]
6 | }
7 |
--------------------------------------------------------------------------------
/public/index.php:
--------------------------------------------------------------------------------
1 | load($env);
15 | }
16 |
17 | $env = $_SERVER['APP_ENV'] = $_ENV['APP_ENV'] ?? $_SERVER['APP_ENV'] ?? 'prod';
18 | $debug = (bool) ($_SERVER['APP_DEBUG'] ?? ('prod' !== $env));
19 |
20 | if ($debug) {
21 | umask(0000);
22 | Debug::enable();
23 | }
24 |
25 | if ($trustedProxies = $_SERVER['TRUSTED_PROXIES'] ?? false) {
26 | Request::setTrustedProxies(explode(',', $trustedProxies), Request::HEADER_X_FORWARDED_ALL ^ Request::HEADER_X_FORWARDED_HOST);
27 | }
28 |
29 | if ($trustedHosts = $_SERVER['TRUSTED_HOSTS'] ?? false) {
30 | Request::setTrustedHosts(explode(',', $trustedHosts));
31 | }
32 |
33 | $kernel = new Kernel($env, $debug);
34 | $request = Request::createFromGlobals();
35 | $response = $kernel->handle($request);
36 | $response->send();
37 | $kernel->terminate($request, $response);
38 |
--------------------------------------------------------------------------------
/src/App/Controller/Commit.php:
--------------------------------------------------------------------------------
1 | query->get('page', 1);
22 | $perPage = (int) $request->query->get('perPage', $this->perPage);
23 |
24 | $repository = $this->index->getRepository($repository);
25 | $commits = $repository->getCommits($commitish, $page, $perPage);
26 | $commitGroups = [];
27 |
28 | foreach ($commits as $commit) {
29 | $commitGroups[$commit->getCommitedAt()->format('Y-m-d')][] = $commit;
30 | }
31 |
32 | return new Response($this->templating->render('Commit/list.html.twig', [
33 | 'repository' => $repository,
34 | 'commitish' => $commitish,
35 | 'commitGroups' => $commitGroups,
36 | 'page' => $page,
37 | 'nextPage' => $page + 1,
38 | 'previousPage' => $page - 1,
39 | 'perPage' => $perPage,
40 | ]));
41 | }
42 |
43 | public function show(string $repository, string $commitish): Response
44 | {
45 | $repository = $this->index->getRepository($repository);
46 | $commit = $repository->getCommit($commitish);
47 |
48 | return new Response($this->templating->render('Commit/show.html.twig', [
49 | 'repository' => $repository,
50 | 'commit' => $commit,
51 | ]));
52 | }
53 |
54 | public function feed(string $repository, string $commitish, string $format): Response
55 | {
56 | $repository = $this->index->getRepository($repository);
57 | $commits = $repository->getCommits($commitish, 1, $this->perPage);
58 | $commitish = new Commitish($repository, $commitish);
59 |
60 | return new Response($this->templating->render(sprintf('Commit/feed.%s.twig', $format), [
61 | 'repository' => $repository,
62 | 'commitish' => $commitish,
63 | 'commits' => $commits,
64 | ]));
65 | }
66 | }
67 |
--------------------------------------------------------------------------------
/src/App/Controller/CommitSearch.php:
--------------------------------------------------------------------------------
1 | index->getRepository($repository);
26 | $form = $this->formFactory->create(CriteriaType::class, new Criteria());
27 |
28 | return new Response($this->templating->render('Search/form.html.twig', [
29 | 'repository' => $repository,
30 | 'commitish' => $commitish,
31 | 'form' => $form->createView(),
32 | ]));
33 | }
34 |
35 | public function showResults(Request $request, string $repository, string $commitish): Response
36 | {
37 | $criteria = new Criteria();
38 | $criteria->setMessage($request->request->get('query', ''));
39 |
40 | $form = $this->formFactory->create(CriteriaType::class, $criteria);
41 | $form->handleRequest($request);
42 |
43 | if ($form->isSubmitted() && !$form->isValid()) {
44 | foreach ($form->getErrors(true) as $error) {
45 | $request->getSession()->getFlashBag()->add('danger', $error->getMessage());
46 | }
47 |
48 | return new RedirectResponse($this->router->generate('repository_tree', [
49 | 'repository' => $repository,
50 | 'commitish' => $commitish,
51 | ]));
52 | }
53 |
54 | $repository = $this->index->getRepository($repository);
55 | $commits = $repository->searchCommits($form->getData(), $commitish);
56 | $commitGroups = [];
57 |
58 | foreach ($commits as $commit) {
59 | $commitGroups[$commit->getCommitedAt()->format('Y-m-d')][] = $commit;
60 | }
61 |
62 | return new Response($this->templating->render('Search/list.html.twig', [
63 | 'repository' => $repository,
64 | 'commitGroups' => $commitGroups,
65 | 'commitish' => $commitish,
66 | ]));
67 | }
68 | }
69 |
--------------------------------------------------------------------------------
/src/App/Form/CriteriaType.php:
--------------------------------------------------------------------------------
1 | add('from', DateTimeType::class, [
21 | 'widget' => 'single_text',
22 | 'required' => false,
23 | ])
24 | ->add('to', DateTimeType::class, [
25 | 'widget' => 'single_text',
26 | 'required' => false,
27 | ])
28 | ->add('author', TextType::class, [
29 | 'required' => false,
30 | ])
31 | ->add('message', TextType::class, [
32 | 'required' => false,
33 | ])
34 | ->add('submit', SubmitType::class);
35 | }
36 |
37 | public function configureOptions(OptionsResolver $resolver): void
38 | {
39 | $resolver->setDefaults([
40 | 'data_class' => Criteria::class,
41 | ]);
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/src/App/Twig/AvatarExtension.php:
--------------------------------------------------------------------------------
1 | $size], $this->avatarConfig);
30 |
31 | return sprintf('%s/%s?%s', $this->avatarUrl, md5(strtolower($email)), http_build_query($queryString));
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/src/App/Twig/DateTimeExtension.php:
--------------------------------------------------------------------------------
1 | locale($this->locale)->diffForHumans();
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/src/App/Twig/MarkdownExtension.php:
--------------------------------------------------------------------------------
1 | 'strip',
24 | 'allow_unsafe_links' => false,
25 | ]);
26 |
27 | $environment->addExtension(new CommonMarkCoreExtension());
28 | $environment->addExtension(new GithubFlavoredMarkdownExtension());
29 | $environment->addExtension(new AutolinkExtension());
30 | $environment->addExtension(new TaskListExtension());
31 |
32 | $this->converter = new MarkdownConverter($environment);
33 | }
34 |
35 | public function getFilters()
36 | {
37 | return [
38 | new TwigFilter('markdown', [$this, 'markdown']),
39 | ];
40 | }
41 |
42 | public function markdown($string): string
43 | {
44 | if (!$string) {
45 | return '';
46 | }
47 |
48 | return (string) $this->converter->convertToHtml($string);
49 | }
50 | }
51 |
--------------------------------------------------------------------------------
/src/App/Twig/RepositoryExtension.php:
--------------------------------------------------------------------------------
1 | !$this->isTree($item));
41 | }
42 |
43 | public function isTree($value): bool
44 | {
45 | if (!$value) {
46 | return false;
47 | }
48 |
49 | return $value instanceof Tree;
50 | }
51 |
52 | public function getCommitish(string $hash, string $path): string
53 | {
54 | return $hash.'/'.$path;
55 | }
56 |
57 | public function getParent(string $path): string
58 | {
59 | $parent = dirname($path);
60 |
61 | if ('.' == $parent) {
62 | return '';
63 | }
64 |
65 | return $parent;
66 | }
67 |
68 | public function getBreadcrumbs(Blob $blob): array
69 | {
70 | $breadcrumbs = [];
71 | $parts = explode('/', $blob->getName());
72 | $previousPart = '';
73 |
74 | foreach ($parts as $index => $part) {
75 | $previousPart .= (0 == $index ? '' : '/').$part;
76 | $breadcrumbs[] = [
77 | 'name' => $part,
78 | 'commitish' => $this->getCommitish($blob->getHash(), $previousPart),
79 | ];
80 | }
81 |
82 | return $breadcrumbs;
83 | }
84 |
85 | public function formatFileSize($value = null): string
86 | {
87 | if (!$value) {
88 | return '0 B';
89 | }
90 |
91 | $units = ['B', 'KB', 'MB', 'GB', 'TB'];
92 | $pow = floor(log($value) / log(1024));
93 | $pow = min($pow, count($units) - 1);
94 | $value /= 1024 ** $pow;
95 |
96 | return (string) round($value, 2).' '.$units[$pow];
97 | }
98 | }
99 |
--------------------------------------------------------------------------------
/src/App/Twig/StringExtension.php:
--------------------------------------------------------------------------------
1 | truncate($maxLength, $terminator, $cut)
28 | ->toString();
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/src/Exception/BlobNotFoundException.php:
--------------------------------------------------------------------------------
1 | getProjectDir().'/var/cache/'.$this->environment;
31 | }
32 |
33 | public function getLogDir(): string
34 | {
35 | return $this->getProjectDir().'/var/log';
36 | }
37 |
38 | public function registerBundles(): iterable
39 | {
40 | $bundles = [
41 | FrameworkBundle::class,
42 | TwigBundle::class,
43 | MonologBundle::class,
44 | WebpackEncoreBundle::class,
45 | ];
46 |
47 | if ($this->debug) {
48 | $bundles[] = DebugBundle::class;
49 | }
50 |
51 | foreach ($bundles as $bundle) {
52 | yield new $bundle();
53 | }
54 | }
55 |
56 | private function configureContainer(ContainerConfigurator $container, LoaderInterface $loader, ContainerBuilder $builder): void
57 | {
58 | $confDir = $this->getProjectDir().'/config';
59 | $loader->load($confDir.'/config.yml');
60 | $loader->load($confDir.'/framework.yml');
61 | $loader->load($confDir.'/services.yml');
62 | }
63 |
64 | private function configureRoutes(RoutingConfigurator $routes): void
65 | {
66 | $confDir = $this->getProjectDir().'/config';
67 | $routes->import($confDir.'/routes.yml');
68 |
69 | if ('dev' == $this->environment) {
70 | $routes->import($confDir.'/dev/routes.yml');
71 | }
72 | }
73 | }
74 |
--------------------------------------------------------------------------------
/src/Repository/Commitish.php:
--------------------------------------------------------------------------------
1 | hash = strtok($commitish, '/');
17 | $revs = [...$repository->getBranches(), ...$repository->getTags()];
18 |
19 | foreach ($revs as $rev) {
20 | if (false === ($pos = strpos($commitish, (string) $rev->getName()))) {
21 | continue;
22 | }
23 |
24 | $this->hash = $rev->getName();
25 | $revSuffix = substr($commitish, strlen($this->hash));
26 |
27 | if ($revSuffix && ('@' === $revSuffix[0] || '^' === $revSuffix[0] || '~' === $revSuffix[0])) {
28 | $this->hash .= strtok($revSuffix, '/');
29 | }
30 | }
31 |
32 | if ($this->hash != $commitish) {
33 | $this->path = substr($commitish, strlen($this->hash) + 1);
34 | }
35 | }
36 |
37 | public function getHash(): string
38 | {
39 | return $this->hash;
40 | }
41 |
42 | public function hasPath(): bool
43 | {
44 | return (bool) $this->path;
45 | }
46 |
47 | public function getPath(): ?string
48 | {
49 | return $this->path;
50 | }
51 | }
52 |
--------------------------------------------------------------------------------
/src/Repository/Index.php:
--------------------------------------------------------------------------------
1 | directories()
28 | ->depth($depth)
29 | ->ignoreUnreadableDirs()
30 | ->exclude($excludePaths)
31 | ->in($path);
32 |
33 | foreach ($directories as $directory) {
34 | $repository = new SourceRepository($directory->getRealPath());
35 |
36 | try {
37 | $system = $this->getSystem($repository);
38 | } catch (InvalidRepositoryException) {
39 | continue;
40 | }
41 |
42 | $this->addRepository(new Repository($system, $repository, $directory->getBasename()));
43 | }
44 | }
45 | }
46 |
47 | public function getSystem(SourceRepository $repository): System
48 | {
49 | foreach ($this->systems as $system) {
50 | if ($system->isValidRepository($repository)) {
51 | return $system;
52 | }
53 | }
54 |
55 | throw new InvalidRepositoryException($repository->getPath());
56 | }
57 |
58 | public function addRepository(Repository $repository): void
59 | {
60 | $this->repositories[$repository->getName()] = $repository;
61 | }
62 |
63 | public function getRepository(string $name): Repository
64 | {
65 | if (!isset($this->repositories[$name])) {
66 | throw new RepositoryNotFoundException($name);
67 | }
68 |
69 | return $this->repositories[$name];
70 | }
71 |
72 | public function getRepositories(): array
73 | {
74 | return $this->repositories;
75 | }
76 | }
77 |
--------------------------------------------------------------------------------
/src/SCM/AnnotatedLine.php:
--------------------------------------------------------------------------------
1 | commit;
16 | }
17 |
18 | public function getContents(): string
19 | {
20 | return $this->contents;
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/src/SCM/Blame.php:
--------------------------------------------------------------------------------
1 | path;
23 | }
24 |
25 | public function getHash(): string
26 | {
27 | return $this->hash;
28 | }
29 |
30 | public function getAnnotatedLines(): array
31 | {
32 | return $this->annotatedLines;
33 | }
34 |
35 | public function addAnnotatedLine(AnnotatedLine $annotatedLine): void
36 | {
37 | $this->annotatedLines[] = $annotatedLine;
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/src/SCM/Blob.php:
--------------------------------------------------------------------------------
1 | mode;
17 | }
18 |
19 | public function setMode(string $mode): void
20 | {
21 | $this->mode = $mode;
22 | }
23 |
24 | public function getName(): ?string
25 | {
26 | return $this->name;
27 | }
28 |
29 | public function getFileName(): ?string
30 | {
31 | return basename($this->name ?? '');
32 | }
33 |
34 | public function setName(string $name): void
35 | {
36 | $this->name = $name;
37 | }
38 |
39 | public function isReadme(): bool
40 | {
41 | $fileName = strtolower($this->getFileName());
42 |
43 | return 'readme.md' == $fileName || 'readme.txt' == $fileName;
44 | }
45 |
46 | public function getSize(): ?int
47 | {
48 | return $this->size;
49 | }
50 |
51 | public function setSize(int $size): void
52 | {
53 | $this->size = $size;
54 | }
55 |
56 | public function getContents(): ?string
57 | {
58 | return $this->contents;
59 | }
60 |
61 | public function setContents(string $contents): void
62 | {
63 | $this->contents = $contents;
64 | }
65 |
66 | public function isCommit(): bool
67 | {
68 | return false;
69 | }
70 |
71 | public function isTree(): bool
72 | {
73 | return false;
74 | }
75 |
76 | public function isBlob(): bool
77 | {
78 | return true;
79 | }
80 | }
81 |
--------------------------------------------------------------------------------
/src/SCM/Branch.php:
--------------------------------------------------------------------------------
1 | repository;
16 | }
17 |
18 | public function getName(): string
19 | {
20 | return $this->name;
21 | }
22 |
23 | public function getTarget(): Commit
24 | {
25 | return $this->target;
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/src/SCM/Commit/Criteria.php:
--------------------------------------------------------------------------------
1 | from;
20 | }
21 |
22 | public function setFrom(?DateTimeInterface $from): void
23 | {
24 | $this->from = $from;
25 | }
26 |
27 | public function getTo(): ?DateTimeInterface
28 | {
29 | return $this->to;
30 | }
31 |
32 | public function setTo(?DateTimeInterface $to): void
33 | {
34 | $this->to = $to;
35 | }
36 |
37 | public function getAuthor(): ?string
38 | {
39 | return $this->author;
40 | }
41 |
42 | public function setAuthor(?string $author): void
43 | {
44 | $this->author = $author;
45 | }
46 |
47 | public function getMessage(): ?string
48 | {
49 | return $this->message;
50 | }
51 |
52 | public function setMessage(?string $message): void
53 | {
54 | $this->message = $message;
55 | }
56 |
57 | public function getLimit(): ?int
58 | {
59 | return $this->limit;
60 | }
61 |
62 | public function setLimit(?int $limit): void
63 | {
64 | $this->limit = $limit;
65 | }
66 | }
67 |
--------------------------------------------------------------------------------
/src/SCM/Commit/Person.php:
--------------------------------------------------------------------------------
1 | name;
16 | }
17 |
18 | public function getEmail(): string
19 | {
20 | return $this->email;
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/src/SCM/Commit/Signature.php:
--------------------------------------------------------------------------------
1 | signer;
18 | }
19 |
20 | public function getKey(): string
21 | {
22 | return $this->key;
23 | }
24 |
25 | public function isValid(): bool
26 | {
27 | return $this->valid;
28 | }
29 |
30 | public function validate(): void
31 | {
32 | $this->valid = true;
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/src/SCM/Diff/File.php:
--------------------------------------------------------------------------------
1 | name;
31 | }
32 |
33 | public function getType(): string
34 | {
35 | return $this->type;
36 | }
37 |
38 | public function setType(string $type): void
39 | {
40 | $this->type = $type;
41 | }
42 |
43 | public function getIndex(): ?string
44 | {
45 | return $this->index;
46 | }
47 |
48 | public function setIndex(string $index): void
49 | {
50 | $this->index = $index;
51 | }
52 |
53 | public function getFrom(): string
54 | {
55 | return $this->from;
56 | }
57 |
58 | public function setFrom(string $from): void
59 | {
60 | $this->from = $from;
61 | }
62 |
63 | public function getTo(): string
64 | {
65 | return $this->to;
66 | }
67 |
68 | public function setTo(string $to): void
69 | {
70 | $this->to = $to;
71 | }
72 |
73 | public function getHunks(): array
74 | {
75 | return $this->hunks;
76 | }
77 |
78 | public function addHunk(Hunk $hunk): void
79 | {
80 | $this->hunks[] = $hunk;
81 | }
82 |
83 | public function getAdditions(): int
84 | {
85 | return $this->additions;
86 | }
87 |
88 | public function increaseAdditions(int $amount = 1): void
89 | {
90 | $this->additions += $amount;
91 | }
92 |
93 | public function getDeletions(): int
94 | {
95 | return $this->deletions;
96 | }
97 |
98 | public function increaseDeletions(int $amount = 1): void
99 | {
100 | $this->deletions += $amount;
101 | }
102 | }
103 |
--------------------------------------------------------------------------------
/src/SCM/Diff/Hunk.php:
--------------------------------------------------------------------------------
1 | oldStart;
21 | }
22 |
23 | public function getOldCount(): int
24 | {
25 | return $this->oldCount;
26 | }
27 |
28 | public function getNewStart(): int
29 | {
30 | return $this->newStart;
31 | }
32 |
33 | public function getNewCount(): int
34 | {
35 | return $this->newCount;
36 | }
37 |
38 | public function getContents(): string
39 | {
40 | return $this->contents;
41 | }
42 |
43 | public function getLines(): array
44 | {
45 | return $this->lines;
46 | }
47 |
48 | public function addLine(Line $line): void
49 | {
50 | $this->lines[] = $line;
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/src/SCM/Diff/Line.php:
--------------------------------------------------------------------------------
1 | type;
20 | }
21 |
22 | public function getContents(): string
23 | {
24 | return $this->contents;
25 | }
26 |
27 | public function getOldNumber(): int
28 | {
29 | return $this->oldNumber;
30 | }
31 |
32 | public function getNewNumber(): int
33 | {
34 | return $this->newNumber;
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/src/SCM/Exception/CommandException.php:
--------------------------------------------------------------------------------
1 | message, 'does not exist');
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/src/SCM/Exception/InvalidCommitException.php:
--------------------------------------------------------------------------------
1 | repository;
21 | }
22 |
23 | public function getHash(): string
24 | {
25 | return $this->hash;
26 | }
27 |
28 | public function getShortHash(): ?string
29 | {
30 | return $this->shortHash;
31 | }
32 |
33 | public function setShortHash(string $shortHash): void
34 | {
35 | $this->shortHash = $shortHash;
36 | }
37 |
38 | public function getParents(): array
39 | {
40 | return $this->parents;
41 | }
42 |
43 | public function clearParents(): void
44 | {
45 | $this->parents = [];
46 | }
47 |
48 | public function addParent(self $parent): void
49 | {
50 | $this->parents[] = $parent;
51 | }
52 |
53 | public function getFirstParent(): ?self
54 | {
55 | return $this->parents[0] ?? null;
56 | }
57 |
58 | public function isCommit(): bool
59 | {
60 | return false;
61 | }
62 |
63 | public function isTree(): bool
64 | {
65 | return false;
66 | }
67 |
68 | public function isBlob(): bool
69 | {
70 | return false;
71 | }
72 | }
73 |
--------------------------------------------------------------------------------
/src/SCM/Repository.php:
--------------------------------------------------------------------------------
1 | path;
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/src/SCM/Symlink.php:
--------------------------------------------------------------------------------
1 | target;
14 | }
15 |
16 | public function setTarget(string $target): void
17 | {
18 | $this->target = $target;
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/src/SCM/System.php:
--------------------------------------------------------------------------------
1 | repository;
22 | }
23 |
24 | public function getName(): string
25 | {
26 | return $this->name;
27 | }
28 |
29 | public function getSubject()
30 | {
31 | return $this->subject;
32 | }
33 |
34 | public function setSubject(string $subject): void
35 | {
36 | $this->subject = $subject;
37 | }
38 |
39 | public function getTarget(): ?Commit
40 | {
41 | return $this->target;
42 | }
43 |
44 | public function setTarget(Commit $target): void
45 | {
46 | $this->target = $target;
47 | }
48 |
49 | public function getAuthor(): Person
50 | {
51 | return $this->author;
52 | }
53 |
54 | public function getAuthoredAt(): CarbonInterface
55 | {
56 | return $this->authoredAt;
57 | }
58 | }
59 |
--------------------------------------------------------------------------------
/src/SCM/Tree.php:
--------------------------------------------------------------------------------
1 | addParent($this);
19 | $this->children[] = $child;
20 | }
21 |
22 | public function removeChild(Item $childToRemove): void
23 | {
24 | foreach ($this->children as $key => $child) {
25 | if ($child === $childToRemove) {
26 | unset($this->children[$key]);
27 | }
28 | }
29 |
30 | $this->children = array_values($this->children);
31 | $childToRemove->clearParents();
32 | }
33 |
34 | public function getChildren(): array
35 | {
36 | return $this->children;
37 | }
38 |
39 | public function hasChildren(): bool
40 | {
41 | return !empty($this->children);
42 | }
43 |
44 | public function isChild(): bool
45 | {
46 | return !empty($this->parents);
47 | }
48 |
49 | public function isRoot(): bool
50 | {
51 | return empty($this->parents);
52 | }
53 |
54 | public function isLeaf(): bool
55 | {
56 | return empty($this->children);
57 | }
58 |
59 | public function getName(): ?string
60 | {
61 | return $this->name;
62 | }
63 |
64 | public function setName(string $name): void
65 | {
66 | $this->name = $name;
67 | }
68 |
69 | public function getFileName(): ?string
70 | {
71 | return basename($this->name ?? '');
72 | }
73 |
74 | public function getMode(): ?string
75 | {
76 | return $this->mode;
77 | }
78 |
79 | public function setMode(string $mode): void
80 | {
81 | $this->mode = $mode;
82 | }
83 |
84 | public function getReadme(): ?Blob
85 | {
86 | foreach ($this->children as $child) {
87 | if (!($child instanceof Blob)) {
88 | continue;
89 | }
90 |
91 | if ($child->isReadme()) {
92 | return $child;
93 | }
94 | }
95 |
96 | return null;
97 | }
98 |
99 | public function isCommit(): bool
100 | {
101 | return false;
102 | }
103 |
104 | public function isTree(): bool
105 | {
106 | return true;
107 | }
108 |
109 | public function isBlob(): bool
110 | {
111 | return false;
112 | }
113 | }
114 |
--------------------------------------------------------------------------------
/tests/cypress/integration/blame.spec.js:
--------------------------------------------------------------------------------
1 | describe('Blame page', () => {
2 | it('view file blame', () => {
3 | cy.visit('/git-bare-repo/blame/a003d30bc7a355f55bf28479e62134186bae1aed/mm/cma.c');
4 |
5 | cy.get('.breadcrumb > .active').should('have.text', '\n cma.c\n ');
6 | cy.get(':nth-child(1) > .col-3 > a').should('have.text', '\n Added mm.\n ');
7 | cy.get(':nth-child(2) > .col-3 > a').should('have.text', '\n Fixed mm.\n ');
8 | });
9 | });
10 |
--------------------------------------------------------------------------------
/tests/cypress/integration/branches.spec.js:
--------------------------------------------------------------------------------
1 | describe('Repository branches page', () => {
2 | it('successfully loads', () => {
3 | cy.visit('/git-bare-repo/branches');
4 |
5 | cy.get('.card-header').should('have.text', '\n Remote branches\n ');
6 | cy.get(':nth-child(2) > h5 > a').should('have.text', '\n master\n ');
7 | });
8 | });
9 |
--------------------------------------------------------------------------------
/tests/cypress/integration/commits.spec.js:
--------------------------------------------------------------------------------
1 | describe('Repository commits page', () => {
2 | it('successfully loads', () => {
3 | cy.visit('/git-bare-repo/commits/master');
4 |
5 | cy.get('.me-auto > [href="/git-bare-repo/commit/b064e711b341b3d160288cd121caf56811ca8991"]').should('have.text', 'Initial commit.');
6 | });
7 |
8 | it('view specific commit', () => {
9 | cy.visit('/git-bare-repo/commit/a003d30bc7a355f55bf28479e62134186bae1aed');
10 |
11 | cy.get('.card-text').should('have.text', '\n Klaus Silveira commited on 2016-11-24 12:30:04\n Showing 1 changed files, with 44 additions and 173 deletions.\n ');
12 | cy.get(':nth-child(5) > .line > .delete').should('have.text', '-#define CREATE_TRACE_POINTS');
13 | });
14 |
15 | it('view parent commit', () => {
16 | cy.visit('/git-bare-repo/commit/a003d30bc7a355f55bf28479e62134186bae1aed');
17 |
18 | cy.get(':nth-child(1) > .col-12 > .card > .card-header > .btn-group > .btn').click();
19 | cy.get(':nth-child(1) > .col-12 > .card > .card-header').should('have.text', '\n Added mm.\n\n \n \n Parent 85e6568\n \n \n ');
20 | });
21 | });
22 |
--------------------------------------------------------------------------------
/tests/cypress/integration/history.spec.js:
--------------------------------------------------------------------------------
1 | describe('History page', () => {
2 | it('view file history', () => {
3 | cy.visit('/git-bare-repo/history/a003d30bc7a355f55bf28479e62134186bae1aed/mm/cma.c');
4 |
5 | cy.get('.breadcrumb > .active').should('have.text', '\n cma.c\n ');
6 | cy.get('.card-header').should('have.text', '\n November 24, 2016\n ');
7 | });
8 | });
9 |
--------------------------------------------------------------------------------
/tests/cypress/integration/repository.spec.js:
--------------------------------------------------------------------------------
1 | describe('Repository page', () => {
2 | it('successfully loads', () => {
3 | cy.visit('/git-bare-repo');
4 |
5 | cy.get('.card-body > .nav > :nth-child(1) > .nav-link').should('have.text', ' 2 Branches');
6 | cy.get('.card-body > .nav > :nth-child(2) > .nav-link').should('have.text', ' 1 Tags');
7 | cy.get('.card-header > :nth-child(1)').should('have.text', '\n \n Klaus Silveira\n Fixed mm.\n ');
8 | cy.get('.float-right').should('have.text', '\n a003d30 @ 2016-11-24 12:30:04\n ');
9 | });
10 |
11 | it('shows branch dropdown', () => {
12 | cy.visit('/git-bare-repo');
13 |
14 | cy.get('.dropdown > .btn').click();
15 | cy.get('[href="/git-bare-repo/tree/feature/1.2-dev/"]').should('have.text', 'feature/1.2-dev');
16 | });
17 |
18 | it('shows reflist dropdown', () => {
19 | cy.visit('/git-bare-repo');
20 |
21 | cy.get('.dropdown > .btn').click();
22 | cy.get('[href="/git-bare-repo/tree/feature/1.2-dev/"]').should('have.text', 'feature/1.2-dev');
23 | cy.get('#tags-tab').click();
24 | cy.get('#tags > .list-group > .list-group-item').should('have.text', '1.2');
25 | });
26 |
27 | it('shows reflist dropdown and autocompletes', () => {
28 | cy.visit('/git-bare-repo');
29 |
30 | cy.get('.dropdown > .btn').click();
31 | cy.get('.dropdown-menu > .input-group > .form-control').clear();
32 | cy.get('.dropdown-menu > .input-group > .form-control').type('feature/1.2-dev');
33 | cy.get('h1').should('be.visible');
34 | cy.url().should('be.equal', 'http://0.0.0.0:8880/git-bare-repo/tree/feature/1.2-dev/')
35 | });
36 |
37 | it('swaps clone url', () => {
38 | cy.visit('/git-bare-repo');
39 |
40 | cy.get('.input-group-prepend > .btn').click();
41 | cy.get('[data-clone-url="https://gitlist.org/git-bare-repo.git"]').click();
42 | cy.get('.btn-toolbar > .input-group > .form-control').should('have.value', 'https://gitlist.org/git-bare-repo.git');
43 | cy.get('.input-group-prepend > .btn').click();
44 | cy.get('[data-clone-url="git@gitlist.org:git-bare-repo.git"]').click();
45 | cy.get('.btn-toolbar > .input-group > .form-control').should('have.value', 'git@gitlist.org:git-bare-repo.git');
46 | });
47 | });
48 |
--------------------------------------------------------------------------------
/tests/cypress/integration/repository_list.spec.js:
--------------------------------------------------------------------------------
1 | describe('Repository list page', () => {
2 | it('successfully loads', () => {
3 | cy.visit('/');
4 | cy.get('.card-header').should('contain', 'git-bare-repo');
5 | cy.get('.card-body').should('contain', 'foobar');
6 | });
7 | });
8 |
--------------------------------------------------------------------------------
/tests/cypress/integration/search.spec.js:
--------------------------------------------------------------------------------
1 | describe('Repository search', () => {
2 | it('successfully searches', () => {
3 | cy.visit('/git-bare-repo/search/commits/master');
4 |
5 | cy.get('#criteria_message').clear();
6 | cy.get('#criteria_message').type('mm');
7 | cy.get('#criteria_submit').click();
8 | cy.get('.me-auto > [href="/git-bare-repo/commit/a003d30bc7a355f55bf28479e62134186bae1aed"]').should('have.text', 'Fixed mm.');
9 | cy.get('.me-auto > [href="/git-bare-repo/commit/5570c142146e430b7356a84175f281ab2a364d48"]').should('have.text', 'Added mm.');
10 | });
11 | });
12 |
--------------------------------------------------------------------------------
/tests/cypress/integration/tags.spec.js:
--------------------------------------------------------------------------------
1 | describe('Repository tags page', () => {
2 | it('successfully loads', () => {
3 | cy.visit('/git-bare-repo/tags');
4 |
5 | cy.get('.card-header').should('have.text', '\n Remote tags\n ');
6 | cy.get('h5 > a').should('have.text', '\n 1.2\n ');
7 | });
8 | });
9 |
--------------------------------------------------------------------------------
/tests/cypress/integration/tree.spec.js:
--------------------------------------------------------------------------------
1 | describe('Tree navigation', () => {
2 | it('showing sub-tree and file', () => {
3 | cy.visit('/git-bare-repo');
4 |
5 | cy.get(':nth-child(1) > .tree-filename > .tree-truncate > a').click();
6 | cy.get(':nth-child(2) > .tree-filename > .tree-truncate > a').click();
7 | cy.get('h5').should('have.text', 'Fixed mm.');
8 | cy.get('.breadcrumb > .active').should('have.text', '\n cma.c\n ');
9 | });
10 | });
11 |
--------------------------------------------------------------------------------
/tests/fixtures/git-bare-repo/HEAD:
--------------------------------------------------------------------------------
1 | ref: refs/heads/master
2 |
--------------------------------------------------------------------------------
/tests/fixtures/git-bare-repo/config:
--------------------------------------------------------------------------------
1 | [core]
2 | repositoryformatversion = 0
3 | filemode = true
4 | bare = true
5 |
--------------------------------------------------------------------------------
/tests/fixtures/git-bare-repo/description:
--------------------------------------------------------------------------------
1 | foobar
2 |
--------------------------------------------------------------------------------
/tests/fixtures/git-bare-repo/hooks/applypatch-msg.sample:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | #
3 | # An example hook script to check the commit log message taken by
4 | # applypatch from an e-mail message.
5 | #
6 | # The hook should exit with non-zero status after issuing an
7 | # appropriate message if it wants to stop the commit. The hook is
8 | # allowed to edit the commit message file.
9 | #
10 | # To enable this hook, rename this file to "applypatch-msg".
11 |
12 | . git-sh-setup
13 | commitmsg="$(git rev-parse --git-path hooks/commit-msg)"
14 | test -x "$commitmsg" && exec "$commitmsg" ${1+"$@"}
15 | :
16 |
--------------------------------------------------------------------------------
/tests/fixtures/git-bare-repo/hooks/commit-msg.sample:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | #
3 | # An example hook script to check the commit log message.
4 | # Called by "git commit" with one argument, the name of the file
5 | # that has the commit message. The hook should exit with non-zero
6 | # status after issuing an appropriate message if it wants to stop the
7 | # commit. The hook is allowed to edit the commit message file.
8 | #
9 | # To enable this hook, rename this file to "commit-msg".
10 |
11 | # Uncomment the below to add a Signed-off-by line to the message.
12 | # Doing this in a hook is a bad idea in general, but the prepare-commit-msg
13 | # hook is more suited to it.
14 | #
15 | # SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p')
16 | # grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1"
17 |
18 | # This example catches duplicate Signed-off-by lines.
19 |
20 | test "" = "$(grep '^Signed-off-by: ' "$1" |
21 | sort | uniq -c | sed -e '/^[ ]*1[ ]/d')" || {
22 | echo >&2 Duplicate Signed-off-by lines.
23 | exit 1
24 | }
25 |
--------------------------------------------------------------------------------
/tests/fixtures/git-bare-repo/hooks/post-update.sample:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | #
3 | # An example hook script to prepare a packed repository for use over
4 | # dumb transports.
5 | #
6 | # To enable this hook, rename this file to "post-update".
7 |
8 | exec git update-server-info
9 |
--------------------------------------------------------------------------------
/tests/fixtures/git-bare-repo/hooks/pre-applypatch.sample:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | #
3 | # An example hook script to verify what is about to be committed
4 | # by applypatch from an e-mail message.
5 | #
6 | # The hook should exit with non-zero status after issuing an
7 | # appropriate message if it wants to stop the commit.
8 | #
9 | # To enable this hook, rename this file to "pre-applypatch".
10 |
11 | . git-sh-setup
12 | precommit="$(git rev-parse --git-path hooks/pre-commit)"
13 | test -x "$precommit" && exec "$precommit" ${1+"$@"}
14 | :
15 |
--------------------------------------------------------------------------------
/tests/fixtures/git-bare-repo/hooks/pre-commit.sample:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | #
3 | # An example hook script to verify what is about to be committed.
4 | # Called by "git commit" with no arguments. The hook should
5 | # exit with non-zero status after issuing an appropriate message if
6 | # it wants to stop the commit.
7 | #
8 | # To enable this hook, rename this file to "pre-commit".
9 |
10 | if git rev-parse --verify HEAD >/dev/null 2>&1
11 | then
12 | against=HEAD
13 | else
14 | # Initial commit: diff against an empty tree object
15 | against=4b825dc642cb6eb9a060e54bf8d69288fbee4904
16 | fi
17 |
18 | # If you want to allow non-ASCII filenames set this variable to true.
19 | allownonascii=$(git config --bool hooks.allownonascii)
20 |
21 | # Redirect output to stderr.
22 | exec 1>&2
23 |
24 | # Cross platform projects tend to avoid non-ASCII filenames; prevent
25 | # them from being added to the repository. We exploit the fact that the
26 | # printable range starts at the space character and ends with tilde.
27 | if [ "$allownonascii" != "true" ] &&
28 | # Note that the use of brackets around a tr range is ok here, (it's
29 | # even required, for portability to Solaris 10's /usr/bin/tr), since
30 | # the square bracket bytes happen to fall in the designated range.
31 | test $(git diff --cached --name-only --diff-filter=A -z $against |
32 | LC_ALL=C tr -d '[ -~]\0' | wc -c) != 0
33 | then
34 | cat <<\EOF
35 | Error: Attempt to add a non-ASCII file name.
36 |
37 | This can cause problems if you want to work with people on other platforms.
38 |
39 | To be portable it is advisable to rename the file.
40 |
41 | If you know what you are doing you can disable this check using:
42 |
43 | git config hooks.allownonascii true
44 | EOF
45 | exit 1
46 | fi
47 |
48 | # If there are whitespace errors, print the offending file names and fail.
49 | exec git diff-index --check --cached $against --
50 |
--------------------------------------------------------------------------------
/tests/fixtures/git-bare-repo/hooks/pre-push.sample:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | # An example hook script to verify what is about to be pushed. Called by "git
4 | # push" after it has checked the remote status, but before anything has been
5 | # pushed. If this script exits with a non-zero status nothing will be pushed.
6 | #
7 | # This hook is called with the following parameters:
8 | #
9 | # $1 -- Name of the remote to which the push is being done
10 | # $2 -- URL to which the push is being done
11 | #
12 | # If pushing without using a named remote those arguments will be equal.
13 | #
14 | # Information about the commits which are being pushed is supplied as lines to
15 | # the standard input in the form:
16 | #
17 | #
18 | #
19 | # This sample shows how to prevent push of commits where the log message starts
20 | # with "WIP" (work in progress).
21 |
22 | remote="$1"
23 | url="$2"
24 |
25 | z40=0000000000000000000000000000000000000000
26 |
27 | while read local_ref local_sha remote_ref remote_sha
28 | do
29 | if [ "$local_sha" = $z40 ]
30 | then
31 | # Handle delete
32 | :
33 | else
34 | if [ "$remote_sha" = $z40 ]
35 | then
36 | # New branch, examine all commits
37 | range="$local_sha"
38 | else
39 | # Update to existing branch, examine new commits
40 | range="$remote_sha..$local_sha"
41 | fi
42 |
43 | # Check for WIP commit
44 | commit=`git rev-list -n 1 --grep '^WIP' "$range"`
45 | if [ -n "$commit" ]
46 | then
47 | echo >&2 "Found WIP commit in $local_ref, not pushing"
48 | exit 1
49 | fi
50 | fi
51 | done
52 |
53 | exit 0
54 |
--------------------------------------------------------------------------------
/tests/fixtures/git-bare-repo/hooks/pre-receive.sample:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | #
3 | # An example hook script to make use of push options.
4 | # The example simply echoes all push options that start with 'echoback='
5 | # and rejects all pushes when the "reject" push option is used.
6 | #
7 | # To enable this hook, rename this file to "pre-receive".
8 |
9 | if test -n "$GIT_PUSH_OPTION_COUNT"
10 | then
11 | i=0
12 | while test "$i" -lt "$GIT_PUSH_OPTION_COUNT"
13 | do
14 | eval "value=\$GIT_PUSH_OPTION_$i"
15 | case "$value" in
16 | echoback=*)
17 | echo "echo from the pre-receive-hook: ${value#*=}" >&2
18 | ;;
19 | reject)
20 | exit 1
21 | esac
22 | i=$((i + 1))
23 | done
24 | fi
25 |
--------------------------------------------------------------------------------
/tests/fixtures/git-bare-repo/hooks/prepare-commit-msg.sample:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | #
3 | # An example hook script to prepare the commit log message.
4 | # Called by "git commit" with the name of the file that has the
5 | # commit message, followed by the description of the commit
6 | # message's source. The hook's purpose is to edit the commit
7 | # message file. If the hook fails with a non-zero status,
8 | # the commit is aborted.
9 | #
10 | # To enable this hook, rename this file to "prepare-commit-msg".
11 |
12 | # This hook includes three examples. The first comments out the
13 | # "Conflicts:" part of a merge commit.
14 | #
15 | # The second includes the output of "git diff --name-status -r"
16 | # into the message, just before the "git status" output. It is
17 | # commented because it doesn't cope with --amend or with squashed
18 | # commits.
19 | #
20 | # The third example adds a Signed-off-by line to the message, that can
21 | # still be edited. This is rarely a good idea.
22 |
23 | case "$2,$3" in
24 | merge,)
25 | /usr/bin/perl -i.bak -ne 's/^/# /, s/^# #/#/ if /^Conflicts/ .. /#/; print' "$1" ;;
26 |
27 | # ,|template,)
28 | # /usr/bin/perl -i.bak -pe '
29 | # print "\n" . `git diff --cached --name-status -r`
30 | # if /^#/ && $first++ == 0' "$1" ;;
31 |
32 | *) ;;
33 | esac
34 |
35 | # SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p')
36 | # grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1"
37 |
--------------------------------------------------------------------------------
/tests/fixtures/git-bare-repo/info/exclude:
--------------------------------------------------------------------------------
1 | # git ls-files --others --exclude-from=.git/info/exclude
2 | # Lines that start with '#' are comments.
3 | # For a project mostly in C, the following would be a good set of
4 | # exclude patterns (uncomment them if you want to use them):
5 | # *.[oa]
6 | # *~
7 |
--------------------------------------------------------------------------------
/tests/fixtures/git-bare-repo/objects/0e/3ddf0c6d39e7a300bef61b99a914a86ce5e267:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/klaussilveira/gitlist/30d69a631d80ff7952b5f4ed504895632dfcd4ce/tests/fixtures/git-bare-repo/objects/0e/3ddf0c6d39e7a300bef61b99a914a86ce5e267
--------------------------------------------------------------------------------
/tests/fixtures/git-bare-repo/objects/17/c75a4246c8bbab8b56fe4d562cd85ea670a21f:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/klaussilveira/gitlist/30d69a631d80ff7952b5f4ed504895632dfcd4ce/tests/fixtures/git-bare-repo/objects/17/c75a4246c8bbab8b56fe4d562cd85ea670a21f
--------------------------------------------------------------------------------
/tests/fixtures/git-bare-repo/objects/29/0863292f509e947f62efed0b9cb6eac9b9ecb9:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/klaussilveira/gitlist/30d69a631d80ff7952b5f4ed504895632dfcd4ce/tests/fixtures/git-bare-repo/objects/29/0863292f509e947f62efed0b9cb6eac9b9ecb9
--------------------------------------------------------------------------------
/tests/fixtures/git-bare-repo/objects/2d/b0c88706accdb2d0ceb938a68be150759f17c0:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/klaussilveira/gitlist/30d69a631d80ff7952b5f4ed504895632dfcd4ce/tests/fixtures/git-bare-repo/objects/2d/b0c88706accdb2d0ceb938a68be150759f17c0
--------------------------------------------------------------------------------
/tests/fixtures/git-bare-repo/objects/35/7b1952da98491dd01c31bfe7882bc6ae21eaf7:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/klaussilveira/gitlist/30d69a631d80ff7952b5f4ed504895632dfcd4ce/tests/fixtures/git-bare-repo/objects/35/7b1952da98491dd01c31bfe7882bc6ae21eaf7
--------------------------------------------------------------------------------
/tests/fixtures/git-bare-repo/objects/41/ab8cf8762f94ab56254925710c2b967a353fee:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/klaussilveira/gitlist/30d69a631d80ff7952b5f4ed504895632dfcd4ce/tests/fixtures/git-bare-repo/objects/41/ab8cf8762f94ab56254925710c2b967a353fee
--------------------------------------------------------------------------------
/tests/fixtures/git-bare-repo/objects/55/70c142146e430b7356a84175f281ab2a364d48:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/klaussilveira/gitlist/30d69a631d80ff7952b5f4ed504895632dfcd4ce/tests/fixtures/git-bare-repo/objects/55/70c142146e430b7356a84175f281ab2a364d48
--------------------------------------------------------------------------------
/tests/fixtures/git-bare-repo/objects/58/c37915623ec76e854a54dcfc12b19a060f6bda:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/klaussilveira/gitlist/30d69a631d80ff7952b5f4ed504895632dfcd4ce/tests/fixtures/git-bare-repo/objects/58/c37915623ec76e854a54dcfc12b19a060f6bda
--------------------------------------------------------------------------------
/tests/fixtures/git-bare-repo/objects/59/5019ca2e1bfab6711424c8567af364ec3cc319:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/klaussilveira/gitlist/30d69a631d80ff7952b5f4ed504895632dfcd4ce/tests/fixtures/git-bare-repo/objects/59/5019ca2e1bfab6711424c8567af364ec3cc319
--------------------------------------------------------------------------------
/tests/fixtures/git-bare-repo/objects/6a/cefd912439ce7f9b03ae3dc2ce0eaf30104206:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/klaussilveira/gitlist/30d69a631d80ff7952b5f4ed504895632dfcd4ce/tests/fixtures/git-bare-repo/objects/6a/cefd912439ce7f9b03ae3dc2ce0eaf30104206
--------------------------------------------------------------------------------
/tests/fixtures/git-bare-repo/objects/6d/9590305133e750ac8ebfcf9d652ca96f446819:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/klaussilveira/gitlist/30d69a631d80ff7952b5f4ed504895632dfcd4ce/tests/fixtures/git-bare-repo/objects/6d/9590305133e750ac8ebfcf9d652ca96f446819
--------------------------------------------------------------------------------
/tests/fixtures/git-bare-repo/objects/75/6b07d2549cd6eb8f35fbe333c80a28d97096e3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/klaussilveira/gitlist/30d69a631d80ff7952b5f4ed504895632dfcd4ce/tests/fixtures/git-bare-repo/objects/75/6b07d2549cd6eb8f35fbe333c80a28d97096e3
--------------------------------------------------------------------------------
/tests/fixtures/git-bare-repo/objects/82/4b0a91e944a6217e473c2eec510cf694a2c4b7:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/klaussilveira/gitlist/30d69a631d80ff7952b5f4ed504895632dfcd4ce/tests/fixtures/git-bare-repo/objects/82/4b0a91e944a6217e473c2eec510cf694a2c4b7
--------------------------------------------------------------------------------
/tests/fixtures/git-bare-repo/objects/85/9f67f18fc4522a4da5b784bce6cb9ada034a16:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/klaussilveira/gitlist/30d69a631d80ff7952b5f4ed504895632dfcd4ce/tests/fixtures/git-bare-repo/objects/85/9f67f18fc4522a4da5b784bce6cb9ada034a16
--------------------------------------------------------------------------------
/tests/fixtures/git-bare-repo/objects/85/e656875f18b1985dd71dccaffe3eeffd6abf6f:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/klaussilveira/gitlist/30d69a631d80ff7952b5f4ed504895632dfcd4ce/tests/fixtures/git-bare-repo/objects/85/e656875f18b1985dd71dccaffe3eeffd6abf6f
--------------------------------------------------------------------------------
/tests/fixtures/git-bare-repo/objects/9c/69996c1e01618709dacd99bcd129a3bcde290c:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/klaussilveira/gitlist/30d69a631d80ff7952b5f4ed504895632dfcd4ce/tests/fixtures/git-bare-repo/objects/9c/69996c1e01618709dacd99bcd129a3bcde290c
--------------------------------------------------------------------------------
/tests/fixtures/git-bare-repo/objects/9d/78a8cbc59caa98aebaf4ca9d6ee63cca241c4d:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/klaussilveira/gitlist/30d69a631d80ff7952b5f4ed504895632dfcd4ce/tests/fixtures/git-bare-repo/objects/9d/78a8cbc59caa98aebaf4ca9d6ee63cca241c4d
--------------------------------------------------------------------------------
/tests/fixtures/git-bare-repo/objects/a0/03d30bc7a355f55bf28479e62134186bae1aed:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/klaussilveira/gitlist/30d69a631d80ff7952b5f4ed504895632dfcd4ce/tests/fixtures/git-bare-repo/objects/a0/03d30bc7a355f55bf28479e62134186bae1aed
--------------------------------------------------------------------------------
/tests/fixtures/git-bare-repo/objects/b0/64e711b341b3d160288cd121caf56811ca8991:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/klaussilveira/gitlist/30d69a631d80ff7952b5f4ed504895632dfcd4ce/tests/fixtures/git-bare-repo/objects/b0/64e711b341b3d160288cd121caf56811ca8991
--------------------------------------------------------------------------------
/tests/fixtures/git-bare-repo/objects/c1/7751c0dcafb95eda9f41e9cdc9ce101edbebed:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/klaussilveira/gitlist/30d69a631d80ff7952b5f4ed504895632dfcd4ce/tests/fixtures/git-bare-repo/objects/c1/7751c0dcafb95eda9f41e9cdc9ce101edbebed
--------------------------------------------------------------------------------
/tests/fixtures/git-bare-repo/objects/c3/23e7368bd5da960547f53b25596f7b43a2d3d9:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/klaussilveira/gitlist/30d69a631d80ff7952b5f4ed504895632dfcd4ce/tests/fixtures/git-bare-repo/objects/c3/23e7368bd5da960547f53b25596f7b43a2d3d9
--------------------------------------------------------------------------------
/tests/fixtures/git-bare-repo/objects/c4/1563a39a03723f1fa122a4309c3dc9a185a858:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/klaussilveira/gitlist/30d69a631d80ff7952b5f4ed504895632dfcd4ce/tests/fixtures/git-bare-repo/objects/c4/1563a39a03723f1fa122a4309c3dc9a185a858
--------------------------------------------------------------------------------
/tests/fixtures/git-bare-repo/objects/c9/60459eda7e640ea55be1d4ed80c6a9125a8877:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/klaussilveira/gitlist/30d69a631d80ff7952b5f4ed504895632dfcd4ce/tests/fixtures/git-bare-repo/objects/c9/60459eda7e640ea55be1d4ed80c6a9125a8877
--------------------------------------------------------------------------------
/tests/fixtures/git-bare-repo/objects/e6/9de29bb2d1d6434b8b29ae775ad8c2e48c5391:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/klaussilveira/gitlist/30d69a631d80ff7952b5f4ed504895632dfcd4ce/tests/fixtures/git-bare-repo/objects/e6/9de29bb2d1d6434b8b29ae775ad8c2e48c5391
--------------------------------------------------------------------------------
/tests/fixtures/git-bare-repo/objects/ec/587c3ebbaf491605d24a0b1d42e6de7dc26372:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/klaussilveira/gitlist/30d69a631d80ff7952b5f4ed504895632dfcd4ce/tests/fixtures/git-bare-repo/objects/ec/587c3ebbaf491605d24a0b1d42e6de7dc26372
--------------------------------------------------------------------------------
/tests/fixtures/git-bare-repo/objects/ff/6accf4931975aa697ea40f7b6d22af23ec77a2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/klaussilveira/gitlist/30d69a631d80ff7952b5f4ed504895632dfcd4ce/tests/fixtures/git-bare-repo/objects/ff/6accf4931975aa697ea40f7b6d22af23ec77a2
--------------------------------------------------------------------------------
/tests/fixtures/git-bare-repo/refs/heads/feature/1.2-dev:
--------------------------------------------------------------------------------
1 | 859f67f18fc4522a4da5b784bce6cb9ada034a16
2 |
--------------------------------------------------------------------------------
/tests/fixtures/git-bare-repo/refs/heads/master:
--------------------------------------------------------------------------------
1 | a003d30bc7a355f55bf28479e62134186bae1aed
2 |
--------------------------------------------------------------------------------
/tests/fixtures/git-bare-repo/refs/tags/1.2:
--------------------------------------------------------------------------------
1 | ec587c3ebbaf491605d24a0b1d42e6de7dc26372
2 |
--------------------------------------------------------------------------------
/tests/fixtures/hg-repo/.hg/00changelog.i:
--------------------------------------------------------------------------------
1 | dummy changelog to prevent using the old repo layout
--------------------------------------------------------------------------------
/tests/fixtures/hg-repo/.hg/bookmarks:
--------------------------------------------------------------------------------
1 | 5ea48553c4dfbba5ee51189bb5a145f75db4b425 master
2 | 7bc72b056e7c13b3d7a2f8fdb2d3fbb5556a7ec2 feature/1.2-dev
3 |
--------------------------------------------------------------------------------
/tests/fixtures/hg-repo/.hg/branch:
--------------------------------------------------------------------------------
1 | default
2 |
--------------------------------------------------------------------------------
/tests/fixtures/hg-repo/.hg/cache/branch2-served:
--------------------------------------------------------------------------------
1 | 5ea48553c4dfbba5ee51189bb5a145f75db4b425 7
2 | 7bc72b056e7c13b3d7a2f8fdb2d3fbb5556a7ec2 o default
3 | 5ea48553c4dfbba5ee51189bb5a145f75db4b425 o default
4 |
--------------------------------------------------------------------------------
/tests/fixtures/hg-repo/.hg/cache/checkisexec:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/klaussilveira/gitlist/30d69a631d80ff7952b5f4ed504895632dfcd4ce/tests/fixtures/hg-repo/.hg/cache/checkisexec
--------------------------------------------------------------------------------
/tests/fixtures/hg-repo/.hg/cache/checklink:
--------------------------------------------------------------------------------
1 | checklink-target
--------------------------------------------------------------------------------
/tests/fixtures/hg-repo/.hg/cache/checklink-target:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/klaussilveira/gitlist/30d69a631d80ff7952b5f4ed504895632dfcd4ce/tests/fixtures/hg-repo/.hg/cache/checklink-target
--------------------------------------------------------------------------------
/tests/fixtures/hg-repo/.hg/cache/checknoexec:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/klaussilveira/gitlist/30d69a631d80ff7952b5f4ed504895632dfcd4ce/tests/fixtures/hg-repo/.hg/cache/checknoexec
--------------------------------------------------------------------------------
/tests/fixtures/hg-repo/.hg/cache/hgtagsfnodes1:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/klaussilveira/gitlist/30d69a631d80ff7952b5f4ed504895632dfcd4ce/tests/fixtures/hg-repo/.hg/cache/hgtagsfnodes1
--------------------------------------------------------------------------------
/tests/fixtures/hg-repo/.hg/cache/rbc-names-v1:
--------------------------------------------------------------------------------
1 | default
--------------------------------------------------------------------------------
/tests/fixtures/hg-repo/.hg/cache/rbc-revs-v1:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/klaussilveira/gitlist/30d69a631d80ff7952b5f4ed504895632dfcd4ce/tests/fixtures/hg-repo/.hg/cache/rbc-revs-v1
--------------------------------------------------------------------------------
/tests/fixtures/hg-repo/.hg/cache/tags2-visible:
--------------------------------------------------------------------------------
1 | 7 5ea48553c4dfbba5ee51189bb5a145f75db4b425
2 | 8acbca7fcefa3029c29d6a3eb4a676e607a73c81 1.2
3 |
--------------------------------------------------------------------------------
/tests/fixtures/hg-repo/.hg/dirstate:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/tests/fixtures/hg-repo/.hg/hgrc:
--------------------------------------------------------------------------------
1 | description = "foobar"
2 |
--------------------------------------------------------------------------------
/tests/fixtures/hg-repo/.hg/requires:
--------------------------------------------------------------------------------
1 | dotencode
2 | fncache
3 | generaldelta
4 | revlogv1
5 | store
6 |
--------------------------------------------------------------------------------
/tests/fixtures/hg-repo/.hg/shamap:
--------------------------------------------------------------------------------
1 | b064e711b341b3d160288cd121caf56811ca8991 e88dc2aa0e74b10445f92de34d2a61d274a919fe
2 | 0e3ddf0c6d39e7a300bef61b99a914a86ce5e267 bf6c7defa0f269df1389cef460c98ea18e007a8d
3 | 9d78a8cbc59caa98aebaf4ca9d6ee63cca241c4d 8acbca7fcefa3029c29d6a3eb4a676e607a73c81
4 | 859f67f18fc4522a4da5b784bce6cb9ada034a16 7bc72b056e7c13b3d7a2f8fdb2d3fbb5556a7ec2
5 | 85e656875f18b1985dd71dccaffe3eeffd6abf6f 828cda676385bf21433a1c313c1b3bb84ef87232
6 | 5570c142146e430b7356a84175f281ab2a364d48 4447d3262dcd2ec2a122813ae6dcb64b4941a305
7 | a003d30bc7a355f55bf28479e62134186bae1aed d471ea0b4d78d5296f7c266161ba79f1f0be4927
8 | a003d30bc7a355f55bf28479e62134186bae1aed 5ea48553c4dfbba5ee51189bb5a145f75db4b425
9 |
--------------------------------------------------------------------------------
/tests/fixtures/hg-repo/.hg/store/00changelog.i:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/klaussilveira/gitlist/30d69a631d80ff7952b5f4ed504895632dfcd4ce/tests/fixtures/hg-repo/.hg/store/00changelog.i
--------------------------------------------------------------------------------
/tests/fixtures/hg-repo/.hg/store/00manifest.i:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/klaussilveira/gitlist/30d69a631d80ff7952b5f4ed504895632dfcd4ce/tests/fixtures/hg-repo/.hg/store/00manifest.i
--------------------------------------------------------------------------------
/tests/fixtures/hg-repo/.hg/store/data/mm/cma.c.i:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/klaussilveira/gitlist/30d69a631d80ff7952b5f4ed504895632dfcd4ce/tests/fixtures/hg-repo/.hg/store/data/mm/cma.c.i
--------------------------------------------------------------------------------
/tests/fixtures/hg-repo/.hg/store/data/mm/cma.h.i:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/klaussilveira/gitlist/30d69a631d80ff7952b5f4ed504895632dfcd4ce/tests/fixtures/hg-repo/.hg/store/data/mm/cma.h.i
--------------------------------------------------------------------------------
/tests/fixtures/hg-repo/.hg/store/data/new.json.i:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/klaussilveira/gitlist/30d69a631d80ff7952b5f4ed504895632dfcd4ce/tests/fixtures/hg-repo/.hg/store/data/new.json.i
--------------------------------------------------------------------------------
/tests/fixtures/hg-repo/.hg/store/data/old.json.i:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/klaussilveira/gitlist/30d69a631d80ff7952b5f4ed504895632dfcd4ce/tests/fixtures/hg-repo/.hg/store/data/old.json.i
--------------------------------------------------------------------------------
/tests/fixtures/hg-repo/.hg/store/data/src/index.php.i:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/klaussilveira/gitlist/30d69a631d80ff7952b5f4ed504895632dfcd4ce/tests/fixtures/hg-repo/.hg/store/data/src/index.php.i
--------------------------------------------------------------------------------
/tests/fixtures/hg-repo/.hg/store/data/src/test.php.i:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/klaussilveira/gitlist/30d69a631d80ff7952b5f4ed504895632dfcd4ce/tests/fixtures/hg-repo/.hg/store/data/src/test.php.i
--------------------------------------------------------------------------------
/tests/fixtures/hg-repo/.hg/store/data/test.json.i:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/klaussilveira/gitlist/30d69a631d80ff7952b5f4ed504895632dfcd4ce/tests/fixtures/hg-repo/.hg/store/data/test.json.i
--------------------------------------------------------------------------------
/tests/fixtures/hg-repo/.hg/store/data/~2ehgtags.i:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/klaussilveira/gitlist/30d69a631d80ff7952b5f4ed504895632dfcd4ce/tests/fixtures/hg-repo/.hg/store/data/~2ehgtags.i
--------------------------------------------------------------------------------
/tests/fixtures/hg-repo/.hg/store/fncache:
--------------------------------------------------------------------------------
1 | data/mm/cma.h.i
2 | data/src/test.php.i
3 | data/src/index.php.i
4 | data/new.json.i
5 | data/old.json.i
6 | data/.hgtags.i
7 | data/mm/cma.c.i
8 | data/test.json.i
9 |
--------------------------------------------------------------------------------
/tests/fixtures/hg-repo/.hg/store/phaseroots:
--------------------------------------------------------------------------------
1 | 1 e88dc2aa0e74b10445f92de34d2a61d274a919fe
2 |
--------------------------------------------------------------------------------
/tests/fixtures/hg-repo/.hg/store/undo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/klaussilveira/gitlist/30d69a631d80ff7952b5f4ed504895632dfcd4ce/tests/fixtures/hg-repo/.hg/store/undo
--------------------------------------------------------------------------------
/tests/fixtures/hg-repo/.hg/store/undo.backup.fncache:
--------------------------------------------------------------------------------
1 | data/mm/cma.h.i
2 | data/src/test.php.i
3 | data/src/index.php.i
4 | data/new.json.i
5 | data/old.json.i
6 | data/mm/cma.c.i
7 | data/test.json.i
8 |
--------------------------------------------------------------------------------
/tests/fixtures/hg-repo/.hg/store/undo.backupfiles:
--------------------------------------------------------------------------------
1 | 2
2 | plain bookmarks 0
3 |
--------------------------------------------------------------------------------
/tests/fixtures/hg-repo/.hg/store/undo.phaseroots:
--------------------------------------------------------------------------------
1 | 1 e88dc2aa0e74b10445f92de34d2a61d274a919fe
2 |
--------------------------------------------------------------------------------
/tests/fixtures/hg-repo/.hg/undo.bookmarks:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/klaussilveira/gitlist/30d69a631d80ff7952b5f4ed504895632dfcd4ce/tests/fixtures/hg-repo/.hg/undo.bookmarks
--------------------------------------------------------------------------------
/tests/fixtures/hg-repo/.hg/undo.branch:
--------------------------------------------------------------------------------
1 | default
--------------------------------------------------------------------------------
/tests/fixtures/hg-repo/.hg/undo.desc:
--------------------------------------------------------------------------------
1 | 8
2 | bookmark
3 |
--------------------------------------------------------------------------------
/tests/fixtures/hg-repo/.hg/undo.dirstate:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/tests/unit/App/Form/CriteriaTypeTest.php:
--------------------------------------------------------------------------------
1 | '2021-12-28T00:00',
17 | 'to' => '2021-12-28T00:00',
18 | 'author' => 'Foo',
19 | 'message' => 'foobar',
20 | ];
21 |
22 | $actual = new Criteria();
23 |
24 | $expected = new Criteria();
25 | $expected->setFrom(new DateTime('2021-12-28T00:00'));
26 | $expected->setTo(new DateTime('2021-12-28T00:00'));
27 | $expected->setAuthor('Foo');
28 | $expected->setMessage('foobar');
29 |
30 | $form = $this->factory->create(CriteriaType::class, $actual);
31 | $form->submit($input);
32 |
33 | $this->assertTrue($form->isSynchronized());
34 | $this->assertTrue($form->isValid());
35 | $this->assertEquals($expected, $actual);
36 | }
37 |
38 | public function testIsValidatingDates(): void
39 | {
40 | $input = [
41 | 'from' => '88888-12-2800:00',
42 | 'author' => 'Foo',
43 | ];
44 |
45 | $actual = new Criteria();
46 |
47 | $form = $this->factory->create(CriteriaType::class, $actual);
48 | $form->submit($input);
49 |
50 | $this->assertTrue($form->isSynchronized());
51 | $this->assertFalse($form->isValid());
52 | }
53 | }
54 |
--------------------------------------------------------------------------------
/tests/unit/App/Twig/AvatarExtensionTest.php:
--------------------------------------------------------------------------------
1 | getAvatar('foo@bar.com');
15 | $this->assertEquals('//gravatar.com/avatar/f3ada405ce890b6f8204094deb12d8a8?s=60', $avatar);
16 | }
17 |
18 | public function testIsGettingAvatarWithCustomConfig(): void
19 | {
20 | $extension = new AvatarExtension('//gravatar.com/avatar', ['a' => 'b']);
21 | $avatar = $extension->getAvatar('foo@bar.com');
22 | $this->assertEquals('//gravatar.com/avatar/f3ada405ce890b6f8204094deb12d8a8?s=60&a=b', $avatar);
23 | }
24 |
25 | public function testIsNotGettingAvatarWithoutEmail(): void
26 | {
27 | $extension = new AvatarExtension('//gravatar.com/avatar');
28 | $avatar = $extension->getAvatar('');
29 | $this->assertEmpty($avatar);
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/tests/unit/App/Twig/DateTimeExtensionTest.php:
--------------------------------------------------------------------------------
1 | assertEquals('9 years ago', $extension->ago($date));
31 | }
32 |
33 | public function testIsGettingLocalizedTimeAgo(): void
34 | {
35 | $date = new Carbon('2012-01-01 12:00:00');
36 | $extension = new DateTimeExtension('pt_BR');
37 | $this->assertEquals('há 9 anos', $extension->ago($date));
38 | }
39 |
40 | public function testIsConvertingDateTime(): void
41 | {
42 | $date = new DateTime('2012-01-01 12:00:00');
43 | $extension = new DateTimeExtension();
44 | $this->assertEquals('9 years ago', $extension->ago($date));
45 | }
46 |
47 | public function testIsConvertingDateTimeImmutable(): void
48 | {
49 | $date = new DateTimeImmutable('2012-01-01 12:00:00');
50 | $extension = new DateTimeExtension();
51 | $this->assertEquals('9 years ago', $extension->ago($date));
52 | }
53 | }
54 |
--------------------------------------------------------------------------------
/tests/unit/App/Twig/RepositoryExtensionTest.php:
--------------------------------------------------------------------------------
1 | assertFalse($extension->isTree(false));
17 | $this->assertTrue($extension->isTree(new Tree(new Repository('foo'), '123')));
18 | }
19 |
20 | public function testIsFormattingFileSizeWithInvalidInput(): void
21 | {
22 | $extension = new RepositoryExtension();
23 | $this->assertEquals('0 B', $extension->formatFileSize(false));
24 | $this->assertEquals('0 B', $extension->formatFileSize(null));
25 | $this->assertEquals('0 B', $extension->formatFileSize());
26 | }
27 |
28 | public function testIsFormattingFileSize(): void
29 | {
30 | $extension = new RepositoryExtension();
31 | $this->assertEquals('200 B', $extension->formatFileSize(200));
32 | $this->assertEquals('19.53 KB', $extension->formatFileSize(20000));
33 | $this->assertEquals('4.35 MB', $extension->formatFileSize(4_560_000));
34 | }
35 |
36 | public function testIsGettingCommitish(): void
37 | {
38 | $extension = new RepositoryExtension();
39 | $this->assertEquals('master/foo.php', $extension->getCommitish('master', 'foo.php'));
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/tests/unit/App/Twig/StringExtensionTest.php:
--------------------------------------------------------------------------------
1 | assertEquals($expected, $extension->truncate($string, $length, $ellipsis, $cut));
18 | }
19 |
20 | public static function provideTruncateFixtures()
21 | {
22 | return [
23 | ['', '', 3, ''],
24 | ['', 'foo', 0, '...'],
25 | ['foo', 'foo', 0, '...', false],
26 | ['fo', 'foobar', 2, ''],
27 | ['foobar', 'foobar', 10, ''],
28 | ['foobar', 'foobar', 10, '...', false],
29 | ['foo', 'foo', 3, '...'],
30 | ['fo', 'foobar', 2, '...'],
31 | ['...', 'foobar', 3, '...'],
32 | ['fo...', 'foobar', 5, '...'],
33 | ['foobar...', 'foobar foo', 6, '...', false],
34 | ['foobar...', 'foobar foo', 7, '...', false],
35 | ['foobar foo...', 'foobar foo a', 10, '...', false],
36 | ['foobar foo aar', 'foobar foo aar', 12, '...', false],
37 | ];
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/tests/unit/SCM/BlobTest.php:
--------------------------------------------------------------------------------
1 | setName('/var/foo/bar.c');
15 | $this->assertEquals('/var/foo/bar.c', $blob->getName());
16 | $this->assertEquals('bar.c', $blob->getFileName());
17 | }
18 |
19 | public function testIsDetectingReadme(): void
20 | {
21 | $blob = new Blob(new Repository('/my/repo'), sha1((string) random_int(0, mt_getrandmax())));
22 |
23 | $blob->setName('/var/foo/README.md');
24 | $this->assertTrue($blob->isReadme());
25 |
26 | $blob->setName('/var/foo/ReaDME.MD');
27 | $this->assertTrue($blob->isReadme());
28 |
29 | $blob->setName('/var/foo/README.c');
30 | $this->assertFalse($blob->isReadme());
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/tests/unit/SCM/CommitTest.php:
--------------------------------------------------------------------------------
1 | increaseAdditions();
16 | $fileA->increaseAdditions();
17 |
18 | $fileB = new File('bar.php');
19 | $fileB->increaseAdditions();
20 | $fileB->increaseDeletions();
21 |
22 | $commit = new Commit(new Repository('/my/repo'), sha1((string) random_int(0, mt_getrandmax())));
23 | $commit->addDiff($fileA);
24 | $commit->addDiff($fileB);
25 |
26 | $this->assertEquals(3, $commit->getAdditions());
27 | $this->assertEquals(1, $commit->getDeletions());
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/tests/unit/SCM/ItemTest.php:
--------------------------------------------------------------------------------
1 | addParent($firstParent);
18 | $object->addParent($secondParent);
19 |
20 | $this->assertEquals($firstParent, $object->getFirstParent());
21 | }
22 |
23 | public function testIsClearingParents(): void
24 | {
25 | $firstParent = new Item(new Repository('/my/repo'), sha1((string) random_int(0, mt_getrandmax())));
26 | $secondParent = new Item(new Repository('/my/repo'), sha1((string) random_int(0, mt_getrandmax())));
27 |
28 | $object = new Item(new Repository('/my/repo'), sha1((string) random_int(0, mt_getrandmax())));
29 | $object->addParent($firstParent);
30 | $object->addParent($secondParent);
31 | $object->clearParents();
32 |
33 | $this->assertEmpty($object->getParents());
34 | $this->assertNull($object->getFirstParent());
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/tests/unit/SCM/LanguageTest.php:
--------------------------------------------------------------------------------
1 | assertEquals('PHP', $language->getName());
15 | $this->assertNull($language->getGroup());
16 | $this->assertEquals('#4F5D95', $language->getColor());
17 | $this->assertEquals('php', $language->getAceMode());
18 | $this->assertEquals('php', $language->getCodeMirrorMode());
19 | }
20 |
21 | public function testIsCreatingUnknown(): void
22 | {
23 | $language = new Language('foobarbaz');
24 | $this->assertEquals('Unknown', $language->getName());
25 | $this->assertNull($language->getGroup());
26 | $this->assertNull($language->getColor());
27 | $this->assertEquals('text', $language->getAceMode());
28 | $this->assertNull($language->getCodeMirrorMode());
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/webpack.config.js:
--------------------------------------------------------------------------------
1 | const encore = require('@symfony/webpack-encore');
2 | const webpack = require('webpack');
3 | const { readdirSync, statSync } = require('fs');
4 | const { join } = require('path');
5 |
6 | const getDirectories = path => readdirSync(path).filter(
7 | folder => statSync(join(path, folder)).isDirectory()
8 | );
9 |
10 | const themes = getDirectories('./assets/themes/');
11 | const viewers = getDirectories('./assets/viewers/');
12 |
13 | encore
14 | .setOutputPath('public/assets/')
15 | .setPublicPath('/assets')
16 | .cleanupOutputBeforeBuild()
17 | .disableSingleRuntimeChunk()
18 | .enableSourceMaps(!encore.isProduction())
19 | .enableSassLoader()
20 | .enablePostCssLoader()
21 | ;
22 |
23 | for (const theme of themes) {
24 | encore.addStyleEntry(theme + '/css/main', './assets/themes/' + theme + '/assets/scss/main.scss');
25 | encore.addEntry(theme + '/js/main', './assets/themes/' + theme + '/assets/js/main.js');
26 | }
27 |
28 | for (const viewer of viewers) {
29 | encore.addStyleEntry(viewer + '/css/main', './assets/viewers/' + viewer + '/main.scss');
30 | encore.addEntry(viewer + '/js/main', './assets/viewers/' + viewer + '/main.js');
31 | }
32 |
33 | module.exports = encore.getWebpackConfig();
34 |
--------------------------------------------------------------------------------