mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2025-11-22 17:08:05 +00:00
[CI] Revert "Restrict [actions].DEFAULT_ACTIONS_URL to only github or self (#25581)"
This reverts commit67bd9d4f1e. (cherry picked from commit0547e94023) (cherry picked from commitd21ad654ad) (cherry picked from commitb905e9d838) (cherry picked from commit 251a5bf235b1723bc2bc324f9e8c03a8668bb5ae) (cherry picked from commitb370e47694) (cherry picked from commit2cc28d0785)
This commit is contained in:
parent
bd8a253220
commit
ed870a39e9
5 changed files with 33 additions and 139 deletions
|
|
@ -5,9 +5,6 @@ package setting
|
|||
|
||||
import (
|
||||
"fmt"
|
||||
"strings"
|
||||
|
||||
"code.gitea.io/gitea/modules/log"
|
||||
)
|
||||
|
||||
// Actions settings
|
||||
|
|
@ -16,36 +13,13 @@ var (
|
|||
LogStorage *Storage // how the created logs should be stored
|
||||
ArtifactStorage *Storage // how the created artifacts should be stored
|
||||
Enabled bool
|
||||
DefaultActionsURL defaultActionsURL `ini:"DEFAULT_ACTIONS_URL"`
|
||||
DefaultActionsURL string `ini:"DEFAULT_ACTIONS_URL"`
|
||||
}{
|
||||
Enabled: false,
|
||||
DefaultActionsURL: defaultActionsURLGitHub,
|
||||
DefaultActionsURL: "https://gitea.com",
|
||||
}
|
||||
)
|
||||
|
||||
type defaultActionsURL string
|
||||
|
||||
func (url defaultActionsURL) URL() string {
|
||||
switch url {
|
||||
case defaultActionsURLGitHub:
|
||||
return "https://github.com"
|
||||
case defaultActionsURLSelf:
|
||||
return strings.TrimSuffix(AppURL, "/")
|
||||
default:
|
||||
// This should never happen, but just in case, use GitHub as fallback
|
||||
return "https://github.com"
|
||||
}
|
||||
}
|
||||
|
||||
const (
|
||||
defaultActionsURLGitHub = "github" // https://github.com
|
||||
defaultActionsURLSelf = "self" // the root URL of the self-hosted Gitea instance
|
||||
// DefaultActionsURL only supports GitHub and the self-hosted Gitea.
|
||||
// It's intentionally not supported more, so please be cautious before adding more like "gitea" or "gitlab".
|
||||
// If you get some trouble with `uses: username/action_name@version` in your workflow,
|
||||
// please consider to use `uses: https://the_url_you_want_to_use/username/action_name@version` instead.
|
||||
)
|
||||
|
||||
func loadActionsFrom(rootCfg ConfigProvider) error {
|
||||
sec := rootCfg.Section("actions")
|
||||
err := sec.MapTo(&Actions)
|
||||
|
|
@ -53,19 +27,6 @@ func loadActionsFrom(rootCfg ConfigProvider) error {
|
|||
return fmt.Errorf("failed to map Actions settings: %v", err)
|
||||
}
|
||||
|
||||
if urls := string(Actions.DefaultActionsURL); urls != defaultActionsURLGitHub && urls != defaultActionsURLSelf {
|
||||
url := strings.Split(urls, ",")[0]
|
||||
if strings.HasPrefix(url, "https://") || strings.HasPrefix(url, "http://") {
|
||||
log.Error("[actions] DEFAULT_ACTIONS_URL does not support %q as custom URL any longer, fallback to %q",
|
||||
urls,
|
||||
defaultActionsURLGitHub,
|
||||
)
|
||||
Actions.DefaultActionsURL = defaultActionsURLGitHub
|
||||
} else {
|
||||
return fmt.Errorf("unsupported [actions] DEFAULT_ACTIONS_URL: %q", urls)
|
||||
}
|
||||
}
|
||||
|
||||
// don't support to read configuration from [actions]
|
||||
Actions.LogStorage, err = getStorage(rootCfg, "actions_log", "", nil)
|
||||
if err != nil {
|
||||
|
|
|
|||
|
|
@ -8,7 +8,6 @@ import (
|
|||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func Test_getStorageInheritNameSectionTypeForActions(t *testing.T) {
|
||||
|
|
@ -96,86 +95,3 @@ STORAGE_TYPE = minio
|
|||
assert.EqualValues(t, "local", Actions.ArtifactStorage.Type)
|
||||
assert.EqualValues(t, "actions_artifacts", filepath.Base(Actions.ArtifactStorage.Path))
|
||||
}
|
||||
|
||||
func Test_getDefaultActionsURLForActions(t *testing.T) {
|
||||
oldActions := Actions
|
||||
oldAppURL := AppURL
|
||||
defer func() {
|
||||
Actions = oldActions
|
||||
AppURL = oldAppURL
|
||||
}()
|
||||
|
||||
AppURL = "http://test_get_default_actions_url_for_actions:3000/"
|
||||
|
||||
tests := []struct {
|
||||
name string
|
||||
iniStr string
|
||||
wantErr assert.ErrorAssertionFunc
|
||||
wantURL string
|
||||
}{
|
||||
{
|
||||
name: "default",
|
||||
iniStr: `
|
||||
[actions]
|
||||
`,
|
||||
wantErr: assert.NoError,
|
||||
wantURL: "https://github.com",
|
||||
},
|
||||
{
|
||||
name: "github",
|
||||
iniStr: `
|
||||
[actions]
|
||||
DEFAULT_ACTIONS_URL = github
|
||||
`,
|
||||
wantErr: assert.NoError,
|
||||
wantURL: "https://github.com",
|
||||
},
|
||||
{
|
||||
name: "self",
|
||||
iniStr: `
|
||||
[actions]
|
||||
DEFAULT_ACTIONS_URL = self
|
||||
`,
|
||||
wantErr: assert.NoError,
|
||||
wantURL: "http://test_get_default_actions_url_for_actions:3000",
|
||||
},
|
||||
{
|
||||
name: "custom url",
|
||||
iniStr: `
|
||||
[actions]
|
||||
DEFAULT_ACTIONS_URL = https://gitea.com
|
||||
`,
|
||||
wantErr: assert.NoError,
|
||||
wantURL: "https://github.com",
|
||||
},
|
||||
{
|
||||
name: "custom urls",
|
||||
iniStr: `
|
||||
[actions]
|
||||
DEFAULT_ACTIONS_URL = https://gitea.com,https://github.com
|
||||
`,
|
||||
wantErr: assert.NoError,
|
||||
wantURL: "https://github.com",
|
||||
},
|
||||
{
|
||||
name: "invalid",
|
||||
iniStr: `
|
||||
[actions]
|
||||
DEFAULT_ACTIONS_URL = gitea
|
||||
`,
|
||||
wantErr: assert.Error,
|
||||
wantURL: "https://github.com",
|
||||
},
|
||||
}
|
||||
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
cfg, err := NewConfigProviderFromData(tt.iniStr)
|
||||
require.NoError(t, err)
|
||||
if !tt.wantErr(t, loadActionsFrom(cfg)) {
|
||||
return
|
||||
}
|
||||
assert.EqualValues(t, tt.wantURL, Actions.DefaultActionsURL.URL())
|
||||
})
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue