Compare commits

...

5 Commits

Author SHA1 Message Date
GitCaddy
9bd0a95e9f fix(mcp): use json.RawMessage for proper JSON unmarshaling
Some checks failed
Build and Release / Create Release (push) Successful in 0s
Build and Release / Integration Tests (PostgreSQL) (push) Successful in 2m15s
Build and Release / Build Binaries (amd64, darwin) (push) Has been cancelled
Build and Release / Build Binaries (amd64, linux) (push) Has been cancelled
Build and Release / Build Binaries (amd64, windows) (push) Has been cancelled
Build and Release / Build Binaries (arm64, darwin) (push) Has been cancelled
Build and Release / Build Binaries (arm64, linux) (push) Has been cancelled
Build and Release / Lint (push) Has been cancelled
Build and Release / Unit Tests (push) Has been cancelled
Add RawMessage type alias to modules/json and use it in MCP handler.
The custom RawMessage type was not implementing json.Unmarshaler,
causing parse errors when receiving MCP tool calls with params object.

🤖 Generated with Claude Code

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-12 00:37:16 +00:00
GitCaddy
5818970a2a feat(runners): display Xcode SDKs, Simulators, BuildTools, and PackageManagers
All checks were successful
Build and Release / Integration Tests (PostgreSQL) (push) Successful in 3m15s
Build and Release / Unit Tests (push) Successful in 3m53s
Build and Release / Lint (push) Successful in 4m23s
Build and Release / Build Binaries (amd64, darwin) (push) Successful in 2m49s
Build and Release / Create Release (push) Successful in 0s
Build and Release / Build Binaries (amd64, windows) (push) Successful in 2m40s
Build and Release / Build Binaries (amd64, linux) (push) Successful in 2m48s
Build and Release / Build Binaries (arm64, darwin) (push) Successful in 2m10s
Build and Release / Build Binaries (arm64, linux) (push) Successful in 2m4s
- Add XcodeInfo struct for macOS runner capabilities (version, build, SDKs, simulators)
- Add BuildTools and PackageManagers fields to RunnerCapability struct
- Update runner_edit.tmpl to display:
  - Xcode info with SDKs and Simulators for macOS runners
  - Build Tools (gcc, g++, msbuild, etc.) for all platforms
  - Package Managers (apt, brew, chocolatey, etc.) for all platforms

This aligns with act_runner capability detection which already reports these fields.

🤖 Generated with Claude Code

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-12 00:07:49 +00:00
GitCaddy
00d593260e fix: format HasSuffix function properly
All checks were successful
Build and Release / Integration Tests (PostgreSQL) (push) Successful in 2m12s
Build and Release / Create Release (push) Successful in 1s
Build and Release / Unit Tests (push) Successful in 3m46s
Build and Release / Lint (push) Successful in 3m58s
Build and Release / Build Binaries (arm64, darwin) (push) Successful in 2m1s
Build and Release / Build Binaries (amd64, windows) (push) Successful in 2m8s
Build and Release / Build Binaries (amd64, darwin) (push) Successful in 2m11s
Build and Release / Build Binaries (amd64, linux) (push) Successful in 2m21s
Build and Release / Build Binaries (arm64, linux) (push) Successful in 2m35s
🤖 Generated with Claude Code

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-11 22:59:29 +00:00
GitCaddy
6f7e600645 chore: update copyright headers to MarketAlly
Some checks failed
Build and Release / Create Release (push) Has been skipped
Build and Release / Integration Tests (PostgreSQL) (push) Successful in 2m28s
Build and Release / Unit Tests (push) Successful in 2m31s
Build and Release / Lint (push) Failing after 2m57s
Build and Release / Build Binaries (amd64, darwin) (push) Has been skipped
Build and Release / Build Binaries (amd64, linux) (push) Has been skipped
Build and Release / Build Binaries (amd64, windows) (push) Has been skipped
Build and Release / Build Binaries (arm64, darwin) (push) Has been skipped
Build and Release / Build Binaries (arm64, linux) (push) Has been skipped
- New files: Copyright 2026 MarketAlly
- Modified files: Copyright YYYY The Gitea Authors and MarketAlly

