Read the official documentation.
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.
- β¬οΈ 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.
If this project helped you, please consider buying me a coffee or sponsoring me. Your support is much appreciated!
- β Open The GitHub Project Exporter β
- Documentation
- Overview
- Donate
- Table of Contents
- Installation
- Usage
- TypeScript
- Icon Attribution
- Contributing
- β Found It Helpful? Star It!
- License
npm i github-projectv2-csv-exporter
Go here: GitHub Project Exporter.
This is a static Storybook site hosted on GitHub Pages.
If you'd like, you can run the project locally.
git clone [email protected]:justinmahar/github-projectv2-csv-exporter.git
And navigate to the project:
cd github-projectv2-csv-exporter
npm install
npm start
Once the Storybook server starts, a development server will be running locally.
Open the project here: localhost:6006
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 = 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.
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 = 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.
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'));
Type definitions have been included for TypeScript support.
Favicon by Twemoji.
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: πβ
See LICENSE.md.