// Copyright 2024 The Gitea Authors. All rights reserved. // SPDX-License-Identifier: MIT package doctor import ( "context" "fmt" "code.gitea.io/gitea/models/db" repo_model "code.gitea.io/gitea/models/repo" unit_model "code.gitea.io/gitea/models/unit" "code.gitea.io/gitea/modules/log" "code.gitea.io/gitea/modules/optional" repo_service "code.gitea.io/gitea/services/repository" ) func disableMirrorActionsUnit(ctx context.Context, logger log.Logger, autofix bool) error { var reposToFix []*repo_model.Repository for page := 1; ; page++ { repos, _, err := repo_model.SearchRepository(ctx, &repo_model.SearchRepoOptions{ ListOptions: db.ListOptions{ PageSize: repo_model.RepositoryListDefaultPageSize, Page: page, }, Mirror: optional.Some(true), }) if err != nil { return fmt.Errorf("SearchRepository: %w", err) } if len(repos) == 0 { break } for _, repo := range repos { if repo.UnitEnabled(ctx, unit_model.TypeActions) { reposToFix = append(reposToFix, repo) } } } if len(reposToFix) == 0 { logger.Info("Found no mirror with actions unit enabled") } else { logger.Warn("Found %d mirrors with actions unit enabled", len(reposToFix)) } if !autofix || len(reposToFix) == 0 { return nil } for _, repo := range reposToFix { if err := repo_service.UpdateRepositoryUnits(ctx, repo, nil, []unit_model.Type{unit_model.TypeActions}); err != nil { return err } } logger.Info("Fixed %d mirrors with actions unit enabled", len(reposToFix)) return nil } func init() { Register(&Check{ Title: "Disable the actions unit for all mirrors", Name: "disable-mirror-actions-unit", IsDefault: false, Run: disableMirrorActionsUnit, Priority: 9, }) } td>
aboutsummaryrefslogtreecommitdiffstats
path: root/src/core/parseHTML.js
blob: 936ac5788d785ada8d3cfdba18a14ada771e4b72 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
import { jQuery } from "../core.js";
import { rsingleTag } from "./var/rsingleTag.js";
import { buildFragment } from "../manipulation/buildFragment.js";
import { isObviousHtml } from "./isObviousHtml.js";

// Argument "data" should be string of html or a TrustedHTML wrapper of obvious HTML
// context (optional): If specified, the fragment will be created in this context,
// defaults to document
// keepScripts (optional): If true, will include scripts passed in the html string
jQuery.parseHTML = function( data, context, keepScripts ) {
	if ( typeof data !== "string" && !isObviousHtml( data + "" ) ) {
		return [];
	}
	if ( typeof context === "boolean" ) {
		keepScripts = context;
		context = false;
	}

	var parsed, scripts;

	if ( !context ) {

		// Stop scripts or inline event handlers from being executed immediately
		// by using DOMParser
		context = ( new window.DOMParser() )
			.parseFromString( "", "text/html" );
	}

	parsed = rsingleTag.exec( data );
	scripts = !keepScripts && [];

	// Single tag
	if ( parsed ) {
		return [ context.createElement( parsed[ 1 ] ) ];
	}

	parsed = buildFragment( [ data ], context, scripts );

	if ( scripts && scripts.length ) {
		jQuery( scripts ).remove();
	}

	return jQuery.merge( [], parsed.childNodes );
};