Skip to content

Instantly share code, notes, and snippets.

@ericksoa
ericksoa / fancygraph.tsx
Created March 21, 2023 19:12
Up and to the right, hurray!
// src/components/GrowthChart.tsx
import React from 'react';
import { LineChart, Line, XAxis, YAxis, CartesianGrid, Tooltip, Legend, ResponsiveContainer } from 'recharts';
interface GrowthData {
month: string;
revenue: number;
}
interface GrowthChartProps {
@ericksoa
ericksoa / main.ts
Created March 21, 2023 21:39
Automate the job of a programmer picking up a story
// main.ts
import { JiraClient } from './jiraClient';
import { OpenAIClient } from './openAIClient';
import { GitClient } from './gitClient';
async function main() {
// Configure your clients
const jiraClient = new JiraClient('https://your-jira-instance.atlassian.net', 'your-jira-api-token');
const openAIClient = new OpenAIClient('your-openai-api-key');
const gitClient = new GitClient('https://your-git-instance.com', 'your-git-api-token');
@ericksoa
ericksoa / openApiClient
Created March 21, 2023 21:43
Generate code according to a spec given by the product manager
// openAIClient.ts
import { OpenAIApi } from '@openai/api';
export class OpenAIClient {
private openai: OpenAIApi;
constructor(apiKey: string) {
this.openai = new OpenAIApi({
apiKey: apiKey,
});
@ericksoa
ericksoa / jiraClient.ts
Created March 21, 2023 21:46
Read the Jira story to let the robot implement
// jiraClient.ts
import axios, { AxiosInstance } from 'axios';
export class JiraClient {
private apiClient: AxiosInstance;
constructor(baseUrl: string, apiToken: string) {
this.apiClient = axios.create({
baseURL: `${baseUrl}/rest/api/3/`,
headers: {
@ericksoa
ericksoa / gitClient.ts
Created March 21, 2023 21:48
Client to do all the git things
// gitClient.ts
import { Octokit } from '@octokit/rest';
export class GitClient {
private octokit: Octokit;
private owner: string;
private repo: string;
constructor(baseURL: string, apiToken: string, owner: string, repo: string) {
this.octokit = new Octokit({