sameersbn / docker-gitlab

Dockerized GitLab
http://www.damagehead.com/docker-gitlab/
MIT License
7.86k stars 2.14k forks source link

Crosslink not working since Version 17.1.x #2972

Open Brawn1 opened 1 month ago

Brawn1 commented 1 month ago

Hello,

since Gitlab 17.1.0, 1 or 2 the crosslink function no longer works.

To test, create 2 repos and add an issue in one repo. Create a commit in another repo and add the link .

After the commit is pushed, in version 17.0.x it will show the commit in the issue timeline. But after 17.1.x nothing is displayed in the issue.

It is the same with Incident.

Is there a worker for this, or an additional setting since 17.1.x?

thanks

kkimurak commented 1 month ago

Running sameersbn/gitlab:17.1.2 (using relative URLs, https disabled, no proxy) and couldn't reproduce the issue. Also, I couldn't see any settings added for cross-linking.
Providing your configuration (such as docker-gitlab.yml) may help others debug your issue.

Brawn1 commented 1 month ago

@kkimurak

we using urls like this in the commit https://gitlab.example.com/fancy-app/p-automat/parameter/common/-/issues/13.

Brawn1 commented 1 month ago

@kkimurak

my Gitlab setup with docker-compose.yaml and .env file.

version: '3'

services:
  redis:
    restart: always
    image: redis:7-bullseye
    volumes:
      - redis_data:/data
    networks:
      - backend
    command:
      - --loglevel warning

  postgres:
    restart: always
    image: postgres:15
    volumes:
      - pgdata15:/var/lib/postgresql/data
    env_file:
      - gitlab.env
    environment:
      - DB_EXTENSION=pg_trgm,btree_gist
    networks:
      - backend

  gitlab:
    restart: always
    image: sameersbn/gitlab:17.1.2
    depends_on:
      - redis
      - postgres
    ports:
      - "22:22"
    volumes:
      - /var/docker_volume/gitlab/gitlab_data:/home/git/data:Z
      - /var/docker_volume/gitlab/certs:/certs:Z
    env_file:
      - gitlab.env
    networks:
      - backend
      - traefik-proxy
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.gitlab.rule=Host(`gitlab.example.com`) || Host(`git.example.com`) || Host(`gitlab.example.de`) || Host(`git.example.de`)"
      - "traefik.http.routers.gitlab.entrypoints=websecure"
      - "traefik.http.routers.gitlab.tls.certresolver=letsencryptresolver"
      - "traefik.http.services.gitlab.loadbalancer.server.port=80"

  registry:
    restart: always
    image: registry:latest
    depends_on:
      - gitlab
    env_file:
      - gitlab.env
    environment:
      - REGISTRY_HTTP_ADDR=0.0.0.0:5000
      - REGISTRY_AUTH_TOKEN_REALM=https://gitlab.example.com/jwt/auth
      - REGISTRY_AUTH_TOKEN_SERVICE=container_registry
      - REGISTRY_AUTH_TOKEN_ISSUER=gitlab-issuer
      - REGISTRY_AUTH_TOKEN_ROOTCERTBUNDLE=/certs/registry.crt
      - REGISTRY_STORAGE_DELETE_ENABLED=true
    volumes:
      - /var/docker_volume/gitlab/certs:/certs
      - /var/docker_volume/gitlab/registry_data:/var/lib/registry:rw
    networks:
      - backend
      - traefik-proxy
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.registry.rule=Host(`registry.example.com`) || Host(`registry.example.de`)"
      - "traefik.http.routers.registry.entrypoints=websecure"
      - "traefik.http.routers.registry.tls.certresolver=letsencryptresolver"
      - "traefik.http.services.registry.loadbalancer.server.port=5000"

networks:
  backend:
  traefik-proxy:
    external: true

volumes:
  pgdata15:
  redis_data:

gitlab.env file

# use debugmode in gitlab
DEBUG=false

# PostgreSQL Settings
POSTGRES_DB=gitlabhq_production
POSTGRES_USER=gitlab
POSTGRES_PASSWORD=my-secret-key

# Gitlab settings
DB_USER=gitlab
DB_PASS=my-secret-key
DB_NAME=gitlabhq_production

# gitlab settings
DB_ADAPTER=postgresql
DB_HOST=postgres
DB_PORT=5432

# Redis settings for gitlab
REDIS_HOST=redis
REDIS_PORT=6379

