• 0 Posts
  • 12 Comments
Joined 1 year ago
cake
Cake day: June 11th, 2023

help-circle


  • Yup and I am getting sick of hearing this even on Arch Linux. Like, mofo, you could literally run a snapshot or backup before upgrading, don’t blame us if you’re yoloing your god damn computer. Windows have exactly the same problem too and this is why we have backups. Christ.

    On my Arch Linux Install, I literally have a Pacman Hook that would forcibly run backup and verify the said backup before doing a system-wide update.






  • Yep, and if open source licensing could be revoked on a whim, you can imagine the chaos that ensued. That would be my understanding as well, old version that have MPL license is perfectly fine to fork off, newer version might not be as it is under a different license. One of the reason why I liked Apache License is that it have make it explicitly clear that it’s irrevocable whereas MPL it is operating on an assumption that it’s not revocable. The most fundamental problem with the legal system in USA is that no law is “set in stone” and leaving things to assumption is open to reinterpretation by the judge who may have sided against you. (Hell, Google vs Oracle on Copyrighted API is still on case-to-case basis, so take it as you will.)

    Disclaimer: I am not a lawyer. I just share what I learned from Legal Eagle youtube and few other sources.



  • Probably this script:

    #!/bin/bash
    
    if [ -z "$1" ]
    then
            echo "Please provide git repository url as an argument for this script."
            exit 1
    fi
    regex='(https?|ftp|file)://[-[:alnum:]\+&@#/%?=~_|!:,.;]*[-[:alnum:]\+&@#/%=~_|]'
    if [[ $1 =~ $regex ]]
    then
    basename=$(basename $1)
    reponame=${basename%.*}
    curl -X 'POST' 'https://localgitea.com/api/v1/repos/migrate?access_token={Access Token Here}' \
      --insecure \
      -H "accept: application/json" \
      -H "Content-Type: application/json" \
      -d '{  "clone_addr": "'"$1"'",  "issues": false,  "labels": false,  "lfs": false,  "mirror": true,  "mirror_interval": "96h0m0s",  "private": false, "repo_name": "'"$reponame"'", "pull_requests": true,  "releases": true, "repo_owner": "githubpublic",  "service": "git",  "wiki": true}'
    else
            echo "Invalid URL"
            exit 1
    fi
    

    You can adjust it as needed and as for why I have --insecure flag, I have a direct network cable between my PC to the server, so encryption or HTTPS is not needed here. This is probably my favorite command, because I would write above as .sra.sh in home directory and then alias the .bashrc to make a sra command by adding alias sra=/home/{your user account}/.sra.sh in .bashrc and from there, anytime I have an interesting repository that I want to archive, I simply run sra {git url} and that’s it. It also specify the mirror interval manually for 3 days interval rather than every 8 hours that would’ve needlessly spam the git server.

    This is something I rely on everyday both as developer and system admin, I would maintain a different supply chain and prevent a supply chain attacks by generating my own package feeds/registry automatically from Gitea/Forgejo.

    Edited to Add: I noticed this community is Powershell, here the powershell version of above:

    param (
        [Parameter(Mandatory=$true)]
        [string]$gitRepoUrl
    )
    
    function Test-Url($url) {
        $regex = "(https?|ftp|file)://[-[:alnum:]\+&@#/%?=~_|!:,.;]*[-[:alnum:]\+&@#/%=~_|]"
        return $url -match $regex
    }
    
    
    $basename = Split-Path $gitRepoUrl -Leaf
    $reponame = [System.IO.Path]::GetFileNameWithoutExtension($basename)
    
    $headers = @{
        'accept' = 'application/json'
        'Content-Type' = 'application/json'
    }
    
    $body = @{
        'clone_addr' = $gitRepoUrl
        'issues' = $false
        'labels' = $false
        'lfs' = $false
        'mirror' = $true
        'mirror_interval' = '96h0m0s'
        'private' = $false
        'repo_name' = $reponame
        'pull_requests' = $true
        'releases' = $true
        'repo_owner' = 'githubpublic'
        'service' = 'git'
        'wiki' = $true
    } | ConvertTo-Json
    
    Invoke-RestMethod -Uri 'https://localgitea.com/api/v1/repos/migrate?access_token={Access Token Here}' -Method POST -Headers $headers -Body $body -SkipCertificateCheck
    
    




  • I tried to use it, but it have some big issues in reliability, because at the end of the day, despise the dataset it’s trained on, it’s still something I describes as a “language interpolation.”

    It sometime make TERRIBLE recommendations for which tools/libraries I should explore, because it assumes that those libraries might have support. Those libraries never does and so I wasted weeks on it. (It doesn’t help that both code and project are undocumented.)

    So after that experience, I demote ChatGPT usefulness to just “cleaning up pre-written documentation so it sounds better.” That’s it.