Skip to content

Instantly share code, notes, and snippets.

View ihorkatkov's full-sized avatar

Ihor Katkov ihorkatkov

View GitHub Profile
@ihorkatkov
ihorkatkov / gist:ad65e53ff9a7245d023dab8f7eab2770
Created March 19, 2026 21:46
Fix Anthropic subscription in Opencode subscription
#!/bin/bash
# Sync Claude Code OAuth token to OpenCode
# Reads the token from macOS Keychain and writes it to OpenCode's auth.json
set -e
# Read Claude Code credentials from macOS Keychain
TOKEN_JSON=$(security find-generic-password -s "Claude Code-credentials" -w 2>/dev/null || true)
if [ -z "$TOKEN_JSON" ]; then
echo "Error: No Claude Code credentials found in Keychain."
test "invalidates some quotes when parcel dimensions cannot be handled by a vehicle type", %{
bypass: bypass
} do
Bypass.expect(bypass, "POST", "/v1/commercial-api/get-a-quote", fn conn ->
Conn.resp(conn, 200, Jason.encode!(Fixtures.Gophr.quotes_success_response(40)))
end)
pending_quotes =
[:bicycle, :bicycle_cargo, :motorcycle, :car, :van_small, :van]
|> Enum.map(&generate_quote/1)
@ihorkatkov
ihorkatkov / example.ex
Created June 12, 2020 11:56
How to pattern match
defmodule BucklerBot.Handlers.Private do
use Agala.Provider.Telegram, :handler
import BucklerBot.Gettext
require Logger
def init(opts), do: opts
def call(conn = %Agala.Conn{
request: %{"message" => %{"chat" => %{"id" => chat_id, "type" => "private"}, "text" => "/ping"}}
}, _) do
@ihorkatkov
ihorkatkov / example.ex
Last active June 12, 2020 11:52
How to not pattern match
defmodule BucklerBot.Handlers.Private do
use Agala.Provider.Telegram, :handler
import BucklerBot.Gettext
require Logger
def init(opts), do: opts
def call(conn = %Agala.Conn{
request: %{"message" => %{"chat" => %{"id" => chat_id, "type" => "private"}, "text" => "/ping"}}
}, _) do
from d in Delivery,
join: o in Order, on: o.id == d.order_id,
join: h in HistoryItem, on: h.delivery_id == d.id,
preload: [history_items: h, order: o],
where: … # Here my where clause
select: d
from d in Delivery,
join: in Order, on: o.id == d.order_id,
join: h in HistoryItem, on: h.delivery_id == d.id,
where: … # Here my where clause
select: {d, o, h}
from d in Delivery,
join: o in Order, on: o.id == d.order_id,
where: ... # Here my where clause
select: {d, o}
@ihorkatkov
ihorkatkov / genserver.ex
Created January 28, 2019 07:57
Genserver example
defmodule Spread.Pulser.Worker do
@moduledoc """
This module manages the flow of opportunities and trades
"""
use GenServer
alias Spread.Pulser.Logic, as: PulserLogic
alias Spread.TradingPair.Manager
## Client API
@ihorkatkov
ihorkatkov / story.js
Last active September 19, 2018 09:04
Story example
import React from 'react'
import { storiesOf, action } from '@storybook/react'
import Component from '../../../src/components/MunicipalitySelect/index'
import Provider from '../../../src/test/MockedApolloProvider'
const defaultValue = {
id: 'TG9jYXRpb246MzA=',
name: 'Vestby',
slug: 'vestby_akershus_municipality',
__typename: 'Location',
@ihorkatkov
ihorkatkov / Uploader.js
Created September 19, 2018 09:00
Example with file uploader component
import React from 'react'
import { graphql } from 'react-apollo'
import gql from 'graphql-tag'
import { pipe, prop } from 'ramda'
type FileInputProps = {
label: string,
onChange: Function,
required: boolean,
dataCy: string,