{"id":17618520,"url":"https://github.com/furmanp/gitlab-activity-importer","last_synced_at":"2025-04-13T23:17:28.880Z","repository":{"id":257994863,"uuid":"872103304","full_name":"furmanp/gitlab-activity-importer","owner":"furmanp","description":"Automatically recreate your GitLab activity chart in Github without moving entire codebase.","archived":false,"fork":false,"pushed_at":"2024-11-24T16:36:25.000Z","size":12986,"stargazers_count":11,"open_issues_count":0,"forks_count":4,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-27T13:38:14.761Z","etag":null,"topics":["git","github","gitlab"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/furmanp.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-10-13T19:33:47.000Z","updated_at":"2025-03-25T20:23:19.000Z","dependencies_parsed_at":"2024-11-24T16:20:58.997Z","dependency_job_id":"b26b690e-012b-40b0-b22b-0c450d4103d5","html_url":"https://github.com/furmanp/gitlab-activity-importer","commit_stats":{"total_commits":29,"total_committers":1,"mean_commits":29.0,"dds":0.0,"last_synced_commit":"49b5ad0a172883d948a72a3f760bea335cb8116c"},"previous_names":["furmanp/gitlab-activity-importer"],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/furmanp%2Fgitlab-activity-importer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/furmanp%2Fgitlab-activity-importer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/furmanp%2Fgitlab-activity-importer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/furmanp%2Fgitlab-activity-importer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/furmanp","download_url":"https://codeload.github.com/furmanp/gitlab-activity-importer/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248794605,"owners_count":21162615,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["git","github","gitlab"],"created_at":"2024-10-22T20:00:17.980Z","updated_at":"2025-04-13T23:17:28.857Z","avatar_url":"https://github.com/furmanp.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Go Report Card](https://goreportcard.com/badge/github.com/furmanp/gitlab-activity-importer)](https://goreportcard.com/report/github.com/furmanp/gitlab-activity-importer)\n![Latest Release](https://img.shields.io/github/v/release/furmanp/gitlab-activity-importer)\n\n# Git activity Importer (Gitlab -\u003e Github)\nA tool to transfer your GitLab commit history to GitHub, reflecting your GitLab activity on GitHub’s contribution graph.\n# Table of Contents\n- [Git activity Importer (Gitlab -\\\u003e Github)](#git-activity-importer-gitlab---github)\n- [Table of Contents](#table-of-contents)\n  - [Overview](#overview)\n  - [Features](#features)\n  - [Setup](#setup)\n    - [1. Automatic Imports (Recommended)](#1-automatic-imports-recommended)\n    - [2. Manual Imports](#2-manual-imports)\n  - [Configuration](#configuration)\n    - [Important Notes:](#important-notes)\n  - [License](#license)\n\n\n## Overview\nThis tool fetches your commit history from private GitLab repositories and imports it into a specified GitHub repository, creating a visual representation of your activity on GitHub’s contribution graph. It can be configured for automated daily imports or manual runs.\n\n## Features \n-\tAutomated Daily Imports: Syncs your GitLab activity with GitHub automatically each day.\n-\tManual Imports: Allows on-demand updates.\n-\tSecure Data Handling: Requires minimal permissions and uses GitHub repository secrets for configuration.\n\n## Setup\n### 1. Automatic Imports (Recommended)\nThis approach will automatically keep your activity up to date. The program is being run daily at midnight UTC.\nIt imports your latest commits and automatically pushes them to specified GitHub repository.\n\nTo do that follow these steps:\n1. **Fork this repository** to your GitHub account.\n2. **Create an empty repository** in your GitHub profile where the commits will be pushed.\n3. **Configure repository secrets** in your forked repository:\n   - Go to your forked repository settings.\n   - Under **Security**, navigate to **Secrets and variables \u003e Actions**.\n     ![Repository Secrets Configuration](assets/image.png)\n   - Add the following secrets:\n\n\n        | Secret Name       | Description                                                            |\n        | ----------------- | ---------------------------------------------------------------------- |\n        | `BASE_URL`        | URL of your GitLab instance (e.g., `https://gitlab.com`)               |\n        | `COMMITER_EMAIL`  | Email associated with your GitHub profile                              |\n        | `COMMITER_NAME`   | Your full name as it appears on GitHub                                 |\n        | `GITLAB_TOKEN`    | GitLab personal access token (read permissions only)                   |\n        | `ORIGIN_TOKEN`    | GitHub personal access token (with write permissions for auto-push)    |\n        | `ORIGIN_REPO_URL` | HTTPS URL of your GitHub repository (ensure it has a `.git` extension) |\n\nOnce these variables are saved in your Repository secrets, your commits will be automatically updated every day.\n\n### 2. Manual Imports\nIf you prefer to run the importer manually:\n1. **Download the latest release** of the tool.\n2. Set up the same environment variables on your local machine:\n```\nexport BASE_URL=https://gitlab.com\nexport COMMITER_EMAIL=your_email@example.com\n...\n```\n3. Run the tool locally whenever you want to sync your activity.\n\n## Configuration\nThis project uses GitHub Actions to automate builds and daily synchronization:\n\n- GitHub Actions Workflow: The .github/workflows/schedule.yml defines the automation steps for building and running the tool.\n- Secrets Configuration: The secrets allow secure storage and retrieval of required tokens and URLs during automation.\n\n### Important Notes:\n- **GitLab permissions:** The tool only requires read access to your GitLab repositories.\n- **GitHub permissions:** Your GitHub token must have write access to the destination repository for automatic pushes.\n\n## License\nThis project is licensed under the MIT License, which allows for free, unrestricted use, copying, modification, and distribution with attribution.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffurmanp%2Fgitlab-activity-importer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffurmanp%2Fgitlab-activity-importer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffurmanp%2Fgitlab-activity-importer/lists"}