# Registry Settings
GITLAB_REGISTRY_ENABLED=true
GITLAB_REGISTRY_GENERATE_INTERNAL_CERTIFICATES=true
GITLAB_REGISTRY_HOST=registry.example.com
GITLAB_REGISTRY_PORT=443
GITLAB_REGISTRY_API_URL=http://registry:5000
GITLAB_REGISTRY_KEY_PATH=/certs/registry.key

TZ=Europe/Vienna
GITLAB_TIMEZONE=Berlin

GITLAB_HTTPS=true
SSL_SELF_SIGNED=false

GITLAB_HOST=gitlab.example.com
GITLAB_PORT=443
GITLAB_SSH_PORT=22
#GITLAB_RELATIVE_URL_ROOT=
GITLAB_SECRETS_DB_KEY_BASE=jb...xKq
GITLAB_SECRETS_SECRET_KEY_BASE=VF...hFb
GITLAB_SECRETS_OTP_KEY_BASE=js...TWW

GITLAB_ROOT_PASSWORD=my-secret-key
GITLAB_ROOT_EMAIL=office@example.com

GITLAB_NOTIFY_ON_BROKEN_BUILDS=true
GITLAB_NOTIFY_PUSHER=false

GITLAB_EMAIL=gitlab.no-reply@example.com
GITLAB_EMAIL_REPLY_TO=gitlab.no-reply@example.com
GITLAB_INCOMING_EMAIL_ADDRESS=gitlab.no-reply@example.com

GITLAB_BACKUP_SCHEDULE=daily
GITLAB_BACKUP_TIME=05:00

# E-Mail settings
SMTP_ENABLED=true
SMTP_DOMAIN=example.com
SMTP_HOST=web2.b2go.cloud
SMTP_PORT=587
SMTP_USER=gitlab.no-reply@example.com
SMTP_PASS=mail-secret
#SMTP_SSL=false
SMTP_STARTTLS=true
SMTP_AUTHENTICATION=login

IMAP_ENABLED=true
IMAP_HOST=web2.b2go.cloud
IMAP_PORT=993
IMAP_USER=gitlab.no-reply@example.com
IMAP_PASS=mail-secret
IMAP_SSL=true
IMAP_STARTTLS=false

# OAuth Part
OAUTH_ENABLED=false
OAUTH_AUTO_SIGN_IN_WITH_PROVIDER=
OAUTH_ALLOW_SSO=
OAUTH_BLOCK_AUTO_CREATED_USERS=true
OAUTH_AUTO_LINK_LDAP_USER=false
OAUTH_AUTO_LINK_SAML_USER=false
OAUTH_EXTERNAL_PROVIDERS=

OAUTH_CAS3_LABEL=cas3
OAUTH_CAS3_SERVER=
OAUTH_CAS3_DISABLE_SSL_VERIFICATION=false
OAUTH_CAS3_LOGIN_URL=/cas/login
OAUTH_CAS3_VALIDATE_URL=/cas/p3/serviceValidate
OAUTH_CAS3_LOGOUT_URL=/cas/logout

OAUTH_GOOGLE_API_KEY=
OAUTH_GOOGLE_APP_SECRET=
OAUTH_GOOGLE_RESTRICT_DOMAIN=

OAUTH_FACEBOOK_API_KEY=
OAUTH_FACEBOOK_APP_SECRET=

OAUTH_TWITTER_API_KEY=
OAUTH_TWITTER_APP_SECRET=

OAUTH_GITHUB_API_KEY=
OAUTH_GITHUB_APP_SECRET=
OAUTH_GITHUB_URL=
OAUTH_GITHUB_VERIFY_SSL=

OAUTH_GITLAB_API_KEY=
OAUTH_GITLAB_APP_SECRET=

OAUTH_BITBUCKET_API_KEY=
OAUTH_BITBUCKET_APP_SECRET=

OAUTH_SAML_ASSERTION_CONSUMER_SERVICE_URL=
OAUTH_SAML_IDP_CERT_FINGERPRINT=
OAUTH_SAML_IDP_SSO_TARGET_URL=
OAUTH_SAML_ISSUER=
OAUTH_SAML_LABEL="Our SAML Provider"
OAUTH_SAML_NAME_IDENTIFIER_FORMAT=urn:oasis:names:tc:SAML:2.0:nameid-format:transient
OAUTH_SAML_GROUPS_ATTRIBUTE=
OAUTH_SAML_EXTERNAL_GROUPS=
OAUTH_SAML_ATTRIBUTE_STATEMENTS_EMAIL=
OAUTH_SAML_ATTRIBUTE_STATEMENTS_NAME=
OAUTH_SAML_ATTRIBUTE_STATEMENTS_USERNAME=
OAUTH_SAML_ATTRIBUTE_STATEMENTS_FIRST_NAME=
OAUTH_SAML_ATTRIBUTE_STATEMENTS_LAST_NAME=

