
Changes made on our side to make this upgrade happen: * Update the gitea checkout tag to v1.22.1 * Update the golang container version to 1.22 as gitea 1.22 has an undocumented hard dependency on golang 1.22 or newer. * Update our overridden template files to match latest gitea template changes. * Update our app.ini config to switch from [oauth2].ENABLE to [oauth2].ENABLED as the previous config string is deprecated and will be removed in 1.23.0 per: ...es/setting/oauth2.go:124:loadOAuth2From() [E] Deprecation: config option `[oauth2].ENABLE` presents, please use `[oauth2].ENABLED` instead because this fallback will be/has been removed in v1.23.0 The full release notes for this release can be found here: https://github.com/go-gitea/gitea/blob/v1.22.1/CHANGELOG.md I've including the list of breaking changes below with my own annotations on how/whether they affect us. * BREAKING * Improve reverse proxy documents and clarify the AppURL guessing behavior (https://github.com/go-gitea/gitea/pull/31003) (https://github.com/go-gitea/gitea/pull/31020) * This isn't actually a breaking chagne but they have improved docs around how to properly set Host and X-Forwarded-Proto headers for gitea to enable better logging behind a reverse proxy. We should investigate. * Remember log in for a month by default (https://github.com/go-gitea/gitea/pull/30150) * Default was a week. We should consider rolling back to low values since we don't have real users. * Breaking summary for template refactoring (https://github.com/go-gitea/gitea/pull/29395) * All custom templates need to follow these changes * I don't think we're using any of the changed methods/functions in our templates. Testing should help confirm this. * Recommend/convert to use case-sensitive collation for MySQL/MSSQL (https://github.com/go-gitea/gitea/pull/28662) * This is the doctor update to address case sensitivity problems between git and gitea. We'll need to test this as part of our upgrade process and testing. * Make offline mode as default to not connect external avatar service by default (https://github.com/go-gitea/gitea/pull/28548) * We are already disabling gravatar. I think this will disable it harder. * Include public repos in the doer's dashboard for issue search (https://github.com/go-gitea/gitea/pull/28304) * This affects end user dashboard info rendering which we don't use. * Use restricted sanitizer for repository description (https://github.com/go-gitea/gitea/pull/28141) * We already control what goes into repo descriptions via projects.yaml. Shouldn't really affect us. * Support storage base path as prefix (https://github.com/go-gitea/gitea/pull/27827) * This change looks scary at first glance but appears to only affect minio storage systems (which is like an s3 abstraction layer). We store things to disk and shouldn't be affected if I read the PR correctly. * Enhanced auth token / remember me (https://github.com/go-gitea/gitea/pull/27606) * THis appears to improve security but it isn't clear what the effect on end users is. We'll see if our CI jobs are happy with new token generation I guess. * Rename the default themes to gitea-light, gitea-dark, gitea-auto (https://github.com/go-gitea/gitea/pull/27419) * If you didn't see the new themes, please remove the [ui].THEMES config option from app.ini * We don't do anything special for themes so this should noop for us. * Require MySQL 8.0, PostgreSQL 12, MSSQL 2012 (https://github.com/go-gitea/gitea/pull/27337) * Our version of MariaDB should be new enough to rough rough feature equivalent with MySQL 8.0 and newer. We might consider helping upstream add MariaDB testing if they haven't already though. Change-Id: Ifb4f0d92d70bc06f717e6535f1b67a221e127180
248 lines
12 KiB
Cheetah
248 lines
12 KiB
Cheetah
<div class="secondary-nav">
|
|
{{with .Repository}}
|
|
<div class="ui container">
|
|
<div class="repo-header">
|
|
<div class="flex-item tw-items-center">
|
|
<div class="flex-item-leading">
|
|
{{template "repo/icon" .}}
|
|
</div>
|
|
<div class="flex-item-main">
|
|
<div class="flex-item-title tw-text-18">
|
|
<a class="muted tw-font-normal" href="{{.Owner.HomeLink}}">{{.Owner.Name}}</a>/<a class="muted" href="{{$.RepoLink}}">{{.Name}}</a>
|
|
</div>
|
|
</div>
|
|
<div class="flex-item-trailing">
|
|
{{if .IsArchived}}
|
|
<span class="ui basic label not-mobile">{{ctx.Locale.Tr "repo.desc.archived"}}</span>
|
|
<div class="repo-icon only-mobile" data-tooltip-content="{{ctx.Locale.Tr "repo.desc.archived"}}">{{svg "octicon-archive" 18}}</div>
|
|
{{end}}
|
|
{{if .IsPrivate}}
|
|
<span class="ui basic label not-mobile">{{ctx.Locale.Tr "repo.desc.private"}}</span>
|
|
<div class="repo-icon only-mobile" data-tooltip-content="{{ctx.Locale.Tr "repo.desc.private"}}">{{svg "octicon-lock" 18}}</div>
|
|
{{else}}
|
|
{{if .Owner.Visibility.IsPrivate}}
|
|
<span class="ui basic label not-mobile">{{ctx.Locale.Tr "repo.desc.internal"}}</span>
|
|
<div class="repo-icon only-mobile" data-tooltip-content="{{ctx.Locale.Tr "repo.desc.internal"}}">{{svg "octicon-shield-lock" 18}}</div>
|
|
{{end}}
|
|
{{end}}
|
|
{{if .IsTemplate}}
|
|
<span class="ui basic label not-mobile">{{ctx.Locale.Tr "repo.desc.template"}}</span>
|
|
<div class="repo-icon only-mobile" data-tooltip-content="{{ctx.Locale.Tr "repo.desc.template"}}">{{svg "octicon-repo-template" 18}}</div>
|
|
{{end}}
|
|
{{if eq .ObjectFormatName "sha256"}}
|
|
<span class="ui basic label">{{ctx.Locale.Tr "repo.desc.sha256"}}</span>
|
|
{{end}}
|
|
</div>
|
|
</div>
|
|
<!-- Intentionally removed as transfering, watching, starring, and forking don't make sense without accounts
|
|
{{if not (or .IsBeingCreated .IsBroken)}}
|
|
<div class="repo-buttons">
|
|
{{if $.RepoTransfer}}
|
|
<form method="post" action="{{$.RepoLink}}/action/accept_transfer?redirect_to={{$.RepoLink}}">
|
|
{{$.CsrfTokenHtml}}
|
|
<div data-tooltip-content="{{if $.CanUserAcceptTransfer}}{{ctx.Locale.Tr "repo.transfer.accept_desc" $.RepoTransfer.Recipient.DisplayName}}{{else}}{{ctx.Locale.Tr "repo.transfer.no_permission_to_accept"}}{{end}}">
|
|
<button type="submit" class="ui basic button {{if $.CanUserAcceptTransfer}}primary {{end}} ok small"{{if not $.CanUserAcceptTransfer}} disabled{{end}}>
|
|
{{ctx.Locale.Tr "repo.transfer.accept"}}
|
|
</button>
|
|
</div>
|
|
</form>
|
|
<form method="post" action="{{$.RepoLink}}/action/reject_transfer?redirect_to={{$.RepoLink}}">
|
|
{{$.CsrfTokenHtml}}
|
|
<div data-tooltip-content="{{if $.CanUserAcceptTransfer}}{{ctx.Locale.Tr "repo.transfer.reject_desc" $.RepoTransfer.Recipient.DisplayName}}{{else}}{{ctx.Locale.Tr "repo.transfer.no_permission_to_reject"}}{{end}}">
|
|
<button type="submit" class="ui basic button {{if $.CanUserAcceptTransfer}}red {{end}}ok small"{{if not $.CanUserAcceptTransfer}} disabled{{end}}>
|
|
{{ctx.Locale.Tr "repo.transfer.reject"}}
|
|
</button>
|
|
</div>
|
|
</form>
|
|
{{end}}
|
|
{{if $.EnableFeed}}
|
|
{{/* An extra div-element is not necessary here, as this button does not secretly contain two buttons. */}}
|
|
<a class="ui compact small basic button" href="{{$.RepoLink}}.rss" data-tooltip-content="{{ctx.Locale.Tr "rss_feed"}}">
|
|
{{svg "octicon-rss" 16}}
|
|
</a>
|
|
{{end}}
|
|
{{template "repo/watch_unwatch" $}}
|
|
{{if not $.DisableStars}}
|
|
{{template "repo/star_unstar" $}}
|
|
{{end}}
|
|
{{if and (not .IsEmpty) ($.Permission.CanRead ctx.Consts.RepoUnitTypeCode)}}
|
|
<div class="ui labeled button
|
|
{{if or (not $.IsSigned) (and (not $.CanSignedUserFork) (not $.UserAndOrgForks))}}
|
|
disabled
|
|
{{end}}"
|
|
{{if not $.IsSigned}}
|
|
data-tooltip-content="{{ctx.Locale.Tr "repo.fork_guest_user"}}"
|
|
{{else if and (not $.CanSignedUserFork) (not $.UserAndOrgForks)}}
|
|
data-tooltip-content="{{ctx.Locale.Tr "repo.fork_from_self"}}"
|
|
{{end}}
|
|
>
|
|
<a class="ui compact{{if $.ShowForkModal}} show-modal{{end}} small basic button"
|
|
{{if not $.CanSignedUserFork}}
|
|
{{if gt (len $.UserAndOrgForks) 1}}
|
|
href="#" data-modal="#fork-repo-modal"
|
|
{{else if eq (len $.UserAndOrgForks) 1}}
|
|
href="{{AppSubUrl}}/{{(index $.UserAndOrgForks 0).FullName}}"
|
|
{{/*else is not required here, because the button shouldn't link to any site if you can't create a fork*/}}
|
|
{{end}}
|
|
{{else if not $.UserAndOrgForks}}
|
|
href="{{$.RepoLink}}/fork"
|
|
{{else}}
|
|
href="#" data-modal="#fork-repo-modal"
|
|
{{end}}
|
|
>
|
|
{{svg "octicon-repo-forked"}}<span class="text not-mobile">{{ctx.Locale.Tr "repo.fork"}}</span>
|
|
</a>
|
|
<a class="ui basic label" href="{{.Link}}/forks">
|
|
{{CountFmt .NumForks}}
|
|
</a>
|
|
</div>
|
|
<div class="ui small modal" id="fork-repo-modal">
|
|
<div class="header">
|
|
{{ctx.Locale.Tr "repo.already_forked" .Name}}
|
|
</div>
|
|
<div class="content tw-text-left">
|
|
<div class="ui list">
|
|
{{range $.UserAndOrgForks}}
|
|
<div class="ui item tw-py-2">
|
|
<a href="{{.Link}}">{{svg "octicon-repo-forked" 16 "tw-mr-2"}}{{.FullName}}</a>
|
|
</div>
|
|
{{end}}
|
|
</div>
|
|
{{if $.CanSignedUserFork}}
|
|
<div class="divider"></div>
|
|
<a href="{{$.RepoLink}}/fork">{{ctx.Locale.Tr "repo.fork_to_different_account"}}</a>
|
|
{{end}}
|
|
</div>
|
|
</div>
|
|
{{end}}
|
|
</div>
|
|
{{end}}
|
|
-->
|
|
</div>
|
|
{{if $.PullMirror}}
|
|
<div class="fork-flag">
|
|
{{ctx.Locale.Tr "repo.mirror_from"}}
|
|
<a target="_blank" rel="noopener noreferrer" href="{{$.PullMirror.RemoteAddress}}">{{$.PullMirror.RemoteAddress}}</a>
|
|
{{if $.PullMirror.UpdatedUnix}}{{ctx.Locale.Tr "repo.mirror_sync"}} {{TimeSinceUnix $.PullMirror.UpdatedUnix ctx.Locale}}{{end}}
|
|
</div>
|
|
{{end}}
|
|
{{if .IsFork}}<div class="fork-flag">{{ctx.Locale.Tr "repo.forked_from"}} <a href="{{.BaseRepo.Link}}">{{.BaseRepo.FullName}}</a></div>{{end}}
|
|
{{if .IsGenerated}}<div class="fork-flag">{{ctx.Locale.Tr "repo.generated_from"}} <a href="{{(.TemplateRepo ctx).Link}}">{{(.TemplateRepo ctx).FullName}}</a></div>{{end}}
|
|
</div>
|
|
{{end}}
|
|
<div class="ui container">
|
|
<overflow-menu class="ui secondary pointing menu">
|
|
{{if not (or .Repository.IsBeingCreated .Repository.IsBroken)}}
|
|
<div class="overflow-menu-items">
|
|
{{if .Permission.CanRead ctx.Consts.RepoUnitTypeCode}}
|
|
<a class="{{if .PageIsViewCode}}active {{end}}item" href="{{.RepoLink}}{{if and (ne .BranchName .Repository.DefaultBranch) (not $.PageIsWiki)}}/src/{{.BranchNameSubURL}}{{end}}">
|
|
{{svg "octicon-code"}} {{ctx.Locale.Tr "repo.code"}}
|
|
</a>
|
|
{{end}}
|
|
|
|
{{if .Permission.CanRead ctx.Consts.RepoUnitTypeIssues}}
|
|
<a class="{{if .PageIsIssueList}}active {{end}}item" href="{{.RepoLink}}/issues">
|
|
{{svg "octicon-issue-opened"}} {{ctx.Locale.Tr "repo.issues"}}
|
|
{{if .Repository.NumOpenIssues}}
|
|
<span class="ui small label">{{CountFmt .Repository.NumOpenIssues}}</span>
|
|
{{end}}
|
|
</a>
|
|
{{end}}
|
|
|
|
{{if .Permission.CanRead ctx.Consts.RepoUnitTypeExternalTracker}}
|
|
<a class="{{if .PageIsIssueList}}active {{end}}item" href="{{.RepoExternalIssuesLink}}" target="_blank" rel="noopener noreferrer">
|
|
{{svg "octicon-link-external"}} {{ctx.Locale.Tr "repo.issues"}}
|
|
</a>
|
|
{{end}}
|
|
|
|
{{if and .Repository.CanEnablePulls (.Permission.CanRead ctx.Consts.RepoUnitTypePullRequests)}}
|
|
<a class="{{if .PageIsPullList}}active {{end}}item" href="{{.RepoLink}}/pulls">
|
|
{{svg "octicon-git-pull-request"}} {{ctx.Locale.Tr "repo.pulls"}}
|
|
{{if .Repository.NumOpenPulls}}
|
|
<span class="ui small label">{{CountFmt .Repository.NumOpenPulls}}</span>
|
|
{{end}}
|
|
</a>
|
|
{{end}}
|
|
|
|
{{if and .EnableActions (not .UnitActionsGlobalDisabled) (.Permission.CanRead ctx.Consts.RepoUnitTypeActions)}}
|
|
<a class="{{if .PageIsActions}}active {{end}}item" href="{{.RepoLink}}/actions">
|
|
{{svg "octicon-play"}} {{ctx.Locale.Tr "actions.actions"}}
|
|
{{if .Repository.NumOpenActionRuns}}
|
|
<span class="ui small label">{{CountFmt .Repository.NumOpenActionRuns}}</span>
|
|
{{end}}
|
|
</a>
|
|
{{end}}
|
|
|
|
<!-- Added to redirect PR links to Gerrit -->
|
|
<a class="item" href="https://review.opendev.org/#/q/status:open+project:{{.Owner.Name}}/{{.Repository.Name}}">
|
|
{{svg "octicon-git-pull-request"}} Proposed changes
|
|
</a>
|
|
|
|
{{if .Permission.CanRead ctx.Consts.RepoUnitTypePackages}}
|
|
<a href="{{.RepoLink}}/packages" class="{{if .IsPackagesPage}}active {{end}}item">
|
|
{{svg "octicon-package"}} {{ctx.Locale.Tr "packages.title"}}
|
|
</a>
|
|
{{end}}
|
|
|
|
{{$projectsUnit := .Repository.MustGetUnit $.Context ctx.Consts.RepoUnitTypeProjects}}
|
|
{{if and (not .UnitProjectsGlobalDisabled) (.Permission.CanRead ctx.Consts.RepoUnitTypeProjects) ($projectsUnit.ProjectsConfig.IsProjectsAllowed "repo")}}
|
|
<a href="{{.RepoLink}}/projects" class="{{if .IsProjectsPage}}active {{end}}item">
|
|
{{svg "octicon-project"}} {{ctx.Locale.Tr "repo.project_board"}}
|
|
{{if .Repository.NumOpenProjects}}
|
|
<span class="ui small label">{{CountFmt .Repository.NumOpenProjects}}</span>
|
|
{{end}}
|
|
</a>
|
|
{{end}}
|
|
|
|
<!-- Removed intentionally as tarballs of repos that would normally need an intelligent process to create source artifacts is not a useful feature
|
|
{{if and (.Permission.CanRead ctx.Consts.RepoUnitTypeReleases) (not .IsEmptyRepo)}}
|
|
<a class="{{if or .PageIsReleaseList .PageIsTagList}}active {{end}}item" href="{{.RepoLink}}/releases">
|
|
{{svg "octicon-tag"}} {{ctx.Locale.Tr "repo.releases"}}
|
|
{{if .NumReleases}}
|
|
<span class="ui small label">{{CountFmt .NumReleases}}</span>
|
|
{{end}}
|
|
</a>
|
|
{{end}}
|
|
-->
|
|
|
|
{{if .Permission.CanRead ctx.Consts.RepoUnitTypeWiki}}
|
|
<a class="{{if .PageIsWiki}}active {{end}}item" href="{{.RepoLink}}/wiki">
|
|
{{svg "octicon-book"}} {{ctx.Locale.Tr "repo.wiki"}}
|
|
</a>
|
|
{{end}}
|
|
|
|
{{if .Permission.CanRead ctx.Consts.RepoUnitTypeExternalWiki}}
|
|
<a class="item" href="{{(.Repository.MustGetUnit $.Context ctx.Consts.RepoUnitTypeExternalWiki).ExternalWikiConfig.ExternalWikiURL}}" target="_blank" rel="noopener noreferrer">
|
|
{{svg "octicon-link-external"}} {{ctx.Locale.Tr "repo.wiki"}}
|
|
</a>
|
|
{{end}}
|
|
|
|
<!-- Removed intentionally as the activity graphs don't show a complete picture of activity due to our use of Gerrit
|
|
{{if and (.Permission.CanReadAny ctx.Consts.RepoUnitTypePullRequests ctx.Consts.RepoUnitTypeIssues ctx.Consts.RepoUnitTypeReleases) (not .IsEmptyRepo)}}
|
|
<a class="{{if .PageIsActivity}}active {{end}}item" href="{{.RepoLink}}/activity">
|
|
{{svg "octicon-pulse"}} {{ctx.Locale.Tr "repo.activity"}}
|
|
</a>
|
|
{{end}}
|
|
-->
|
|
|
|
{{template "custom/extra_tabs" .}}
|
|
|
|
{{if .Permission.IsAdmin}}
|
|
<span class="item-flex-space"></span>
|
|
<a class="{{if .PageIsRepoSettings}}active {{end}} item" href="{{.RepoLink}}/settings">
|
|
{{svg "octicon-tools"}} {{ctx.Locale.Tr "repo.settings"}}
|
|
</a>
|
|
{{end}}
|
|
</div>
|
|
{{else if .Permission.IsAdmin}}
|
|
<div class="overflow-menu-items">
|
|
<a class="{{if .PageIsRepoSettings}}active {{end}} item" href="{{.RepoLink}}/settings">
|
|
{{svg "octicon-tools"}} {{ctx.Locale.Tr "repo.settings"}}
|
|
</a>
|
|
</div>
|
|
{{end}}
|
|
</overflow-menu>
|
|
</div>
|
|
<div class="ui tabs divider"></div>
|
|
</div>
|