🤖 Generated with Claude Code

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-11 22:56:56 +00:00
GitCaddy
f382591ef1 feat: use SuggestedLabels from runner capabilities
Some checks failed
Build and Release / Create Release (push) Has been skipped
Build and Release / Unit Tests (push) Successful in 2m19s
Build and Release / Integration Tests (PostgreSQL) (push) Successful in 2m36s
Build and Release / Lint (push) Failing after 3m8s
Build and Release / Build Binaries (amd64, darwin) (push) Has been skipped
Build and Release / Build Binaries (amd64, linux) (push) Has been skipped
Build and Release / Build Binaries (amd64, windows) (push) Has been skipped
Build and Release / Build Binaries (arm64, darwin) (push) Has been skipped
Build and Release / Build Binaries (arm64, linux) (push) Has been skipped
- Add StringUtils.HasSuffix template function
- Update runner edit template to use SuggestedLabels from capabilities
- Auto-suggest -latest variants for OS-type labels (ios, macos, xcode, etc.)
- Falls back to OS-based suggestions if no SuggestedLabels available

🤖 Generated with Claude Code

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-11 22:53:18 +00:00
92 changed files with 194 additions and 127 deletions

View File

@@ -1,4 +1,4 @@
// Copyright 2026 The Gitea Authors. All rights reserved.
// Copyright 2026 MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
package cmd

View File

@@ -1,4 +1,4 @@
// Copyright 2026 The Gitea Authors. All rights reserved.
// Copyright 2026 MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
package cmd

View File

@@ -1,4 +1,4 @@
// Copyright 2026 The Gitea Authors. All rights reserved.
// Copyright 2026 MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
package cmd

View File

@@ -1,4 +1,4 @@
// Copyright 2026 The Gitea Authors. All rights reserved.
// Copyright 2026 MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
// gitea-cli is a command-line tool for interacting with Gitea instances.

View File

@@ -1,4 +1,4 @@
// Copyright 2026 The Gitea Authors. All rights reserved.
// Copyright 2026 MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
// Gitea MCP Server - Model Context Protocol server for Gitea Actions

View File

@@ -1,4 +1,4 @@
// Copyright 2021 The Gitea Authors. All rights reserved.
// Copyright 2021 The Gitea Authors and MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
package actions

View File

@@ -1,5 +1,5 @@
// Copyright 2015 The Gogs Authors. All rights reserved.
// Copyright 2017 The Gitea Authors. All rights reserved.
// Copyright 2017 The Gitea Authors and MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
package migrations

View File

@@ -1,4 +1,4 @@
// Copyright 2024 The Gitea Authors. All rights reserved.
// Copyright 2026 MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
package v1_26

View File

@@ -1,4 +1,4 @@
// Copyright 2026 The Gitea Authors. All rights reserved.
// Copyright 2026 MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
package v1_26

View File

@@ -1,4 +1,4 @@
// Copyright 2026 The Gitea Authors. All rights reserved.
// Copyright 2026 MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
package v1_26

View File

@@ -1,4 +1,4 @@
// Copyright 2026 The Gitea Authors. All rights reserved.
// Copyright 2026 MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
package v1_26

View File

@@ -1,4 +1,4 @@
// Copyright 2026 The Gitea Authors. All rights reserved.
// Copyright 2026 MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
package v1_26

View File

@@ -1,4 +1,4 @@
// Copyright 2026 The Gitea Authors. All rights reserved.
// Copyright 2026 MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
package v1_26

View File

@@ -1,4 +1,4 @@
// Copyright 2026 The Gitea Authors. All rights reserved.
// Copyright 2026 MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
package organization

View File

@@ -1,4 +1,4 @@
// Copyright 2026 The Gitea Authors. All rights reserved.
// Copyright 2026 MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
package organization

View File

@@ -1,4 +1,4 @@
// Copyright 2026 The Gitea Authors. All rights reserved.
// Copyright 2026 MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
package repo

View File

@@ -1,5 +1,5 @@
// Copyright 2014 The Gogs Authors. All rights reserved.
// Copyright 2019 The Gitea Authors. All rights reserved.
// Copyright 2019 The Gitea Authors and MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
package repo

View File

@@ -1,4 +1,4 @@
// Copyright 2021 The Gitea Authors. All rights reserved.
// Copyright 2021 The Gitea Authors and MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
package repo

View File

@@ -1,4 +1,4 @@
// Copyright 2024 The Gitea Authors. All rights reserved.
// Copyright 2026 MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
package repo

View File

@@ -1,4 +1,4 @@
// Copyright 2026 The Gitea Authors. All rights reserved.
// Copyright 2026 MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
package repo

