Sign inSign up

flagshipio/code-analyzer

By flagshipio

•Updated about 2 years ago

Find all Flagship.io flags usage inside your codebase and send their usage to the Flagship platform

Image
0

8.3K

flagshipio/code-analyzer repository overview

codecov

⁠Flagship Code Analyzer

Flagship Code Analyzer is a CLI and a docker image that can analyze your codebase and detect the usage of Flagship flags, in order to synchronize them with your Flag view in the platform.

⁠Run

⁠With CLI

export FLAGSHIP_CLIENT_ID=FLAGSHIP_MANAGEMENT_API_CLIENT_ID
export FLAGSHIP_CLIENT_SECRET=FLAGSHIP_MANAGEMENT_API_CLIENT_SECRET
export ACCOUNT_ID=FLAGSHIP_ACCOUNT_ID
export ENVIRONMENT_ID=FLAGSHIP_ENVIRONMENT_ID
export REPOSITORY_URL=https://gitlab.com/org/repo
export REPOSITORY_BRANCH=master
export DIRECTORY=./
./code-analyzer

⁠With docker

docker run -v $(pwd)/your_repo:/your_repo -e FLAGSHIP_CLIENT_ID=FLAGSHIP_MANAGEMENT_API_CLIENT_ID -e FLAGSHIP_CLIENT_SECRET=FLAGSHIP_MANAGEMENT_API_CLIENT_SECRET -e ACCOUNT_ID=FLAGSHIP_ACCOUNT_ID -e ENVIRONMENT_ID=your_env_id -e REPOSITORY_URL=https://gitlab.com/org/repo -e REPOSITORY_BRANCH=master -e DIRECTORY=/your_repo flagshipio/code-analyzer

⁠Supported file languages

  • .cs .fs
  • .go
  • .java
  • .js .jsx
  • .kt
  • .m
  • .php
  • .py
  • .swift
  • .ts .tsx
  • .vb

⁠Environment variables

⁠Flagship client ID (required)

This environment variable contains the Flagship client id necessary to authenticate request and send flags infos to the Flagship Platform

  • example : FLAGSHIP_CLIENT_ID=FLAGSHIP_MANAGEMENT_API_CLIENT_ID

⁠Flagship client secret (required)

This environment variable contains the Flagship client secret necessary to authenticate request and send flags infos to the Flagship Platform

  • example : FLAGSHIP_CLIENT_SECRET=FLAGSHIP_MANAGEMENT_API_CLIENT_SECRET

⁠Account ID (required)

This environment variable contains the Flagship account ID to synchronize flags usage for the matching environment

  • example : ACCOUNT_ID=your_flagship_env_id

⁠Environment ID (required)

This environment variable contains the Flagship environment ID to synchronize flags usage for the matching environment

  • example : ENVIRONMENT_ID=your_flagship_env_id

⁠Repository URL (required)

This environment variable should be set to the root URL of your repository, and is used to track the links of the files where your flags are used

  • example : REPOSITORY_URL=https://gitlab.com/org/repo
  • default value: ""

⁠Repository branch (required)

This environment variable should be set to the branch of the code you want to analyse, and is used to track the links of the files where your flags are used

  • example : REPOSITORY_BRANCH=master
  • default value: ""

⁠Files to exclude (optional)

This environment variable should contain a comma separated list of glob to exclude

  • example : FILES_TO_EXCLUDE=".git/*,go.mod,go.sum,main.go,internal/*,example/*"
  • default value: ""

⁠Directory to analyse (optional)

This environment variable should contain the directory you want to analyse

  • example : DIRECTORY="."
  • default value: "."

⁠Use with Gitlab CI

You can use the code analyzer to push flags references to your Flagship environment when code is pushed to a specific branch or tag

analyze_flag_references:
  image: flagshipio/code-analyzer:master
  stage: analyze
  variables:
    REPOSITORY_URL: $CI_PROJECT_URL
    REPOSITORY_BRANCH: $CI_COMMIT_BRANCH
    FLAGSHIP_CLIENT_ID: FLAGSHIP_MANAGEMENT_API_CLIENT_ID
    FLAGSHIP_CLIENT_SECRET: FLAGSHIP_MANAGEMENT_API_CLIENT_SECRET
    ACCOUNT_ID: YOUR_ACCOUNT_ID
    ENVIRONMENT_ID: YOUR_ENVIRONMENT_ID
  script:
    - /root/code-analyser
  only:
    - master

⁠Contribute

⁠Dependencies

This repository needs go v1.13+ to work

⁠Install packages

go mod download

⁠Run

  1. Go to the example directory, and copy paste a folder you want to analyse
  2. Create a .env file to customize your environment variable
  3. Run go run *.go in the example folder to run the code

⁠Test

make test

Tag summary

Content type

Image

Digest

sha256:c96e62033…

Size

6.3 MB

Last updated

about 2 years ago

docker pull flagshipio/code-analyzer:v0.9.3