1. 程式人生 > >hasura graphql server 整合gitlab

hasura graphql server 整合gitlab

預設官方是提供了gitlab 整合的demo的,但是因為gitlab 一些版本的問題,
跑起來總有問題,所以查詢相關資料測試了一個可以執行的版本

專案使用docker-compose 執行 參考 https://github.com/Trantect/docker-compose.yamls

環境準備

  • docker-compose 檔案
version: '2'

services:
  redis:
    image: sameersbn/redis:4.0.9-1
    command:
    - --loglevel warning
    volumes:
    - ./srv/docker/gitlab/redis:/var/lib/redis:Z
  graphql-engine:
    image: hasura/graphql-engine:v1.0.0-alpha24
    ports:
    - "8080:8080"
    depends_on:
    - postgresql
    environment:
    - "POSTGRES_PASSWORD:password"
    command: >
      /bin/sh -c "
      graphql-engine --database-url postgres://postgres:
[email protected]
:5432/gitlabhq_production serve --enable-console; " postgresql: image: sameersbn/postgresql:10 volumes: - ./srv/docker/gitlab/postgresql:/var/lib/postgresql:Z ports: - "5432:5432" environment: - DB_USER=gitlab - DB_PASS=password - PG_PASSWORD=password - DB_NAME=gitlabhq_production - DB_EXTENSION=pg_trgm gitlab: image: sameersbn/gitlab:11.3.4 depends_on: - redis - postgresql ports: - "10080:80" - "10022:22" volumes: - ./srv/docker/gitlab/gitlab:/home/git/data:Z environment: - DEBUG=false - DB_ADAPTER=postgresql - DB_HOST=postgresql - DB_PORT=5432 - DB_USER=gitlab - DB_PASS=password - DB_NAME=gitlabhq_production - REDIS_HOST=redis - REDIS_PORT=6379 - TZ=Asia/Kolkata - GITLAB_TIMEZONE=Kolkata - GITLAB_HTTPS=false - SSL_SELF_SIGNED=false - GITLAB_HOST=localhost - GITLAB_PORT=10080 - GITLAB_SSH_PORT=10022 - GITLAB_RELATIVE_URL_ROOT= - GITLAB_SECRETS_DB_KEY_BASE=long-and-random-alphanumeric-string - GITLAB_SECRETS_SECRET_KEY_BASE=long-and-random-alphanumeric-string - GITLAB_SECRETS_OTP_KEY_BASE=long-and-random-alphanumeric-string - GITLAB_ROOT_PASSWORD= - GITLAB_ROOT_EMAIL= - GITLAB_NOTIFY_ON_BROKEN_BUILDS=true - GITLAB_NOTIFY_PUSHER=false -
[email protected]
- [email protected] - [email protected] - GITLAB_BACKUP_SCHEDULE=daily - GITLAB_BACKUP_TIME=01:00 - SMTP_ENABLED=false - SMTP_DOMAIN=www.example.com - SMTP_HOST=smtp.gmail.com - SMTP_PORT=587 - [email protected] - SMTP_PASS=password - SMTP_STARTTLS=true - SMTP_AUTHENTICATION=login - IMAP_ENABLED=false - IMAP_HOST=imap.gmail.com - IMAP_PORT=993 -
[email protected]
- IMAP_PASS=password - IMAP_SSL=true - IMAP_STARTTLS=false - 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_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_AZURE_API_KEY= - OAUTH_AZURE_API_SECRET= - OAUTH_AZURE_TENANT_ID=

啟動&&測試

  • 啟動

    可能需要啟動多次,服務有依賴,有些服務可能還沒有執行

docker-compose up -d
  • 效果

  • 新增引擎託管的表
  • 查詢
query {
  projects {
    id
    ci_id
    created_at
    creator_id
    archived
    star_count
    storage_version
    description
    updated_at
    namespace_id
  }
}

說明

整合起來很方便,可以便捷的進行ci/cd相關功能的開發,同時包含快捷的api 訪問

參考資料

https://github.com/rongfengliang/graphql-engine-gitlab
https://docs.hasura.io/1.0/graphql/manual/index.html
https://github.com/Trantect/docker-compose.yamls