Skip to content

Commit

Permalink
Merge remote-tracking branch 'giteaofficial/main'
Browse files Browse the repository at this point in the history
* giteaofficial/main:
  use nolyfill to remove some polyfills (go-gitea#31468)
  Properly filter issue list given no assignees filter (go-gitea#31522)
  Run `detectWebAuthnSupport` only on sign-in page (go-gitea#31676)
  fix OIDC introspection authentication (go-gitea#31632)
  Enable direnv (go-gitea#31672)
  [skip ci] Updated translations via Crowdin
  [skip ci] Updated translations via Crowdin
  • Loading branch information
zjjhot committed Jul 24, 2024
2 parents 7bb635e + b4ccef3 commit d63259b
Show file tree
Hide file tree
Showing 14 changed files with 488 additions and 1,640 deletions.
1 change: 1 addition & 0 deletions .envrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
use flake
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,9 @@ prime/
*_source.tar.bz2
.DS_Store

# nix-direnv generated files
.direnv/

# Make evidence files
/.make_evidence

Expand Down
2 changes: 2 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -887,6 +887,8 @@ update-js: node-check | node_modules
npx updates -u -f package.json
rm -rf node_modules package-lock.json
npm install --package-lock
npx nolyfill install
npm install --package-lock
@touch node_modules

.PHONY: update-py
Expand Down
9 changes: 3 additions & 6 deletions modules/base/tool.go
Original file line number Diff line number Diff line change
Expand Up @@ -48,13 +48,10 @@ func BasicAuthDecode(encoded string) (string, string, error) {
return "", "", err
}

auth := strings.SplitN(string(s), ":", 2)

if len(auth) != 2 {
return "", "", errors.New("invalid basic authentication")
if username, password, ok := strings.Cut(string(s), ":"); ok {
return username, password, nil
}

return auth[0], auth[1], nil
return "", "", errors.New("invalid basic authentication")
}

// VerifyTimeLimitCode verify time limit code
Expand Down
3 changes: 3 additions & 0 deletions modules/base/tool_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,9 @@ func TestBasicAuthDecode(t *testing.T) {

_, _, err = BasicAuthDecode("invalid")
assert.Error(t, err)

_, _, err = BasicAuthDecode("YWxpY2U=") // "alice", no colon
assert.Error(t, err)
}

func TestVerifyTimeLimitCode(t *testing.T) {
Expand Down
7 changes: 6 additions & 1 deletion modules/indexer/issues/dboptions.go
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,12 @@ func ToSearchOptions(keyword string, opts *issues_model.IssuesOptions) *SearchOp
searchOpt.ProjectID = optional.Some[int64](0) // Those issues with no project(projectid==0)
}

if opts.AssigneeID > 0 {
searchOpt.AssigneeID = optional.Some(opts.AssigneeID)
} else if opts.AssigneeID == -1 { // FIXME: this is inconsistent from other places
searchOpt.AssigneeID = optional.Some[int64](0)
}

// See the comment of issues_model.SearchOptions for the reason why we need to convert
convertID := func(id int64) optional.Option[int64] {
if id > 0 {
Expand All @@ -57,7 +63,6 @@ func ToSearchOptions(keyword string, opts *issues_model.IssuesOptions) *SearchOp

searchOpt.ProjectColumnID = convertID(opts.ProjectColumnID)
searchOpt.PosterID = convertID(opts.PosterID)
searchOpt.AssigneeID = convertID(opts.AssigneeID)
searchOpt.MentionID = convertID(opts.MentionedID)
searchOpt.ReviewedID = convertID(opts.ReviewedID)
searchOpt.ReviewRequestedID = convertID(opts.ReviewRequestedID)
Expand Down
6 changes: 6 additions & 0 deletions modules/indexer/issues/indexer_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import (
"testing"

"code.gitea.io/gitea/models/db"
"code.gitea.io/gitea/models/issues"
"code.gitea.io/gitea/models/unittest"
"code.gitea.io/gitea/modules/indexer/issues/internal"
"code.gitea.io/gitea/modules/optional"
Expand Down Expand Up @@ -188,6 +189,11 @@ func searchIssueByID(t *testing.T) {
},
expectedIDs: []int64{6, 1},
},
{
// NOTE: This tests no assignees filtering and also ToSearchOptions() to ensure it will set AssigneeID to 0 when it is passed as -1.
opts: *ToSearchOptions("", &issues.IssuesOptions{AssigneeID: -1}),
expectedIDs: []int64{22, 21, 16, 15, 14, 13, 12, 11, 20, 5, 19, 18, 10, 7, 4, 9, 8, 3, 2},
},
{
opts: SearchOptions{
MentionID: optional.Some(int64(4)),
Expand Down
31 changes: 31 additions & 0 deletions options/locale/locale_fr-FR.ini
Original file line number Diff line number Diff line change
Expand Up @@ -387,13 +387,17 @@ relevant_repositories=Seuls les dépôts pertinents sont affichés, <a href="%s"

[auth]
create_new_account=Créer un compte
already_have_account=Avez-vous déjà un compte ?
sign_in_now=Connectez-vous!
disable_register_prompt=Les inscriptions sont désactivées. Veuillez contacter l'administrateur du site.
disable_register_mail=La confirmation par courriel à l’inscription est désactivée.
manual_activation_only=Contactez l'administrateur de votre site pour terminer l'activation.
remember_me=Mémoriser cet appareil
remember_me.compromised=Le jeton de connexion n’est plus valide, ce qui peut indiquer un compte compromis. Veuillez inspecter les activités inhabituelles de votre compte.
forgot_password_title=Mot de passe oublié
forgot_password=Mot de passe oublié ?
need_account=Besoin d‘un compte ?
sign_up_now=Inscrivez-vous dès maintenant !
sign_up_successful=Le compte a été créé avec succès. Bienvenue !
confirmation_mail_sent_prompt_ex=Un nouveau courriel de confirmation a été envoyé à <b>%s</b>. Veuillez vérifier votre boîte de réception dans la prochaine %s pour terminer le processus d’inscription. Si votre adresse courriel est incorrecte, vous pouvez vous reconnecter et la modifier.
must_change_password=Réinitialisez votre mot de passe
Expand Down Expand Up @@ -455,6 +459,8 @@ sspi_auth_failed=Échec de l'authentification SSPI
password_pwned=Le mot de passe que vous avez choisi se trouve sur la liste <a target="_blank" rel="noopener noreferrer" href="https://haveibeenpwned.com/Passwords">des mots de passe ayant fuité</a> sur internet. Veuillez réessayer avec un mot de passe différent et considérer remplacer ce mot de passe si vous l'utilisez ailleurs.
password_pwned_err=Impossible d'envoyer la demande à HaveIBeenPwned
last_admin=Vous ne pouvez pas supprimer ce compte car au moins un administrateur est requis.
signin_passkey=Se connecter avec une clé d’identification (passkey)
back_to_sign_in=Revenir à la page de connexion
[mail]
view_it_on=Voir sur %s
Expand All @@ -471,6 +477,7 @@ activate_email=Veuillez vérifier votre adresse courriel
activate_email.title=%s, veuillez vérifier votre adresse courriel
activate_email.text=Veuillez cliquer sur le lien suivant pour vérifier votre adresse courriel dans <b>%s</b>:
register_notify=Bienvenue sur %s
register_notify.title=%[1]s, bienvenue à %[2]s
register_notify.text_1=ceci est votre courriel de confirmation d'inscription pour %s!
register_notify.text_2=Vous pouvez maintenant vous connecter avec le nom d'utilisateur : %s.
Expand Down Expand Up @@ -907,6 +914,7 @@ create_oauth2_application_success=Vous avez créé une nouvelle application OAut
update_oauth2_application_success=Vous avez mis à jour l'application OAuth2 avec succès.
oauth2_application_name=Nom de l'Application
oauth2_confidential_client=Client confidentiel. Sélectionnez cette option pour les applications qui préservent la confidentialité du secret, telles que les applications web. Ne la sélectionnez pas pour les applications natives, y compris les applications de bureau et les applications mobiles.
oauth2_skip_secondary_authorization=Ne plus demander d’autorisation pour les clients publics après la première fois. <strong>Introduit un risque de sécurité.</strong>
oauth2_redirect_uris=URI de redirection. Veuillez utiliser une nouvelle ligne pour chaque URI.
save_application=Enregistrer
oauth2_client_id=ID du client
Expand Down Expand Up @@ -2273,6 +2281,7 @@ settings.event_wiki_desc=Page wiki créée, renommée, modifiée ou supprimée.
settings.event_release=Publication
settings.event_release_desc=Publication publiée, mise à jour ou supprimée.
settings.event_push=Soumission
settings.event_force_push=Poussée forcée
settings.event_push_desc=Soumission Git.
settings.event_repository=Dépôt
settings.event_repository_desc=Dépôt créé ou supprimé.
Expand Down Expand Up @@ -2366,10 +2375,28 @@ settings.protect_this_branch=Activer la protection de branche
settings.protect_this_branch_desc=Empêche les suppressions et limite les poussées et fusions sur cette branche.
settings.protect_disable_push=Désactiver la soumission
settings.protect_disable_push_desc=Aucune soumission ne sera possible sur cette branche.
settings.protect_disable_force_push=Désactiver les poussés forcées
settings.protect_disable_force_push_desc=Aucune poussée forcée ne sera possible sur cette branche.
settings.protect_enable_push=Activer la soumission
settings.protect_enable_push_desc=Toute personne ayant un accès en écriture sera autorisée à soumettre sur cette branche (sans forcer).
settings.protect_enable_force_push_all=Activer les poussées forcées
settings.protect_enable_force_push_all_desc=Toute personne pouvant pousser pourra forcer sur cette branche.
settings.protect_enable_force_push_allowlist=Soumission forcée sur autorisation uniquement
settings.protect_enable_force_push_allowlist_desc=Seuls les utilisateurs ou équipes autorisés ayants un droit de pousser seront autorisés à pousser en force sur cette branche.
settings.protect_enable_merge=Activer la fusion
settings.protect_enable_merge_desc=Toute personne ayant un accès en écriture sera autorisée à fusionner les demandes d'ajout dans cette branche.
settings.protect_whitelist_committers=Soumissions sur autorisation uniquement
settings.protect_whitelist_committers_desc=Seuls les utilisateurs ou les équipes autorisés pourront pousser sur cette branche (sans forcer).
settings.protect_whitelist_deploy_keys=Clés de déploiement pouvant écrire autorisées à pousser.
settings.protect_whitelist_users=Utilisateurs autorisés à pousser :
settings.protect_whitelist_teams=Équipes autorisées à pousser :
settings.protect_force_push_allowlist_users=Utilisateurs autorisés à pousser en force :
settings.protect_force_push_allowlist_teams=Équipes autorisées à pousser en force :
settings.protect_force_push_allowlist_deploy_keys=Clés de déploiement pouvant pousser autorisées à pousser en force.
settings.protect_merge_whitelist_committers=Activer la liste d’autorisés pour la fusion
settings.protect_merge_whitelist_committers_desc=N’autoriser que les utilisateurs et les équipes listés à appliquer les demandes de fusion sur cette branche.
settings.protect_merge_whitelist_users=Utilisateurs autorisés à fusionner :
settings.protect_merge_whitelist_teams=Équipes autorisées à fusionner :
settings.protect_check_status_contexts=Activer le Contrôle Qualité
settings.protect_status_check_patterns=Motifs de vérification des statuts :
settings.protect_status_check_patterns_desc=Entrez des motifs pour spécifier quelles vérifications doivent réussir avant que des branches puissent être fusionnées. Un motif par ligne. Un motif ne peut être vide.
Expand All @@ -2380,6 +2407,10 @@ settings.protect_invalid_status_check_pattern=Motif de vérification des statuts
settings.protect_no_valid_status_check_patterns=Aucun motif de vérification des statuts valide.
settings.protect_required_approvals=Minimum d'approbations requis :
settings.protect_required_approvals_desc=Permet de fusionner les demandes d’ajout lorsque suffisamment d’évaluation sont positives.
settings.protect_approvals_whitelist_enabled=Restreindre les approbations aux utilisateurs ou aux équipes sur liste d’autorisés
settings.protect_approvals_whitelist_enabled_desc=Seuls les évaluations des utilisateurs ou des équipes suivantes compteront dans les approbations requises. Si laissé vide, les évaluations de toute personne ayant un accès en écriture seront comptabilisées à la place.
settings.protect_approvals_whitelist_users=Évaluateurs autorisés :
settings.protect_approvals_whitelist_teams=Équipes d’évaluateurs autorisés :
settings.dismiss_stale_approvals=Révoquer automatiquement les approbations périmées
settings.dismiss_stale_approvals_desc=Lorsque des nouvelles révisions changent le contenu de la demande d’ajout, les approbations existantes sont révoquées.
settings.ignore_stale_approvals=Ignorer les approbations obsolètes
Expand Down
1 change: 1 addition & 0 deletions options/locale/locale_pt-PT.ini
Original file line number Diff line number Diff line change
Expand Up @@ -914,6 +914,7 @@ create_oauth2_application_success=Criou com sucesso uma nova aplicação OAuth2.
update_oauth2_application_success=Modificou com sucesso a aplicação OAuth2.
oauth2_application_name=Nome da aplicação
oauth2_confidential_client=Cliente confidencial. Escolha esta opção para aplicações que mantêm o segredo confidencial, tais como aplicações web. Não escolha esta opção para aplicações nativas, incluindo aplicações para computador e aplicações móveis.
oauth2_skip_secondary_authorization=Saltar a autorização para clientes públicos depois de lhes ceder acesso uma vez. <strong>Pode representar um risco de segurança.</strong>
oauth2_redirect_uris=URIs de reencaminhamento. Use uma linha por URI.
save_application=Guardar
oauth2_client_id=ID do cliente
Expand Down
Loading

0 comments on commit d63259b

Please sign in to comment.