{"id":48413252,"url":"https://github.com/arkedge/autoproject","last_synced_at":"2026-04-06T06:34:09.662Z","repository":{"id":231054251,"uuid":"778588552","full_name":"arkedge/autoproject","owner":"arkedge","description":"GitHub IssueをProjectに自動登録","archived":false,"fork":false,"pushed_at":"2026-04-01T17:35:54.000Z","size":783,"stargazers_count":10,"open_issues_count":14,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2026-04-02T04:18:49.051Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/arkedge.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-03-28T02:12:33.000Z","updated_at":"2025-09-09T23:58:13.000Z","dependencies_parsed_at":"2024-06-01T01:22:51.807Z","dependency_job_id":"f07693fe-cee5-412d-adfa-af08570e05a1","html_url":"https://github.com/arkedge/autoproject","commit_stats":null,"previous_names":["arkedge/autoproject"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/arkedge/autoproject","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arkedge%2Fautoproject","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arkedge%2Fautoproject/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arkedge%2Fautoproject/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arkedge%2Fautoproject/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/arkedge","download_url":"https://codeload.github.com/arkedge/autoproject/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arkedge%2Fautoproject/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31463014,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-05T21:22:52.476Z","status":"online","status_checked_at":"2026-04-06T02:00:07.287Z","response_time":112,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-04-06T06:34:09.047Z","updated_at":"2026-04-06T06:34:09.650Z","avatar_url":"https://github.com/arkedge.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# autoproject\n\n自動で Issue を Project に登録する\n\nconfig ファイルに基づき，Issue と PR を Project に自動登録します．適切な環境変数のもとで，起動すると Webhooks を受け付け，Project 追加は graphql でリクエストを飛ばすという実装につき，動作には GitHub app 側で相応の設定が必要です．\n\n## config\n\nサンプル：[test/readme_rule.yaml](/test/readme_rule.yaml)\n\nルール毎に OR，プロパティ毎に AND，プロパティの値のリストは OR を取ったものとして扱います．各ルールを独立に追加し，ルールにおける絞り込みはプロパティの追加や正規表現で行うことを想定しています．\n\nスキーマは，typescript 的に次と同じ（型名は実際のものと異なる）\n\n```ts\ntype RulesYaml = (Partial\u003cPayload\u003e \u0026 { project: Project })[];\n\ntype Project =\n  | number\n  | {\n      not: number | number[];\n    }\n  | Array\u003c\n      | number\n      | {\n          not: number | number[];\n        }\n    \u003e\n  | {\n      only: number | number[];\n    }\n  | {\n      reject: {};\n    };\n\ntype Payload = {\n  repo: Partial\u003cRepo\u003e;\n  issue: Partial\u003cIssue\u003e;\n  pr: Partial\u003cPullRequest\u003e;\n  on: Partial\u003cEventTarget\u003e;\n};\n\ntype Repo = {\n  name: string | string[];\n  full_name: string | string[];\n  description: string | string[];\n  fork: boolean;\n  private: boolean;\n  topics: string | string[];\n};\n\ntype Issue = {\n  assignees: string | string[];\n  labels: string | string[];\n};\n\ntype PullRequest = {\n  reviewers: string | string[];\n  assignees: string | string[];\n  labels: string | string[];\n  head: {\n    label: string | string[];\n    ref: string | string[];\n  };\n};\n\ntype EventTarget = {\n  issue:\n    | \"any\"\n    | \"opened\"\n    | \"assigned\"\n    | \"labeled\"\n    | (\"opened\" | \"assigned\" | \"labeled\")[];\n  pr:\n    | \"any\"\n    | \"opened\"\n    | \"assigned\"\n    | \"labeled\"\n    | (\"opened\" | \"assigned\" | \"labeled\")[];\n};\n```\n\n## GitHub App の設定\n\n### Webhook URL\n\n`/api/github/webhooks` 部分は固定です。\n\n```\nhttps://example.com/api/github/webhooks\n```\n\n### Permissions\n\n- Repository permissions\n  - Issues: Read-only\n  - Pull requests: Read-only\n- Organization permissions\n  - Members: Read-only\n  - Projects: Read and Write\n\n### Subscribe to events\n\n- Issues\n- Pull request\n\n## Docker を使った実行方法\n\n簡単に Docker を使って検証する方法を説明します．\n他のオプションを指定する場合はコードを確認してください．\n\n### 必要なリソースの用意\n\nいくつか環境変数の指定が必要なため，.env ファイルを作成します．\n\n```bash\nRULES_FILE=/app/rules.yaml\nGITHUB_APP_ID=[github_app_id]\nPORT=8080\nWEBHOOK_SECRET=[github_webhook_secret]\nGITHUB_APP_PRIVATE_KEY_FILE=/app/github.key\n```\n\nほか，root ディレクトリに以下のファイルを用意します．\n\n- rules.yaml\n  - 上の記法を参考に用意する\n- github.key\n  - Github App を登録してダウンロードする\n\n### 実行コマンド\n\n例として実行コマンドを示します．\n\n```bash\ncd ./autoproject\ndocker build . -t autoproject\ndocker run --env-file .env -p 8080:8080 autoproject\n```\n\n### 留意すべきポイント\n\n- 実行する際は Github から Webhook でアクセスできる必要があります\n- Github App に登録する際 Webhook 先のパスは `https://[your-host]/api/github/webhooks` としてください\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farkedge%2Fautoproject","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Farkedge%2Fautoproject","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farkedge%2Fautoproject/lists"}