Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Prepend refs/heads/ to issue template refs #20461

Merged
merged 24 commits into from
Nov 22, 2022

Commits on Jul 23, 2022

  1. Prepend refs/heads/ to issue template refs

    Fix go-gitea#20456
    
    At some point during the 1.17 cycle abbreviated refs to issue branches
    started breaking. This is likely due serious inconsistencies in our
    management of refs throughout Gitea - which is a bug needing to be
    addressed in a different PR. (Likely more than one)
    
    We should try to use non-abbreviated refs as much as possible. That is
    where a user has inputted a abbreviated ref we should add refs/heads/ if
    it is branch etc. I know people keep writing and merging PRs that remove
    prefixes from stored content but it is just wrong and it keeps causing
    problems like this. We should only remove the prefix at the time of
    presentation as the prefix is the only way of knowing umambiguously and
    permanently if the ref is referring to a branch, tag or commit. We need
    to make it so that every ref has the appropriate prefix, and probably
    also need to come up with some definitely unambiguous way of storing
    SHAs if they're used in a ref field. We must not store potentially
    ambiguous refs. (Especially tagnames - there is no reason why users cannot
    create a branch with the same short name as a tag and vice versa and any
    attempt to prevent this will fail. You can even create a branch and a
    tag that matches a SHA1 pattern.)
    
    To that end in order to fix this bug, when parsing issue templates check
    the provided Ref, if it does not start with refs/ add the BranchPrefix
    to it. This allows people to make their templates refer to a tag.
    
    Next we need to handle the issue links that are already written. The
    links here are created with `git.RefURL`
    
    Here we see there is a bug introduced in go-gitea#17551 whereby the provided Ref
    can be double-escaped so we remove the incorrect external escape.
    (The escape added in go-gitea#17551 is in the right place - unfortunately it
    missed that the calling function was doing the wrong thing.)
    
    Then within RefURL we check if the unprefixed ref could actually be a
    SHA before defaulting that an unprefixed ref is actually a commit - if not
    it is assumed to be a branch. This will handle most of the problem cases
    excepting the very unusual cases where someone has deliberately written
    a branch to look like a SHA1.
    
    But please if something is called a `ref` or interpreted as a `ref` make
    it a full-ref before storing or using it. By all means if something is a
    `branch` assume the prefix is removed but always add it back in if you
    are using it as a `ref`. Stop storing abbreviated branch names and tag
    names as refs. It will keep on causing problems like this.
    
    Fix go-gitea#20456
    
    Signed-off-by: Andrew Thornton <art27@cantab.net>
    zeripath committed Jul 23, 2022
    Configuration menu
    Copy the full SHA
    42d2b83 View commit details
    Browse the repository at this point in the history

Commits on Oct 18, 2022

  1. Configuration menu
    Copy the full SHA
    17a2686 View commit details
    Browse the repository at this point in the history

Commits on Oct 24, 2022

  1. Configuration menu
    Copy the full SHA
    5e72df4 View commit details
    Browse the repository at this point in the history

Commits on Oct 27, 2022

  1. Configuration menu
    Copy the full SHA
    d884d8e View commit details
    Browse the repository at this point in the history

Commits on Nov 3, 2022

  1. Configuration menu
    Copy the full SHA
    64d5282 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    7195783 View commit details
    Browse the repository at this point in the history

Commits on Nov 4, 2022

  1. Configuration menu
    Copy the full SHA
    082ea35 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    e3afb9d View commit details
    Browse the repository at this point in the history

Commits on Nov 8, 2022

  1. Configuration menu
    Copy the full SHA
    3313694 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    b2e9637 View commit details
    Browse the repository at this point in the history

Commits on Nov 9, 2022

  1. Configuration menu
    Copy the full SHA
    8cdba2b View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    ff439a9 View commit details
    Browse the repository at this point in the history

Commits on Nov 11, 2022

  1. Configuration menu
    Copy the full SHA
    5856890 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    8f2ea08 View commit details
    Browse the repository at this point in the history

Commits on Nov 15, 2022

  1. Configuration menu
    Copy the full SHA
    174501d View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    a2b69ed View commit details
    Browse the repository at this point in the history

Commits on Nov 16, 2022

  1. Configuration menu
    Copy the full SHA
    b0a16a1 View commit details
    Browse the repository at this point in the history

Commits on Nov 19, 2022

  1. Configuration menu
    Copy the full SHA
    f300ffe View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    d8ea8fe View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    2d15925 View commit details
    Browse the repository at this point in the history

Commits on Nov 21, 2022

  1. Configuration menu
    Copy the full SHA
    4f8a912 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    1361d81 View commit details
    Browse the repository at this point in the history

Commits on Nov 22, 2022

  1. Configuration menu
    Copy the full SHA
    21a601e View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    c5919a7 View commit details
    Browse the repository at this point in the history