# 範例 - 搭配 Github CLI 工具的應用產生個人貢獻列表
###### tags: `Github` `CLI` `績效考核`
[toc]
## List My Contributions of Pull-requests
### Dump pull-request list
```
$ gh pr list --state all --author "@me" --limit 150 --json number,url,title,headRefName,updatedAt,labels > {some folder path}/gh_list.json
```
### Convert to markdown table view
#### Script
```php=
<?php
function markdown_line($number, $title, $labels, $headRefName, $date, $url = null) {
if (! empty($url)) {
$number = sprintf('[#%s](%s)', $number, $url);
}
$line = sprintf('|%s|%s|%s|%s|%s|', $number, $title, $labels, $headRefName, $date);
return $line;
}
$json_contents = file_get_contents('./gh_list.json');
$list = json_decode($json_contents, true);
//var_dump($list);
$fields = array_keys($list[0]);
//var_dump($fields);
// number,url,title,headRefName,updatedAt
echo markdown_line(' # ', 'title', 'labels', 'RefName', 'date') . "\n";
echo markdown_line(' --- ', ' --- ', ' --- ', ' --- ', ' --- ') . "\n";
foreach ($list as $record) {
$datetime = new DateTime($record['updatedAt']);
$date = $datetime->format('Y/m/d');
$labels = '';
if (! empty($record['labels'])) {
$labels = implode(',', array_column($record['labels'], 'name'));
}
// var_dump($record['labels']);
// var_dump($labels);
echo markdown_line(
number: $record['number'],
title: $record['title'],
labels: $labels,
headRefName: $record['headRefName'],
date: $date,
url: $record['url']
) . "\n";
}
echo "\n";
```
#### Generate markdown file
```
$ php gh_list.php > gh_list.md
```
## Reference
- gh formatting
https://cli.github.com/manual/gh_help_formatting