https://github.com/yunkon-kim/github-influence-factors-counter
The GitHub Meaningful Achievements Counter is a tool to efficiently extract significant open-source R&D achievements from multiple repositories in an organization. Verification was completed by confirming that the information extracted by the tool matches the data displayed in the GitHub UI.
https://github.com/yunkon-kim/github-influence-factors-counter
achievements github github-api
Last synced: 3 months ago
JSON representation
The GitHub Meaningful Achievements Counter is a tool to efficiently extract significant open-source R&D achievements from multiple repositories in an organization. Verification was completed by confirming that the information extracted by the tool matches the data displayed in the GitHub UI.
- Host: GitHub
- URL: https://github.com/yunkon-kim/github-influence-factors-counter
- Owner: yunkon-kim
- Created: 2020-11-02T10:06:03.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2024-07-10T08:57:37.000Z (over 1 year ago)
- Last Synced: 2024-07-10T10:48:46.609Z (over 1 year ago)
- Topics: achievements, github, github-api
- Language: Python
- Homepage:
- Size: 61.5 KB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# GitHub meaningful achievements counter
공개SW R&D의 유의미한 성과들은 각 저장소(Repository)에 기록이 남습니다.
그래서 조직(Organization)차원에서 성과를 파악하는 것은 상당히 소모적인 작업이라 할 수 있습니다.
조직 내의 여러 저장소들의 유의미한 성과들을 효율적으로 파악하고자 도구를 만들게 되었습니다.
GitHub API를 호출하여 유의미한 성과들을 파악하여 GitHub UI 상에 나타나는 수치와 일치합니다.
참고 - [GitHub REST API documentation](https://docs.github.com/en/rest?apiVersion=2022-11-28)
본 도구를 활용하면 조직 정보, 저장소 정보, 및 아래와 같은 성과를 파악할 수 있습니다. :thumbsup:

Open Source Software (OSS) 관련 프로젝트에서 편리하게 활용되기를 바랍니다. :smile:
**앞에서 유의미한 성과로 표현했지만, 공개SW 생태계에서 일어나는 모든 기여는 너무나도 중요하고 소중합니다.**
**만약 본 프로그램이 평가에 활용된다면, 필히! 정성적인 가치 평가가 함께 이루어져야할 것 입니다.** :pray:
## Environment
다음과 같은 환경에서 개발 및 테스트를 진행하였습니다.
- Ubuntu 22.04.3 LTS (on WSL2)
- Python 3.10.12
- pip 22.0.2
## 사용방법
### 소스코드 내려 받기
`git clone`을 통해 소스 코드를 내려 받습니다.
```bash
git clone https://github.com/yunkon-kim/github-influence-factors-counter.git
```
### 실행 환경 구성
참고 - 최초 한번만 수행하면 되는 사항입니다.
#### Python 및 관련 패키지 설치
아래 명령어를 통해 Python 및 관련 패키지를 설치하실 수 있습니다.
```bash
sudo apt update -y
sudo apt install python3 -y
sudo apt install python3-pip -y
sudo apt install python3.10-venv -y
```
#### `venv` 환경 설정
아래 명령어를 통해 `venv`를 설정 합니다.
(`.venv` 디렉토리가 생성되고 `venv` 관련 사항들이 설치될 것 입니다.)
```bash
python3 -m venv .venv
```
아래 명령어를 통해 `venv`를 활성화합니다.
```bash
source .venv/bin/activate
```
#### Python 모듈 설치
아래 명령어를 통해 도구를 실행하는데 필요한 모듈을 설치 합니다.
```bash
pip3 install -r requirements.txt
```
### 설정 파일 작성
GitHub REST API에는 Rating limit이 적용되어 있고, Personal Access Token (PAT) 활용을 통해 시간단 5000회 까지 호출하도록 만들 수 있습니다.
참고 - [Creating a personal access token (classic)](https://docs.github.com/ko/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-personal-access-token-classic))
`template-auth.json`을 복사하여 `auth.json` 생성한 후 알맞게 수정하시기 바랍니다.
```json
{
"username": "your-github-username",
"personal-access-token": "your-github-personal-access-token"
}
```
`template-config.json`을 복사하여 `config.json` 생성한 후 알맞게 수정하시기 바랍니다.
```json
{
"org-name": "your-organization-name",
"since": "2023-01-01",
"until": "2023-12-31",
"repositories": [
"repo1",
"repo2",
"repo3"
]
}
```
(optional) 조직내의 모든 저장소 리스트를 확인하는 스크립트를 만들어 두었습니다.
`repositories`를 채우실때 도움이 될 것 같습니다.
```bash
python3 get_org_repos.py
```
### 실행 및 결과 확인
위 준비 사항을 끝마치셨으면 이제 도구를 실행해 주기만 하면 됩니다.
아래 명령어를 통해 조직내의 지정된 저장소의 유의미한 성과를 추출할 수 있습니다.
```bash
python3 orgs.py
```
성과를 추출하는데 시간이 조금 소요되며, 결과가 `.results/` 경로에 `csv` 형식으로 출력됩니다.
(파일명 예: `(cloud-barista)repos-statistics-rawdata-20231208-223421.csv`)
파일을 열어 결과를 확인합니다.
