❌ 對白嫖怪 SAY NO !!! —— 如何在 GitHub 上阻止無恥白嫖

前言

某知名200斤程序員在週末給咱們分享了一條沸點git

image

順便發出了以下的詢問:程序員

image

接着我順着思路問了下具體的需求:github

image

因而乎,我閱讀了一下 GitHub 的 API 文檔,發現要阻止白嫖怪,是能夠有門道的。咱們可讓白嫖怪在沒有 star 或者 fork 的時候,開啓的 issue 被自動關閉並鎖定,美汁兒汁兒。ubuntu

image

說幹就幹,拒絕白嫖怪,從我作起。markdown

(已開源在 fluttercandies/no-free-usage-action 併發布在 Actions 市場:No Free Usage Action併發

開發工做

實現思路

  • 從 GitHub Action 入手,經過 issue 的開啓和從新開啓的事件,調用咱們的 action。
  • 拿到事件的觸發者,讀取TA是否 star、是否 fork、或者二者兼具。
  • 若是達到了白嫖條件,經過 action 發送引導信息,關閉並鎖定 issue。

技術選型

其實最適合 GitHub Action 的語言是 js/ts,但此次我選擇了老本行 Dart。你猜是爲何~猜對了我也不會告訴你。工具

基於 GitHub REST API 進行各類請求的調用。oop

開發過程

在此再也不贅述開發過程,本質上只是幾個 API 的調用工做。雖然其中涉及到了幾個坑點,可是總體實現較爲簡單。ui

如何使用?

若是你的項目已經在 GitHub 開源了,又想使用這個便利的小工具,能夠依照如下步驟來進行使用:spa

使用步驟

  1. 在你的項目的 /.github/workflows 文件夾下建立一個 yml 文件,例如 checker.yml

  2. 在文件中,引用 action 並使用。

    name: No Free usage issue checker  # Action名字。能夠自定義
    on:
      issues:
        types: [opened, reopened]  # 在issue打開和從新打開時調用
    
    jobs:
      build:
        runs-on: ubuntu-latest
    
        steps:
        - uses: actions/checkout@v2
        - uses: fluttercandies/no-free-usage-action@master  # 使用最新版本的action
        - name: Check issue actor  # 步驟名字。能夠自定義。
          with:
            token: ${{ secrets.GITHUB_TOKEN }}  # 由GitHub提供的臨時Token,必須在此處進行傳遞,且必須爲這個值。
    複製代碼
  3. 蹲一個白嫖怪。👀

實際效果

當一個白嫖怪來到你的倉庫,給你開了一個 issue 時,action 開始執行。

image

白嫖怪立馬被採起了強制措施,大快人心。

更多用法

你能夠選擇是否須要 fork 或者是否須要 star,但二者必選其一

- uses: fluttercandies/no-free-usage-action@master
- name: Check issue actor
  with:
    token: ${{ secrets.GITHUB_TOKEN }}
    forked: '--no-forked' (表明不須要fork)
    starred: '--no-starred' (表明不須要star)
    words: '請不要白嫖!' (任意內容。注意請將英文單引號進行轉義)
複製代碼

後話

白嫖怪已經成爲業界毒瘤。每一個人曾經都或多或少都有過白嫖的行爲,這並非關鍵問題,關鍵是在白嫖的過程當中,對其內容和開發者的努力沒有任何的尊重,還要更進一步的白嫖。

**一個 star、一次 fork,表明着對開源開發者的內容的承認。仔細閱讀項目的文檔,是對內容的尊重。提出新的需求,應當是深度思考後的產出。**可是一些沒有底線的開發者們,一次又一次地將這條底線不斷拓展,直到信心滿滿的開源開發者們放棄項目,再也不開源新的項目。而TA們只會轉向下一家,繼續TA們的白嫖活動。

因此,拒絕白嫖,從我作起。

結語

感謝這一年的開發過程當中,遇到了一羣支持開源而且有良好開源精神的小夥伴,並一塊兒推進着 Flutter Candies 的成長。

歡迎加入Flutter Candies,一塊兒生產可愛的Flutter小糖果(QQ羣:181398081)flutter-candies

FlutterCandies

相關文章
相關標籤/搜索