View File

@@ -1,5 +1,5 @@
// Copyright 2014 The Gogs Authors. All rights reserved.
// Copyright 2019 The Gitea Authors. All rights reserved.
// Copyright 2019 The Gitea Authors and MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
package user

View File

@@ -1,4 +1,4 @@
// Copyright 2026 The Gitea Authors. All rights reserved.
// Copyright 2026 MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
package user

View File

@@ -1,4 +1,4 @@
// Copyright 2026 The Gitea Authors. All rights reserved.
// Copyright 2026 MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
package actions

View File

@@ -1,4 +1,4 @@
// Copyright 2026 The Gitea Authors. All rights reserved.
// Copyright 2026 MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
// Package circuitbreaker implements the circuit breaker pattern for external service calls.

View File

@@ -1,4 +1,4 @@
// Copyright 2026 The Gitea Authors. All rights reserved.
// Copyright 2026 MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
package errors

View File

@@ -1,4 +1,4 @@
// Copyright 2026 The Gitea Authors. All rights reserved.
// Copyright 2026 MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
package errors

View File

@@ -1,4 +1,4 @@
// Copyright 2026 The Gitea Authors. All rights reserved.
// Copyright 2026 MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
// Package health provides comprehensive health checking for Gitea services.

View File

@@ -1,4 +1,4 @@
// Copyright 2026 The Gitea Authors. All rights reserved.
// Copyright 2026 MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
// Package idempotency provides middleware for idempotent POST request handling.

View File

@@ -109,3 +109,7 @@ func UnmarshalHandleDoubleEncode(bs []byte, v any) error {
}
return err
}
// RawMessage is a raw encoded JSON value.
// It implements Marshaler and Unmarshaler and can be used to delay JSON decoding.
type RawMessage = json.RawMessage

View File

@@ -1,4 +1,4 @@
// Copyright 2026 The Gitea Authors. All rights reserved.
// Copyright 2026 MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
// Package operations provides tracking for long-running operations

View File

@@ -1,4 +1,4 @@
// Copyright 2022 The Gitea Authors. All rights reserved.
// Copyright 2022 The Gitea Authors and MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
package nuget

View File

@@ -1,4 +1,4 @@
// Copyright 2026 The Gitea Authors. All rights reserved.
// Copyright 2026 MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
package pages

View File

@@ -1,4 +1,4 @@
// Copyright 2023 The Gitea Authors. All rights reserved.
// Copyright 2023 The Gitea Authors and MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
package setting

View File

@@ -1,4 +1,4 @@
// Copyright 2023 The Gitea Authors. All rights reserved.
// Copyright 2023 The Gitea Authors and MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
package storage

View File

@@ -1,4 +1,4 @@
// Copyright 2023 The Gitea Authors. All rights reserved.
// Copyright 2023 The Gitea Authors and MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
package storage

View File