OAUTH_CROWD_SERVER_URL=
OAUTH_CROWD_APP_NAME=
OAUTH_CROWD_APP_PASSWORD=

OAUTH_AUTH0_CLIENT_ID=
OAUTH_AUTH0_CLIENT_SECRET=
OAUTH_AUTH0_DOMAIN=
OAUTH_AUTH0_SCOPE=

OAUTH_AZURE_API_KEY=
OAUTH_AZURE_API_SECRET=
OAUTH_AZURE_TENANT_ID=

as SSL Reverse Proxy is traefik

docker-compose.yaml

version: '3'

services:
  traefik:
    restart: always
    image: traefik:v2.9
    command:
      - "--providers.docker.endpoint=unix:///var/run/docker.sock"
      - "--providers.docker=true"
      - "--providers.docker.exposedbydefault=false"
      - "--providers.docker.network=traefik-proxy"
      #- "--providers.docker.tls.insecureskipverify=true"
      - "--entrypoints.web.address=:80"
      - "--entrypoints.websecure.address=:443"
      - "--certificatesresolvers.letsencryptresolver.acme.httpchallenge=true"
      - "--certificatesresolvers.letsencryptresolver.acme.httpchallenge.entrypoint=web"
      - "--certificatesresolvers.letsencryptresolver.acme.email=webmaster@example.com"
      - "--certificatesresolvers.letsencryptresolver.acme.storage=/letsencrypt/acme.json"
    ports:
      - "80:80"
      - "443:443"
      - "8080:8080"
    volumes:
      - traefik-certificates:/letsencrypt
      - /var/run/docker.sock:/var/run/docker.sock:ro
    networks:
      - traefik-proxy
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.http-catchall.rule=hostregexp(`{host:.+}`)"
      - "traefik.http.routers.http-catchall.entrypoints=web"
      - "traefik.http.routers.http-catchall.middlewares=redirect-to-https@docker"
      - "traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https"

volumes:
  traefik-certificates:

networks:
  traefik-proxy:
    external: true

Output Docker info

Client: Docker Engine - Community
 Version:    26.1.4
 Context:    default
 Debug Mode: false

Server:
 Containers: 5
  Running: 5
  Paused: 0
  Stopped: 0
 Images: 7
 Server Version: 26.1.4
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Using metacopy: false
  Native Overlay Diff: true
  userxattr: false
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Cgroup Version: 1
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local splunk syslog
 Swarm: inactive
 Runtimes: io.containerd.runc.v2 runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: d2d58213f83a351ca8f528a95fbd145f5654e957
 runc version: v1.1.12-0-g51d5e94
 init version: de40ad0
 Security Options:
  apparmor
  seccomp
   Profile: builtin
 Kernel Version: 4.19.0-27-amd64
 Operating System: Debian GNU/Linux 10 (buster)
 OSType: linux
 Architecture: x86_64
 CPUs: 8
 Total Memory: 15.3GiB
 Name: gitlab
 ID: XEBT:NQBK:56SL:TNLM:TVOF:A3YA:XZM3:NVOA:YW55:FIXT:TF2J:G4NS
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 Labels:
  provider=generic
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
 Live Restore Enabled: false

WARNING: No swap limit support

Output docker version

Client: Docker Engine - Community
 Version:           26.1.4
 API version:       1.45
 Go version:        go1.21.11
 Git commit:        5650f9b
 Built:             Wed Jun  5 11:29:15 2024
 OS/Arch:           linux/amd64
 Context:           default

Server: Docker Engine - Community
 Engine:
  Version:          26.1.4
  API version:      1.45 (minimum version 1.24)
  Go version:       go1.21.11
  Git commit:       de5c9cf
  Built:            Wed Jun  5 11:29:15 2024
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.33
  GitCommit:        d2d58213f83a351ca8f528a95fbd145f5654e957
 runc:
  Version:          1.1.12
  GitCommit:        v1.1.12-0-g51d5e94
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0
kkimurak commented 1 month ago

@Brawn1
For your information : upgrading to 17.2.0 will likely resolve the issue. I'm still investigating what changes caused this..

I have noticed that crosslink text on the first line of commit message does not create a timeline entry for issue or incident when I was running gitlab 17.1.2. I tried it today on 17.2.0 and the issue seems to be resolved - commits were shown in the issue's timeline whether the crosslink text was in the first or third line of the commit message.