Martin's Code: Martin Shaw's Personal Git Code Hosting
dumpVar: middleware.ContextData
{
"AllLangs": [
{
"Lang": "id-ID",
"Name": "Bahasa Indonesia"
},
{
"Lang": "da",
"Name": "Dansk"
},
{
"Lang": "de-DE",
"Name": "Deutsch"
},
{
"Lang": "en-US",
"Name": "English"
},
{
"Lang": "es-ES",
"Name": "Español"
},
{
"Lang": "eo",
"Name": "Esperanto"
},
{
"Lang": "fil",
"Name": "Filipino"
},
{
"Lang": "fr-FR",
"Name": "Français"
},
{
"Lang": "it-IT",
"Name": "Italiano"
},
{
"Lang": "lv-LV",
"Name": "Latviešu"
},
{
"Lang": "hu-HU",
"Name": "Magyar nyelv"
},
{
"Lang": "nl-NL",
"Name": "Nederlands"
},
{
"Lang": "nds",
"Name": "Plattdüütsch"
},
{
"Lang": "pl-PL",
"Name": "Polski"
},
{
"Lang": "pt-PT",
"Name": "Português de Portugal"
},
{
"Lang": "pt-BR",
"Name": "Português do Brasil"
},
{
"Lang": "sl",
"Name": "Slovenščina"
},
{
"Lang": "fi-FI",
"Name": "Suomi"
},
{
"Lang": "sv-SE",
"Name": "Svenska"
},
{
"Lang": "tr-TR",
"Name": "Türkçe"
},
{
"Lang": "cs-CZ",
"Name": "Čeština"
},
{
"Lang": "el-GR",
"Name": "Ελληνικά"
},
{
"Lang": "bg",
"Name": "Български"
},
{
"Lang": "ru-RU",
"Name": "Русский"
},
{
"Lang": "uk-UA",
"Name": "Українська"
},
{
"Lang": "fa-IR",
"Name": "فارسی"
},
{
"Lang": "ja-JP",
"Name": "日本語"
},
{
"Lang": "zh-CN",
"Name": "简体中文"
},
{
"Lang": "zh-TW",
"Name": "繁體中文(台灣)"
},
{
"Lang": "zh-HK",
"Name": "繁體中文(香港)"
},
{
"Lang": "ko-KR",
"Name": "한국어"
}
],
"Context": {
"Base": {
"Data": {
"AllLangs": [
{
"Lang": "id-ID",
"Name": "Bahasa Indonesia"
},
{
"Lang": "da",
"Name": "Dansk"
},
{
"Lang": "de-DE",
"Name": "Deutsch"
},
{
"Lang": "en-US",
"Name": "English"
},
{
"Lang": "es-ES",
"Name": "Español"
},
{
"Lang": "eo",
"Name": "Esperanto"
},
{
"Lang": "fil",
"Name": "Filipino"
},
{
"Lang": "fr-FR",
"Name": "Français"
},
{
"Lang": "it-IT",
"Name": "Italiano"
},
{
"Lang": "lv-LV",
"Name": "Latviešu"
},
{
"Lang": "hu-HU",
"Name": "Magyar nyelv"
},
{
"Lang": "nl-NL",
"Name": "Nederlands"
},
{
"Lang": "nds",
"Name": "Plattdüütsch"
},
{
"Lang": "pl-PL",
"Name": "Polski"
},
{
"Lang": "pt-PT",
"Name": "Português de Portugal"
},
{
"Lang": "pt-BR",
"Name": "Português do Brasil"
},
{
"Lang": "sl",
"Name": "Slovenščina"
},
{
"Lang": "fi-FI",
"Name": "Suomi"
},
{
"Lang": "sv-SE",
"Name": "Svenska"
},
{
"Lang": "tr-TR",
"Name": "Türkçe"
},
{
"Lang": "cs-CZ",
"Name": "Čeština"
},
{
"Lang": "el-GR",
"Name": "Ελληνικά"
},
{
"Lang": "bg",
"Name": "Български"
},
{
"Lang": "ru-RU",
"Name": "Русский"
},
{
"Lang": "uk-UA",
"Name": "Українська"
},
{
"Lang": "fa-IR",
"Name": "فارسی"
},
{
"Lang": "ja-JP",
"Name": "日本語"
},
{
"Lang": "zh-CN",
"Name": "简体中文"
},
{
"Lang": "zh-TW",
"Name": "繁體中文(台灣)"
},
{
"Lang": "zh-HK",
"Name": "繁體中文(香港)"
},
{
"Lang": "ko-KR",
"Name": "한국어"
}
],
"Context": "[dumped]",
"CurrentURL": "/",
"DisableDownloadSourceArchives": false,
"DisableForks": false,
"DisableMigrations": false,
"DisableStars": false,
"EnableActions": true,
"EnableOpenIDSignIn": true,
"EnableSwagger": true,
"IsLandingPageOrganizations": false,
"IsRepoIndexerEnabled": false,
"IsSigned": false,
"Link": "",
"OpenGraphDescription": "Forgejo is a self-hosted lightweight software forge. Easy to install and low maintenance, it just does the job.",
"PageData": {
"DATETIMESTRINGS": {
"FUTURE": "in future",
"NOW": "now",
"relativetime.1day": "yesterday",
"relativetime.1month": "last month",
"relativetime.1week": "last week",
"relativetime.1year": "last year"
},
"PLURALSTRINGS_FALLBACK": {},
"PLURALSTRINGS_LANG": {
"relativetime.days": [
"%d day ago",
"%d days ago"
],
"relativetime.hours": [
"%d hour ago",
"%d hours ago"
],
"relativetime.mins": [
"%d minute ago",
"%d minutes ago"
],
"relativetime.months": [
"%d month ago",
"%d months ago"
],
"relativetime.weeks": [
"%d week ago",
"%d weeks ago"
],
"relativetime.years": [
"%d year ago",
"%d years ago"
]
},
"PLURAL_RULE_FALLBACK": 0,
"PLURAL_RULE_LANG": 0
},
"PageIsHome": true,
"PageStartTime": {},
"RunModeIsProd": false,
"ShowFooterVersion": true,
"ShowMilestonesDashboardPage": true,
"ShowRegistrationButton": false,
"SignedUserID": 0,
"SystemConfig": {
"Picture": {
"DisableGravatar": {},
"EnableFederatedAvatar": {}
},
"Repository": {
"OpenWithEditorApps": {}
}
},
"TemplateLoadTimes": "[func() string]",
"TemplateName": "home",
"UnitActionsGlobalDisabled": false,
"UnitIssuesGlobalDisabled": false,
"UnitProjectsGlobalDisabled": false,
"UnitPullsGlobalDisabled": false,
"UnitWikiGlobalDisabled": false
},
"Locale": {
"Lang": "en-US",
"LangName": "English",
"Locale": {}
},
"Req": {
"Body": {},
"Cancel": "[\u003c-chan struct {}]",
"Close": true,
"ContentLength": 0,
"Form": {},
"GetBody": "[func() (io.ReadCloser, error)]",
"Header": {
"Accept": [
"*/*"
],
"Accept-Encoding": [
"gzip, br, zstd, deflate"
],
"Connection": [
"upgrade"
],
"Cookie": [
"session=b13dd04a0d6f1d05"
],
"User-Agent": [
"Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"
],
"X-Forwarded-For": [
"216.73.217.47"
],
"X-Forwarded-Proto": [
"https"
],
"X-Real-Ip": [
"216.73.217.47"
]
},
"Host": "git.martinshaw.co",
"Method": "GET",
"MultipartForm": "[*multipart.Form]",
"Pattern": "/",
"PostForm": {},
"Proto": "HTTP/1.0",
"ProtoMajor": 1,
"ProtoMinor": 0,
"RemoteAddr": "216.73.217.47:0",
"RequestURI": "/",
"Response": "[*http.Response]",
"TLS": "[*tls.ConnectionState]",
"Trailer": {},
"TransferEncoding": null,
"URL": {
"ForceQuery": false,
"Fragment": "",
"Host": "",
"OmitHost": false,
"Opaque": "",
"Path": "",
"RawFragment": "",
"RawPath": "/",
"RawQuery": "",
"Scheme": "",
"User": "[*url.Userinfo]"
}
},
"Resp": {
"ResponseWriter": {
"ResponseWriter": {
"ResponseWriter": {}
}
}
}
},
"Cache": {},
"ContextUser": "[*user.User]",
"Doer": "[*user.User]",
"Flash": {
"DataStore": "[dumped]",
"ErrorMsg": "",
"InfoMsg": "",
"SuccessMsg": "",
"Values": {},
"WarningMsg": ""
},
"IsBasicAuth": false,
"IsSigned": false,
"Link": "",
"Org": {
"CanCreateOrgRepo": false,
"IsMember": false,
"IsOwner": false,
"IsTeamAdmin": false,
"IsTeamMember": false,
"OrgLink": "",
"Organization": "[*organization.Organization]",
"Team": "[*organization.Team]",
"Teams": null
},
"Package": "[*context.Package]",
"PageData": {
"DATETIMESTRINGS": {
"FUTURE": "in future",
"NOW": "now",
"relativetime.1day": "yesterday",
"relativetime.1month": "last month",
"relativetime.1week": "last week",
"relativetime.1year": "last year"
},
"PLURALSTRINGS_FALLBACK": {},
"PLURALSTRINGS_LANG": {
"relativetime.days": [
"%d day ago",
"%d days ago"
],
"relativetime.hours": [
"%d hour ago",
"%d hours ago"
],
"relativetime.mins": [
"%d minute ago",
"%d minutes ago"
],
"relativetime.months": [
"%d month ago",
"%d months ago"
],
"relativetime.weeks": [
"%d week ago",
"%d weeks ago"
],
"relativetime.years": [
"%d year ago",
"%d years ago"
]
},
"PLURAL_RULE_FALLBACK": 0,
"PLURAL_RULE_LANG": 0
},
"Render": {},
"Repo": {
"BranchName": "",
"CloneLink": {
"HTTPS": "",
"SSH": ""
},
"Commit": "[*git.Commit]",
"CommitID": "",
"CommitsCount": 0,
"GitRepo": "[*git.Repository]",
"IsViewBranch": false,
"IsViewCommit": false,
"IsViewTag": false,
"IsWatching": false,
"Owner": "[*user.User]",
"Permission": {
"AccessMode": 0,
"Units": null,
"UnitsMode": {}
},
"PullRequest": {
"Allowed": false,
"BaseRepo": "[*repo.Repository]",
"HeadInfoSubURL": "",
"SameRepo": false
},
"RefName": "",
"RepoLink": "",
"Repository": "[*repo.Repository]",
"Tag": "[*git.Tag]",
"TagName": "",
"TreePath": ""
},
"Session": {
"Manager": {},
"RawStore": {}
},
"TemplateContext": {
"AvatarUtils": {},
"Context": "[dumped]",
"Data": {
"AllLangs": [
{
"Lang": "id-ID",
"Name": "Bahasa Indonesia"
},
{
"Lang": "da",
"Name": "Dansk"
},
{
"Lang": "de-DE",
"Name": "Deutsch"
},
{
"Lang": "en-US",
"Name": "English"
},
{
"Lang": "es-ES",
"Name": "Español"
},
{
"Lang": "eo",
"Name": "Esperanto"
},
{
"Lang": "fil",
"Name": "Filipino"
},
{
"Lang": "fr-FR",
"Name": "Français"
},
{
"Lang": "it-IT",
"Name": "Italiano"
},
{
"Lang": "lv-LV",
"Name": "Latviešu"
},
{
"Lang": "hu-HU",
"Name": "Magyar nyelv"
},
{
"Lang": "nl-NL",
"Name": "Nederlands"
},
{
"Lang": "nds",
"Name": "Plattdüütsch"
},
{
"Lang": "pl-PL",
"Name": "Polski"
},
{
"Lang": "pt-PT",
"Name": "Português de Portugal"
},
{
"Lang": "pt-BR",
"Name": "Português do Brasil"
},
{
"Lang": "sl",
"Name": "Slovenščina"
},
{
"Lang": "fi-FI",
"Name": "Suomi"
},
{
"Lang": "sv-SE",
"Name": "Svenska"
},
{
"Lang": "tr-TR",
"Name": "Türkçe"
},
{
"Lang": "cs-CZ",
"Name": "Čeština"
},
{
"Lang": "el-GR",
"Name": "Ελληνικά"
},
{
"Lang": "bg",
"Name": "Български"
},
{
"Lang": "ru-RU",
"Name": "Русский"
},
{
"Lang": "uk-UA",
"Name": "Українська"
},
{
"Lang": "fa-IR",
"Name": "فارسی"
},
{
"Lang": "ja-JP",
"Name": "日本語"
},
{
"Lang": "zh-CN",
"Name": "简体中文"
},
{
"Lang": "zh-TW",
"Name": "繁體中文(台灣)"
},
{
"Lang": "zh-HK",
"Name": "繁體中文(香港)"
},
{
"Lang": "ko-KR",
"Name": "한국어"
}
],
"Context": "[dumped]",
"CurrentURL": "/",
"DisableDownloadSourceArchives": false,
"DisableForks": false,
"DisableMigrations": false,
"DisableStars": false,
"EnableActions": true,
"EnableOpenIDSignIn": true,
"EnableSwagger": true,
"IsLandingPageOrganizations": false,
"IsRepoIndexerEnabled": false,
"IsSigned": false,
"Link": "",
"OpenGraphDescription": "Forgejo is a self-hosted lightweight software forge. Easy to install and low maintenance, it just does the job.",
"PageData": {
"DATETIMESTRINGS": {
"FUTURE": "in future",
"NOW": "now",
"relativetime.1day": "yesterday",
"relativetime.1month": "last month",
"relativetime.1week": "last week",
"relativetime.1year": "last year"
},
"PLURALSTRINGS_FALLBACK": {},
"PLURALSTRINGS_LANG": {
"relativetime.days": [
"%d day ago",
"%d days ago"
],
"relativetime.hours": [
"%d hour ago",
"%d hours ago"
],
"relativetime.mins": [
"%d minute ago",
"%d minutes ago"
],
"relativetime.months": [
"%d month ago",
"%d months ago"
],
"relativetime.weeks": [
"%d week ago",
"%d weeks ago"
],
"relativetime.years": [
"%d year ago",
"%d years ago"
]
},
"PLURAL_RULE_FALLBACK": 0,
"PLURAL_RULE_LANG": 0
},
"PageIsHome": true,
"PageStartTime": {},
"RunModeIsProd": false,
"ShowFooterVersion": true,
"ShowMilestonesDashboardPage": true,
"ShowRegistrationButton": false,
"SignedUserID": 0,
"SystemConfig": {
"Picture": {
"DisableGravatar": {},
"EnableFederatedAvatar": {}
},
"Repository": {
"OpenWithEditorApps": {}
}
},
"TemplateLoadTimes": "[func() string]",
"TemplateName": "home",
"UnitActionsGlobalDisabled": false,
"UnitIssuesGlobalDisabled": false,
"UnitProjectsGlobalDisabled": false,
"UnitPullsGlobalDisabled": false,
"UnitWikiGlobalDisabled": false
},
"Locale": {
"Lang": "en-US",
"LangName": "English",
"Locale": {}
}
}
},
"CurrentURL": "/",
"DisableDownloadSourceArchives": false,
"DisableForks": false,
"DisableMigrations": false,
"DisableStars": false,
"EnableActions": true,
"EnableOpenIDSignIn": true,
"EnableSwagger": true,
"IsLandingPageOrganizations": false,
"IsRepoIndexerEnabled": false,
"IsSigned": false,
"Link": "",
"OpenGraphDescription": "Forgejo is a self-hosted lightweight software forge. Easy to install and low maintenance, it just does the job.",
"PageData": {
"DATETIMESTRINGS": {
"FUTURE": "in future",
"NOW": "now",
"relativetime.1day": "yesterday",
"relativetime.1month": "last month",
"relativetime.1week": "last week",
"relativetime.1year": "last year"
},
"PLURALSTRINGS_FALLBACK": {},
"PLURALSTRINGS_LANG": {
"relativetime.days": [
"%d day ago",
"%d days ago"
],
"relativetime.hours": [
"%d hour ago",
"%d hours ago"
],
"relativetime.mins": [
"%d minute ago",
"%d minutes ago"
],
"relativetime.months": [
"%d month ago",
"%d months ago"
],
"relativetime.weeks": [
"%d week ago",
"%d weeks ago"
],
"relativetime.years": [
"%d year ago",
"%d years ago"
]
},
"PLURAL_RULE_FALLBACK": 0,
"PLURAL_RULE_LANG": 0
},
"PageIsHome": true,
"PageStartTime": {},
"RunModeIsProd": false,
"ShowFooterVersion": true,
"ShowMilestonesDashboardPage": true,
"ShowRegistrationButton": false,
"SignedUserID": 0,
"SystemConfig": {
"Picture": {
"DisableGravatar": {},
"EnableFederatedAvatar": {}
},
"Repository": {
"OpenWithEditorApps": {}
}
},
"TemplateLoadTimes": "[func() string]",
"TemplateName": "home",
"UnitActionsGlobalDisabled": false,
"UnitIssuesGlobalDisabled": false,
"UnitProjectsGlobalDisabled": false,
"UnitPullsGlobalDisabled": false,
"UnitWikiGlobalDisabled": false
}
A painless, self-hosted Git service
Easy to install
Simply run the binary for your platform, ship it with Docker, or get it packaged.
Cross-platform
Forgejo is confirmed to run on libre operating systems like Linux and FreeBSD, as well as different CPU architectures. Choose the one you love!
Lightweight
Forgejo has low minimal requirements and can run on an inexpensive Raspberry Pi. Save your machine energy!
Open Source
Go get Forgejo! Join us by contributing to make this project even better. Don't be shy to be a contributor!