@@ -1,4 +1,4 @@
// Copyright 2026 The Gitea Authors. All rights reserved.
// Copyright 2026 MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
package structs
@@ -28,16 +28,27 @@ type DistroInfo struct {
PrettyName string `json:"pretty_name,omitempty"` // e.g., "Ubuntu 24.04 LTS"
}
// XcodeInfo holds Xcode-specific information for macOS runners
type XcodeInfo struct {
Version string `json:"version,omitempty"`
Build string `json:"build,omitempty"`
SDKs []string `json:"sdks,omitempty"`
Simulators []string `json:"simulators,omitempty"`
}
// RunnerCapability represents the detailed capabilities of a runner
type RunnerCapability struct {
OS string `json:"os"`
Arch string `json:"arch"`
Distro *DistroInfo `json:"distro,omitempty"`
Xcode *XcodeInfo `json:"xcode,omitempty"`
Docker bool `json:"docker"`
DockerCompose bool `json:"docker_compose"`
ContainerRuntime string `json:"container_runtime,omitempty"`
Shell []string `json:"shell,omitempty"`
Tools map[string][]string `json:"tools,omitempty"`
BuildTools []string `json:"build_tools,omitempty"`
PackageManagers []string `json:"package_managers,omitempty"`
Features *CapabilityFeatures `json:"features,omitempty"`
Limitations []string `json:"limitations,omitempty"`
Disk *DiskInfo `json:"disk,omitempty"`

View File

@@ -1,4 +1,4 @@
// Copyright 2017 The Gitea Authors. All rights reserved.
// Copyright 2017 The Gitea Authors and MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
package structs // import "code.gitea.io/gitea/modules/structs"

View File

@@ -1,4 +1,4 @@
// Copyright 2016 The Gitea Authors. All rights reserved.
// Copyright 2016 The Gitea Authors and MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
package structs

View File

@@ -1,4 +1,4 @@
// Copyright 2026 The Gitea Authors. All rights reserved.
// Copyright 2026 MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
package structs

View File

@@ -1,4 +1,4 @@
// Copyright 2026 The Gitea Authors. All rights reserved.
// Copyright 2026 MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
package structs

View File

@@ -1,4 +1,4 @@
// Copyright 2018 The Gitea Authors. All rights reserved.
// Copyright 2018 The Gitea Authors and MarketAlly. All rights reserved.
// Copyright 2014 The Gogs Authors. All rights reserved.
// SPDX-License-Identifier: MIT

View File

@@ -1,4 +1,4 @@
// Copyright 2023 The Gitea Authors. All rights reserved.
// Copyright 2023 The Gitea Authors and MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
package templates

View File

@@ -1,4 +1,4 @@
// Copyright 2023 The Gitea Authors. All rights reserved.
// Copyright 2023 The Gitea Authors and MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
package templates
@@ -35,6 +35,7 @@ func (su *StringUtils) ToString(v any) string {
func (su *StringUtils) HasPrefix(s, prefix string) bool {
return strings.HasPrefix(s, prefix)
}
func (su *StringUtils) HasSuffix(s, suffix string) bool { return strings.HasSuffix(s, suffix) }
func (su *StringUtils) Contains(s, substr string) bool {
return strings.Contains(s, substr)

View File

@@ -1,4 +1,4 @@
// Copyright 2017 The Gitea Authors. All rights reserved.
// Copyright 2017 The Gitea Authors and MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
package validation

View File

@@ -1,4 +1,4 @@
// Copyright 2026 The Gitea Authors. All rights reserved.
// Copyright 2026 MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
package middleware

View File

@@ -1,4 +1,4 @@
// Copyright 2026 The Gitea Authors. All rights reserved.
// Copyright 2026 MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
package middleware

View File

@@ -1,4 +1,4 @@
// Copyright 2026 The Gitea Authors. All rights reserved.
// Copyright 2026 MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
package webhook

View File

@@ -1,4 +1,4 @@
// Copyright 2022 The Gitea Authors. All rights reserved.
// Copyright 2022 The Gitea Authors and MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
package runner

View File

@@ -1,5 +1,5 @@
// Copyright 2015 The Gogs Authors. All rights reserved.
// Copyright 2016 The Gitea Authors. All rights reserved.
// Copyright 2016 The Gitea Authors and MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
// Package v1 Gitea API

View File

@@ -1,4 +1,4 @@
// Copyright 2026 The Gitea Authors. All rights reserved.
// Copyright 2026 MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
package org

View File

@@ -1,4 +1,4 @@
// Copyright 2026 The Gitea Authors. All rights reserved.
// Copyright 2026 MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
package org

View File

@@ -1,4 +1,4 @@
// Copyright 2026 The Gitea Authors. All rights reserved.
// Copyright 2026 MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
package repo

View File

@@ -1,4 +1,4 @@
// Copyright 2016 The Gitea Authors. All rights reserved.
// Copyright 2016 The Gitea Authors and MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
package repo

View File

@@ -1,4 +1,4 @@
// Copyright 2024 The Gitea Authors. All rights reserved.
// Copyright 2026 MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
package repo

View File

@@ -1,4 +1,4 @@
// Copyright 2026 The Gitea Authors. All rights reserved.
// Copyright 2026 MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
package v2

View File

@@ -1,4 +1,4 @@
// Copyright 2026 The Gitea Authors. All rights reserved.
// Copyright 2026 MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
package v2

View File

@@ -1,4 +1,4 @@
// Copyright 2026 The Gitea Authors. All rights reserved.
// Copyright 2026 MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
// Package v2 Gitea API v2

View File

@@ -1,4 +1,4 @@
// Copyright 2026 The Gitea Authors. All rights reserved.
// Copyright 2026 MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
package v2

View File

@@ -1,4 +1,4 @@
// Copyright 2026 The Gitea Authors. All rights reserved.
// Copyright 2026 MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
package v2

View File

@@ -1,4 +1,4 @@
// Copyright 2026 The Gitea Authors. All rights reserved.
// Copyright 2026 MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
package v2

View File

@@ -22,16 +22,13 @@ import (
"code.gitea.io/gitea/services/context"
)
// RawMessage is a raw encoded JSON value (equivalent to encoding/json.RawMessage)
type RawMessage []byte
// MCP Protocol Types (JSON-RPC 2.0)
type MCPRequest struct {
JSONRPC string `json:"jsonrpc"`
ID any `json:"id"`
Method string `json:"method"`
Params RawMessage `json:"params,omitempty"`
JSONRPC string `json:"jsonrpc"`
ID any `json:"id"`
Method string `json:"method"`
Params json.RawMessage `json:"params,omitempty"`
}
type MCPResponse struct {

View File

@@ -1,4 +1,4 @@
// Copyright 2026 The Gitea Authors. All rights reserved.
// Copyright 2026 MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
package v2

View File

@@ -1,4 +1,4 @@
// Copyright 2026 The Gitea Authors. All rights reserved.
// Copyright 2026 MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
package v2

View File

@@ -1,4 +1,4 @@
// Copyright 2026 The Gitea Authors. All rights reserved.
// Copyright 2026 MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
package v2

View File

@@ -1,4 +1,4 @@
// Copyright 2026 The Gitea Authors. All rights reserved.
// Copyright 2026 MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
package v2

View File

@@ -1,4 +1,4 @@
// Copyright 2026 The Gitea Authors. All rights reserved.
// Copyright 2026 MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
package v2

View File

@@ -1,4 +1,4 @@
// Copyright 2026 The Gitea Authors. All rights reserved.
// Copyright 2026 MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
package v2

View File

@@ -1,4 +1,4 @@
// Copyright 2026 The Gitea Authors. All rights reserved.
// Copyright 2026 MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
package v2

View File

@@ -1,4 +1,4 @@
// Copyright 2016 The Gitea Authors. All rights reserved.
// Copyright 2016 The Gitea Authors and MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
package routers

View File

@@ -1,4 +1,4 @@
// Copyright 2019 The Gitea Authors. All rights reserved.
// Copyright 2019 The Gitea Authors and MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
package org

View File

@@ -1,4 +1,4 @@
// Copyright 2026 The Gitea Authors. All rights reserved.
// Copyright 2026 MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
package pages

View File

@@ -1,4 +1,4 @@
// Copyright 2026 The Gitea Authors. All rights reserved.
// Copyright 2026 MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
package repo

View File

@@ -1,5 +1,5 @@
// Copyright 2014 The Gogs Authors. All rights reserved.
// Copyright 2018 The Gitea Authors. All rights reserved.
// Copyright 2018 The Gitea Authors and MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
package repo

View File

@@ -1,4 +1,4 @@
// Copyright 2025 The Gitea Authors. All rights reserved.
// Copyright 2026 MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
package setting

View File

@@ -1,4 +1,4 @@
// Copyright 2022 The Gitea Authors. All rights reserved.
// Copyright 2022 The Gitea Authors and MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
package actions

View File

@@ -1,5 +1,5 @@
// Copyright 2015 The Gogs Authors. All rights reserved.
// Copyright 2019 The Gitea Authors. All rights reserved.
// Copyright 2019 The Gitea Authors and MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
package user

View File

@@ -1,5 +1,5 @@
// Copyright 2014 The Gogs Authors. All rights reserved.
// Copyright 2018 The Gitea Authors. All rights reserved.
// Copyright 2018 The Gitea Authors and MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
package setting

View File

@@ -1,4 +1,4 @@
// Copyright 2017 The Gitea Authors. All rights reserved.
// Copyright 2017 The Gitea Authors and MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
package web

View File

@@ -1,4 +1,4 @@
// Copyright 2026 The Gitea Authors. All rights reserved.
// Copyright 2026 MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
// Package gitea provides a Go SDK for the Gitea API.

View File

@@ -1,4 +1,4 @@
// Copyright 2026 The Gitea Authors. All rights reserved.
// Copyright 2026 MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
package gitea

View File

@@ -1,4 +1,4 @@
// Copyright 2024 The Gitea Authors. All rights reserved.
// Copyright 2026 MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
package attachment

View File

@@ -1,5 +1,5 @@
// Copyright 2016 The Gogs Authors. All rights reserved.
// Copyright 2019 The Gitea Authors. All rights reserved.
// Copyright 2019 The Gitea Authors and MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
package context

View File

@@ -1,5 +1,5 @@
// Copyright 2014 The Gogs Authors. All rights reserved.
// Copyright 2017 The Gitea Authors. All rights reserved.
// Copyright 2017 The Gitea Authors and MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
package context

View File

@@ -1,4 +1,4 @@
// Copyright 2020 The Gitea Authors. All rights reserved.
// Copyright 2020 The Gitea Authors and MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
package convert

View File

@@ -1,4 +1,4 @@
// Copyright 2020 The Gitea Authors. All rights reserved.
// Copyright 2020 The Gitea Authors and MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
package cron

View File

@@ -1,5 +1,5 @@
// Copyright 2014 The Gogs Authors. All rights reserved.
// Copyright 2018 The Gitea Authors. All rights reserved.
// Copyright 2018 The Gitea Authors and MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
package forms

View File

@@ -1,4 +1,4 @@
// Copyright 2026 The Gitea Authors. All rights reserved.
// Copyright 2026 MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
package org

View File

@@ -1,4 +1,4 @@
// Copyright 2026 The Gitea Authors. All rights reserved.
// Copyright 2026 MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
package pages

View File

@@ -1,4 +1,4 @@
// Copyright 2019 The Gitea Authors. All rights reserved.
// Copyright 2019 The Gitea Authors and MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
package release

View File

@@ -1,4 +1,4 @@
// Copyright 2024 The Gitea Authors. All rights reserved.
// Copyright 2024 The Gitea Authors and MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
package user

View File

@@ -1,4 +1,4 @@
// Copyright 2026 The Gitea Authors. All rights reserved.
// Copyright 2026 MarketAlly. All rights reserved.
// SPDX-License-Identifier: MIT
package wiki

View File

@@ -100,37 +100,38 @@
<p class="tw-text-sm tw-mb-2" style="opacity: 0.7;">Based on detected capabilities. Click + to add individually.</p>
<div class="tw-flex tw-flex-wrap tw-gap-2" id="suggested-labels">
{{$labels := .Runner.AgentLabels}}
{{if eq .RunnerCapabilities.OS "linux"}}
{{if not (SliceUtils.Contains $labels "linux")}}
<form method="post" action="{{$.Link}}/add-label" style="display:inline;">{{$.CsrfTokenHtml}}<input type="hidden" name="label" value="linux"><button type="submit" class="ui small teal label" style="cursor:pointer;">{{svg "octicon-plus" 12}} linux</button></form>
{{else}}<span class="ui small teal label">linux</span>{{end}}
{{if not (SliceUtils.Contains $labels "linux-latest")}}
<form method="post" action="{{$.Link}}/add-label" style="display:inline;">{{$.CsrfTokenHtml}}<input type="hidden" name="label" value="linux-latest"><button type="submit" class="ui small teal label" style="cursor:pointer;">{{svg "octicon-plus" 12}} linux-latest</button></form>
{{else}}<span class="ui small teal label">linux-latest</span>{{end}}
{{else if eq .RunnerCapabilities.OS "windows"}}
{{if not (SliceUtils.Contains $labels "windows")}}
<form method="post" action="{{$.Link}}/add-label" style="display:inline;">{{$.CsrfTokenHtml}}<input type="hidden" name="label" value="windows"><button type="submit" class="ui small teal label" style="cursor:pointer;">{{svg "octicon-plus" 12}} windows</button></form>
{{else}}<span class="ui small teal label">windows</span>{{end}}
{{if not (SliceUtils.Contains $labels "windows-latest")}}
<form method="post" action="{{$.Link}}/add-label" style="display:inline;">{{$.CsrfTokenHtml}}<input type="hidden" name="label" value="windows-latest"><button type="submit" class="ui small teal label" style="cursor:pointer;">{{svg "octicon-plus" 12}} windows-latest</button></form>
{{else}}<span class="ui small teal label">windows-latest</span>{{end}}
{{else if eq .RunnerCapabilities.OS "darwin"}}
{{if not (SliceUtils.Contains $labels "macos")}}
<form method="post" action="{{$.Link}}/add-label" style="display:inline;">{{$.CsrfTokenHtml}}<input type="hidden" name="label" value="macos"><button type="submit" class="ui small teal label" style="cursor:pointer;">{{svg "octicon-plus" 12}} macos</button></form>
{{else}}<span class="ui small teal label">macos</span>{{end}}
{{if not (SliceUtils.Contains $labels "macos-latest")}}
<form method="post" action="{{$.Link}}/add-label" style="display:inline;">{{$.CsrfTokenHtml}}<input type="hidden" name="label" value="macos-latest"><button type="submit" class="ui small teal label" style="cursor:pointer;">{{svg "octicon-plus" 12}} macos-latest</button></form>
{{else}}<span class="ui small teal label">macos-latest</span>{{end}}
{{end}}
{{if and .RunnerCapabilities.Distro .RunnerCapabilities.Distro.ID}}
{{$distro := .RunnerCapabilities.Distro.ID}}
{{$distroLatest := printf "%s-latest" .RunnerCapabilities.Distro.ID}}
{{if not (SliceUtils.Contains $labels $distro)}}
<form method="post" action="{{$.Link}}/add-label" style="display:inline;">{{$.CsrfTokenHtml}}<input type="hidden" name="label" value="{{$distro}}"><button type="submit" class="ui small purple label" style="cursor:pointer;">{{svg "octicon-plus" 12}} {{$distro}}</button></form>
{{else}}<span class="ui small purple label">{{$distro}}</span>{{end}}
{{if not (SliceUtils.Contains $labels $distroLatest)}}
<form method="post" action="{{$.Link}}/add-label" style="display:inline;">{{$.CsrfTokenHtml}}<input type="hidden" name="label" value="{{$distroLatest}}"><button type="submit" class="ui small purple label" style="cursor:pointer;">{{svg "octicon-plus" 12}} {{$distroLatest}}</button></form>
{{else}}<span class="ui small purple label">{{$distroLatest}}</span>{{end}}
{{if .RunnerCapabilities.SuggestedLabels}}
{{range .RunnerCapabilities.SuggestedLabels}}
{{$label := .}}
{{$latestLabel := printf "%s-latest" .}}
{{if not (SliceUtils.Contains $labels $label)}}
<form method="post" action="{{$.Link}}/add-label" style="display:inline;">
{{$.CsrfTokenHtml}}<input type="hidden" name="label" value="{{$label}}">
<button type="submit" class="ui small teal label" style="cursor:pointer;">{{svg "octicon-plus" 12}} {{$label}}</button>
</form>
{{else}}<span class="ui small teal label">{{$label}}</span>{{end}}
{{/* Auto-suggest -latest variant for OS-type labels */}}
{{if and (not (StringUtils.HasSuffix $label "-latest")) (not (SliceUtils.Contains $labels $latestLabel))}}
{{if or (eq $label "linux") (eq $label "macos") (eq $label "windows") (eq $label "ios") (eq $label "xcode") (eq $label "tvos") (eq $label "watchos") (eq $label "visionos") (eq $label "debian") (eq $label "ubuntu") (eq $label "fedora") (eq $label "dotnet") (eq $label "node")}}
<form method="post" action="{{$.Link}}/add-label" style="display:inline;">
{{$.CsrfTokenHtml}}<input type="hidden" name="label" value="{{$latestLabel}}">
<button type="submit" class="ui small purple label" style="cursor:pointer;">{{svg "octicon-plus" 12}} {{$latestLabel}}</button>
</form>
{{end}}
{{end}}
{{end}}
{{else}}
{{/* Fallback to OS-based suggestions if no SuggestedLabels */}}
{{if eq .RunnerCapabilities.OS "linux"}}
{{if not (SliceUtils.Contains $labels "linux")}}<form method="post" action="{{$.Link}}/add-label" style="display:inline;">{{$.CsrfTokenHtml}}<input type="hidden" name="label" value="linux"><button type="submit" class="ui small teal label" style="cursor:pointer;">{{svg "octicon-plus" 12}} linux</button></form>{{else}}<span class="ui small teal label">linux</span>{{end}}
{{if not (SliceUtils.Contains $labels "linux-latest")}}<form method="post" action="{{$.Link}}/add-label" style="display:inline;">{{$.CsrfTokenHtml}}<input type="hidden" name="label" value="linux-latest"><button type="submit" class="ui small teal label" style="cursor:pointer;">{{svg "octicon-plus" 12}} linux-latest</button></form>{{else}}<span class="ui small teal label">linux-latest</span>{{end}}
{{else if eq .RunnerCapabilities.OS "windows"}}
{{if not (SliceUtils.Contains $labels "windows")}}<form method="post" action="{{$.Link}}/add-label" style="display:inline;">{{$.CsrfTokenHtml}}<input type="hidden" name="label" value="windows"><button type="submit" class="ui small teal label" style="cursor:pointer;">{{svg "octicon-plus" 12}} windows</button></form>{{else}}<span class="ui small teal label">windows</span>{{end}}
{{if not (SliceUtils.Contains $labels "windows-latest")}}<form method="post" action="{{$.Link}}/add-label" style="display:inline;">{{$.CsrfTokenHtml}}<input type="hidden" name="label" value="windows-latest"><button type="submit" class="ui small teal label" style="cursor:pointer;">{{svg "octicon-plus" 12}} windows-latest</button></form>{{else}}<span class="ui small teal label">windows-latest</span>{{end}}
{{else if eq .RunnerCapabilities.OS "darwin"}}
{{if not (SliceUtils.Contains $labels "macos")}}<form method="post" action="{{$.Link}}/add-label" style="display:inline;">{{$.CsrfTokenHtml}}<input type="hidden" name="label" value="macos"><button type="submit" class="ui small teal label" style="cursor:pointer;">{{svg "octicon-plus" 12}} macos</button></form>{{else}}<span class="ui small teal label">macos</span>{{end}}
{{if not (SliceUtils.Contains $labels "macos-latest")}}<form method="post" action="{{$.Link}}/add-label" style="display:inline;">{{$.CsrfTokenHtml}}<input type="hidden" name="label" value="macos-latest"><button type="submit" class="ui small teal label" style="cursor:pointer;">{{svg "octicon-plus" 12}} macos-latest</button></form>{{else}}<span class="ui small teal label">macos-latest</span>{{end}}
{{end}}
{{end}}
</div>
</div>
@@ -173,6 +174,37 @@
{{end}}
</div>
{{if .RunnerCapabilities.Xcode}}
<div class="field tw-mb-3">
<label>Xcode</label>
<div>
{{if .RunnerCapabilities.Xcode.Version}}
<span class="ui small blue label">{{.RunnerCapabilities.Xcode.Version}}{{if .RunnerCapabilities.Xcode.Build}} ({{.RunnerCapabilities.Xcode.Build}}){{end}}</span>
{{end}}
</div>
{{if .RunnerCapabilities.Xcode.SDKs}}
<div class="tw-mt-2">
<label class="tw-text-xs" style="opacity: 0.7;">SDKs</label>
<div class="tw-flex tw-flex-wrap tw-gap-1">
{{range .RunnerCapabilities.Xcode.SDKs}}
<span class="ui small olive label">{{.}}</span>
{{end}}
</div>
</div>
{{end}}
{{if .RunnerCapabilities.Xcode.Simulators}}
<div class="tw-mt-2">
<label class="tw-text-xs" style="opacity: 0.7;">Simulators</label>
<div class="tw-flex tw-flex-wrap tw-gap-1">
{{range .RunnerCapabilities.Xcode.Simulators}}
<span class="ui small violet label">{{.}}</span>
{{end}}
</div>
</div>
{{end}}
</div>
{{end}}
{{if .RunnerCapabilities.Shell}}
<div class="field tw-mb-3">
<label>{{ctx.Locale.Tr "actions.runners.capabilities.shells"}}</label>
@@ -195,6 +227,28 @@
</div>
{{end}}
{{if .RunnerCapabilities.BuildTools}}
<div class="field tw-mb-3">
<label>Build Tools</label>
<div class="tw-flex tw-flex-wrap tw-gap-1">
{{range .RunnerCapabilities.BuildTools}}
<span class="ui small brown label">{{.}}</span>
{{end}}
</div>
</div>
{{end}}
{{if .RunnerCapabilities.PackageManagers}}
<div class="field tw-mb-3">
<label>Package Managers</label>
<div class="tw-flex tw-flex-wrap tw-gap-1">
{{range .RunnerCapabilities.PackageManagers}}
<span class="ui small pink label">{{.}}</span>
{{end}}
</div>
</div>
{{end}}
{{if .RunnerCapabilities.Limitations}}
<div class="field tw-mb-3">
<label>{{ctx.Locale.Tr "actions.runners.capabilities.limitations"}}</label>