Point in project name makes webinterface unaware of repo

Summary

It's possible to create a new project with a point in its name (eg i-found-a-bug-in-gitlab.de). One can now push to that repository and pull from another client, but the webinterface states "The repository for this project is empty" and the "Repository"-button is invisible too. I created a public project demonstrating this which has an invisible.md file which can be cloned. I'm not sure if this is due to the bug but cloning this repository unauthenticated seems impossible (says "Permission denied"). When using my SSH key from a different machine cloning works and produces invisible.md on that machine.

Steps to reproduce

  1. Create a GitLab project (here, online at GitLab.com) with a name like i-found-a-bug-in-gitlab.de. I created this project as private project. I first noticed that behaviour when creating a repo named dr-jung-weinand.de, which is a private repository in my account. I believe this behaviour is a result of using . in the name.

  2. Prepare a repo locally

    georg@GeorgDesktop MINGW64 ~/git
    $ mkdir i-found-a-bug-in-gitlab.de
    
    georg@GeorgDesktop MINGW64 ~/git
    $ git init
    Initialized empty Git repository in C:/Users/georg/git/.git/
    
    georg@GeorgDesktop MINGW64 ~/git (master)
    $ echo "Haha, this is invisible from the webinterface">invisible.md
    
    georg@GeorgDesktop MINGW64 ~/git (master)
    $ git add i*
    warning: LF will be replaced by CRLF in invisible.md.
    The file will have its original line endings in your working directory.
    
    georg@GeorgDesktop MINGW64 ~/git (master)
    $ git commit -m "initial commit"
    [master (root-commit) 3e338d4] initial commit
     1 file changed, 1 insertion(+)
     create mode 100644 invisible.md
  3. Push it's contents

    georg@GeorgDesktop MINGW64 ~/git (master)
    $ git remote add origin git@gitlab.com:georg.jung/i-found-a-bug-in-gitlab.de.git
    
    georg@GeorgDesktop MINGW64 ~/git (master)
    $ git push --all
    Counting objects: 3, done.
    Writing objects: 100% (3/3), 267 bytes | 0 bytes/s, done.
    Total 3 (delta 0), reused 0 (delta 0)
    To gitlab.com:georg.jung/i-found-a-bug-in-gitlab.de.git
     * [new branch]      master -> master
  4. Look at the webinterface again and see... nothing.

  5. At this point I changed the project visibility to public.

What is the current bug behavior?

The project's content is invisible from the webinterface.

What is the expected correct behavior?

Creating the project results in an error message when using bad characters.

Relevant logs and/or screenshots

My view as logged-in project owner:

image

Output of checks

This bug happens on GitLab.com

Possible fixes

Either block creating projects with names resulting in this behaviour or fix the behaviour.

Please note / How not to reproduce

I first tried to reproduce the bug by creating a public project named gitlab-bug.org. I cloned the empty repo from my computer and pushed a commit containing a README.md file. When looking at the webinterface the repo was indeed visible. I see multiple differences in what I did:

  • Project created as public
  • README.md is special
  • I started by cloning the repo not by pushing to the empty project
  • I had .org instead of .de; maybe it's about where the . is?
  • I had just one - not multiple
Assignee Loading
Time tracking Loading