-
Notifications
You must be signed in to change notification settings - Fork 9
5. Play with GitLab Web API
-
Ruby Gem:
git 1.8.1
-
Python3
-
Create a GitLab personal token and define it in the configuration.rb file for the
GILAB_PERSONAL_ACCESS_TOKEN
variable. -
Define the GitLab organization id in the configuration.rb file for the
GITLAB_ORGANIZATION_ID
variable. It will allow to send requests to query and modify your organization.
gem install git
Keywords: #organisation #GitLab #repositories #clones #dump
This feature allows to clone all repositories of the defined GitLab organization (groups and subgroups incldued) and save them in a specific folder.
Run the following command:
bash GitLabWizard.sh backup-all-repositories-from-org
This script will get configuation details picked from the Ruby configuration file; and triggers another Shell script to make a CURL request to the GitLab endpoint. A Python code will be called so as to extract repositories URLbefoire the cloning operation.
You need to define in the configuration.rb files the GitLab organisation ID at GITLAB_ORGANIZATION_ID. You have to also define the location to store clones at REPOSITORIES_CLONE_LOCATION_PATH and the access token at GILAB_PERSONAL_ACCESS_TOKEN.
You should also have your git environment ready, i.e. add your SSH private key if you clone by SSH for example.
Keywords: #organisation #GitLab #repositories #leaks #gitleaks
Warning: This operation can take long time because of both Git histories and file trees parsing
This feature allows to check in all repositories of the GitHub organisation if there are leaks using the gitleaks tool.
Run the following command:
bash GitLabWizard.sh look-for-leaks
This script needs a GitLab personal access otken to make requests to GitLab API and also the GitLab group ID to use to get projects under it. The wizard Shell script will pick configuration details from the Ruby configuration file ; and triggers another Shell script for the data process. A Python code will be called too to process JSON sent by GItLab API..
The gitleaks tool will be used to look inside the repository. To install it:
brew install gitleaks
You need to define in the configuration.rb files the GitLab organisation ID at GITLAB_ORGANIZATION_ID. You have to also define the location to store clones at REPOSITORIES_CLONE_LOCATION_PATH and the access token at GILAB_PERSONAL_ACCESS_TOKEN.
You should also have your git environment ready i.e. add your SSH private key if you clone by SSH for example. gh must be installed, and python3 be ready. Obviously gitleaks must be installed
Keywords: #organisation #GitLab #KPI #year #review
You will need to define a .env file with the GitLab API token for key GITLAB_API_TOKEN, the organization name and some settings. Here the organization name is Orange-OpenSource, replace with your own and add the suitable token.
See for example:
GITLAB_API_TOKEN=your-api-token
ORGANIZATION_NAME=Orange-OpenSource
Run the following command to compute a year review of the organization
# Do not forget to install dependencies
pip install -r requirements.txt
# For year 2024
python3.8 gitlab-year-review.py --year 2024