|
1 | | -const { GraphQLClient } = require("graphql-request"); |
| 1 | +const fetch = require("isomorphic-fetch"); |
2 | 2 | const { writeFileSync, existsSync, mkdirSync } = require("fs"); |
3 | 3 |
|
4 | 4 | async function fetchMembers(organisation) { |
5 | | - const token = process.env.GH_TOKEN; |
6 | | - |
7 | | - if (!token) { |
8 | | - console.error("'GH_TOKEN' not set. Could not fetch nteract members."); |
9 | | - return []; |
10 | | - } |
11 | | - |
12 | | - const client = new GraphQLClient("https://api.github.com/graphql", { |
13 | | - headers: { |
14 | | - Authorization: `Bearer ${token}` |
15 | | - } |
16 | | - }); |
17 | | - |
18 | | - const query = `{ |
19 | | - organization(login: "${organisation}") { |
20 | | - membersWithRole(first: 100) { |
21 | | - totalCount |
22 | | - nodes { |
23 | | - name |
24 | | - login |
25 | | - websiteUrl |
26 | | - avatarUrl |
27 | | - url |
28 | | - } |
| 5 | + const url = `https://api.github.com/orgs/${organisation}/public_members`; |
| 6 | + |
| 7 | + try { |
| 8 | + const response = await fetch(url, { |
| 9 | + headers: { |
| 10 | + 'Accept': 'application/vnd.github.v3+json', |
| 11 | + 'User-Agent': 'nteract-member-fetcher' |
29 | 12 | } |
| 13 | + }); |
| 14 | + |
| 15 | + if (!response.ok) { |
| 16 | + throw new Error(`HTTP error! status: ${response.status}`); |
30 | 17 | } |
31 | | - }`; |
32 | 18 |
|
33 | | - try { |
34 | | - const data = await client.request(query); |
35 | | - return data.organization.membersWithRole.nodes; |
| 19 | + const members = await response.json(); |
| 20 | + |
| 21 | + return members.map(member => ({ |
| 22 | + name: member.name || null, |
| 23 | + login: member.login, |
| 24 | + websiteUrl: member.blog || null, |
| 25 | + avatarUrl: member.avatar_url, |
| 26 | + url: member.html_url |
| 27 | + })); |
36 | 28 | } catch (e) { |
37 | | - console.error(e); |
| 29 | + console.error(`Error fetching members for ${organisation}:`, e); |
38 | 30 | return []; |
39 | 31 | } |
40 | 32 | } |
|
0 commit comments