You've already forked wakapi-readme-stats
Bar graph changed
This commit is contained in:
15
.env.example
15
.env.example
@@ -1,15 +0,0 @@
|
||||
INPUT_WAKATIME_API_KEY=a-f5a6a1f04d31
|
||||
INPUT_GH_TOKEN=4204a
|
||||
INPUT_SHOW_TIMEZONE=y
|
||||
INPUT_SHOW_PROJECTS=y
|
||||
INPUT_SHOW_EDITORS=y
|
||||
INPUT_SHOW_OS=y
|
||||
INPUT_SHOW_COMMIT=y
|
||||
INPUT_SHOW_LANGUAGE=y
|
||||
INPUT_SHOW_LANGUAGE_PER_REPO=y
|
||||
INPUT_SHOW_LOC_CHART=n
|
||||
INPUT_SHOW_LINES_OF_CODE=y
|
||||
INPUT_SHOW_DAYS_OF_WEEK=y
|
||||
INPUT_SHOW_PROFILE_VIEWS=y
|
||||
INPUT_SHOW_SHORT_INFO=y
|
||||
INPUT_LOCALE=fr
|
||||
24
.github/FUNDING.yml
vendored
24
.github/FUNDING.yml
vendored
@@ -1,12 +1,12 @@
|
||||
# These are supported funding model platforms
|
||||
|
||||
github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
|
||||
patreon: # Replace with a single Patreon username
|
||||
open_collective: # Replace with a single Open Collective username
|
||||
ko_fi: anmolsingh
|
||||
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
|
||||
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
|
||||
liberapay: # Replace with a single Liberapay username
|
||||
issuehunt: # Replace with a single IssueHunt username
|
||||
otechie: # Replace with a single Otechie username
|
||||
custom: ['https://www.paypal.me/AAPRENEUR']
|
||||
# These are supported funding model platforms
|
||||
|
||||
github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
|
||||
patreon: # Replace with a single Patreon username
|
||||
open_collective: # Replace with a single Open Collective username
|
||||
ko_fi: anmolsingh
|
||||
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
|
||||
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
|
||||
liberapay: # Replace with a single Liberapay username
|
||||
issuehunt: # Replace with a single IssueHunt username
|
||||
otechie: # Replace with a single Otechie username
|
||||
custom: ['https://www.paypal.me/AAPRENEUR']
|
||||
|
||||
54
.github/ISSUE_TEMPLATE/bug_report.md
vendored
54
.github/ISSUE_TEMPLATE/bug_report.md
vendored
@@ -1,27 +1,27 @@
|
||||
---
|
||||
name: Bug report
|
||||
about: Create a report to help us improve
|
||||
title: BUG
|
||||
labels: bug
|
||||
assignees: anmol098
|
||||
|
||||
---
|
||||
|
||||
**Describe the bug**
|
||||
A clear and concise description of what the bug is.
|
||||
|
||||
**To Reproduce**
|
||||
Steps to reproduce the behavior:
|
||||
1. Go to '...'
|
||||
2. Click on '....'
|
||||
3. Scroll down to '....'
|
||||
4. See error
|
||||
|
||||
**Expected behavior**
|
||||
A clear and concise description of what you expected to happen.
|
||||
|
||||
**Github repository link**
|
||||
If applicable, please share the Github repository link.
|
||||
|
||||
**Additional context**
|
||||
Add any other context about the problem here.
|
||||
---
|
||||
name: Bug report
|
||||
about: Create a report to help us improve
|
||||
title: BUG
|
||||
labels: bug
|
||||
assignees: anmol098
|
||||
|
||||
---
|
||||
|
||||
**Describe the bug**
|
||||
A clear and concise description of what the bug is.
|
||||
|
||||
**To Reproduce**
|
||||
Steps to reproduce the behavior:
|
||||
1. Go to '...'
|
||||
2. Click on '....'
|
||||
3. Scroll down to '....'
|
||||
4. See error
|
||||
|
||||
**Expected behavior**
|
||||
A clear and concise description of what you expected to happen.
|
||||
|
||||
**Github repository link**
|
||||
If applicable, please share the Github repository link.
|
||||
|
||||
**Additional context**
|
||||
Add any other context about the problem here.
|
||||
|
||||
40
.github/ISSUE_TEMPLATE/feature_request.md
vendored
40
.github/ISSUE_TEMPLATE/feature_request.md
vendored
@@ -1,20 +1,20 @@
|
||||
---
|
||||
name: Feature request
|
||||
about: Suggest an idea for this project
|
||||
title: FEAT
|
||||
labels: Brainstorming
|
||||
assignees: anmol098
|
||||
|
||||
---
|
||||
|
||||
**Is your feature request related to a problem? Please describe.**
|
||||
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
||||
|
||||
**Describe the solution you'd like**
|
||||
A clear and concise description of what you want to happen.
|
||||
|
||||
**Describe alternatives you've considered**
|
||||
A clear and concise description of any alternative solutions or features you've considered.
|
||||
|
||||
**Additional context**
|
||||
Add any other context or screenshots about the feature request here.
|
||||
---
|
||||
name: Feature request
|
||||
about: Suggest an idea for this project
|
||||
title: FEAT
|
||||
labels: Brainstorming
|
||||
assignees: anmol098
|
||||
|
||||
---
|
||||
|
||||
**Is your feature request related to a problem? Please describe.**
|
||||
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
||||
|
||||
**Describe the solution you'd like**
|
||||
A clear and concise description of what you want to happen.
|
||||
|
||||
**Describe alternatives you've considered**
|
||||
A clear and concise description of any alternative solutions or features you've considered.
|
||||
|
||||
**Additional context**
|
||||
Add any other context or screenshots about the feature request here.
|
||||
|
||||
30
.github/ISSUE_TEMPLATE/special-mention.md
vendored
30
.github/ISSUE_TEMPLATE/special-mention.md
vendored
@@ -1,15 +1,15 @@
|
||||
---
|
||||
name: Special mention
|
||||
about: Add your name to the list if you are making your profile readme more awesome
|
||||
with our GitHub Action
|
||||
title: Add||<your github username here>
|
||||
labels: Name
|
||||
assignees: anmol098
|
||||
|
||||
---
|
||||
|
||||
**Github Profile Link**
|
||||
A direct link to your profile
|
||||
|
||||
**Your Name**
|
||||
your name which should be displayed on the link
|
||||
---
|
||||
name: Special mention
|
||||
about: Add your name to the list if you are making your profile readme more awesome
|
||||
with our GitHub Action
|
||||
title: Add||<your github username here>
|
||||
labels: Name
|
||||
assignees: anmol098
|
||||
|
||||
---
|
||||
|
||||
**Github Profile Link**
|
||||
A direct link to your profile
|
||||
|
||||
**Your Name**
|
||||
your name which should be displayed on the link
|
||||
|
||||
12
.gitignore
vendored
12
.gitignore
vendored
@@ -1,6 +1,6 @@
|
||||
*.env
|
||||
*.png
|
||||
node_modules/
|
||||
__pycache__/
|
||||
|
||||
.vscode
|
||||
*.env
|
||||
*.png
|
||||
node_modules/
|
||||
__pycache__/
|
||||
|
||||
.vscode
|
||||
|
||||
@@ -1,76 +1,76 @@
|
||||
# Contributor Covenant Code of Conduct
|
||||
|
||||
## Our Pledge
|
||||
|
||||
In the interest of fostering an open and welcoming environment, we as
|
||||
contributors and maintainers pledge to making participation in our project and
|
||||
our community a harassment-free experience for everyone, regardless of age, body
|
||||
size, disability, ethnicity, sex characteristics, gender identity and expression,
|
||||
level of experience, education, socio-economic status, nationality, personal
|
||||
appearance, race, religion, or sexual identity and orientation.
|
||||
|
||||
## Our Standards
|
||||
|
||||
Examples of behavior that contributes to creating a positive environment
|
||||
include:
|
||||
|
||||
* Using welcoming and inclusive language
|
||||
* Being respectful of differing viewpoints and experiences
|
||||
* Gracefully accepting constructive criticism
|
||||
* Focusing on what is best for the community
|
||||
* Showing empathy towards other community members
|
||||
|
||||
Examples of unacceptable behavior by participants include:
|
||||
|
||||
* The use of sexualized language or imagery and unwelcome sexual attention or
|
||||
advances
|
||||
* Trolling, insulting/derogatory comments, and personal or political attacks
|
||||
* Public or private harassment
|
||||
* Publishing others' private information, such as a physical or electronic
|
||||
address, without explicit permission
|
||||
* Other conduct which could reasonably be considered inappropriate in a
|
||||
professional setting
|
||||
|
||||
## Our Responsibilities
|
||||
|
||||
Project maintainers are responsible for clarifying the standards of acceptable
|
||||
behavior and are expected to take appropriate and fair corrective action in
|
||||
response to any instances of unacceptable behavior.
|
||||
|
||||
Project maintainers have the right and responsibility to remove, edit, or
|
||||
reject comments, commits, code, wiki edits, issues, and other contributions
|
||||
that are not aligned to this Code of Conduct, or to ban temporarily or
|
||||
permanently any contributor for other behaviors that they deem inappropriate,
|
||||
threatening, offensive, or harmful.
|
||||
|
||||
## Scope
|
||||
|
||||
This Code of Conduct applies both within project spaces and in public spaces
|
||||
when an individual is representing the project or its community. Examples of
|
||||
representing a project or community include using an official project e-mail
|
||||
address, posting via an official social media account, or acting as an appointed
|
||||
representative at an online or offline event. Representation of a project may be
|
||||
further defined and clarified by project maintainers.
|
||||
|
||||
## Enforcement
|
||||
|
||||
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
||||
reported by contacting the project team at anmolpratapsingh1997@gmail.com. All
|
||||
complaints will be reviewed and investigated and will result in a response that
|
||||
is deemed necessary and appropriate to the circumstances. The project team is
|
||||
obligated to maintain confidentiality with regard to the reporter of an incident.
|
||||
Further details of specific enforcement policies may be posted separately.
|
||||
|
||||
Project maintainers who do not follow or enforce the Code of Conduct in good
|
||||
faith may face temporary or permanent repercussions as determined by other
|
||||
members of the project's leadership.
|
||||
|
||||
## Attribution
|
||||
|
||||
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
|
||||
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
|
||||
|
||||
[homepage]: https://www.contributor-covenant.org
|
||||
|
||||
For answers to common questions about this code of conduct, see
|
||||
https://www.contributor-covenant.org/faq
|
||||
# Contributor Covenant Code of Conduct
|
||||
|
||||
## Our Pledge
|
||||
|
||||
In the interest of fostering an open and welcoming environment, we as
|
||||
contributors and maintainers pledge to making participation in our project and
|
||||
our community a harassment-free experience for everyone, regardless of age, body
|
||||
size, disability, ethnicity, sex characteristics, gender identity and expression,
|
||||
level of experience, education, socio-economic status, nationality, personal
|
||||
appearance, race, religion, or sexual identity and orientation.
|
||||
|
||||
## Our Standards
|
||||
|
||||
Examples of behavior that contributes to creating a positive environment
|
||||
include:
|
||||
|
||||
* Using welcoming and inclusive language
|
||||
* Being respectful of differing viewpoints and experiences
|
||||
* Gracefully accepting constructive criticism
|
||||
* Focusing on what is best for the community
|
||||
* Showing empathy towards other community members
|
||||
|
||||
Examples of unacceptable behavior by participants include:
|
||||
|
||||
* The use of sexualized language or imagery and unwelcome sexual attention or
|
||||
advances
|
||||
* Trolling, insulting/derogatory comments, and personal or political attacks
|
||||
* Public or private harassment
|
||||
* Publishing others' private information, such as a physical or electronic
|
||||
address, without explicit permission
|
||||
* Other conduct which could reasonably be considered inappropriate in a
|
||||
professional setting
|
||||
|
||||
## Our Responsibilities
|
||||
|
||||
Project maintainers are responsible for clarifying the standards of acceptable
|
||||
behavior and are expected to take appropriate and fair corrective action in
|
||||
response to any instances of unacceptable behavior.
|
||||
|
||||
Project maintainers have the right and responsibility to remove, edit, or
|
||||
reject comments, commits, code, wiki edits, issues, and other contributions
|
||||
that are not aligned to this Code of Conduct, or to ban temporarily or
|
||||
permanently any contributor for other behaviors that they deem inappropriate,
|
||||
threatening, offensive, or harmful.
|
||||
|
||||
## Scope
|
||||
|
||||
This Code of Conduct applies both within project spaces and in public spaces
|
||||
when an individual is representing the project or its community. Examples of
|
||||
representing a project or community include using an official project e-mail
|
||||
address, posting via an official social media account, or acting as an appointed
|
||||
representative at an online or offline event. Representation of a project may be
|
||||
further defined and clarified by project maintainers.
|
||||
|
||||
## Enforcement
|
||||
|
||||
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
||||
reported by contacting the project team at anmolpratapsingh1997@gmail.com. All
|
||||
complaints will be reviewed and investigated and will result in a response that
|
||||
is deemed necessary and appropriate to the circumstances. The project team is
|
||||
obligated to maintain confidentiality with regard to the reporter of an incident.
|
||||
Further details of specific enforcement policies may be posted separately.
|
||||
|
||||
Project maintainers who do not follow or enforce the Code of Conduct in good
|
||||
faith may face temporary or permanent repercussions as determined by other
|
||||
members of the project's leadership.
|
||||
|
||||
## Attribution
|
||||
|
||||
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
|
||||
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
|
||||
|
||||
[homepage]: https://www.contributor-covenant.org
|
||||
|
||||
For answers to common questions about this code of conduct, see
|
||||
https://www.contributor-covenant.org/faq
|
||||
|
||||
112
CONTRIBUTING.md
112
CONTRIBUTING.md
@@ -1,56 +1,56 @@
|
||||
# Contributing
|
||||
|
||||
|
||||
**Working on your first Pull Request?** You can learn how from this *free* series [How to Contribute to an Open Source Project on GitHub](https://egghead.io/series/how-to-contribute-to-an-open-source-project-on-github)
|
||||
|
||||
---
|
||||
|
||||
Thanks for taking the time to look at `CONTRIBUTING.md`.
|
||||
|
||||
All contributions to this project should follow the `CODE_OF_CONDUCT.md`.
|
||||
|
||||
### Reporting issues and providing feedback
|
||||
|
||||
If you found any issues or bugs, be sure to open up an issue so I can check it out!
|
||||
|
||||
|
||||
### Opening a pull request
|
||||
|
||||
Once you've worked on your feature/bugfix etc, you can open a pull request using the `Alpha` branch as the base branch. Write a clear and concise PR title, and a detailed description of why you made the change, whether it is related to any issues etc. And I will review it as soon as I can.
|
||||
**If the code is not linted properly or not reformatted the PR will be rejected**
|
||||
|
||||
### Setting up development environment
|
||||
|
||||
This project is written in Python, requires **Python 3.6 or higher**, and uses `pip` .
|
||||
|
||||
To set it up, just fork + clone it, install all the dependencies:
|
||||
|
||||
```bash
|
||||
$ pip install -r requirements.txt
|
||||
```
|
||||
|
||||
The command will install all the requirements needed to run project.
|
||||
|
||||
create a `.env` file in the project directory for information you can refer to the `.env.example` file for all the environment variable
|
||||
|
||||
If you want to contribute the chart module then you have enable that flag in `.env` file and install nodeJs and NPM for charting library to work
|
||||
```bash
|
||||
npm install -g vega-lite vega-cli canvas
|
||||
```
|
||||
|
||||
If everything is installed, you are good to go 👍.
|
||||
```bash
|
||||
python main.py
|
||||
```
|
||||
to run the program
|
||||
|
||||
**Linting checks**
|
||||
|
||||
It is recommended to use proper linting. if you using Jetbrains IntelliJ IDE please reformat code before making pull request
|
||||
for more info [How to reformat code in Intellij](https://www.jetbrains.com/help/idea/reformat-and-rearrange-code.html)
|
||||
|
||||
|
||||
**Commit Messages**
|
||||
|
||||
It is recommended to use proper sementic commit messages. [Sementic commit message](https://gist.github.com/joshbuchea/6f47e86d2510bce28f8e7f42ae84c716)
|
||||
|
||||
# Contributing
|
||||
|
||||
|
||||
**Working on your first Pull Request?** You can learn how from this *free* series [How to Contribute to an Open Source Project on GitHub](https://egghead.io/series/how-to-contribute-to-an-open-source-project-on-github)
|
||||
|
||||
---
|
||||
|
||||
Thanks for taking the time to look at `CONTRIBUTING.md`.
|
||||
|
||||
All contributions to this project should follow the `CODE_OF_CONDUCT.md`.
|
||||
|
||||
### Reporting issues and providing feedback
|
||||
|
||||
If you found any issues or bugs, be sure to open up an issue so I can check it out!
|
||||
|
||||
|
||||
### Opening a pull request
|
||||
|
||||
Once you've worked on your feature/bugfix etc, you can open a pull request using the `Alpha` branch as the base branch. Write a clear and concise PR title, and a detailed description of why you made the change, whether it is related to any issues etc. And I will review it as soon as I can.
|
||||
**If the code is not linted properly or not reformatted the PR will be rejected**
|
||||
|
||||
### Setting up development environment
|
||||
|
||||
This project is written in Python, requires **Python 3.6 or higher**, and uses `pip` .
|
||||
|
||||
To set it up, just fork + clone it, install all the dependencies:
|
||||
|
||||
```bash
|
||||
$ pip install -r requirements.txt
|
||||
```
|
||||
|
||||
The command will install all the requirements needed to run project.
|
||||
|
||||
create a `.env` file in the project directory for information you can refer to the `.env.example` file for all the environment variable
|
||||
|
||||
If you want to contribute the chart module then you have enable that flag in `.env` file and install nodeJs and NPM for charting library to work
|
||||
```bash
|
||||
npm install -g vega-lite vega-cli canvas
|
||||
```
|
||||
|
||||
If everything is installed, you are good to go 👍.
|
||||
```bash
|
||||
python main.py
|
||||
```
|
||||
to run the program
|
||||
|
||||
**Linting checks**
|
||||
|
||||
It is recommended to use proper linting. if you using Jetbrains IntelliJ IDE please reformat code before making pull request
|
||||
for more info [How to reformat code in Intellij](https://www.jetbrains.com/help/idea/reformat-and-rearrange-code.html)
|
||||
|
||||
|
||||
**Commit Messages**
|
||||
|
||||
It is recommended to use proper sementic commit messages. [Sementic commit message](https://gist.github.com/joshbuchea/6f47e86d2510bce28f8e7f42ae84c716)
|
||||
|
||||
|
||||
38
Dockerfile
38
Dockerfile
@@ -1,19 +1,19 @@
|
||||
FROM nikolaik/python-nodejs:latest
|
||||
|
||||
# Install dependencies.
|
||||
ADD requirements.txt /requirements.txt
|
||||
ADD main.py /main.py
|
||||
ADD loc.py /loc.py
|
||||
ADD make_bar_graph.py /make_bar_graph.py
|
||||
ADD colors.json /colors.json
|
||||
ADD translation.json /translation.json
|
||||
RUN pip install -r requirements.txt
|
||||
|
||||
ENV NPM_CONFIG_PREFIX=/home/node/.npm-global
|
||||
|
||||
RUN npm -g config set user root
|
||||
|
||||
RUN npm install -g vega-lite vega-cli canvas
|
||||
|
||||
ENTRYPOINT ["python", "/main.py"]
|
||||
|
||||
FROM nikolaik/python-nodejs:latest
|
||||
|
||||
# Install dependencies.
|
||||
ADD requirements.txt /requirements.txt
|
||||
ADD main.py /main.py
|
||||
ADD loc.py /loc.py
|
||||
ADD make_bar_graph.py /make_bar_graph.py
|
||||
ADD colors.json /colors.json
|
||||
ADD translation.json /translation.json
|
||||
RUN pip install -r requirements.txt
|
||||
|
||||
ENV NPM_CONFIG_PREFIX=/home/node/.npm-global
|
||||
|
||||
RUN npm -g config set user root
|
||||
|
||||
RUN npm install -g vega-lite vega-cli canvas
|
||||
|
||||
ENTRYPOINT ["python", "/main.py"]
|
||||
|
||||
|
||||
40
LICENSE
40
LICENSE
@@ -1,20 +1,20 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2020 ANMOL PRATAP SINGH
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
this software and associated documentation files (the "Software"), to deal in
|
||||
the Software without restriction, including without limitation the rights to
|
||||
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
||||
the Software, and to permit persons to whom the Software is furnished to do so,
|
||||
subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
||||
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
||||
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
||||
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2020 ANMOL PRATAP SINGH
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
this software and associated documentation files (the "Software"), to deal in
|
||||
the Software without restriction, including without limitation the rights to
|
||||
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
||||
the Software, and to permit persons to whom the Software is furnished to do so,
|
||||
subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
||||
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
||||
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
||||
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
26
Pipfile
26
Pipfile
@@ -1,13 +1,13 @@
|
||||
[[source]]
|
||||
name = "pypi"
|
||||
url = "https://pypi.org/simple"
|
||||
verify_ssl = true
|
||||
|
||||
[dev-packages]
|
||||
|
||||
[packages]
|
||||
requests = "*"
|
||||
pygithub = "*"
|
||||
|
||||
[requires]
|
||||
python_version = "3.7"
|
||||
[[source]]
|
||||
name = "pypi"
|
||||
url = "https://pypi.org/simple"
|
||||
verify_ssl = true
|
||||
|
||||
[dev-packages]
|
||||
|
||||
[packages]
|
||||
requests = "*"
|
||||
pygithub = "*"
|
||||
|
||||
[requires]
|
||||
python_version = "3.7"
|
||||
|
||||
170
Pipfile.lock
generated
170
Pipfile.lock
generated
@@ -1,85 +1,85 @@
|
||||
{
|
||||
"_meta": {
|
||||
"hash": {
|
||||
"sha256": "ee0dbc310e64a4cc599d6b5e02bb22e3f33eb97ead8e5f1e315cf355fbef9367"
|
||||
},
|
||||
"pipfile-spec": 6,
|
||||
"requires": {
|
||||
"python_version": "3.7"
|
||||
},
|
||||
"sources": [
|
||||
{
|
||||
"name": "pypi",
|
||||
"url": "https://pypi.org/simple",
|
||||
"verify_ssl": true
|
||||
}
|
||||
]
|
||||
},
|
||||
"default": {
|
||||
"certifi": {
|
||||
"hashes": [
|
||||
"sha256:5930595817496dd21bb8dc35dad090f1c2cd0adfaf21204bf6732ca5d8ee34d3",
|
||||
"sha256:8fc0819f1f30ba15bdb34cceffb9ef04d99f420f68eb75d901e9560b8749fc41"
|
||||
],
|
||||
"version": "==2020.6.20"
|
||||
},
|
||||
"chardet": {
|
||||
"hashes": [
|
||||
"sha256:84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae",
|
||||
"sha256:fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691"
|
||||
],
|
||||
"version": "==3.0.4"
|
||||
},
|
||||
"deprecated": {
|
||||
"hashes": [
|
||||
"sha256:525ba66fb5f90b07169fdd48b6373c18f1ee12728ca277ca44567a367d9d7f74",
|
||||
"sha256:a766c1dccb30c5f6eb2b203f87edd1d8588847709c78589e1521d769addc8218"
|
||||
],
|
||||
"version": "==1.2.10"
|
||||
},
|
||||
"idna": {
|
||||
"hashes": [
|
||||
"sha256:b307872f855b18632ce0c21c5e45be78c0ea7ae4c15c828c20788b26921eb3f6",
|
||||
"sha256:b97d804b1e9b523befed77c48dacec60e6dcb0b5391d57af6a65a312a90648c0"
|
||||
],
|
||||
"version": "==2.10"
|
||||
},
|
||||
"pygithub": {
|
||||
"hashes": [
|
||||
"sha256:8375a058ec651cc0774244a3bc7395cf93617298735934cdd59e5bcd9a1df96e",
|
||||
"sha256:d2d17d1e3f4474e070353f201164685a95b5a92f5ee0897442504e399c7bc249"
|
||||
],
|
||||
"index": "pypi",
|
||||
"version": "==1.51"
|
||||
},
|
||||
"pyjwt": {
|
||||
"hashes": [
|
||||
"sha256:5c6eca3c2940464d106b99ba83b00c6add741c9becaec087fb7ccdefea71350e",
|
||||
"sha256:8d59a976fb773f3e6a39c85636357c4f0e242707394cadadd9814f5cbaa20e96"
|
||||
],
|
||||
"version": "==1.7.1"
|
||||
},
|
||||
"requests": {
|
||||
"hashes": [
|
||||
"sha256:b3559a131db72c33ee969480840fff4bb6dd111de7dd27c8ee1f820f4f00231b",
|
||||
"sha256:fe75cc94a9443b9246fc7049224f75604b113c36acb93f87b80ed42c44cbb898"
|
||||
],
|
||||
"index": "pypi",
|
||||
"version": "==2.24.0"
|
||||
},
|
||||
"urllib3": {
|
||||
"hashes": [
|
||||
"sha256:3018294ebefce6572a474f0604c2021e33b3fd8006ecd11d62107a5d2a963527",
|
||||
"sha256:88206b0eb87e6d677d424843ac5209e3fb9d0190d0ee169599165ec25e9d9115"
|
||||
],
|
||||
"version": "==1.25.9"
|
||||
},
|
||||
"wrapt": {
|
||||
"hashes": [
|
||||
"sha256:b62ffa81fb85f4332a4f609cab4ac40709470da05643a082ec1eb88e6d9b97d7"
|
||||
],
|
||||
"version": "==1.12.1"
|
||||
}
|
||||
},
|
||||
"develop": {}
|
||||
}
|
||||
{
|
||||
"_meta": {
|
||||
"hash": {
|
||||
"sha256": "ee0dbc310e64a4cc599d6b5e02bb22e3f33eb97ead8e5f1e315cf355fbef9367"
|
||||
},
|
||||
"pipfile-spec": 6,
|
||||
"requires": {
|
||||
"python_version": "3.7"
|
||||
},
|
||||
"sources": [
|
||||
{
|
||||
"name": "pypi",
|
||||
"url": "https://pypi.org/simple",
|
||||
"verify_ssl": true
|
||||
}
|
||||
]
|
||||
},
|
||||
"default": {
|
||||
"certifi": {
|
||||
"hashes": [
|
||||
"sha256:5930595817496dd21bb8dc35dad090f1c2cd0adfaf21204bf6732ca5d8ee34d3",
|
||||
"sha256:8fc0819f1f30ba15bdb34cceffb9ef04d99f420f68eb75d901e9560b8749fc41"
|
||||
],
|
||||
"version": "==2020.6.20"
|
||||
},
|
||||
"chardet": {
|
||||
"hashes": [
|
||||
"sha256:84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae",
|
||||
"sha256:fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691"
|
||||
],
|
||||
"version": "==3.0.4"
|
||||
},
|
||||
"deprecated": {
|
||||
"hashes": [
|
||||
"sha256:525ba66fb5f90b07169fdd48b6373c18f1ee12728ca277ca44567a367d9d7f74",
|
||||
"sha256:a766c1dccb30c5f6eb2b203f87edd1d8588847709c78589e1521d769addc8218"
|
||||
],
|
||||
"version": "==1.2.10"
|
||||
},
|
||||
"idna": {
|
||||
"hashes": [
|
||||
"sha256:b307872f855b18632ce0c21c5e45be78c0ea7ae4c15c828c20788b26921eb3f6",
|
||||
"sha256:b97d804b1e9b523befed77c48dacec60e6dcb0b5391d57af6a65a312a90648c0"
|
||||
],
|
||||
"version": "==2.10"
|
||||
},
|
||||
"pygithub": {
|
||||
"hashes": [
|
||||
"sha256:8375a058ec651cc0774244a3bc7395cf93617298735934cdd59e5bcd9a1df96e",
|
||||
"sha256:d2d17d1e3f4474e070353f201164685a95b5a92f5ee0897442504e399c7bc249"
|
||||
],
|
||||
"index": "pypi",
|
||||
"version": "==1.51"
|
||||
},
|
||||
"pyjwt": {
|
||||
"hashes": [
|
||||
"sha256:5c6eca3c2940464d106b99ba83b00c6add741c9becaec087fb7ccdefea71350e",
|
||||
"sha256:8d59a976fb773f3e6a39c85636357c4f0e242707394cadadd9814f5cbaa20e96"
|
||||
],
|
||||
"version": "==1.7.1"
|
||||
},
|
||||
"requests": {
|
||||
"hashes": [
|
||||
"sha256:b3559a131db72c33ee969480840fff4bb6dd111de7dd27c8ee1f820f4f00231b",
|
||||
"sha256:fe75cc94a9443b9246fc7049224f75604b113c36acb93f87b80ed42c44cbb898"
|
||||
],
|
||||
"index": "pypi",
|
||||
"version": "==2.24.0"
|
||||
},
|
||||
"urllib3": {
|
||||
"hashes": [
|
||||
"sha256:3018294ebefce6572a474f0604c2021e33b3fd8006ecd11d62107a5d2a963527",
|
||||
"sha256:88206b0eb87e6d677d424843ac5209e3fb9d0190d0ee169599165ec25e9d9115"
|
||||
],
|
||||
"version": "==1.25.9"
|
||||
},
|
||||
"wrapt": {
|
||||
"hashes": [
|
||||
"sha256:b62ffa81fb85f4332a4f609cab4ac40709470da05643a082ec1eb88e6d9b97d7"
|
||||
],
|
||||
"version": "==1.12.1"
|
||||
}
|
||||
},
|
||||
"develop": {}
|
||||
}
|
||||
|
||||
708
README.md
708
README.md
@@ -1,354 +1,354 @@
|
||||
> Looking For Translation to different languages & Locale [#23](https://github.com/anmol098/waka-readme-stats/issues/23)
|
||||
|
||||
# Dev Metrics in Readme with added feature flags 🎌
|
||||
|
||||

|
||||
|
||||
<p align="center">
|
||||
|
||||

|
||||
|
||||
<h3 align="center">📌✨Awesome Readme Stats</h3>
|
||||
</p>
|
||||
|
||||
----
|
||||
|
||||
<p align="center">
|
||||
<img src="https://img.shields.io/badge/language-python-blue?style"/>
|
||||
<img src="https://img.shields.io/github/license/anmol098/waka-readme-stats"/>
|
||||
<img src="https://img.shields.io/github/stars/anmol098/waka-readme-stats"/>
|
||||
<img src="https://img.shields.io/github/forks/anmol098/waka-readme-stats"/>
|
||||
<img src="https://img.shields.io/static/v1?label=%F0%9F%8C%9F&message=If%20Useful&style=style=flat&color=BC4E99" alt="Star Badge"/>
|
||||
</p>
|
||||
<p align="center">
|
||||
Are you an early 🐤 or a night 🦉?
|
||||
<br/>
|
||||
When are you most productive during the day?
|
||||
<br/>
|
||||
What are languages you code in?
|
||||
<br/>
|
||||
Let's check out in your profile readme!
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
<a href="https://github.com/anmol098/waka-readme-stats/issues">Report Bug</a>
|
||||
·
|
||||
<a href="https://github.com/anmol098/waka-readme-stats/issues">Request Feature</a>
|
||||
</p>
|
||||
|
||||
## Prep Work
|
||||
|
||||
1. You need to update the markdown file(.md) with 2 comments. You can refer [here](#update-your-readme) for updating it.
|
||||
2. You'll need a WakaTime API Key. You can get that from your WakaTime Account Settings
|
||||
- You can refer [here](#new-to-wakatime), if you're new to WakaTime
|
||||
3. You'll need a GitHub API Token with `repo` and `user` scope from [here](https://github.com/settings/tokens) if you're running the action to get commit metrics
|
||||
> enabling the `repo` scope seems **DANGEROUS**<br/>
|
||||
> but this GitHub Action only accesses your commit timestamp and lines of code added or deleted in repository you contributed.
|
||||
- You can use [this](#profile-repository) example to work it out
|
||||
4. You need to save the WakaTime API Key and the GitHub API Token in the repository secrets. You can find that in the Settings of your repository. Be sure to save those as the following.
|
||||
- WakaTime API Key as `WAKATIME_API_KEY=<your wakatime API Key>`
|
||||
- GitHub Personal Access Token as `GH_TOKEN=<your github access token>`
|
||||
5. You can enable and disable feature flags based on requirements.
|
||||
|
||||
|
||||
This Action will run everyday at 00.00 IST
|
||||
|
||||
## Update your Readme
|
||||
|
||||
Add a comment to your `README.md` like this:
|
||||
|
||||
```md
|
||||
<!--START_SECTION:waka-->
|
||||
<!--END_SECTION:waka-->
|
||||
```
|
||||
|
||||
These lines will be our entry-points for the dev metrics.
|
||||
|
||||
## New to WakaTime
|
||||
|
||||
WakaTime gives you an idea of the time you really spent on coding. This helps you boost your productivity and competitive edge.
|
||||
|
||||
- Head over to <https://wakatime.com> and create an account.
|
||||
- Get your WakaTime API Key from your [Account Settings in WakaTime](https://wakatime.com/settings/account).
|
||||
- Install the [WakaTime plugin](https://wakatime.com/plugins) in your favourite editor / IDE.
|
||||
- Paste in your API key to start the analysis.
|
||||
|
||||
### Profile Repository
|
||||
|
||||
You'll need to get a [GitHub Access Token](https://docs.github.com/en/actions/configuring-and-managing-workflows/authenticating-with-the-github_token) with a `repo` and `user` scope and save it in the Repo Secrets `GH_TOKEN = <Your GitHub Access Token>`
|
||||
|
||||
Here is Sample Workflow File for running it:
|
||||
|
||||
```yml
|
||||
name: Waka Readme
|
||||
|
||||
on:
|
||||
schedule:
|
||||
# Runs at 12am IST
|
||||
- cron: '30 18 * * *'
|
||||
|
||||
jobs:
|
||||
update-readme:
|
||||
name: Update Readme with Metrics
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: anmol098/waka-readme-stats@master
|
||||
with:
|
||||
WAKATIME_API_KEY: ${{ secrets.WAKATIME_API_KEY }}
|
||||
GH_TOKEN: ${{ secrets.GH_TOKEN }}
|
||||
```
|
||||
## Extras
|
||||
|
||||
1. If you want to add the other info to your stats, you can add multiple `FLAGS` in your workflow file by default all flags are enabled
|
||||
>except the lines of code flag due to heavy operation performed
|
||||
|
||||
```yml
|
||||
- uses: anmol098/waka-readme-stats@master
|
||||
with:
|
||||
WAKATIME_API_KEY: ${{ secrets.WAKATIME_API_KEY }}
|
||||
GH_TOKEN: ${{ secrets.GH_TOKEN }}
|
||||
SHOW_OS: "False"
|
||||
SHOW_PROJECTS: "False"
|
||||
```
|
||||
|
||||
### Flags Available
|
||||
|
||||
---
|
||||
|
||||
`LOCALE` This Flag can be used to show stats in your language default is english uses Locale [Short Hand](https://saimana.com/list-of-country-locale-code/) to be passed in the flag variable example of the final result can be found [here](https://github.com/anmol098/anmol098/blob/master/Readme-fr.md)
|
||||
|
||||
|
||||
`SHOW_LINES_OF_CODE` flag can be set to `True` to show the Lines of code writen till date
|
||||
|
||||

|
||||
|
||||
`SHOW_PROFILE_VIEWS` flag can be set to `False` to hide the Profile views
|
||||
|
||||

|
||||
|
||||
|
||||
`SHOW_COMMIT` flag can be set to `False` to hide the commit stats
|
||||
|
||||
**I'm an early 🐤**
|
||||
```text
|
||||
🌞 Morning 95 commits ███████░░░░░░░░░░░░░░░░░░ 30.55%
|
||||
🌆 Daytime 78 commits ██████░░░░░░░░░░░░░░░░░░░ 25.08%
|
||||
🌃 Evening 112 commits █████████░░░░░░░░░░░░░░░░ 36.01%
|
||||
🌙 Night 26 commits ██░░░░░░░░░░░░░░░░░░░░░░░ 8.36%
|
||||
|
||||
```
|
||||
|
||||
`SHOW_DAYS_OF_WEEK` flag can be set to `False` to hide the commits made on different days of week
|
||||
|
||||
📅 **I'm Most Productive on Sundays**
|
||||
|
||||
```text
|
||||
Monday 50 commits ███░░░░░░░░░░░░░░░░░░░░░░ 13.19%
|
||||
Tuesday 85 commits █████░░░░░░░░░░░░░░░░░░░░ 22.43%
|
||||
Wednesday 56 commits ███░░░░░░░░░░░░░░░░░░░░░░ 14.78%
|
||||
Thursday 44 commits ███░░░░░░░░░░░░░░░░░░░░░░ 11.61%
|
||||
Friday 28 commits █░░░░░░░░░░░░░░░░░░░░░░░░ 7.39%
|
||||
Saturday 30 commits ██░░░░░░░░░░░░░░░░░░░░░░░ 7.92%
|
||||
Sunday 86 commits █████░░░░░░░░░░░░░░░░░░░░ 22.69%
|
||||
|
||||
```
|
||||
|
||||
`SHOW_LANGUAGE` flag can be set to `False` to hide the Coding Language You use
|
||||
|
||||
```text
|
||||
💬 Languages:
|
||||
JavaScript 5 hrs 26 mins ███████████████░░░░░░░░░░ 61.97%
|
||||
PHP 1 hr 35 mins ████░░░░░░░░░░░░░░░░░░░░░ 18.07%
|
||||
Markdown 1 hr 9 mins ███░░░░░░░░░░░░░░░░░░░░░░ 13.3%
|
||||
Python 22 mins █░░░░░░░░░░░░░░░░░░░░░░░░ 4.32%
|
||||
XML 8 mins ░░░░░░░░░░░░░░░░░░░░░░░░░ 1.62%
|
||||
```
|
||||
|
||||
|
||||
`SHOW_OS` flag can be set to `False` to hide the OS details
|
||||
|
||||
```text
|
||||
💻 Operating Systems:
|
||||
Windows 8 hrs 46 mins █████████████████████████ 100.0%
|
||||
```
|
||||
|
||||
`SHOW_PROJECTS` flag can be set to `False` to hide the Projects worked on
|
||||
|
||||
```text
|
||||
🐱💻 Projects:
|
||||
ctx_connector 4 hrs 3 mins ███████████░░░░░░░░░░░░░░ 46.33%
|
||||
NetSuite-Connector 1 hr 31 mins ████░░░░░░░░░░░░░░░░░░░░░ 17.29%
|
||||
mango-web-master 1 hr 12 mins ███░░░░░░░░░░░░░░░░░░░░░░ 13.77%
|
||||
cable 54 mins ██░░░░░░░░░░░░░░░░░░░░░░░ 10.41%
|
||||
denAPI 40 mins ██░░░░░░░░░░░░░░░░░░░░░░░ 7.66%
|
||||
```
|
||||
|
||||
`SHOW_TIMEZONE` flag can be set to `False` to hide the time zone you are in
|
||||
|
||||
```text
|
||||
⌚︎ Timezone: Asia/Calcutta
|
||||
```
|
||||
|
||||
`SHOW_EDITORS` flag can be set to `False` to hide the list of code-editors used
|
||||
|
||||
```text
|
||||
🔥 Editors:
|
||||
WebStorm 6 hrs 47 mins ███████████████████░░░░░░ 77.43%
|
||||
PhpStorm 1 hr 35 mins ████░░░░░░░░░░░░░░░░░░░░░ 18.07%
|
||||
PyCharm 23 mins █░░░░░░░░░░░░░░░░░░░░░░░░ 4.49%
|
||||
```
|
||||
|
||||
`SHOW_LANGUAGE_PER_REPO` flag can be set to `False` to hide the Number of repository in different language and frameworks
|
||||
|
||||
**I mostly code in Vue**
|
||||
|
||||
```text
|
||||
Vue 8 repos ██████░░░░░░░░░░░░░░░░░░░ 25.0%
|
||||
Java 6 repos ████░░░░░░░░░░░░░░░░░░░░░ 18.75%
|
||||
JavaScript 6 repos ████░░░░░░░░░░░░░░░░░░░░░ 18.75%
|
||||
PHP 3 repos ██░░░░░░░░░░░░░░░░░░░░░░░ 9.38%
|
||||
Python 2 repos █░░░░░░░░░░░░░░░░░░░░░░░░ 6.25%
|
||||
Dart 2 repos █░░░░░░░░░░░░░░░░░░░░░░░░ 6.25%
|
||||
CSS 2 repos █░░░░░░░░░░░░░░░░░░░░░░░░ 6.25%
|
||||
|
||||
```
|
||||
|
||||
`SHOW_SHORT_INFO` flag can be set to `False` to hide the short fun fact info of user
|
||||
>This section requires personal access token with user permission otherwise data shown will be incorrect here
|
||||
|
||||
**🐱 My GitHub Data**
|
||||
|
||||
> 🏆 433 Contributions in year 2020
|
||||
>
|
||||
> 📦 Used 292.3 kB in GitHub's Storage
|
||||
>
|
||||
> 💼 Opted to Hire
|
||||
>
|
||||
> 📜 25 Public Repository
|
||||
>
|
||||
> 🔑 15 Owned Private Repository
|
||||
|
||||
`SHOW_LOC_CHART` flag can be set to `False` to hide the Lines of code written in different quarters of different year
|
||||
|
||||
**Timeline**
|
||||
|
||||

|
||||
|
||||
## :sparkling_heart: Support the project
|
||||
|
||||
I open-source almost everything I can, and I try to reply to everyone needing help using these projects. Obviously,
|
||||
this takes time. You can use this service for free.
|
||||
|
||||
However, if you are using this project and happy with it or just want to encourage me to continue creating stuff, there are few ways you can do it :-
|
||||
|
||||
- Giving proper credit when you use this action on your readme, linking back to it :D
|
||||
- Starring and sharing the project :rocket:
|
||||
- [](https://www.paypal.me/aapreneur) - You can make one-time donations via PayPal. I'll probably buy a ~~beer~~ wine 🍷
|
||||
|
||||
Thanks! :heart:
|
||||
|
||||
---
|
||||
|
||||
# Contributing
|
||||
|
||||
Contributions are welcome! ♥! Please share any features, and add unit tests! Use the pull request and issue systems to contribute.
|
||||
|
||||
# Selected Contributors
|
||||
|
||||
1. [Anmol Pratap Singh](https://github.com/anmol098): Maintainer
|
||||
2. [Prabhat Singh](https://github.com/prabhatdev): For code timeline graph [#18](https://github.com/anmol098/waka-readme-stats/pull/18)
|
||||
3. [Hedy Li](https://github.com/hedythedev): For Pull Request [#34](https://github.com/anmol098/waka-readme-stats/pull/34) and [#23](https://github.com/anmol098/waka-readme-stats/pull/23)
|
||||
4. [Pedro Torres](https://github.com/Corfucinas): For Pull Request [#29](https://github.com/anmol098/waka-readme-stats/pull/29)
|
||||
5. [Aaron Meese](https://github.com/ajmeese7): For Pull Request [#45](https://github.com/anmol098/waka-readme-stats/pull/45)
|
||||
6. [Arnav Jindal](https://github.com/Daggy1234): For Pull Request [#48](https://github.com/anmol098/waka-readme-stats/pull/48)
|
||||
7. [Daniel Rowe](https://github.com/DanRowe1): For Pull Request [#57](https://github.com/anmol098/waka-readme-stats/pull/57)
|
||||
|
||||
<details>
|
||||
<summary>Special mention for those who are currently making their profile readme more awesome :smile: :tada:</summary>
|
||||
|
||||
- [Stanislas](https://github.com/angristan)
|
||||
|
||||
- [Pratik Kumar](https://github.com/pr2tik1)
|
||||
|
||||
- [Vladimir](https://github.com/sergeev-vn)
|
||||
|
||||
- [Pedro Torres](https://github.com/Corfucinas)
|
||||
|
||||
- [leverglowh](https://github.com/leverglowh)
|
||||
|
||||
- [patdc](https://github.com/patdc)
|
||||
|
||||
- [极客挖掘机](https://github.com/meteor1993)
|
||||
|
||||
- [Fan()](https://github.com/Fanduzi)
|
||||
|
||||
- [Miller Camilo Vega](https://github.com/minoveaz)
|
||||
|
||||
- [XLor](https://github.com/yjl9903)
|
||||
|
||||
- [Jesse Okeya](https://github.com/jesseokeya)
|
||||
|
||||
- [anaiel](https://github.com/anaiel)
|
||||
|
||||
- [Dipto Mondal](https://github.com/diptomondal007)
|
||||
|
||||
- [Jerry F. Zhang](https://github.com/JerryFZhang)
|
||||
|
||||
- [Karan Singh](https://github.com/karan06126)
|
||||
|
||||
- [Erwin Lejeune](https://github.com/guilyx)
|
||||
|
||||
- [Manuel Cepeda](https://github.com/mecm1993)
|
||||
|
||||
- [Jonathan S](https://github.com/TGTGamer)
|
||||
|
||||
- [Tsotne Gvadzabia](https://github.com/RockiRider)
|
||||
|
||||
- [Miray](https://github.com/MirayXS)
|
||||
|
||||
- [Varad Patil](https://github.com/varadp2000)
|
||||
|
||||
- [Prabhat Singh](https://github.com/prabhatdev)
|
||||
|
||||
- [Nikhil](https://github.com/nikhilgorantla)
|
||||
|
||||
- [大白](https://github.com/2720851545)
|
||||
|
||||
- [Du Yizhuo](https://github.com/dyzdyz010)
|
||||
|
||||
- [Manas Talukdar](https://github.com/manastalukdar)
|
||||
|
||||
- [Simranjeet Singh](https://github.com/smrnjeet222)
|
||||
|
||||
- [Aaron Meese](https://github.com/ajmeese7)
|
||||
|
||||
- [Prasad Narkhede](https://github.com/p014ri5)
|
||||
|
||||
- [Manish Kushwaha](https://github.com/tzmanish)
|
||||
|
||||
- [Hedy Li](https://github.com/hedythedev)
|
||||
|
||||
- [SHIMIZU Taku](https://github.com/takuan-osho)
|
||||
|
||||
- [Jude Wilson](https://github.com/mr-winson)
|
||||
|
||||
- [Daniel Rowe](https://github.com/DanRowe1)
|
||||
|
||||
- [Muhammad Hassan Ahmed](https://github.com/hassan11196)
|
||||
|
||||
- [Alessandro Maggio](https://github.com/Tkd-Alex)
|
||||
|
||||
|
||||
</details>
|
||||
|
||||
- And you! If ever you are using it right now and you are not on the list please tell us by sending a [Special Mention](https://github.com/anmol098/waka-readme-stats/issues/new/choose) issue :blush: we are glad to add you in the list.
|
||||
|
||||
|
||||
Made with :heart: and Python 🐍.
|
||||
|
||||
# Inspired From
|
||||
|
||||
> [Awesome Pinned Gists](https://github.com/matchai/awesome-pinned-gists) <br/>
|
||||
> [athul/waka-readme](https://github.com/athul/waka-readme)
|
||||
|
||||
### This project need a **star** ⭐ from you ♥.
|
||||
> Looking For Translation to different languages & Locale [#23](https://github.com/anmol098/waka-readme-stats/issues/23)
|
||||
|
||||
# Dev Metrics in Readme with added feature flags 🎌
|
||||
|
||||

|
||||
|
||||
<p align="center">
|
||||
|
||||

|
||||
|
||||
<h3 align="center">📌✨Awesome Readme Stats</h3>
|
||||
</p>
|
||||
|
||||
----
|
||||
|
||||
<p align="center">
|
||||
<img src="https://img.shields.io/badge/language-python-blue?style"/>
|
||||
<img src="https://img.shields.io/github/license/anmol098/waka-readme-stats"/>
|
||||
<img src="https://img.shields.io/github/stars/anmol098/waka-readme-stats"/>
|
||||
<img src="https://img.shields.io/github/forks/anmol098/waka-readme-stats"/>
|
||||
<img src="https://img.shields.io/static/v1?label=%F0%9F%8C%9F&message=If%20Useful&style=style=flat&color=BC4E99" alt="Star Badge"/>
|
||||
</p>
|
||||
<p align="center">
|
||||
Are you an early 🐤 or a night 🦉?
|
||||
<br/>
|
||||
When are you most productive during the day?
|
||||
<br/>
|
||||
What are languages you code in?
|
||||
<br/>
|
||||
Let's check out in your profile readme!
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
<a href="https://github.com/anmol098/waka-readme-stats/issues">Report Bug</a>
|
||||
·
|
||||
<a href="https://github.com/anmol098/waka-readme-stats/issues">Request Feature</a>
|
||||
</p>
|
||||
|
||||
## Prep Work
|
||||
|
||||
1. You need to update the markdown file(.md) with 2 comments. You can refer [here](#update-your-readme) for updating it.
|
||||
2. You'll need a WakaTime API Key. You can get that from your WakaTime Account Settings
|
||||
- You can refer [here](#new-to-wakatime), if you're new to WakaTime
|
||||
3. You'll need a GitHub API Token with `repo` and `user` scope from [here](https://github.com/settings/tokens) if you're running the action to get commit metrics
|
||||
> enabling the `repo` scope seems **DANGEROUS**<br/>
|
||||
> but this GitHub Action only accesses your commit timestamp and lines of code added or deleted in repository you contributed.
|
||||
- You can use [this](#profile-repository) example to work it out
|
||||
4. You need to save the WakaTime API Key and the GitHub API Token in the repository secrets. You can find that in the Settings of your repository. Be sure to save those as the following.
|
||||
- WakaTime API Key as `WAKATIME_API_KEY=<your wakatime API Key>`
|
||||
- GitHub Personal Access Token as `GH_TOKEN=<your github access token>`
|
||||
5. You can enable and disable feature flags based on requirements.
|
||||
|
||||
|
||||
This Action will run everyday at 00.00 IST
|
||||
|
||||
## Update your Readme
|
||||
|
||||
Add a comment to your `README.md` like this:
|
||||
|
||||
```md
|
||||
<!--START_SECTION:waka-->
|
||||
<!--END_SECTION:waka-->
|
||||
```
|
||||
|
||||
These lines will be our entry-points for the dev metrics.
|
||||
|
||||
## New to WakaTime
|
||||
|
||||
WakaTime gives you an idea of the time you really spent on coding. This helps you boost your productivity and competitive edge.
|
||||
|
||||
- Head over to <https://wakatime.com> and create an account.
|
||||
- Get your WakaTime API Key from your [Account Settings in WakaTime](https://wakatime.com/settings/account).
|
||||
- Install the [WakaTime plugin](https://wakatime.com/plugins) in your favourite editor / IDE.
|
||||
- Paste in your API key to start the analysis.
|
||||
|
||||
### Profile Repository
|
||||
|
||||
You'll need to get a [GitHub Access Token](https://docs.github.com/en/actions/configuring-and-managing-workflows/authenticating-with-the-github_token) with a `repo` and `user` scope and save it in the Repo Secrets `GH_TOKEN = <Your GitHub Access Token>`
|
||||
|
||||
Here is Sample Workflow File for running it:
|
||||
|
||||
```yml
|
||||
name: Waka Readme
|
||||
|
||||
on:
|
||||
schedule:
|
||||
# Runs at 12am IST
|
||||
- cron: '30 18 * * *'
|
||||
|
||||
jobs:
|
||||
update-readme:
|
||||
name: Update Readme with Metrics
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: anmol098/waka-readme-stats@master
|
||||
with:
|
||||
WAKATIME_API_KEY: ${{ secrets.WAKATIME_API_KEY }}
|
||||
GH_TOKEN: ${{ secrets.GH_TOKEN }}
|
||||
```
|
||||
## Extras
|
||||
|
||||
1. If you want to add the other info to your stats, you can add multiple `FLAGS` in your workflow file by default all flags are enabled
|
||||
>except the lines of code flag due to heavy operation performed
|
||||
|
||||
```yml
|
||||
- uses: anmol098/waka-readme-stats@master
|
||||
with:
|
||||
WAKATIME_API_KEY: ${{ secrets.WAKATIME_API_KEY }}
|
||||
GH_TOKEN: ${{ secrets.GH_TOKEN }}
|
||||
SHOW_OS: "False"
|
||||
SHOW_PROJECTS: "False"
|
||||
```
|
||||
|
||||
### Flags Available
|
||||
|
||||
---
|
||||
|
||||
`LOCALE` This Flag can be used to show stats in your language default is english uses Locale [Short Hand](https://saimana.com/list-of-country-locale-code/) to be passed in the flag variable example of the final result can be found [here](https://github.com/anmol098/anmol098/blob/master/Readme-fr.md)
|
||||
|
||||
|
||||
`SHOW_LINES_OF_CODE` flag can be set to `True` to show the Lines of code writen till date
|
||||
|
||||

|
||||
|
||||
`SHOW_PROFILE_VIEWS` flag can be set to `False` to hide the Profile views
|
||||
|
||||

|
||||
|
||||
|
||||
`SHOW_COMMIT` flag can be set to `False` to hide the commit stats
|
||||
|
||||
**I'm an early 🐤**
|
||||
```text
|
||||
🌞 Morning 95 commits ███████░░░░░░░░░░░░░░░░░░ 30.55%
|
||||
🌆 Daytime 78 commits ██████░░░░░░░░░░░░░░░░░░░ 25.08%
|
||||
🌃 Evening 112 commits █████████░░░░░░░░░░░░░░░░ 36.01%
|
||||
🌙 Night 26 commits ██░░░░░░░░░░░░░░░░░░░░░░░ 8.36%
|
||||
|
||||
```
|
||||
|
||||
`SHOW_DAYS_OF_WEEK` flag can be set to `False` to hide the commits made on different days of week
|
||||
|
||||
📅 **I'm Most Productive on Sundays**
|
||||
|
||||
```text
|
||||
Monday 50 commits ███░░░░░░░░░░░░░░░░░░░░░░ 13.19%
|
||||
Tuesday 85 commits █████░░░░░░░░░░░░░░░░░░░░ 22.43%
|
||||
Wednesday 56 commits ███░░░░░░░░░░░░░░░░░░░░░░ 14.78%
|
||||
Thursday 44 commits ███░░░░░░░░░░░░░░░░░░░░░░ 11.61%
|
||||
Friday 28 commits █░░░░░░░░░░░░░░░░░░░░░░░░ 7.39%
|
||||
Saturday 30 commits ██░░░░░░░░░░░░░░░░░░░░░░░ 7.92%
|
||||
Sunday 86 commits █████░░░░░░░░░░░░░░░░░░░░ 22.69%
|
||||
|
||||
```
|
||||
|
||||
`SHOW_LANGUAGE` flag can be set to `False` to hide the Coding Language You use
|
||||
|
||||
```text
|
||||
💬 Languages:
|
||||
JavaScript 5 hrs 26 mins ███████████████░░░░░░░░░░ 61.97%
|
||||
PHP 1 hr 35 mins ████░░░░░░░░░░░░░░░░░░░░░ 18.07%
|
||||
Markdown 1 hr 9 mins ███░░░░░░░░░░░░░░░░░░░░░░ 13.3%
|
||||
Python 22 mins █░░░░░░░░░░░░░░░░░░░░░░░░ 4.32%
|
||||
XML 8 mins ░░░░░░░░░░░░░░░░░░░░░░░░░ 1.62%
|
||||
```
|
||||
|
||||
|
||||
`SHOW_OS` flag can be set to `False` to hide the OS details
|
||||
|
||||
```text
|
||||
💻 Operating Systems:
|
||||
Windows 8 hrs 46 mins █████████████████████████ 100.0%
|
||||
```
|
||||
|
||||
`SHOW_PROJECTS` flag can be set to `False` to hide the Projects worked on
|
||||
|
||||
```text
|
||||
🐱💻 Projects:
|
||||
ctx_connector 4 hrs 3 mins ███████████░░░░░░░░░░░░░░ 46.33%
|
||||
NetSuite-Connector 1 hr 31 mins ████░░░░░░░░░░░░░░░░░░░░░ 17.29%
|
||||
mango-web-master 1 hr 12 mins ███░░░░░░░░░░░░░░░░░░░░░░ 13.77%
|
||||
cable 54 mins ██░░░░░░░░░░░░░░░░░░░░░░░ 10.41%
|
||||
denAPI 40 mins ██░░░░░░░░░░░░░░░░░░░░░░░ 7.66%
|
||||
```
|
||||
|
||||
`SHOW_TIMEZONE` flag can be set to `False` to hide the time zone you are in
|
||||
|
||||
```text
|
||||
⌚︎ Timezone: Asia/Calcutta
|
||||
```
|
||||
|
||||
`SHOW_EDITORS` flag can be set to `False` to hide the list of code-editors used
|
||||
|
||||
```text
|
||||
🔥 Editors:
|
||||
WebStorm 6 hrs 47 mins ███████████████████░░░░░░ 77.43%
|
||||
PhpStorm 1 hr 35 mins ████░░░░░░░░░░░░░░░░░░░░░ 18.07%
|
||||
PyCharm 23 mins █░░░░░░░░░░░░░░░░░░░░░░░░ 4.49%
|
||||
```
|
||||
|
||||
`SHOW_LANGUAGE_PER_REPO` flag can be set to `False` to hide the Number of repository in different language and frameworks
|
||||
|
||||
**I mostly code in Vue**
|
||||
|
||||
```text
|
||||
Vue 8 repos ██████░░░░░░░░░░░░░░░░░░░ 25.0%
|
||||
Java 6 repos ████░░░░░░░░░░░░░░░░░░░░░ 18.75%
|
||||
JavaScript 6 repos ████░░░░░░░░░░░░░░░░░░░░░ 18.75%
|
||||
PHP 3 repos ██░░░░░░░░░░░░░░░░░░░░░░░ 9.38%
|
||||
Python 2 repos █░░░░░░░░░░░░░░░░░░░░░░░░ 6.25%
|
||||
Dart 2 repos █░░░░░░░░░░░░░░░░░░░░░░░░ 6.25%
|
||||
CSS 2 repos █░░░░░░░░░░░░░░░░░░░░░░░░ 6.25%
|
||||
|
||||
```
|
||||
|
||||
`SHOW_SHORT_INFO` flag can be set to `False` to hide the short fun fact info of user
|
||||
>This section requires personal access token with user permission otherwise data shown will be incorrect here
|
||||
|
||||
**🐱 My GitHub Data**
|
||||
|
||||
> 🏆 433 Contributions in year 2020
|
||||
>
|
||||
> 📦 Used 292.3 kB in GitHub's Storage
|
||||
>
|
||||
> 💼 Opted to Hire
|
||||
>
|
||||
> 📜 25 Public Repository
|
||||
>
|
||||
> 🔑 15 Owned Private Repository
|
||||
|
||||
`SHOW_LOC_CHART` flag can be set to `False` to hide the Lines of code written in different quarters of different year
|
||||
|
||||
**Timeline**
|
||||
|
||||

|
||||
|
||||
## :sparkling_heart: Support the project
|
||||
|
||||
I open-source almost everything I can, and I try to reply to everyone needing help using these projects. Obviously,
|
||||
this takes time. You can use this service for free.
|
||||
|
||||
However, if you are using this project and happy with it or just want to encourage me to continue creating stuff, there are few ways you can do it :-
|
||||
|
||||
- Giving proper credit when you use this action on your readme, linking back to it :D
|
||||
- Starring and sharing the project :rocket:
|
||||
- [](https://www.paypal.me/aapreneur) - You can make one-time donations via PayPal. I'll probably buy a ~~beer~~ wine 🍷
|
||||
|
||||
Thanks! :heart:
|
||||
|
||||
---
|
||||
|
||||
# Contributing
|
||||
|
||||
Contributions are welcome! ♥! Please share any features, and add unit tests! Use the pull request and issue systems to contribute.
|
||||
|
||||
# Selected Contributors
|
||||
|
||||
1. [Anmol Pratap Singh](https://github.com/anmol098): Maintainer
|
||||
2. [Prabhat Singh](https://github.com/prabhatdev): For code timeline graph [#18](https://github.com/anmol098/waka-readme-stats/pull/18)
|
||||
3. [Hedy Li](https://github.com/hedythedev): For Pull Request [#34](https://github.com/anmol098/waka-readme-stats/pull/34) and [#23](https://github.com/anmol098/waka-readme-stats/pull/23)
|
||||
4. [Pedro Torres](https://github.com/Corfucinas): For Pull Request [#29](https://github.com/anmol098/waka-readme-stats/pull/29)
|
||||
5. [Aaron Meese](https://github.com/ajmeese7): For Pull Request [#45](https://github.com/anmol098/waka-readme-stats/pull/45)
|
||||
6. [Arnav Jindal](https://github.com/Daggy1234): For Pull Request [#48](https://github.com/anmol098/waka-readme-stats/pull/48)
|
||||
7. [Daniel Rowe](https://github.com/DanRowe1): For Pull Request [#57](https://github.com/anmol098/waka-readme-stats/pull/57)
|
||||
|
||||
<details>
|
||||
<summary>Special mention for those who are currently making their profile readme more awesome :smile: :tada:</summary>
|
||||
|
||||
- [Stanislas](https://github.com/angristan)
|
||||
|
||||
- [Pratik Kumar](https://github.com/pr2tik1)
|
||||
|
||||
- [Vladimir](https://github.com/sergeev-vn)
|
||||
|
||||
- [Pedro Torres](https://github.com/Corfucinas)
|
||||
|
||||
- [leverglowh](https://github.com/leverglowh)
|
||||
|
||||
- [patdc](https://github.com/patdc)
|
||||
|
||||
- [极客挖掘机](https://github.com/meteor1993)
|
||||
|
||||
- [Fan()](https://github.com/Fanduzi)
|
||||
|
||||
- [Miller Camilo Vega](https://github.com/minoveaz)
|
||||
|
||||
- [XLor](https://github.com/yjl9903)
|
||||
|
||||
- [Jesse Okeya](https://github.com/jesseokeya)
|
||||
|
||||
- [anaiel](https://github.com/anaiel)
|
||||
|
||||
- [Dipto Mondal](https://github.com/diptomondal007)
|
||||
|
||||
- [Jerry F. Zhang](https://github.com/JerryFZhang)
|
||||
|
||||
- [Karan Singh](https://github.com/karan06126)
|
||||
|
||||
- [Erwin Lejeune](https://github.com/guilyx)
|
||||
|
||||
- [Manuel Cepeda](https://github.com/mecm1993)
|
||||
|
||||
- [Jonathan S](https://github.com/TGTGamer)
|
||||
|
||||
- [Tsotne Gvadzabia](https://github.com/RockiRider)
|
||||
|
||||
- [Miray](https://github.com/MirayXS)
|
||||
|
||||
- [Varad Patil](https://github.com/varadp2000)
|
||||
|
||||
- [Prabhat Singh](https://github.com/prabhatdev)
|
||||
|
||||
- [Nikhil](https://github.com/nikhilgorantla)
|
||||
|
||||
- [大白](https://github.com/2720851545)
|
||||
|
||||
- [Du Yizhuo](https://github.com/dyzdyz010)
|
||||
|
||||
- [Manas Talukdar](https://github.com/manastalukdar)
|
||||
|
||||
- [Simranjeet Singh](https://github.com/smrnjeet222)
|
||||
|
||||
- [Aaron Meese](https://github.com/ajmeese7)
|
||||
|
||||
- [Prasad Narkhede](https://github.com/p014ri5)
|
||||
|
||||
- [Manish Kushwaha](https://github.com/tzmanish)
|
||||
|
||||
- [Hedy Li](https://github.com/hedythedev)
|
||||
|
||||
- [SHIMIZU Taku](https://github.com/takuan-osho)
|
||||
|
||||
- [Jude Wilson](https://github.com/mr-winson)
|
||||
|
||||
- [Daniel Rowe](https://github.com/DanRowe1)
|
||||
|
||||
- [Muhammad Hassan Ahmed](https://github.com/hassan11196)
|
||||
|
||||
- [Alessandro Maggio](https://github.com/Tkd-Alex)
|
||||
|
||||
|
||||
</details>
|
||||
|
||||
- And you! If ever you are using it right now and you are not on the list please tell us by sending a [Special Mention](https://github.com/anmol098/waka-readme-stats/issues/new/choose) issue :blush: we are glad to add you in the list.
|
||||
|
||||
|
||||
Made with :heart: and Python 🐍.
|
||||
|
||||
# Inspired From
|
||||
|
||||
> [Awesome Pinned Gists](https://github.com/matchai/awesome-pinned-gists) <br/>
|
||||
> [athul/waka-readme](https://github.com/athul/waka-readme)
|
||||
|
||||
### This project need a **star** ⭐ from you ♥.
|
||||
|
||||
172
action.yml
172
action.yml
@@ -1,87 +1,87 @@
|
||||
name: 'Profile Readme Development Stats'
|
||||
author: Anmol Pratap Singh
|
||||
description: 'Are you an early 🐤 or a night 🦉? When are you most productive during the day? Let''s check out in your readme!'
|
||||
|
||||
inputs:
|
||||
GH_TOKEN:
|
||||
description: 'GitHub access token with Repo scope'
|
||||
required: true
|
||||
default: ${{ github.token }}
|
||||
|
||||
WAKATIME_API_KEY:
|
||||
description: 'Your Wakatime API Key'
|
||||
required: true
|
||||
|
||||
SHOW_OS:
|
||||
required: false
|
||||
description: 'Show the list of OS Worked on In dev metrics'
|
||||
default: "True"
|
||||
|
||||
SHOW_PROJECTS:
|
||||
required: false
|
||||
description: 'Show the list of projects worked on in dev metrics'
|
||||
default: "True"
|
||||
|
||||
SHOW_EDITORS:
|
||||
required: false
|
||||
description: 'Show the Editors used in dev metrics'
|
||||
default: "True"
|
||||
|
||||
SHOW_TIMEZONE:
|
||||
required: false
|
||||
description: 'Show the time zone in the dev metrics'
|
||||
default: "True"
|
||||
|
||||
SHOW_COMMIT:
|
||||
required: false
|
||||
description: "Shows the number of commit graph in the dev metrics"
|
||||
default: "True"
|
||||
|
||||
SHOW_LANGUAGE:
|
||||
required: false
|
||||
description: "Show the Coding language used in dev metrics"
|
||||
default: "True"
|
||||
|
||||
SHOW_LINES_OF_CODE:
|
||||
required: false
|
||||
description: "Show the Total Lines of code written Badge till date"
|
||||
default: "False"
|
||||
|
||||
SHOW_LANGUAGE_PER_REPO:
|
||||
required: false
|
||||
description: "Show language or framework used across different repository"
|
||||
default: "True"
|
||||
|
||||
SHOW_LOC_CHART:
|
||||
required: false
|
||||
description: ""
|
||||
default: "True"
|
||||
|
||||
SHOW_DAYS_OF_WEEK:
|
||||
required: false
|
||||
description: "show day of week you are most productive"
|
||||
default: "True"
|
||||
|
||||
SHOW_PROFILE_VIEWS:
|
||||
required: false
|
||||
description: "Shows the current profile views"
|
||||
default: "True"
|
||||
|
||||
SHOW_SHORT_INFO:
|
||||
required: false
|
||||
description: "Shows the short facts"
|
||||
default: "True"
|
||||
|
||||
LOCALE:
|
||||
required: false
|
||||
description: "Show stats in your own language"
|
||||
default: "en"
|
||||
|
||||
|
||||
runs:
|
||||
using: 'docker'
|
||||
image: 'Dockerfile'
|
||||
|
||||
branding:
|
||||
icon: 'activity'
|
||||
name: 'Profile Readme Development Stats'
|
||||
author: Anmol Pratap Singh
|
||||
description: 'Are you an early 🐤 or a night 🦉? When are you most productive during the day? Let''s check out in your readme!'
|
||||
|
||||
inputs:
|
||||
GH_TOKEN:
|
||||
description: 'GitHub access token with Repo scope'
|
||||
required: true
|
||||
default: ${{ github.token }}
|
||||
|
||||
WAKATIME_API_KEY:
|
||||
description: 'Your Wakatime API Key'
|
||||
required: true
|
||||
|
||||
SHOW_OS:
|
||||
required: false
|
||||
description: 'Show the list of OS Worked on In dev metrics'
|
||||
default: "True"
|
||||
|
||||
SHOW_PROJECTS:
|
||||
required: false
|
||||
description: 'Show the list of projects worked on in dev metrics'
|
||||
default: "True"
|
||||
|
||||
SHOW_EDITORS:
|
||||
required: false
|
||||
description: 'Show the Editors used in dev metrics'
|
||||
default: "True"
|
||||
|
||||
SHOW_TIMEZONE:
|
||||
required: false
|
||||
description: 'Show the time zone in the dev metrics'
|
||||
default: "True"
|
||||
|
||||
SHOW_COMMIT:
|
||||
required: false
|
||||
description: "Shows the number of commit graph in the dev metrics"
|
||||
default: "True"
|
||||
|
||||
SHOW_LANGUAGE:
|
||||
required: false
|
||||
description: "Show the Coding language used in dev metrics"
|
||||
default: "True"
|
||||
|
||||
SHOW_LINES_OF_CODE:
|
||||
required: false
|
||||
description: "Show the Total Lines of code written Badge till date"
|
||||
default: "False"
|
||||
|
||||
SHOW_LANGUAGE_PER_REPO:
|
||||
required: false
|
||||
description: "Show language or framework used across different repository"
|
||||
default: "True"
|
||||
|
||||
SHOW_LOC_CHART:
|
||||
required: false
|
||||
description: ""
|
||||
default: "True"
|
||||
|
||||
SHOW_DAYS_OF_WEEK:
|
||||
required: false
|
||||
description: "show day of week you are most productive"
|
||||
default: "True"
|
||||
|
||||
SHOW_PROFILE_VIEWS:
|
||||
required: false
|
||||
description: "Shows the current profile views"
|
||||
default: "True"
|
||||
|
||||
SHOW_SHORT_INFO:
|
||||
required: false
|
||||
description: "Shows the short facts"
|
||||
default: "True"
|
||||
|
||||
LOCALE:
|
||||
required: false
|
||||
description: "Show stats in your own language"
|
||||
default: "en"
|
||||
|
||||
|
||||
runs:
|
||||
using: 'docker'
|
||||
image: 'Dockerfile'
|
||||
|
||||
branding:
|
||||
icon: 'activity'
|
||||
color: 'orange'
|
||||
3234
colors.json
3234
colors.json
File diff suppressed because it is too large
Load Diff
0
geckodriver.log
Normal file
0
geckodriver.log
Normal file
184
loc.py
184
loc.py
@@ -1,91 +1,93 @@
|
||||
import re
|
||||
import os
|
||||
import base64
|
||||
import requests
|
||||
from github import Github, InputGitAuthor
|
||||
import datetime
|
||||
from string import Template
|
||||
import matplotlib.pyplot as plt
|
||||
from io import StringIO, BytesIO
|
||||
from dotenv import load_dotenv
|
||||
import time
|
||||
|
||||
from make_bar_graph import BarGraph
|
||||
|
||||
|
||||
class LinesOfCode:
|
||||
|
||||
def __init__(self, id, username, ghtoken, repositoryData):
|
||||
self.id = id
|
||||
self.username = username
|
||||
|
||||
self.g = Github(ghtoken)
|
||||
self.headers = {"Authorization": "Bearer " + ghtoken}
|
||||
self.repositoryData = repositoryData
|
||||
|
||||
def calculateLoc(self):
|
||||
result = self.repositoryData
|
||||
yearly_data = {}
|
||||
for repo in result['data']['user']['repositories']['edges']:
|
||||
self.getCommitStat(repo['node'], yearly_data)
|
||||
time.sleep(0.7)
|
||||
graph = BarGraph(yearly_data)
|
||||
graph_file = graph.build_graph()
|
||||
self.pushChart()
|
||||
|
||||
def run_query_v3(self, nameWithOwner):
|
||||
endPoint = 'https://api.github.com/repos/' + nameWithOwner + '/stats/code_frequency'
|
||||
# print(endPoint)
|
||||
request = requests.get(endPoint, headers=self.headers)
|
||||
if request.status_code == 401:
|
||||
raise Exception("Invalid token {}. {}".format(request.status_code, nameWithOwner))
|
||||
elif request.status_code == 204:
|
||||
return []
|
||||
else:
|
||||
return request.json()
|
||||
|
||||
def getQuarter(self, timeStamp):
|
||||
month = datetime.datetime.fromtimestamp(timeStamp).month
|
||||
if month >= 1 and month <= 4:
|
||||
return 1
|
||||
elif month >= 5 and month <= 8:
|
||||
return 2
|
||||
elif month >= 9 and month <= 12:
|
||||
return 3
|
||||
|
||||
def getCommitStat(self, repoDetails, yearly_data):
|
||||
result = self.run_query_v3(repoDetails['nameWithOwner'])
|
||||
this_year = datetime.datetime.utcnow().year
|
||||
|
||||
for i in range(len(result)):
|
||||
curr_year = datetime.datetime.fromtimestamp(result[i][0]).year
|
||||
# if curr_year != this_year:
|
||||
quarter = self.getQuarter(result[i][0])
|
||||
if repoDetails['primaryLanguage'] is not None:
|
||||
|
||||
if curr_year not in yearly_data:
|
||||
yearly_data[curr_year] = {}
|
||||
if quarter not in yearly_data[curr_year]:
|
||||
yearly_data[curr_year][quarter] = {}
|
||||
if repoDetails['primaryLanguage']['name'] not in yearly_data[curr_year][quarter]:
|
||||
yearly_data[curr_year][quarter][repoDetails['primaryLanguage']['name']] = 0
|
||||
yearly_data[curr_year][quarter][repoDetails['primaryLanguage']['name']] += (result[i][1] + result[i][2])
|
||||
|
||||
# to find total
|
||||
|
||||
# if 'total' not in yearly_data[curr_year]:
|
||||
# yearly_data[curr_year]['total']={}
|
||||
# if repoDetails['primaryLanguage']['name'] not in yearly_data[curr_year]['total']:
|
||||
# yearly_data[curr_year]['total'][repoDetails['primaryLanguage']['name']]=0
|
||||
# yearly_data[curr_year]['total'][repoDetails['primaryLanguage']['name']]+=(result[i][1]+result[i][2])
|
||||
|
||||
def pushChart(self):
|
||||
repo = self.g.get_repo(f"{self.username}/{self.username}")
|
||||
committer = InputGitAuthor('readme-bot', 'readme-bot@example.com')
|
||||
with open('bar_graph.png', 'rb') as input_file:
|
||||
data = input_file.read()
|
||||
try:
|
||||
contents = repo.get_contents("charts/bar_graph.png")
|
||||
repo.update_file(contents.path, "Charts Updated", data, contents.sha, committer=committer)
|
||||
except Exception as e:
|
||||
repo.create_file("charts/bar_graph.png", "Charts Added", data, committer=committer)
|
||||
import re
|
||||
import os
|
||||
import base64
|
||||
import requests
|
||||
from github import Github, InputGitAuthor
|
||||
import datetime
|
||||
from string import Template
|
||||
import matplotlib.pyplot as plt
|
||||
from io import StringIO, BytesIO
|
||||
from dotenv import load_dotenv
|
||||
import time
|
||||
|
||||
from make_bar_graph import BarGraph
|
||||
|
||||
|
||||
class LinesOfCode:
|
||||
|
||||
def __init__(self, id, username, ghtoken, repositoryData):
|
||||
self.id = id
|
||||
self.username = username
|
||||
|
||||
self.g = Github(ghtoken)
|
||||
self.headers = {"Authorization": "Bearer " + ghtoken}
|
||||
self.repositoryData = repositoryData
|
||||
|
||||
def calculateLoc(self):
|
||||
result = self.repositoryData
|
||||
yearly_data = {}
|
||||
for repo in result['data']['user']['repositories']['edges']:
|
||||
self.getCommitStat(repo['node'], yearly_data)
|
||||
time.sleep(0.7)
|
||||
graph = BarGraph(yearly_data)
|
||||
graph_file = graph.build_graph()
|
||||
self.pushChart()
|
||||
|
||||
def run_query_v3(self, nameWithOwner):
|
||||
endPoint = 'https://api.github.com/repos/' + nameWithOwner + '/stats/code_frequency'
|
||||
# print(endPoint)
|
||||
request = requests.get(endPoint, headers=self.headers)
|
||||
if request.status_code == 401:
|
||||
raise Exception("Invalid token {}. {}".format(request.status_code, nameWithOwner))
|
||||
elif request.status_code == 204:
|
||||
return []
|
||||
else:
|
||||
return request.json()
|
||||
|
||||
def getQuarter(self, timeStamp):
|
||||
month = datetime.datetime.fromtimestamp(timeStamp).month
|
||||
if month >= 1 and month <= 3:
|
||||
return 1
|
||||
elif month >= 4 and month <= 6:
|
||||
return 2
|
||||
elif month >= 7 and month <= 9:
|
||||
return 3
|
||||
elif month >= 10 and month <= 12:
|
||||
return 4
|
||||
|
||||
def getCommitStat(self, repoDetails, yearly_data):
|
||||
result = self.run_query_v3(repoDetails['nameWithOwner'])
|
||||
this_year = datetime.datetime.utcnow().year
|
||||
|
||||
for i in range(len(result)):
|
||||
curr_year = datetime.datetime.fromtimestamp(result[i][0]).year
|
||||
# if curr_year != this_year:
|
||||
quarter = self.getQuarter(result[i][0])
|
||||
if repoDetails['primaryLanguage'] is not None:
|
||||
|
||||
if curr_year not in yearly_data:
|
||||
yearly_data[curr_year] = {}
|
||||
if quarter not in yearly_data[curr_year]:
|
||||
yearly_data[curr_year][quarter] = {}
|
||||
if repoDetails['primaryLanguage']['name'] not in yearly_data[curr_year][quarter]:
|
||||
yearly_data[curr_year][quarter][repoDetails['primaryLanguage']['name']] = 0
|
||||
yearly_data[curr_year][quarter][repoDetails['primaryLanguage']['name']] += (result[i][1])
|
||||
|
||||
# to find total
|
||||
|
||||
# if 'total' not in yearly_data[curr_year]:
|
||||
# yearly_data[curr_year]['total']={}
|
||||
# if repoDetails['primaryLanguage']['name'] not in yearly_data[curr_year]['total']:
|
||||
# yearly_data[curr_year]['total'][repoDetails['primaryLanguage']['name']]=0
|
||||
# yearly_data[curr_year]['total'][repoDetails['primaryLanguage']['name']]+=(result[i][1]+result[i][2])
|
||||
|
||||
def pushChart(self):
|
||||
repo = self.g.get_repo(f"{self.username}/{self.username}")
|
||||
committer = InputGitAuthor('readme-bot', 'readme-bot@example.com')
|
||||
with open('bar_graph.png', 'rb') as input_file:
|
||||
data = input_file.read()
|
||||
try:
|
||||
contents = repo.get_contents("charts/bar_graph.png")
|
||||
repo.update_file(contents.path, "Charts Updated", data, contents.sha, committer=committer)
|
||||
except Exception as e:
|
||||
repo.create_file("charts/bar_graph.png", "Charts Added", data, committer=committer)
|
||||
|
||||
@@ -1,107 +1,108 @@
|
||||
import os
|
||||
import pandas as pd
|
||||
import numpy as np
|
||||
import altair as alt
|
||||
import json
|
||||
import os
|
||||
# npm install vega-lite vega-cli canvas
|
||||
|
||||
|
||||
class BarGraph:
|
||||
|
||||
def __init__(self, yearly_data):
|
||||
self.yearly_data = yearly_data
|
||||
|
||||
def build_graph(self):
|
||||
|
||||
with open(os.path.join(os.path.dirname(__file__), 'colors.json')) as f:
|
||||
colors = json.load(f)
|
||||
allColorsValues = []
|
||||
|
||||
# filter data
|
||||
max_languages = 5
|
||||
top_languages = {}
|
||||
for year in self.yearly_data.keys():
|
||||
for quarter in self.yearly_data[year].keys():
|
||||
for language in sorted(list(self.yearly_data[year][quarter].keys()),
|
||||
key=lambda lang: self.yearly_data[year][quarter][lang], reverse=True)[
|
||||
0:max_languages]:
|
||||
if 'top' not in self.yearly_data[year][quarter]:
|
||||
self.yearly_data[year][quarter]['top'] = {}
|
||||
if self.yearly_data[year][quarter][language] != 0:
|
||||
self.yearly_data[year][quarter]['top'][language] = self.yearly_data[year][quarter][language]
|
||||
|
||||
if language not in top_languages:
|
||||
top_languages[language] = 1
|
||||
top_languages[language] += 1
|
||||
|
||||
# print(self.yearly_data)
|
||||
|
||||
all_languages = list(top_languages.keys())
|
||||
|
||||
for language in all_languages:
|
||||
if colors[language]['color'] is not None:
|
||||
allColorsValues.append(colors[language]['color'])
|
||||
|
||||
languages_all_loc = {}
|
||||
|
||||
for language in all_languages:
|
||||
language_year = []
|
||||
for year in self.yearly_data.keys():
|
||||
language_quarter = [0, 0, 0]
|
||||
for quarter in self.yearly_data[year].keys():
|
||||
if language in self.yearly_data[year][quarter]['top']:
|
||||
language_quarter[quarter - 1] = self.yearly_data[year][quarter]['top'][language]
|
||||
else:
|
||||
language_quarter[quarter - 1] = 0
|
||||
language_year.append(language_quarter)
|
||||
languages_all_loc[language] = language_year
|
||||
|
||||
# print(languages_all_loc)
|
||||
|
||||
language_df = {}
|
||||
|
||||
def prep_df(df, name):
|
||||
df = df.stack().reset_index()
|
||||
df.columns = ['c1', 'c2', 'values']
|
||||
df['Language'] = name
|
||||
return df
|
||||
|
||||
for language in languages_all_loc.keys():
|
||||
language_df[language] = pd.DataFrame(languages_all_loc[language], index=list(self.yearly_data.keys()),
|
||||
columns=["Q1", "Q2", "Q3"])
|
||||
|
||||
for language in language_df.keys():
|
||||
language_df[language] = prep_df(language_df[language], language)
|
||||
|
||||
df = pd.concat(list(language_df.values()))
|
||||
|
||||
|
||||
chart = alt.Chart(df).mark_bar().encode(
|
||||
|
||||
# tell Altair which field to group columns on
|
||||
x=alt.X('c2:N', title=None),
|
||||
|
||||
# tell Altair which field to use as Y values and how to calculate
|
||||
y=alt.Y('sum(values):Q',
|
||||
axis=alt.Axis(
|
||||
grid=False,
|
||||
title='LOC added')),
|
||||
|
||||
# tell Altair which field to use to use as the set of columns to be represented in each group
|
||||
column=alt.Column('c1:N', title=None),
|
||||
|
||||
# tell Altair which field to use for color segmentation
|
||||
color=alt.Color('Language:N',
|
||||
scale=alt.Scale(
|
||||
domain=all_languages,
|
||||
# make it look pretty with an enjoyable color pallet
|
||||
range=allColorsValues,
|
||||
),
|
||||
)) \
|
||||
.configure_view(
|
||||
# remove grid lines around column clusters
|
||||
strokeOpacity=0
|
||||
)
|
||||
chart.save('bar_graph.png')
|
||||
return 'bar_graph.png'
|
||||
import os
|
||||
import pandas as pd
|
||||
import numpy as np
|
||||
import altair as alt
|
||||
import json
|
||||
import os
|
||||
# npm install vega-lite vega-cli canvas
|
||||
|
||||
|
||||
class BarGraph:
|
||||
|
||||
def __init__(self, yearly_data):
|
||||
self.yearly_data = yearly_data
|
||||
|
||||
def build_graph(self):
|
||||
print(self.yearly_data)
|
||||
|
||||
with open(os.path.join(os.path.dirname(__file__), 'colors.json')) as f:
|
||||
colors = json.load(f)
|
||||
allColorsValues = []
|
||||
|
||||
# filter data
|
||||
max_languages = 5
|
||||
top_languages = {}
|
||||
for year in self.yearly_data.keys():
|
||||
for quarter in self.yearly_data[year].keys():
|
||||
for language in sorted(list(self.yearly_data[year][quarter].keys()),
|
||||
key=lambda lang: self.yearly_data[year][quarter][lang], reverse=True)[
|
||||
0:max_languages]:
|
||||
if 'top' not in self.yearly_data[year][quarter]:
|
||||
self.yearly_data[year][quarter]['top'] = {}
|
||||
if self.yearly_data[year][quarter][language] != 0:
|
||||
self.yearly_data[year][quarter]['top'][language] = self.yearly_data[year][quarter][language]
|
||||
|
||||
if language not in top_languages:
|
||||
top_languages[language] = 1
|
||||
top_languages[language] += 1
|
||||
|
||||
# print(self.yearly_data)
|
||||
|
||||
all_languages = list(top_languages.keys())
|
||||
|
||||
for language in all_languages:
|
||||
if colors[language]['color'] is not None:
|
||||
allColorsValues.append(colors[language]['color'])
|
||||
|
||||
languages_all_loc = {}
|
||||
|
||||
for language in all_languages:
|
||||
language_year = []
|
||||
for year in self.yearly_data.keys():
|
||||
language_quarter = [0, 0, 0, 0]
|
||||
for quarter in self.yearly_data[year].keys():
|
||||
if language in self.yearly_data[year][quarter]['top']:
|
||||
language_quarter[quarter - 1] = self.yearly_data[year][quarter]['top'][language]
|
||||
else:
|
||||
language_quarter[quarter - 1] = 0
|
||||
language_year.append(language_quarter)
|
||||
languages_all_loc[language] = language_year
|
||||
|
||||
# print(languages_all_loc)
|
||||
|
||||
language_df = {}
|
||||
|
||||
def prep_df(df, name):
|
||||
df = df.stack().reset_index()
|
||||
df.columns = ['c1', 'c2', 'values']
|
||||
df['Language'] = name
|
||||
return df
|
||||
|
||||
for language in languages_all_loc.keys():
|
||||
language_df[language] = pd.DataFrame(languages_all_loc[language], index=list(self.yearly_data.keys()),
|
||||
columns=["Q1", "Q2", "Q3", "Q4"])
|
||||
|
||||
for language in language_df.keys():
|
||||
language_df[language] = prep_df(language_df[language], language)
|
||||
|
||||
df = pd.concat(list(language_df.values()))
|
||||
|
||||
|
||||
chart = alt.Chart(df).mark_bar().encode(
|
||||
|
||||
# tell Altair which field to group columns on
|
||||
x=alt.X('c2:N', title=None),
|
||||
|
||||
# tell Altair which field to use as Y values and how to calculate
|
||||
y=alt.Y('sum(values):Q',
|
||||
axis=alt.Axis(
|
||||
grid=False,
|
||||
title='LOC added')),
|
||||
|
||||
# tell Altair which field to use to use as the set of columns to be represented in each group
|
||||
column=alt.Column('c1:N', title=None),
|
||||
|
||||
# tell Altair which field to use for color segmentation
|
||||
color=alt.Color('Language:N',
|
||||
scale=alt.Scale(
|
||||
domain=all_languages,
|
||||
# make it look pretty with an enjoyable color pallet
|
||||
range=allColorsValues,
|
||||
),
|
||||
)) \
|
||||
.configure_view(
|
||||
# remove grid lines around column clusters
|
||||
strokeOpacity=0
|
||||
)
|
||||
chart.save('bar_graph.png')
|
||||
return 'bar_graph.png'
|
||||
|
||||
2783
package-lock.json
generated
2783
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
126
requirements.txt
126
requirements.txt
@@ -1,63 +1,63 @@
|
||||
altair==4.1.0
|
||||
altair-data-server==0.4.1
|
||||
altair-saver==0.5.0
|
||||
altair-viewer==0.3.0
|
||||
appdirs==1.4.3
|
||||
attrs==19.3.0
|
||||
bcrypt==3.1.7
|
||||
certifi==2020.6.20
|
||||
cffi==1.14.0
|
||||
chardet==3.0.4
|
||||
cryptography==2.9.2
|
||||
cycler==0.10.0
|
||||
Deprecated==1.2.10
|
||||
distlib==0.3.0
|
||||
entrypoints==0.3
|
||||
filelock==3.0.12
|
||||
gitdb==4.0.5
|
||||
GitPython==3.1.7
|
||||
idna==2.10
|
||||
Jinja2==2.11.2
|
||||
jsonschema==3.2.0
|
||||
kiwisolver==1.2.0
|
||||
lizard==1.17.4
|
||||
MarkupSafe==1.1.1
|
||||
matplotlib==3.3.0
|
||||
MouseInfo==0.1.2
|
||||
numpy==1.19.1
|
||||
opencv-python==4.2.0.34
|
||||
pandas==1.0.5
|
||||
paramiko==2.7.1
|
||||
Pillow==7.2.0
|
||||
pipenv==2018.11.26
|
||||
portpicker==1.3.1
|
||||
PyAutoGUI==0.9.48
|
||||
pycparser==2.20
|
||||
PyDriller==1.15.2
|
||||
PyGetWindow==0.0.8
|
||||
PyGithub==1.51
|
||||
PyJWT==1.7.1
|
||||
PyMsgBox==1.0.7
|
||||
PyNaCl==1.3.0
|
||||
pyparsing==2.4.7
|
||||
pyperclip==1.7.0
|
||||
PyRect==0.1.4
|
||||
pyrsistent==0.16.0
|
||||
PyScreeze==0.1.25
|
||||
python-dateutil==2.8.1
|
||||
python-dotenv==0.14.0
|
||||
PyTweening==1.0.3
|
||||
pytz==2020.1
|
||||
requests==2.24.0
|
||||
selenium==3.141.0
|
||||
six==1.15.0
|
||||
smmap==3.0.4
|
||||
toolz==0.10.0
|
||||
tornado==6.0.4
|
||||
urllib3==1.25.9
|
||||
virtualenv==20.0.18
|
||||
virtualenv-clone==0.5.4
|
||||
wrapt==1.12.1
|
||||
xlrd==1.2.0
|
||||
XlsxWriter==1.2.8
|
||||
humanize==2.5.0
|
||||
altair==4.1.0
|
||||
altair-data-server==0.4.1
|
||||
altair-saver==0.5.0
|
||||
altair-viewer==0.3.0
|
||||
appdirs==1.4.3
|
||||
attrs==19.3.0
|
||||
bcrypt==3.1.7
|
||||
certifi==2020.6.20
|
||||
cffi==1.14.0
|
||||
chardet==3.0.4
|
||||
cryptography==2.9.2
|
||||
cycler==0.10.0
|
||||
Deprecated==1.2.10
|
||||
distlib==0.3.0
|
||||
entrypoints==0.3
|
||||
filelock==3.0.12
|
||||
gitdb==4.0.5
|
||||
GitPython==3.1.7
|
||||
idna==2.10
|
||||
Jinja2==2.11.2
|
||||
jsonschema==3.2.0
|
||||
kiwisolver==1.2.0
|
||||
lizard==1.17.4
|
||||
MarkupSafe==1.1.1
|
||||
matplotlib==3.3.0
|
||||
MouseInfo==0.1.2
|
||||
numpy==1.19.1
|
||||
opencv-python==4.2.0.34
|
||||
pandas==1.0.5
|
||||
paramiko==2.7.1
|
||||
Pillow==7.2.0
|
||||
pipenv==2018.11.26
|
||||
portpicker==1.3.1
|
||||
PyAutoGUI==0.9.48
|
||||
pycparser==2.20
|
||||
PyDriller==1.15.2
|
||||
PyGetWindow==0.0.8
|
||||
PyGithub==1.51
|
||||
PyJWT==1.7.1
|
||||
PyMsgBox==1.0.7
|
||||
PyNaCl==1.3.0
|
||||
pyparsing==2.4.7
|
||||
pyperclip==1.7.0
|
||||
PyRect==0.1.4
|
||||
pyrsistent==0.16.0
|
||||
PyScreeze==0.1.25
|
||||
python-dateutil==2.8.1
|
||||
python-dotenv==0.14.0
|
||||
PyTweening==1.0.3
|
||||
pytz==2020.1
|
||||
requests==2.24.0
|
||||
selenium==3.141.0
|
||||
six==1.15.0
|
||||
smmap==3.0.4
|
||||
toolz==0.10.0
|
||||
tornado==6.0.4
|
||||
urllib3==1.25.9
|
||||
virtualenv==20.0.18
|
||||
virtualenv-clone==0.5.4
|
||||
wrapt==1.12.1
|
||||
xlrd==1.2.0
|
||||
XlsxWriter==1.2.8
|
||||
humanize==2.5.0
|
||||
|
||||
300
translation.json
300
translation.json
@@ -1,150 +1,150 @@
|
||||
{
|
||||
"fr": {
|
||||
"Monday": "Lundi",
|
||||
"Tuesday": "Mardi",
|
||||
"Wednesday": "Mercredi",
|
||||
"Thursday": "Jeudi",
|
||||
"Friday": "Vendredi",
|
||||
"Saturday": "Samedi",
|
||||
"Sunday": "Dimanche",
|
||||
"Morning": "Matin",
|
||||
"Daytime": "Journée",
|
||||
"Evening": "Soirée",
|
||||
"Night": "Nuit",
|
||||
"Languages": "Langages",
|
||||
"Editors": "Éditeurs de code",
|
||||
"operating system": "Système d'exploitation",
|
||||
"Projects": "Projets",
|
||||
"Timezone": "Fuseau horaire",
|
||||
"Contributions in the year": "Contributions en",
|
||||
"Used in GitHub's Storage": "Utilisés avec le stockage de GitHub",
|
||||
"Opted to Hire": "A choisi d'embaucher",
|
||||
"Not Opted to Hire": "N'a pas choisi d'embaucher",
|
||||
"Profile Views": "Vues du profil",
|
||||
"From Hello World I have written": "Depuis Hello World, j'ai écrit",
|
||||
"I am Most Productive on": "Je suis le plus productif sur",
|
||||
"This Week I Spend My Time On": "Cette semaine, je passe mon temps sur",
|
||||
"I Mostly Code in": "Je code principalement en",
|
||||
"Timeline": "Chronologie",
|
||||
"No Activity Tracked This Week": "Aucune activité enregistrée cette semaine",
|
||||
"My GitHub Data": "Mes données GitHub",
|
||||
"Lines of code": "Lignes de code",
|
||||
"public repository": "dépot publique",
|
||||
"public repositories": "dépots publiques",
|
||||
"private repository": "dépot privé",
|
||||
"private repositories": "dépots privés",
|
||||
"I am an Early": "Je suis un 🐤 du matin",
|
||||
"I am a Night": "Je suis un 🦉 de nuit"
|
||||
},
|
||||
"en": {
|
||||
"Monday": "Monday",
|
||||
"Tuesday": "Tuesday",
|
||||
"Wednesday": "Wednesday",
|
||||
"Thursday": "Thursday",
|
||||
"Friday": "Friday",
|
||||
"Saturday": "Saturday",
|
||||
"Sunday": "Sunday",
|
||||
"Morning": "Morning",
|
||||
"Daytime": "Daytime",
|
||||
"Evening": "Evening",
|
||||
"Night": "Night",
|
||||
"Languages": "Programming Languages",
|
||||
"Editors": "Code Editors",
|
||||
"operating system": "Operating System",
|
||||
"Projects": "Projects",
|
||||
"Timezone": "Time zone",
|
||||
"Contributions in the year": "Contributions in the year",
|
||||
"Used in GitHub's Storage": "Used in Github's Storage",
|
||||
"Opted to Hire": "Opted to Hire",
|
||||
"Not Opted to Hire": "Not Opted to Hire",
|
||||
"Profile Views": "Profile Views",
|
||||
"From Hello World I have written": "From Hello World I've Written",
|
||||
"I am Most Productive on": "I'm Most Productive on",
|
||||
"This Week I Spend My Time On": "This Week I Spend My Time On",
|
||||
"I Mostly Code in": "I Mostly Code in",
|
||||
"Timeline": "Timeline",
|
||||
"No Activity Tracked This Week": "No Activity Tracked This Week",
|
||||
"My GitHub Data": "My Github Data",
|
||||
"Lines of code": "Lines of code",
|
||||
"public repository": "Public repository",
|
||||
"public repositories": "Public repositories",
|
||||
"private repository": "Private repository",
|
||||
"private repositories": "Private repositories",
|
||||
"I am an Early": "I'm an Early 🐤",
|
||||
"I am a Night": "I'm a Night 🦉"
|
||||
},
|
||||
"it": {
|
||||
"Monday": "Lunedì",
|
||||
"Tuesday": "Martedì",
|
||||
"Wednesday": "Mecoledì",
|
||||
"Thursday": "Giovedì",
|
||||
"Friday": "Venerdì",
|
||||
"Saturday": "Sabato",
|
||||
"Sunday": "Domenica",
|
||||
"Morning": "Mattina",
|
||||
"Daytime": "Giorno",
|
||||
"Evening": "Pomeriggio",
|
||||
"Night": "Notte",
|
||||
"Languages": "Linguaggi di programmazione",
|
||||
"Editors": "Editor di testo",
|
||||
"operating system": "Sistema operativo",
|
||||
"Projects": "Progetti",
|
||||
"Timezone": "Fuso orario",
|
||||
"Contributions in the year": "Contributi nell'ultimo anno",
|
||||
"Used in GitHub's Storage": "Spazio di archiviazione di Github utilizzato",
|
||||
"Opted to Hire": "Pronto per essere assunto",
|
||||
"Not Opted to Hire": "Non disponibile per assunzioni/colloqui",
|
||||
"Profile Views": "Visite al profilo",
|
||||
"From Hello World I have written": "Dal mio primo Hello World ho scritto ",
|
||||
"I am Most Productive on": "Sono piu' produttivo di",
|
||||
"This Week I Spend My Time On": "Questa settimana ho speso il mio tempo su",
|
||||
"I Mostly Code in": "Solitamente programmo in",
|
||||
"Timeline": "Linea temporale",
|
||||
"No Activity Tracked This Week": "Nessuna attività tracciata questa settimana",
|
||||
"My GitHub Data": "I miei dati GitHub",
|
||||
"Lines of code": "Linee di codice",
|
||||
"public repository": "Repository pubblica",
|
||||
"public repositories": "Repositories pubbliche",
|
||||
"private repository": "Repository privata",
|
||||
"private repositories": "Repositories private",
|
||||
"I am an Early": "Sono un mattiniero 🐤",
|
||||
"I am a Night": "Sono un notturno 🦉"
|
||||
},
|
||||
"zh": {
|
||||
"Monday": "星期一",
|
||||
"Tuesday": "星期二",
|
||||
"Wednesday": "星期三",
|
||||
"Thursday": "星期四",
|
||||
"Friday": "星期五",
|
||||
"Saturday": "星期六",
|
||||
"Sunday": "星期天",
|
||||
"Morning": "早晨",
|
||||
"Daytime": "白天",
|
||||
"Evening": "傍晚",
|
||||
"Night": "晚上",
|
||||
"Languages": "编程语言",
|
||||
"Editors": "编辑器",
|
||||
"operating system": "操作系统",
|
||||
"Projects": "项目",
|
||||
"Timezone": "时区",
|
||||
"Contributions in the year": "今年的贡献",
|
||||
"Used in GitHub's Storage": "占用了 GitHub 内存",
|
||||
"Opted to Hire": "选择雇用",
|
||||
"Not Opted to Hire": "不选择雇用",
|
||||
"Profile Views": "个人封面观看次数",
|
||||
"From Hello World I have written": "从你好世界我已经写了",
|
||||
"I am Most Productive on": "我最有效率是",
|
||||
"This Week I Spend My Time On": "这周我花我的时间在",
|
||||
"I Mostly Code in": "我主要编程在于",
|
||||
"Timeline": "时间线",
|
||||
"No Activity Tracked This Week": "本周没有记录任何活动",
|
||||
"My GitHub Data": "我的 GitHub 数据",
|
||||
"Lines of code": "行代码",
|
||||
"public repository": "公共仓库",
|
||||
"public repositories": "公共仓库",
|
||||
"private repository": "私人仓库",
|
||||
"private repositories": "私人仓库",
|
||||
"I am an Early": "我是早起的 🐤",
|
||||
"I am a Night": "我是晚起的 🦉"
|
||||
}
|
||||
}
|
||||
{
|
||||
"fr": {
|
||||
"Monday": "Lundi",
|
||||
"Tuesday": "Mardi",
|
||||
"Wednesday": "Mercredi",
|
||||
"Thursday": "Jeudi",
|
||||
"Friday": "Vendredi",
|
||||
"Saturday": "Samedi",
|
||||
"Sunday": "Dimanche",
|
||||
"Morning": "Matin",
|
||||
"Daytime": "Journée",
|
||||
"Evening": "Soirée",
|
||||
"Night": "Nuit",
|
||||
"Languages": "Langages",
|
||||
"Editors": "Éditeurs de code",
|
||||
"operating system": "Système d'exploitation",
|
||||
"Projects": "Projets",
|
||||
"Timezone": "Fuseau horaire",
|
||||
"Contributions in the year": "Contributions en",
|
||||
"Used in GitHub's Storage": "Utilisés avec le stockage de GitHub",
|
||||
"Opted to Hire": "A choisi d'embaucher",
|
||||
"Not Opted to Hire": "N'a pas choisi d'embaucher",
|
||||
"Profile Views": "Vues du profil",
|
||||
"From Hello World I have written": "Depuis Hello World, j'ai écrit",
|
||||
"I am Most Productive on": "Je suis le plus productif sur",
|
||||
"This Week I Spend My Time On": "Cette semaine, je passe mon temps sur",
|
||||
"I Mostly Code in": "Je code principalement en",
|
||||
"Timeline": "Chronologie",
|
||||
"No Activity Tracked This Week": "Aucune activité enregistrée cette semaine",
|
||||
"My GitHub Data": "Mes données GitHub",
|
||||
"Lines of code": "Lignes de code",
|
||||
"public repository": "dépot publique",
|
||||
"public repositories": "dépots publiques",
|
||||
"private repository": "dépot privé",
|
||||
"private repositories": "dépots privés",
|
||||
"I am an Early": "Je suis un 🐤 du matin",
|
||||
"I am a Night": "Je suis un 🦉 de nuit"
|
||||
},
|
||||
"en": {
|
||||
"Monday": "Monday",
|
||||
"Tuesday": "Tuesday",
|
||||
"Wednesday": "Wednesday",
|
||||
"Thursday": "Thursday",
|
||||
"Friday": "Friday",
|
||||
"Saturday": "Saturday",
|
||||
"Sunday": "Sunday",
|
||||
"Morning": "Morning",
|
||||
"Daytime": "Daytime",
|
||||
"Evening": "Evening",
|
||||
"Night": "Night",
|
||||
"Languages": "Programming Languages",
|
||||
"Editors": "Code Editors",
|
||||
"operating system": "Operating System",
|
||||
"Projects": "Projects",
|
||||
"Timezone": "Time zone",
|
||||
"Contributions in the year": "Contributions in the year",
|
||||
"Used in GitHub's Storage": "Used in Github's Storage",
|
||||
"Opted to Hire": "Opted to Hire",
|
||||
"Not Opted to Hire": "Not Opted to Hire",
|
||||
"Profile Views": "Profile Views",
|
||||
"From Hello World I have written": "From Hello World I've Written",
|
||||
"I am Most Productive on": "I'm Most Productive on",
|
||||
"This Week I Spend My Time On": "This Week I Spend My Time On",
|
||||
"I Mostly Code in": "I Mostly Code in",
|
||||
"Timeline": "Timeline",
|
||||
"No Activity Tracked This Week": "No Activity Tracked This Week",
|
||||
"My GitHub Data": "My Github Data",
|
||||
"Lines of code": "Lines of code",
|
||||
"public repository": "Public repository",
|
||||
"public repositories": "Public repositories",
|
||||
"private repository": "Private repository",
|
||||
"private repositories": "Private repositories",
|
||||
"I am an Early": "I'm an Early 🐤",
|
||||
"I am a Night": "I'm a Night 🦉"
|
||||
},
|
||||
"it": {
|
||||
"Monday": "Lunedì",
|
||||
"Tuesday": "Martedì",
|
||||
"Wednesday": "Mecoledì",
|
||||
"Thursday": "Giovedì",
|
||||
"Friday": "Venerdì",
|
||||
"Saturday": "Sabato",
|
||||
"Sunday": "Domenica",
|
||||
"Morning": "Mattina",
|
||||
"Daytime": "Giorno",
|
||||
"Evening": "Pomeriggio",
|
||||
"Night": "Notte",
|
||||
"Languages": "Linguaggi di programmazione",
|
||||
"Editors": "Editor di testo",
|
||||
"operating system": "Sistema operativo",
|
||||
"Projects": "Progetti",
|
||||
"Timezone": "Fuso orario",
|
||||
"Contributions in the year": "Contributi nell'ultimo anno",
|
||||
"Used in GitHub's Storage": "Spazio di archiviazione di Github utilizzato",
|
||||
"Opted to Hire": "Pronto per essere assunto",
|
||||
"Not Opted to Hire": "Non disponibile per assunzioni/colloqui",
|
||||
"Profile Views": "Visite al profilo",
|
||||
"From Hello World I have written": "Dal mio primo Hello World ho scritto ",
|
||||
"I am Most Productive on": "Sono piu' produttivo di",
|
||||
"This Week I Spend My Time On": "Questa settimana ho speso il mio tempo su",
|
||||
"I Mostly Code in": "Solitamente programmo in",
|
||||
"Timeline": "Linea temporale",
|
||||
"No Activity Tracked This Week": "Nessuna attività tracciata questa settimana",
|
||||
"My GitHub Data": "I miei dati GitHub",
|
||||
"Lines of code": "Linee di codice",
|
||||
"public repository": "Repository pubblica",
|
||||
"public repositories": "Repositories pubbliche",
|
||||
"private repository": "Repository privata",
|
||||
"private repositories": "Repositories private",
|
||||
"I am an Early": "Sono un mattiniero 🐤",
|
||||
"I am a Night": "Sono un notturno 🦉"
|
||||
},
|
||||
"zh": {
|
||||
"Monday": "星期一",
|
||||
"Tuesday": "星期二",
|
||||
"Wednesday": "星期三",
|
||||
"Thursday": "星期四",
|
||||
"Friday": "星期五",
|
||||
"Saturday": "星期六",
|
||||
"Sunday": "星期天",
|
||||
"Morning": "早晨",
|
||||
"Daytime": "白天",
|
||||
"Evening": "傍晚",
|
||||
"Night": "晚上",
|
||||
"Languages": "编程语言",
|
||||
"Editors": "编辑器",
|
||||
"operating system": "操作系统",
|
||||
"Projects": "项目",
|
||||
"Timezone": "时区",
|
||||
"Contributions in the year": "今年的贡献",
|
||||
"Used in GitHub's Storage": "占用了 GitHub 内存",
|
||||
"Opted to Hire": "选择雇用",
|
||||
"Not Opted to Hire": "不选择雇用",
|
||||
"Profile Views": "个人封面观看次数",
|
||||
"From Hello World I have written": "从你好世界我已经写了",
|
||||
"I am Most Productive on": "我最有效率是",
|
||||
"This Week I Spend My Time On": "这周我花我的时间在",
|
||||
"I Mostly Code in": "我主要编程在于",
|
||||
"Timeline": "时间线",
|
||||
"No Activity Tracked This Week": "本周没有记录任何活动",
|
||||
"My GitHub Data": "我的 GitHub 数据",
|
||||
"Lines of code": "行代码",
|
||||
"public repository": "公共仓库",
|
||||
"public repositories": "公共仓库",
|
||||
"private repository": "私人仓库",
|
||||
"private repositories": "私人仓库",
|
||||
"I am an Early": "我是早起的 🐤",
|
||||
"I am a Night": "我是晚起的 🦉"
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user