GithubHelp home page GithubHelp logo

backstage-plugin-gitlab's Introduction

Backstage GitLab Plugin

Version Contributions welcome Downloads License Stars Badge Maintenance

Build Status

Language Repo Size Hits

Website: https://gitlab.com/

Contributors Languages Pipeline Status

Merge Request Information

Issue Information

Setup

  1. If you have a standalone app (you didn't clone this repo), then do
# From your Backstage root directory
cd packages/app
yarn add @loblaw/backstage-plugin-gitlab
  1. Add a new GitLab tab to the entity page.
// packages/app/src/components/catalog/EntityPage.tsx

import { isGitlabAvailable, EntityGitlabContent } from '@loblaw/backstage-plugin-gitlab';

// Farther down at the serviceEntityPage declaration
const serviceEntityPage = (
  <EntityLayout>
    {/* Place the following section where you want the tab to appear */}
    <EntityLayout.Route if={isGitlabAvailable} path="/gitlab" title="Gitlab">
       <EntityGitlabContent />
    </EntityLayout.Route>
  </EntityLayout>
);
  1. Add the GitLab cards to the Overview tab on the entity page(Optional).
// packages/app/src/components/catalog/EntityPage.tsx

import {
  isGitlabAvailable,
  EntityGitlabContent,
  EntityGitlabLanguageCard,
  EntityGitlabContributorsCard,
  EntityGitlabMergeRequestsTable,
  EntityGitlabMergeRequestStatsCard,
  EntityGitlabPipelinesTable
} from '@loblaw/backstage-plugin-gitlab';

//Farther down at the overviewContent declaration
//You can add only selected widgets or all of them.
const overviewContent = (
  <Grid container spacing={3} alignItems="stretch">
    <EntitySwitch>
      <EntitySwitch.Case if={isGitlabAvailable}>
        <Grid item md={6}>
          <EntityGitlabContributorsCard />
          <EntityGitlabLanguageCard />
          <EntityGitlabMergeRequestStatsCard />
          <EntityGitlabPipelinesTable />
          <EntityGitlabMergeRequestsTable />
        </Grid>
      </EntitySwitch.Case>
    </EntitySwitch>
  </Grid>
);
  1. Add integration: In app-config.yaml add the integration for gitlab:
integrations:
  gitlab:
    - host: gitlab.com
      token: ${GITLAB_TOKEN}
  1. Add proxy config:
  '/gitlabci':
    target: '${GITLAB_URL}/api/v4'
    allowedMethods: ['GET']
    headers:
      PRIVATE-TOKEN: '${GITLAB_TOKEN}'
  • Default GitLab URL: https://gitlab.com
  • GitLab Token should be with of scope read_api and can be generated from this URL
  1. Add a gitlab.com/project-id annotation to your respective catalog-info.yaml files, on the format
# Example catalog-info.yaml entity definition file
apiVersion: backstage.io/v1alpha1
kind: Component
metadata:
  # ...
  annotations:
      gitlab.com/project-id: 'project-id' #1234. This must be in quotes and can be found under Settings --> General
      or
      gitlab.com/project-slug: 'project-slug' # group_name/project_name
spec:
  type: service
  # ...

Note: spec.type can take values in ['website','library','service'] but to render GitLab Entity, Catalog must be of type service

Features

  • List top 20 builds for a project
  • List top 20 Merge Requests for a project
  • List top 20 Issues for a project
  • View Contributors for a project
  • View Languages used for a project
  • View Pipeline status for a project
  • Works for both project and personal tokens
  • Pagination for builds
  • Pagination for Merge Requests
  • Merge Requests Statistics

backstage-plugin-gitlab's People

Contributors

abhay-soni-developer avatar amandeepsingh-bhamra avatar balasundaram avatar dependabot[bot] avatar erog38 avatar mrs83 avatar nikmel2803 avatar nishkarshraj avatar pragone avatar ryharrin avatar saipurnima avatar satrox28 avatar williamscs avatar zasdaym avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

backstage-plugin-gitlab's Issues

Issue Loading MR's - version 0.1.14

Hi, I'm trying to use your plugin, but I keep running into this error which I believe is related to MR's.

image

TypeError: Cannot read properties of undefined (reading 'map')
    at DenseTable$1 (webpack-internal:///../../node_modules/@loblaw/backstage-plugin-gitlab/dist/index.esm.js:1783:35)
    at renderWithHooks (webpack-internal:///../../node_modules/@hot-loader/react-dom/cjs/react-dom.development.js:14804:18)
    at mountIndeterminateComponent (webpack-internal:///../../node_modules/@hot-loader/react-dom/cjs/react-dom.development.js:17483:13)
    at beginWork (webpack-internal:///../../node_modules/@hot-loader/react-dom/cjs/react-dom.development.js:18597:16)
    at HTMLUnknownElement.callCallback (webpack-internal:///../../node_modules/@hot-loader/react-dom/cjs/react-dom.development.js:189:14)
    at Object.invokeGuardedCallbackDev (webpack-internal:///../../node_modules/@hot-loader/react-dom/cjs/react-dom.development.js:238:16)
    at invokeGuardedCallback (webpack-internal:///../../node_modules/@hot-loader/react-dom/cjs/react-dom.development.js:293:31)
    at beginWork$1 (webpack-internal:///../../node_modules/@hot-loader/react-dom/cjs/react-dom.development.js:23204:7)
    at performUnitOfWork (webpack-internal:///../../node_modules/@hot-loader/react-dom/cjs/react-dom.development.js:22158:12)
    at workLoopSync (webpack-internal:///../../node_modules/@hot-loader/react-dom/cjs/react-dom.development.js:22131:22)

Possible to change Gitlab hostname

Is it possible to make the catalog-info annotations to be a custom gitlab host, instead of gitlab.com?

Example below if I remove the gitlab.com/project-id: '908' annotation the gitlab ci plugin does not find the component

apiVersion: backstage.io/v1alpha1
kind: Component
metadata:
  name: "netcore-demo"
  description: ""
  annotations:
    gitlab-dev.example.com/project-slug: backstage-demo/netcore-demo
    gitlab-dev.example.com/project-id: '908'
    gitlab.com/project-id: '908'
    backstage.io/techdocs-ref: dir:.
spec:
  type: service
  lifecycle: experimental
  owner: "team-a"

The future of plugin?

Hi @satrox28!
My name is Andrea and I work for @immobiliare.
I want to thank you so much for the amazing work done on this plugin.
We really appreciate your work and have also contributed to your plugin with my colleagues
@antoniomuso and @simonecorsi.
We also love backstage and the open source world and we are introducing it in the company in a very central way.
For some time now we have noticed a decrease in maintenance activities on this plugin.
If I may, may I ask why? Perhaps you are doing something else and are no longer interested?
We are currently stuck advancing our backstage version if this plugin also doesn't continue to evolve and keep up with the backstage advancements.
I wanted to ask what projects do you have for this plugin? Do you have a vision?
If you have little time to dedicate to it, can we give you a hand as maintainer of the plugin?
We are currently already maintaining another plugin in our organization: https://github.com/immobiliare/backstage-plugin-ldap-auth
Let me know and thanks again for all you do!
I await yours!
Best

Gitlab plugin returning 404

Hello similar to issue 114 I manage to show the GitLab tab but fail to show any data. It might be some authentication/token issue, but after running the following command in my terminal it successfully gathers the request.

curl --request GET --header "PRIVATE-TOKEN:<Token>" https://gitlab.sample.com/api/v4/projects/123

I am setting it differently rather than the instructions provided, but the values show correctly when I deploy my application. I am a bit confused about how the request is sent. It is getting the following

https://gitlab.url.sample.com/api/proxy/gitlabci/projects/123?

The following configuration that I have is

  proxy:
    'gitlabci':
      target:
        $env: GITLAB_URL
      allowedMethods: ['GET']
      headers:
        PRIVATE-TOKEN:
          $env: GITLAB_PROD_API_TOKEN

Can you add some more info about contributers

Hi, that's grate work...!! congratulations...

can you add more information about contributor, like how many commit he/she has done.
more information like GitHub Insight Plugin...

Thanks again for developing this...

Feature request: Add log to debug interaction with GitLab

The instructions in the plugin say to "Link to an existing entity file
Example: https://github.com/backstage/backstage/blob/master/catalog-info.yaml"

That URL produces the file in the UI (though not the raw version), but putting that in the Backstage UI produces a 400 from (presumably GitLab?)

Screenshot 2022-11-22 at 5 33 20 PM

There's nothing in the frontend or backend log that indicates what URL it tried to use, or how GitLab responded.

Maybe also the backend should be able to handle repositories URLs (/api/v4/projects/:id/repository/files/:filepath/raw?ref=branch) also. That URL would work, but the Backstage UI complains that it's not a file (I'm guessing because it doesn't end in .yaml).

Screenshot 2022-11-22 at 5 38 39 PM

Basically I have no way to write a URL that gets catalog-info.yaml that will be accepted by both the Backstage UI and the GitLab UI via a personal access token. And I'm kind of in the dark about where the problem is, because Backstage doesn't say what it's trying to do.

Create check like isGitLabAvailable

To get a less cluttered interface in Backstage, if think it should be great to have somethin like isGitLabAvailable - so if there is no Gitlab annotation, Gitlab tab is not showed in the interface (there are similar functions in Lighthouse - isLighthouseAvailable and in Github Actions - isGithubActionsAvailable).

Example:

    </EntityLayout.Route>
        <EntityLayout.Route if={isLighthouseAvailable} path="/lighthouse" title="Lighthouse">
      <EntityLighthouseContent />
    </EntityLayout.Route>
    <EntityLayout.Route if={isGitLabAvailable} path="/gitlab" title="Gitlab">
      <EntityGitlabContent />
    </EntityLayout.Route>

useLocation() may be used only in the context of a <Router> component.

Adding this repository to a new app breaks the whole application with the error

useLocation() may be used only in the context of a <Router> component.

on the WebUI.


System:

  • Docker Desktop WSL2
  • VSCode Dev Container [Node.js & PostgreSQL]
node ➜ /workspace $ yarn --version
1.22.19
node ➜ /workspace $ node --version
v16.17.1

Steps to reproduce:

  1. Create app via
npx @backstage/create-app
  1. Adding this plugin from app root folder via
yarn workspace app add @loblaw/backstage-plugin-gitlab
  1. Starting with
yarn dev

How to add gitlab project id to catalog-info during Create Component

Hi,

We have a component with yaml similar to below. We would like to during the "Create Component" process inject the gitlab project id to the catalog-info so that we enable the gitlab integration.

I cannot work out how or what to reference in order to make this work. Is it possible to get some pointers?

apiVersion: backstage.io/v1alpha1
kind: Component
metadata:
  name: ${{ values.component_id | dump }}
  description: ${{ values.description | dump }}
  annotations:    
    gitlab.com/project-id:  ${{ WHAT_TO_REFERENCE_HERE }}
    backstage.io/techdocs-ref: dir:.
spec:
  type: service
  lifecycle: experimental
  owner: ${{values.owner | dump}}

TypeError: mergeRequests.data is undefined

I've followed the steps outlined for adding this plugin but when I go to the "Gitlab" tab I'm presented with this error. Below is the stack trace. Not sure if this is a bug or if I've done something wrong.

Configuration:

  • Gitlab integration configured
  • Proxy for /gitlabci is configured
  • EntityPage updated to add the Gitlab component tab
  • catalog-info.yaml updated to have the gitlab.com/project-id: set correctly (also tried slug)

Expected Behavior:

When navigating to the Gitlab tab on the component the below exception is rendered in the UI

Actual Behavior:

Exception thrown

Stack Trace

DenseTable$1@webpack-internal:///../../node_modules/@loblaw/backstage-plugin-gitlab/dist/index.esm.js:1808:16
renderWithHooks@webpack-internal:///../../node_modules/@hot-loader/react-dom/cjs/react-dom.development.js:14804:27
mountIndeterminateComponent@webpack-internal:///../../node_modules/@hot-loader/react-dom/cjs/react-dom.development.js:17483:13
beginWork@webpack-internal:///../../node_modules/@hot-loader/react-dom/cjs/react-dom.development.js:18597:16
callCallback@webpack-internal:///../../node_modules/@hot-loader/react-dom/cjs/react-dom.development.js:189:14
invokeGuardedCallbackDev@webpack-internal:///../../node_modules/@hot-loader/react-dom/cjs/react-dom.development.js:238:16
invokeGuardedCallback@webpack-internal:///../../node_modules/@hot-loader/react-dom/cjs/react-dom.development.js:293:31
beginWork$1@webpack-internal:///../../node_modules/@hot-loader/react-dom/cjs/react-dom.development.js:23204:28
performUnitOfWork@webpack-internal:///../../node_modules/@hot-loader/react-dom/cjs/react-dom.development.js:22155:12
workLoopSync@webpack-internal:///../../node_modules/@hot-loader/react-dom/cjs/react-dom.development.js:22131:22
performSyncWorkOnRoot@webpack-internal:///../../node_modules/@hot-loader/react-dom/cjs/react-dom.development.js:21757:9
flushSyncCallbackQueueImpl/<@webpack-internal:///../../node_modules/@hot-loader/react-dom/cjs/react-dom.development.js:11090:24
unstable_runWithPriority@webpack-internal:///../../node_modules/scheduler/cjs/scheduler.development.js:653:12
runWithPriority$1@webpack-internal:///../../node_modules/@hot-loader/react-dom/cjs/react-dom.development.js:11040:10
flushSyncCallbackQueueImpl@webpack-internal:///../../node_modules/@hot-loader/react-dom/cjs/react-dom.development.js:11085:24
flushSyncCallbackQueue@webpack-internal:///../../node_modules/@hot-loader/react-dom/cjs/react-dom.development.js:11073:3
scheduleUpdateOnFiber@webpack-internal:///../../node_modules/@hot-loader/react-dom/cjs/react-dom.development.js:21200:9
dispatchAction@webpack-internal:///../../node_modules/@hot-loader/react-dom/cjs/react-dom.development.js:15661:17
useAsyncFn/callback</<@webpack-internal:///../../node_modules/react-use/esm/useAsyncFn.js:27:61

Environment

OS: Windows_NT 10.0.19043 - win32/x64
node: v14.17.1
yarn: 1.22.5
cli: 0.10.4 (installed)

Dependencies:
@backstage/app-defaults 0.1.3
@backstage/backend-common 0.10.1
@backstage/backend-tasks 0.1.1
@backstage/catalog-client 0.5.3
@backstage/catalog-model 0.9.8
@backstage/cli-common 0.1.6
@backstage/cli 0.10.4
@backstage/config-loader 0.9.1
@backstage/config 0.1.11
@backstage/core-app-api 0.3.0
@backstage/core-components 0.7.6, 0.8.2
@backstage/core-plugin-api 0.1.13, 0.2.2, 0.4.0
@backstage/errors 0.1.5
@backstage/integration-react 0.1.17
@backstage/integration 0.7.0
@backstage/plugin-api-docs 0.6.20
@backstage/plugin-app-backend 0.3.21
@backstage/plugin-auth-backend 0.6.0
@backstage/plugin-catalog-backend 0.19.4
@backstage/plugin-catalog-import 0.7.7
@backstage/plugin-catalog-react 0.6.9
@backstage/plugin-catalog 0.7.6
@backstage/plugin-github-actions 0.4.29
@backstage/plugin-org 0.3.32
@backstage/plugin-permission-common 0.3.0
@backstage/plugin-permission-react 0.2.0
@backstage/plugin-proxy-backend 0.2.15
@backstage/plugin-scaffolder-backend-module-cookiecutter 0.1.7
@backstage/plugin-scaffolder-backend 0.15.19
@backstage/plugin-scaffolder-common 0.1.2
@backstage/plugin-scaffolder 0.11.16
@backstage/plugin-search-backend-node 0.4.3
@backstage/plugin-search-backend 0.3.0
@backstage/plugin-search 0.5.3
@backstage/plugin-tech-radar 0.5.0
@backstage/plugin-techdocs-backend 0.12.2
@backstage/plugin-techdocs 0.12.12
@backstage/plugin-user-settings 0.3.14
@backstage/search-common 0.2.1
@backstage/techdocs-common 0.11.2
@backstage/test-utils 0.2.1
@backstage/theme 0.2.14
@backstage/types 0.1.1
@backstage/version-bridge 0.1.1

Not showing data for self hosted Gitlab

When I am setting up plugin for self hosted gitlab and not gitlab.com It is giving below error message:
Error useLocation() may be used only in the context of a <Router> component. Call Stack  l   node_modules/@loblaw/backstage-plugin-gitlab/node_modules/react-router-dom/node_modules/react-router/index.js:30:286  H   node_modules/@loblaw/backstage-plugin-gitlab/node_modules/react-router-dom/node_modules/react-router/index.js:39:299  useRouteRef   node_modules/@loblaw/backstage-plugin-gitlab/node_modules/@backstage/core-plugin-api/dist/index.esm.js:445:85  RoutableExtensionWrapper   node_modules/@loblaw/backstage-plugin-gitlab/node_modules/@backstage/core-plugin-api/dist/index.esm.js:528:15  renderWithHooks   node_modules/react-dom/cjs/react-dom.development.js:14985:18  updateFunctionComponent   node_modules/react-dom/cjs/react-dom.development.js:17356:20  mountLazyComponent   node_modules/react-dom/cjs/react-dom.development.js:17677:17  beginWork   node_modules/react-dom/cjs/react-dom.development.js:19055:16  HTMLUnknownElement.callCallback   node_modules/react-dom/cjs/react-dom.development.js:3945:14  Object.invokeGuardedCallbackDev   node_modules/react-dom/cjs/react-dom.development.js:3994:16

Getting started instructions on README.md do not call out the need to configure the integration

After a bit of back and forth trying to get the Gitlab plugin to work with private repositories I realised from some comments in previous issues, that I should also configure an integration in the app-config.yaml file.

The file should look something like:

integrations:
  github:
    - host: github.com
      token: ${GITHUB_TOKEN}
  gitlab:
    - host: gitlab.com
      token: ${GITLAB_TOKEN}

and pass the token as an env variable.

The error in question whenever I tried to add an existing repository was:

[1] 2021-09-29T01:45:41.499Z catalog warn Unable to read url, Error: Could not get GitLab project ID for: https://gitlab.com/XXXXX/-/blob/main/catalog-info.yaml, Error: GitLab Error 'undefined', undefined type=plugin entity=location:default/generated-346f310c9eee670f6ae0fce127e6f09847afb2b1

Once the token config was added, the component was imported correctly

Bug in the IssuesTable component

In line 68 of the IssuesTable.tsx file a check is made to assign the variable projectId the value of project_id (if it was passed as a parameter to the component), otherwise the value of the id attribute of the projectDetails object is passed.

const { value, loading, error } = useAsync(async (): Promise<{
    data: IssueObject[];
    projectName: string;
    }> => {
        let projectDetails: any = await GitlabCIAPI.getProjectDetails(project_slug);
        let projectId = project_id ? project_id : projectDetails?.id; // Line 68
        let projectName = await GitlabCIAPI.getProjectName(projectId);
        const gitlabIssuesObject = await GitlabCIAPI.getIssuesSummary(project_id); // Line 70 - The error occurs here
        const data = gitlabIssuesObject?.getIssuesData;
        let renderData: any = { data, projectName };
        
        return renderData;
}, []);

The error occurs when the project_id parameter is not passed to the component and on line 70 the request is made by passing an undefined value. This happens when the catalog-info.yaml file has only the gitlab.com/project-slug annotation.
The solution is simple: just pass the variable projectId (not project_id) when calling the API, as is done in other components such as PipelinesTable.tsx.

bump backstage dependencies

Hey all! Looking to implement this into our installation, but unfortunately several packages are out of date. Looks like dependabot has some open PR's but would it be possible to bump backstage scoped versions?

GitLab Pipeline is not visible in Catalog section of Backstage component

Hi Team,
I am not able to view the Gitlab pipeline in the catalog section of Backstage Component after installing Gitlab Plugin.
we have tried using both the ways i.e., via gitlab.com/project-id, gitlab.com/project-slug.
As per my information if we use project-id, then we might need to create a custom action but even if we are using project-slug then we must be able to view Gitlab pipeline information.
I am also adding my catalog-info.yaml below:

apiVersion: backstage.io/v1alpha1
kind: Component
metadata:
name: ${{values.component_id | dump}}
{%- if values.description %}
description: This is app service template #${{values.description | dump}}
{%- endif %}
annotations:

gitlab.com/project-id: 'project-id'

gitlab.com/project-slug: 'group-name/${{values.repo_name}}' 

spec:
type: service
lifecycle: experimental
owner: ${{values.owner | dump}}

@Balasundaram @saipurnima @satrox28 @NishkarshRaj Could you please help me in resolving the issue.

Plugin broken with backstage version 1.6.0

Hey,

reproduce steps are pretty simple. Using node 16, running backstage create-app, then adding backstage-plugin-gitlab. Try to run the app through yarn dev. On page load, you get greeted with the following:

useLocation() may be used only in the context of a <Router> component.

Making backstage break completely, not just non-working plugin.

I'm assuming something broke with some newer version of something. I'm experimenting with backstage for the first time, so I can't help identify when.

Feature request: add support for readme.md display

hi, thanks for the gitlab plugin.

This is a feature request to support rendering projects readme on the component entity page - as extra widget probably.
Backstage has its own techdocs plugin - but that fulfills different use case then a simple project readme.
The gitlab api provides a readme link in the api response as "readme_url" attribute. The idea is to simply fetch the file from the provided location and render it on the component page with markdown renderer.

Thanks

Feature: Guide on how to use the Entries seperately

Fantastic work on this plugin, really shows some great information.

Is it possible/can you tell me how I could take some of the individual Entry Panels (eg Languages) and use it on the Summary page rather than only having the information embedded into the full GitLab page?

I'd love to have the summary of a project show the languages involved as seen by Gitlab but I don't know how to make that work.

NodeJS is not my first language... or indeed my 5th... so please assume i'm an idiot :-D

Cheers

Feature Request: add support for multiple Gitlab instances

Very similar to a feature request for the Sentry Plugin in the main Backstage repo (backstage/backstage#13333) could you please add the ability for the Gitlab plugin to be able to specify a specific instance to connect and fetch information - this will cover the scenario where there are multiple self-hosted Gitlab instances deployed within an organization.

Returns 404 when running on azure app service

I added the plugin to a backstage instance running on azure app service as docker container. The plugin returns 404 hitting
https://my.domain.com/api/proxy/gitlabci/projects/gitlabgroup%2Fprojectname.

I verified the proxy works fine when I hit https://my.domain.com/api/proxy/test which goes to example.com.
I am seeing in the logs that returned 404 the url shown as https://my.domain.com/api/proxy/gitlabci/projects/gitlabgroup/projectname. I am not sure if the forward slash is the issue.

It works locally on my machine when using separate port for backend. Can you please let me know if there is anything I have to do for running this plugin?

thank you.

Plugin broken with latest backstage 1.8.3

Plugin seems to be broken with latest backstage version:

useLocation() may be used only in the context of a <Router> component.

Overview page works fine but gitlab tab does not.

Backstage app created with Backstage version 1.8.3 (Create app version 0.4.34)
My plugin configuration is:

<EntityLayout.Route if={isGitlabAvailable} path="/gitlab" title="Gitlab">
   <EntityGitlabContent />
</EntityLayout.Route>

Some errors with isGitlabAvailable

Hello

I am trying to update my Backstage installation to 1.5.0 and my plugin version to 0.1.24 but i find an error in:

// packages/app/src/components/catalog/EntityPage.tsx

import { isGitlabAvailable, EntityGitlabContent } from '@loblaw/backstage-plugin-gitlab';

// Farther down at the serviceEntityPage declaration
const serviceEntityPage = (
  <EntityLayout>
    {/* Place the following section where you want the tab to appear */}
    <EntityLayout.Route if={isGitlabAvailable} path="/gitlab" title="Gitlab">
       <EntityGitlabContent />
    </EntityLayout.Route>
  </EntityLayout>
);

This is the error:

The type '(entity: import("/Users/samu/git/backstage/app/node_modules/@loblaw/backstage-plugin-gitlab/node_modules/@backstage/catalog-model/dist/index"). Entity) => boolean' cannot be assigned to type '(entity: import("/Users/x404868/git/backstage/app/node_modules/@backstage/catalog-model/dist/index").Entity) => boolean'.
  The parameter types 'entity' and 'entity' are not supported.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.