direnv
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
v4
-
Manipulate Tags on Gitlab CI/CD
#!/bin/bash # list-tags.sh # List all Gitlab tags for a given project. # $CI_PROJECT_ID is a Gitlab pre-defined variable # $GITLAB_TOKEN is a project access token that needs to be # a defined CI/CD variable. GITLAB_API_URL="https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}" curl -k --header "PRIVATE-TOKEN: $GITLAB_TOKEN" "${GITLAB_API_URL}/repository/tags"
-
Using semantic-release to automate releases and changelogs
# ~/.npmrc @doppelmutzi:registry=https://gitlab.com/api/v4/projects//packages/npm/ //gitlab.com/api/v4/projects//packages/npm/:_authToken=
-
403 Forbidden error when I tried to assign a user developer role using GitLab API through Python code
GITLAB_API_URL = "https://gitlab.com/api/v4" PRIVATE_TOKEN = "" NAMESPACE = "mycompany" PROJECT_NAME = "test-project"
-
Error 404 error while giving project access to a user for a developer role using the GitLab API in Python code
import requests app = FastAPI() # GitLab API configuration GITLAB_API_URL = "https://gitlab.com/api/v4" PRIVATE_TOKEN = "" PROJECT_ID = "vinod827_1391/awesome" def grant_developer_access(username: str): # Get user details from GitLab user_url = f"{GITLAB_API_URL}/users?username={username}" response = requests.get(user_url, headers={"PRIVATE-TOKEN": PRIVATE_TOKEN}) user_data = response.json() if not user_data: raise HTTPException(status_code=404, detail=f"User {username} not found.") user_id = user_data[0]["id"] # Grant developer access to the project access_data = {"user_id": user_id, "access_level": 30} # 30 is the access level for developer access_url = f"{GITLAB_API_URL}/projects/{PROJECT_ID}/access_requests" response = requests.post(access_url, headers={"PRIVATE-TOKEN": PRIVATE_TOKEN}, json=access_data) print('response->', response) if response.status_code != 201: raise HTTPException(status_code=response.status_code, detail=response.text)
-
Create tag with slash in name via API from PowerShell issue
Invoke-RestMethod -Uri "https://gitlab.com/api/v4/projects/12345/repository/tags" -Headers $headers -Method POST -Body $jsonBody
-
va_openDriver() error while trying to install Librewolf on Fedora39
Hello everyone i'm trying to install Librewolf on my M1 MBA running fedora39 with gnome on wayland, I downloaded librewolf's compressed archive from https://gitlab.com/api/v4/projects/44042130/packages/generic/librewolf/120.0.1-1/librewolf-120.0.1-1-linux-arm64-package.tar.bz2
-
Unable to install GitLab Package Registry
repositories { maven { url "https://gitlab.com/api/v4/projects/PROJEC-ID/packages/maven" credentials(HttpHeaderCredentials) { name = "Private-Token" value = gitLabPrivateToken } authentication { header(HttpHeaderAuthentication) } } } }
-
O navegador LibreWolf, uma versão modificada do Firefox é confiavel?
Pagina da Gitlab: https://gitlab.com/api/v4/projects/44042130/packages/generic/librewolf/116.0-1/librewolf-116.0-1-windows-x86_64-setup.exe
-
Extend hidden job not working in CI
.base: image: alpine:3.18 before_script: - echo "Project is $CI_PROJECT_NAME" script: - apk update - apk --no-cache add git openssl ca-certificates curl perl https://$GITLAB_USER_NAME:$SVC_ACCESS_TOKEN@$CI_SERVER_HOST/$CI_PROJECT_PATH.git - mkdir -p /usr/local/share/ca-certificates/extra - openssl s_client -connect ${CI_SERVER_HOST}:${CI_SERVER_PORT} -servername ${CI_SERVER_HOST} -showcerts /dev/null | sed -e '/-----BEGIN/,/-----END/!d' | tee "/usr/local/share/ca-certificates/${CI_SERVER_HOST}.crt" >/dev/null - update-ca-certificates - curl --location --output /usr/local/bin/release-cli "https://gitlab.com/api/v4/projects/gitlab-org%2Frelease-cli/packages/generic/release-cli/latest/release-cli-linux-amd64" - chmod +x /usr/local/bin/release-cli - release-cli -v Versioning: stage: Version extends: - .base script: - if [[ "$CI_COMMIT_BRANCH" == *"feature/"* ]]; then IMAGE_TAG="nightly" ; elif [ "$CI_COMMIT_BRANCH" == "develop" ]; then IMAGE_TAG="devel"; else echo "Master/Main branch"; fi - echo "Version found is ${IMAGE_TAG}" allow_failure: false rules: - if: '$CI_COMMIT_BRANCH =~ /^(develop|main|feature.*$)$/' artifacts: paths: - $IMAGE_TAG expire_in: 1 minute
-
remote-exec reconnecting 1000 times
image: name: hashicorp/terraform:1.5 entrypoint: - '/usr/bin/env' - 'PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin' stages: - Test and Lint - Build and Push - Staging Plan - Staging Apply - Staging Update App - Production Plan - Production Apply - Destroy before_script: - alias convert_report="jq -r '([.resource_changes[]?.change.actions?]|flatten)|{\"create\":(map(select(.==\"create\"))|length),\"update\":(map(select(.==\"update\"))|length),\"delete\":(map(select(.==\"delete\"))|length)}'" - apk add openssh-client - eval $(ssh-agent -s) - echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - - mkdir -p ~/.ssh - chmod 700 ~/.ssh - echo "$SSH_PRIVATE_KEY" > ~/.ssh/id_rsa - ls ~/.ssh Test and Lint: image: docker:19.03.5 .............. Validate Terraform: stage: Test and Lint script: - echo "Validate Terraform" - cd deploy/ - terraform init --backend=false - terraform validate rules: - if: '$CI_MERGE_REQUEST_TARGET_BRANCH_NAME =~ /^(main|production)$/ || $CI_COMMIT_BRANCH =~ /^(main|production)$/' Build and Push: stage: Build and Push ............... Staging Plan: stage: Staging Plan script: - echo "Run Terraform Plan for Staging" - cd deploy/ - export TF_VAR_image_api=$CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA - export GITLAB_ACCESS_TOKEN=XXXXXXXXXXXXXXXXXXXXXXXXX - export STATE_NAME=Staging - terraform init -backend-config="address=https://gitlab.com/api/v4/projects/47021553/terraform/state/$STATE_NAME" -backend-config="lock_address=https://gitlab.com/api/v4/projects/47021553/terraform/state/$STATE_NAME/lock" -backend-config="unlock_address=https://gitlab.com/api/v4/projects/47021553/terraform/state/$STATE_NAME/lock" -backend-config="username=XXXXXXXXX" -backend-config="password=$GITLAB_ACCESS_TOKEN" -backend-config="lock_method=POST" -backend-config="unlock_method=DELETE" -backend-config="retry_wait_min=5" #- terraform workspace select staging || terraform workspace new staging - terraform plan rules: - if: '$CI_COMMIT_BRANCH =~ /^(main|production)$/' Staging Apply: stage: Staging Apply environment: name: Staging url: XXXXXXXXXXXXXXXXX on_stop: Staging Destroy script: - echo "Run Terraform Apply for Staging" - cd deploy/ - export TF_VAR_image_api=$CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA - export GITLAB_ACCESS_TOKEN=XXXXXXXXXXXXXXXXXXXXXXX - export STATE_NAME=Staging - terraform init -backend-config="address=https://gitlab.com/api/v4/projects/47021553/terraform/state/$STATE_NAME" -backend-config="lock_address=https://gitlab.com/api/v4/projects/47021553/terraform/state/$STATE_NAME/lock" -backend-config="unlock_address=https://gitlab.com/api/v4/projects/47021553/terraform/state/$STATE_NAME/lock" -backend-config="username=XXXXXXXXXXXXX" -backend-config="password=$GITLAB_ACCESS_TOKEN" -backend-config="lock_method=POST" -backend-config="unlock_method=DELETE" -backend-config="retry_wait_min=5" - terraform apply -auto-approve -input=false rules: - if: '$CI_COMMIT_BRANCH =~ /^(main|production)$/' Staging Update App: stage: Staging Update App ............... Production Plan: stage: Production Plan ............. Production Apply: stage: Production Apply .......... Staging Destroy: stage: Destroy ............... Production Destroy: stage: Destroy ...............
direnv
-
Show HN: Dotenv, if it is a Unix utility
I think direnv already does a good job in this space, and it's already available in your package manager.
https://direnv.net/
-
Mise is a polyglot tool version manager
I switched from asdf to mise after a comment on lobste.rs[1] suggested I do so a few months ago, and I have been very happy with it.
It sands off some of asdf's sharp UI edges and provides a somewhat larger but still reasonable feature set; I've also replaced most of my direnv[2] usage with it.
The mise -> asdf comparison page is useful[3]
1: https://lobste.rs/s/66uxbj/how_love_homebrew#c_mvmsjp
2: https://direnv.net/
3: https://mise.jdx.dev/dev-tools/comparison-to-asdf.html
-
Nix-direnv is a quality of life improvement
I also made the export diff configurable, motivated by this post: https://github.com/direnv/direnv/pull/1233
- Direnv – Unclutter Your .profile
-
Conditional Git Configuration
Nice.
For years I've been using [direnv](https://direnv.net/) for this, setting environment variables which git picks up. This looks like a more feature complete equivalent, although to be honest I only really need switching of committer email and the SSH key used.
- FLaNK 25 December 2023
-
Development Environments with Guix, similar to devenv.sh
Direnv, for the uninitiated, loads and unloads environment variables when directories are entered and exited. Under every project folder there is a `$PROJ_DIR/.envrc` which contains:
-
Emacs Advent Calendar 9: devdocs, code-cells, dREPL, etc.
buffer-env: A pure-Elisp version of the direnv utility. Useful to make Emacs aware of Python virtualenvs (which, judging by the questions posted here, is unfortunately still a complication for a lot of people). Similar to (and inspired by) envrc, but doesn't require the direnv program.
-
golang cli vs env var in windows?
You can look at direnv to see this in action as they wrote shell hooks that get loaded into the shell profile and are executed on every prompt. https://direnv.net/
-
Nix Survival Mode: macOS upgrades won't break Nix anymore
Yes, most Nix users employ https://direnv.net or the equivalent for your IDE of choice. Emacs for instance has https://github.com/purcell/envrc which set per-buffer variables.
What are some alternatives?
wireguard-windows - Download WireGuard for Windows at https://www.wireguard.com/install . This repo is a mirror only. Official repository is at https://git.zx2c4.com/wireguard-windows
spaceship-prompt - :rocket::star: Minimalistic, powerful and extremely customizable Zsh prompt
browser
Pipenv - Python Development Workflow for Humans.
charts
lorri - Your project's nix-env
git-repo-sync - Auto synchronization of remote Git repositories. Auto conflict solving. Network fail resilience. Linux & Windows support. And more.
Home Manager using Nix - Manage a user environment using Nix [maintainer=@rycee]
AppMan - Manage 1900+ AppImage packages and official standalone apps for GNU/Linux without root privileges using the extensible and ever-growing AUR-inspired database of "AM Application Manager". Easy to use like APT and powerful like PacMan.
Neovim-from-scratch - 📚 A Neovim config designed from scratch to be understandable
gitlab-artwork
Poetry - Python packaging and dependency management made easy