gitextract_twsjoh99/ ├── .editorconfig ├── .github/ │ ├── CODEOWNERS │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.md │ │ └── feature_request.md │ ├── dependabot.yml │ └── workflows/ │ ├── build.yml │ ├── coverage.yml │ ├── dependabot-sync.yml │ ├── goreleaser.yml │ ├── lint-sync.yml │ ├── lint.yml │ └── nightly.yml ├── .gitignore ├── .golangci.yml ├── .goreleaser.yml ├── .nfpm/ │ ├── postinstall.sh │ ├── postremove.sh │ ├── soft-serve.conf │ ├── soft-serve.service │ ├── sysusers.conf │ └── tmpfiles.conf ├── Dockerfile ├── LICENSE ├── README.md ├── browse.tape ├── cmd/ │ ├── cmd.go │ └── soft/ │ ├── admin/ │ │ └── admin.go │ ├── browse/ │ │ └── browse.go │ ├── hook/ │ │ └── hook.go │ ├── main.go │ └── serve/ │ ├── certreloader.go │ ├── certreloader_test.go │ ├── serve.go │ └── server.go ├── codecov.yml ├── demo.tape ├── docker.md ├── git/ │ ├── attr.go │ ├── attr_test.go │ ├── command.go │ ├── commit.go │ ├── config.go │ ├── errors.go │ ├── patch.go │ ├── reference.go │ ├── repo.go │ ├── server.go │ ├── stash.go │ ├── tag.go │ ├── tree.go │ ├── types.go │ └── utils.go ├── go.mod ├── go.sum ├── pkg/ │ ├── access/ │ │ ├── access.go │ │ ├── access_test.go │ │ ├── context.go │ │ └── context_test.go │ ├── backend/ │ │ ├── access_token.go │ │ ├── auth.go │ │ ├── auth_test.go │ │ ├── backend.go │ │ ├── cache.go │ │ ├── collab.go │ │ ├── context.go │ │ ├── hooks.go │ │ ├── lfs.go │ │ ├── repo.go │ │ ├── settings.go │ │ ├── user.go │ │ ├── utils.go │ │ └── webhooks.go │ ├── config/ │ │ ├── config.go │ │ ├── config_test.go │ │ ├── context.go │ │ ├── context_test.go │ │ ├── file.go │ │ ├── file_test.go │ │ ├── ssh.go │ │ ├── ssh_test.go │ │ └── testdata/ │ │ ├── config.yaml │ │ └── k1.pub │ ├── cron/ │ │ ├── cron.go │ │ └── cron_test.go │ ├── daemon/ │ │ ├── conn.go │ │ ├── daemon.go │ │ └── daemon_test.go │ ├── db/ │ │ ├── context.go │ │ ├── context_test.go │ │ ├── db.go │ │ ├── db_test.go │ │ ├── errors.go │ │ ├── errors_test.go │ │ ├── handler.go │ │ ├── internal/ │ │ │ └── test/ │ │ │ └── test.go │ │ ├── logger.go │ │ ├── migrate/ │ │ │ ├── 0001_create_tables.go │ │ │ ├── 0001_create_tables_postgres.down.sql │ │ │ ├── 0001_create_tables_postgres.up.sql │ │ │ ├── 0001_create_tables_sqlite.down.sql │ │ │ ├── 0001_create_tables_sqlite.up.sql │ │ │ ├── 0002_webhooks.go │ │ │ ├── 0002_webhooks_postgres.down.sql │ │ │ ├── 0002_webhooks_postgres.up.sql │ │ │ ├── 0002_webhooks_sqlite.down.sql │ │ │ ├── 0002_webhooks_sqlite.up.sql │ │ │ ├── 0003_migrate_lfs_objects.go │ │ │ ├── migrate.go │ │ │ ├── migrate_test.go │ │ │ └── migrations.go │ │ └── models/ │ │ ├── access_token.go │ │ ├── collab.go │ │ ├── lfs.go │ │ ├── public_key.go │ │ ├── repo.go │ │ ├── settings.go │ │ ├── user.go │ │ └── webhook.go │ ├── git/ │ │ ├── errors.go │ │ ├── git.go │ │ ├── git_test.go │ │ ├── lfs.go │ │ ├── lfs_auth.go │ │ ├── lfs_log.go │ │ └── service.go │ ├── hooks/ │ │ ├── gen.go │ │ ├── gen_test.go │ │ └── hooks.go │ ├── jobs/ │ │ ├── jobs.go │ │ └── mirror.go │ ├── jwk/ │ │ ├── jwk.go │ │ └── jwk_test.go │ ├── lfs/ │ │ ├── basic_transfer.go │ │ ├── client.go │ │ ├── common.go │ │ ├── endpoint.go │ │ ├── http_client.go │ │ ├── pointer.go │ │ ├── pointer_test.go │ │ ├── scanner.go │ │ ├── ssh_client.go │ │ └── transfer.go │ ├── log/ │ │ ├── log.go │ │ └── log_test.go │ ├── proto/ │ │ ├── access_token.go │ │ ├── context.go │ │ ├── errors.go │ │ ├── repo.go │ │ └── user.go │ ├── ssh/ │ │ ├── cmd/ │ │ │ ├── blob.go │ │ │ ├── branch.go │ │ │ ├── cmd.go │ │ │ ├── collab.go │ │ │ ├── commit.go │ │ │ ├── create.go │ │ │ ├── delete.go │ │ │ ├── description.go │ │ │ ├── git.go │ │ │ ├── hidden.go │ │ │ ├── import.go │ │ │ ├── info.go │ │ │ ├── jwt.go │ │ │ ├── list.go │ │ │ ├── mirror.go │ │ │ ├── private.go │ │ │ ├── project_name.go │ │ │ ├── pubkey.go │ │ │ ├── rename.go │ │ │ ├── repo.go │ │ │ ├── set_username.go │ │ │ ├── settings.go │ │ │ ├── tag.go │ │ │ ├── token.go │ │ │ ├── tree.go │ │ │ ├── user.go │ │ │ └── webhooks.go │ │ ├── middleware.go │ │ ├── middleware_test.go │ │ ├── session.go │ │ ├── session_test.go │ │ ├── ssh.go │ │ └── ui.go │ ├── sshutils/ │ │ ├── utils.go │ │ └── utils_test.go │ ├── ssrf/ │ │ ├── ssrf.go │ │ └── ssrf_test.go │ ├── stats/ │ │ └── stats.go │ ├── storage/ │ │ ├── local.go │ │ └── storage.go │ ├── store/ │ │ ├── access_token.go │ │ ├── collab.go │ │ ├── context.go │ │ ├── database/ │ │ │ ├── access_token.go │ │ │ ├── collab.go │ │ │ ├── database.go │ │ │ ├── lfs.go │ │ │ ├── repo.go │ │ │ ├── settings.go │ │ │ ├── user.go │ │ │ └── webhooks.go │ │ ├── lfs.go │ │ ├── repo.go │ │ ├── settings.go │ │ ├── store.go │ │ ├── user.go │ │ └── webhooks.go │ ├── sync/ │ │ ├── workqueue.go │ │ └── workqueue_test.go │ ├── task/ │ │ └── manager.go │ ├── test/ │ │ └── test.go │ ├── ui/ │ │ ├── common/ │ │ │ ├── common.go │ │ │ ├── common_test.go │ │ │ ├── component.go │ │ │ ├── error.go │ │ │ ├── format.go │ │ │ ├── style.go │ │ │ └── utils.go │ │ ├── components/ │ │ │ ├── code/ │ │ │ │ └── code.go │ │ │ ├── footer/ │ │ │ │ └── footer.go │ │ │ ├── header/ │ │ │ │ └── header.go │ │ │ ├── selector/ │ │ │ │ └── selector.go │ │ │ ├── statusbar/ │ │ │ │ └── statusbar.go │ │ │ ├── tabs/ │ │ │ │ └── tabs.go │ │ │ └── viewport/ │ │ │ └── viewport.go │ │ ├── keymap/ │ │ │ └── keymap.go │ │ ├── pages/ │ │ │ ├── repo/ │ │ │ │ ├── empty.go │ │ │ │ ├── files.go │ │ │ │ ├── filesitem.go │ │ │ │ ├── log.go │ │ │ │ ├── logitem.go │ │ │ │ ├── readme.go │ │ │ │ ├── refs.go │ │ │ │ ├── refsitem.go │ │ │ │ ├── repo.go │ │ │ │ ├── stash.go │ │ │ │ └── stashitem.go │ │ │ └── selection/ │ │ │ ├── item.go │ │ │ └── selection.go │ │ └── styles/ │ │ └── styles.go │ ├── utils/ │ │ ├── utils.go │ │ └── utils_test.go │ ├── version/ │ │ └── version.go │ ├── web/ │ │ ├── auth.go │ │ ├── context.go │ │ ├── git.go │ │ ├── git_lfs.go │ │ ├── goget.go │ │ ├── health.go │ │ ├── http.go │ │ ├── logging.go │ │ ├── server.go │ │ └── util.go │ └── webhook/ │ ├── branch_tag.go │ ├── collaborator.go │ ├── common.go │ ├── content_type.go │ ├── content_type_test.go │ ├── event.go │ ├── push.go │ ├── repository.go │ ├── ssrf_test.go │ ├── validator.go │ ├── validator_test.go │ └── webhook.go ├── systemd.md └── testscript/ ├── script_test.go └── testdata/ ├── anon-access.txtar ├── auth-bypass-regression.txtar ├── config-servers-git_disabled.txtar ├── config-servers-http_disabled.txtar ├── config-servers-ssh_disabled.txtar ├── config-servers-stats_disabled.txtar ├── help.txtar ├── http-cors.txtar ├── http.txtar ├── jwt.txtar ├── mirror.txtar ├── repo-blob.txtar ├── repo-collab.txtar ├── repo-commit.txtar ├── repo-create.txtar ├── repo-delete.txtar ├── repo-import-local-path.txtar ├── repo-import.txtar ├── repo-perms.txtar ├── repo-push.txtar ├── repo-tree.txtar ├── repo-webhook-ssrf.txtar ├── repo-webhooks.txtar ├── set-username.txtar ├── settings.txtar ├── soft-browse.txtar ├── soft-manpages.txtar ├── ssh-lfs.txtar ├── ssh.txtar ├── token.txtar ├── ui-home.txtar └── user_management.txtar