某知名200斤程序員在週末給咱們分享了一條沸點:git
順便發出了以下的詢問:程序員
接着我順着思路問了下具體的需求:github
因而乎,我閱讀了一下 GitHub 的 API 文檔,發現要阻止白嫖怪,是能夠有門道的。咱們可讓白嫖怪在沒有 star 或者 fork 的時候,開啓的 issue 被自動關閉並鎖定,美汁兒汁兒。ubuntu
說幹就幹,拒絕白嫖怪,從我作起。markdown
(已開源在 fluttercandies/no-free-usage-action 併發布在 Actions 市場:No Free Usage Action)併發
其實最適合 GitHub Action 的語言是 js/ts,但此次我選擇了老本行 Dart。你猜是爲何~猜對了我也不會告訴你。工具
基於 GitHub REST API 進行各類請求的調用。oop
在此再也不贅述開發過程,本質上只是幾個 API 的調用工做。雖然其中涉及到了幾個坑點,可是總體實現較爲簡單。ui
若是你的項目已經在 GitHub 開源了,又想使用這個便利的小工具,能夠依照如下步驟來進行使用:spa
在你的項目的 /.github/workflows
文件夾下建立一個 yml
文件,例如 checker.yml
。
在文件中,引用 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,必須在此處進行傳遞,且必須爲這個值。
複製代碼
蹲一個白嫖怪。👀
當一個白嫖怪來到你的倉庫,給你開了一個 issue 時,action 開始執行。
白嫖怪立馬被採起了強制措施,大快人心。
你能夠選擇是否須要 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)