1.1.12 • Published 4 months ago

github-projectv2-csv-exporter v1.1.12

Weekly downloads
-
License
MIT
Repository
github
Last release
4 months ago

→ Open The GitHub Project Exporter ←

Documentation

Read the official documentation.

Overview

This export tool allows you to export GitHub projects as a CSV.

Projects must exist within the ProjectV2 API. For exporting "classic" GitHub projects (older implementation), you can try using this exporter by Stephen Wu.

Features include:

  • ⬇️ Export all GitHub project cards as a CSV.
    • View your GitHub cards in your spreadsheet software of choice.
  • 🎛️ Filter issues by status, customize fields, and exclude closed issues.
    • Only export cards with the statuses you specify, with options to choose custom fields, or hide closed issues.
  • 🚀 Easy to use
    • Features a simple and easy to use web UI. Configure once. Click once to export.

Donate

If this project helped save you time, please consider buying me a coffee, which powers my development (and life). Your support is much appreciated!

     

Table of Contents

Installation

npm i github-projectv2-csv-exporter

Usage

Via Website

Go here: GitHub Project Exporter.

This is a static Storybook site hosted on GitHub Pages.

Via Local Storybook Site

If you'd like, you can run the project locally.

Clone the project
git clone git@github.com:justinmahar/github-projectv2-csv-exporter.git

And navigate to the project:

cd github-projectv2-csv-exporter
Install dependencies
npm install
Start the project
npm start
Open localhost:6006

Once the Storybook server starts, a development server will be running locally.

Open the project here: localhost:6006

Via npm

If you want to fetch the data yourself, you can install this package via npm and use the exported fetch functions.

Note: Your access token must include the following scopes: repo, read:org, read:user, read:project

fetchProjects

fetchProjects = async (login: string, isOrg: boolean, token: string): Promise<Projects>

Provide an org or username and the token. The promise will be resolved with a Projects instance.

Example
import { fetchProjects } from 'github-projectv2-csv-exporter';
// ...
fetchProjects('my-org', true, 'abc123mytoken').then((orgProjects) =>
  console.log(
    'Loaded projects:',
    orgProjects
      .getProjects()
      .map((p) => `${p.getTitle()} (number ${p.getProjectNumber()} | ${p.getTotalItemCount()} items)`)
      .join(', '),
  ),
);

fetchProjectItems

fetchProjectItems = async (login: string, isOrg: boolean, projectNumber: number, token: string, progress?: (loaded: number, total: number) => void): Promise<ProjectItem[]>

Provide an org or username, project number, and token. Optionally, you can provide a progress function that will be called periodically with the number of items loaded, and the total expected.

The promise will be resolved with an array of ProjectItem instances.

Example
import { fetchProjectItems } from 'github-projectv2-csv-exporter';
// ...
const projectNumber = loadedProject.getProjectNumber();
fetchProjectItems('my-org', true, projectNumber, 'abc123mytoken', (loaded, total) =>
  console.log(`Progress: ${Math.round((loaded / total) * 100)}%`),
).then((items) => console.log('Loaded', items.length, 'items'));

TypeScript

Type definitions have been included for TypeScript support.

Icon Attribution

Favicon by Twemoji.

Contributing

Open source software is awesome and so are you. 😎

Feel free to submit a pull request for bugs or additions, and make sure to update tests as appropriate. If you find a mistake in the docs, send a PR! Even the smallest changes help.

For major changes, open an issue first to discuss what you'd like to change.

⭐ Found It Helpful? Star It!

If you found this project helpful, let the community know by giving it a star: 👉⭐

Want to support the project? Feel free to grab me a coffee, which is my main source of fuel for development:

   

License

See LICENSE.md.

1.1.12

4 months ago

1.1.11

1 year ago

1.1.9

1 year ago

1.1.8

1 year ago

1.1.10

1 year ago

1.1.7

1 year ago

1.1.6

2 years ago

1.1.1

2 years ago

1.1.5

2 years ago

1.1.4

2 years ago

1.1.3

2 years ago

1.1.2

2 years ago

1.0.22

2 years ago

1.0.21

2 years ago

1.0.20

2 years ago

1.0.19

2 years ago

1.0.18

2 years ago

1.0.17

3 years ago

1.0.16

3 years ago

1.0.15

3 years ago

1.0.14

3 years ago

1.0.13

3 years ago

1.0.12

3 years ago

1.0.11

3 years ago

1.0.10

3 years ago

1.0.9

3 years ago

1.0.8

3 years ago

1.0.7

3 years ago

1.0.6

3 years ago

1.0.5

3 years ago

1.0.4

3 years ago

1.0.3

3 years ago

1.0.2

3 years ago

1.0.1

3 years ago