Skip to content

Instantly share code, notes, and snippets.

View thomaspoignant's full-sized avatar

Thomas Poignant thomaspoignant

View GitHub Profile
listen: 1031
pollingInterval: 1000
startWithRetrieverError: false
retriever:
kind: http
url: https://raw.githubusercontent.com/thomaspoignant/go-feature-flag/main/examples/retriever_file/flags.goff.yaml
exporter:
kind: log
enableSwagger: true
@thomaspoignant
thomaspoignant / of-goff-example.py
Created February 21, 2024 17:55
GO Feature Flag + OpenFeature example
import time
from gofeatureflag_python_provider.provider import GoFeatureFlagProvider
from gofeatureflag_python_provider.options import GoFeatureFlagOptions
from openfeature import api
from openfeature.evaluation_context import EvaluationContext
from gofeatureflag_python_provider.provider_status import ProviderStatus
retriever:
kind: github # type of retriever we are using
repositorySlug: thomaspoignant/demo-goff # repository we are retrieving
path: flags.yaml # location of the file in the repository
pollingInterval: 5000 # Time in milliseconds we wait before trying to check for changes
basePath: /
definitions:
model.FlagEval:
properties:
value: {}
type: object
model.HealthResponse:
properties:
initialized:
description: Set to true if the HTTP server is started
# sort the stages
out_degree_map = {v: d for v, d in g.out_degree() if d > 0}
zero_out_degree = [v for v, d in g.out_degree() if d == 0]
while zero_out_degree:
yield zero_out_degree
new_zero_out_degree = []
for v in zero_out_degree:
for child, _ in g.in_edges(v):
out_degree_map[child] -= 1
if not out_degree_map[child]:
@thomaspoignant
thomaspoignant / sort_pipeline_example.py
Created November 8, 2021 13:48
An example to sort a list of jobs depending on their depends.
from typing import Dict, List, Optional
import networkx as nx
def main():
stages = {
"Lint": [],
"Test": [],
"Coverage": ["Test"],
"Docs": ["Coverage", "Lint"],
@thomaspoignant
thomaspoignant / example.go
Created October 11, 2021 08:12
Go-feature-flag example
/**
test-flag:
rule: (role eq "devops") and (env eq "pro") and (key eq "example@test.com") and (company eq "go-feature-flag")
percentage: 100
true: true
false: false
default: false
*/
user := ffuser.NewUserBuilder("example@test.com").
docker run --rm -it -p 4566:4566 -p 4571:4571 localstack/localstack
# create topic
aws --region=eu-west-1 --endpoint-url=http://localhost:4566 sns create-topic --name responseTopic
# list topic and get ARN
aws --region=eu-west-1 --endpoint-url=http://localhost:4566 sns list-topics
# create SQS queue
aws --region=eu-west-1 --endpoint-url=http://localhost:4566 sqs create-queue --queue-name test-queue

Keybase proof

I hereby claim:

  • I am thomaspoignant on github.
  • I am thomaspoignant (https://keybase.io/thomaspoignant) on keybase.
  • I have a public key ASDtkh-5twLIZx6Ip4W7QaueOa06almAgIuHeoc3DToyXgo

To claim this, I am signing this object:

@thomaspoignant
thomaspoignant / pipeline.go
Last active February 7, 2023 15:10
Building a pipeline system in golang
package main
import (
"fmt"
"gopkg.in/yaml.v3"
"io"
"net/http"
)
// PipelineConfig is the representation of a pipeline in the configuration.